From fe487e8bf0a301fd718c4ffad0704ec5814f0719 Mon Sep 17 00:00:00 2001 From: yoff Date: Mon, 13 Jan 2025 21:46:00 +0100 Subject: [PATCH 001/126] java: add ThreadSafe query (P3) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Raúl Pardo Co-authored-by: SimonJorgensenMancofi Co-authored-by: Bjørnar Haugstad Jåtten --- .../semmle/code/java/ConflictingAccess.qll | 338 ++++++++++++++++++ .../Likely Bugs/Concurrency/ThreadSafe.qhelp | 33 ++ .../src/Likely Bugs/Concurrency/ThreadSafe.ql | 26 ++ .../2025-06-22-query-not-thread-safe.md | 4 + .../ThreadSafe/ThreadSafe.expected | 74 ++++ .../query-tests/ThreadSafe/ThreadSafe.qlref | 2 + .../query-tests/ThreadSafe/examples/App.java | 14 + .../query-tests/ThreadSafe/examples/C.java | 72 ++++ .../examples/FaultyTurnstileExample.java | 40 +++ .../ThreadSafe/examples/FlawedSemaphore.java | 30 ++ .../ThreadSafe/examples/LockCorrect.java | 51 +++ .../ThreadSafe/examples/LockExample.java | 156 ++++++++ .../ThreadSafe/examples/LoopyCallGraph.java | 33 ++ .../ThreadSafe/examples/SyncLstExample.java | 47 +++ .../ThreadSafe/examples/SyncStackExample.java | 39 ++ .../examples/SynchronizedAndLock.java | 21 ++ .../query-tests/ThreadSafe/examples/Test.java | 76 ++++ .../ThreadSafe/examples/Test2.java | 22 ++ .../ThreadSafe/examples/Test3Super.java | 17 + .../ThreadSafe/examples/ThreadSafe.java | 4 + .../ThreadSafe/examples/TurnstileExample.java | 23 ++ 21 files changed, 1122 insertions(+) create mode 100644 java/ql/lib/semmle/code/java/ConflictingAccess.qll create mode 100644 java/ql/src/Likely Bugs/Concurrency/ThreadSafe.qhelp create mode 100644 java/ql/src/Likely Bugs/Concurrency/ThreadSafe.ql create mode 100644 java/ql/src/change-notes/2025-06-22-query-not-thread-safe.md create mode 100644 java/ql/test/query-tests/ThreadSafe/ThreadSafe.expected create mode 100644 java/ql/test/query-tests/ThreadSafe/ThreadSafe.qlref create mode 100644 java/ql/test/query-tests/ThreadSafe/examples/App.java create mode 100644 java/ql/test/query-tests/ThreadSafe/examples/C.java create mode 100644 java/ql/test/query-tests/ThreadSafe/examples/FaultyTurnstileExample.java create mode 100644 java/ql/test/query-tests/ThreadSafe/examples/FlawedSemaphore.java create mode 100644 java/ql/test/query-tests/ThreadSafe/examples/LockCorrect.java create mode 100644 java/ql/test/query-tests/ThreadSafe/examples/LockExample.java create mode 100644 java/ql/test/query-tests/ThreadSafe/examples/LoopyCallGraph.java create mode 100644 java/ql/test/query-tests/ThreadSafe/examples/SyncLstExample.java create mode 100644 java/ql/test/query-tests/ThreadSafe/examples/SyncStackExample.java create mode 100644 java/ql/test/query-tests/ThreadSafe/examples/SynchronizedAndLock.java create mode 100644 java/ql/test/query-tests/ThreadSafe/examples/Test.java create mode 100644 java/ql/test/query-tests/ThreadSafe/examples/Test2.java create mode 100644 java/ql/test/query-tests/ThreadSafe/examples/Test3Super.java create mode 100644 java/ql/test/query-tests/ThreadSafe/examples/ThreadSafe.java create mode 100644 java/ql/test/query-tests/ThreadSafe/examples/TurnstileExample.java diff --git a/java/ql/lib/semmle/code/java/ConflictingAccess.qll b/java/ql/lib/semmle/code/java/ConflictingAccess.qll new file mode 100644 index 00000000000..0d92438ae0f --- /dev/null +++ b/java/ql/lib/semmle/code/java/ConflictingAccess.qll @@ -0,0 +1,338 @@ +/** + * Provides classes and predicates for detecting conflicting accesses in the sense of the Java Memory Model. + */ + +import java +import Concurrency + +/** + * Holds if `t` is the type of a lock. + * Currently a crude test of the type name. + */ +pragma[inline] +predicate isLockType(Type t) { t.getName().matches("%Lock%") } + +/** + * This module provides predicates, chiefly `locallyMonitors`, to check if a given expression is synchronized on a specific monitor. + */ +module Monitors { + /** + * A monitor is any object that is used to synchronize access to a shared resource. + * This includes locks as well as variables used in synchronized blocks (including `this`). + */ + newtype TMonitor = + /** Either a lock or a variable used in a synchronized block. */ + TVariableMonitor(Variable v) { isLockType(v.getType()) or locallySynchronizedOn(_, _, v) } or + /** An instance reference used as a monitor. */ + TInstanceMonitor(RefType thisType) { locallySynchronizedOnThis(_, thisType) } or + /** A class used as a monitor. */ + TClassMonitor(RefType classType) { locallySynchronizedOnClass(_, classType) } + + /** + * A monitor is any object that is used to synchronize access to a shared resource. + * This includes locks as well as variables used in synchronized blocks (including `this`). + */ + class Monitor extends TMonitor { + /** Gets the location of this monitor. */ + abstract Location getLocation(); + + /** Gets a textual representation of this element. */ + string toString() { result = "Monitor" } + } + + /** + * A variable used as a monitor. + * The variable is either a lock or is used in a synchronized block. + * E.g `synchronized (m) { ... }` or `m.lock();` + */ + class VariableMonitor extends Monitor, TVariableMonitor { + Variable v; + + VariableMonitor() { this = TVariableMonitor(v) } + + override Location getLocation() { result = v.getLocation() } + + override string toString() { result = "VariableMonitor(" + v.toString() + ")" } + + /** Gets the variable being used as a monitor. */ + Variable getVariable() { result = v } + } + + /** + * An instance reference used as a monitor. + * Either via `synchronized (this) { ... }` or by marking a non-static method as `synchronized`. + */ + class InstanceMonitor extends Monitor, TInstanceMonitor { + RefType thisType; + + InstanceMonitor() { this = TInstanceMonitor(thisType) } + + override Location getLocation() { result = thisType.getLocation() } + + override string toString() { result = "InstanceMonitor(" + thisType.toString() + ")" } + + /** Gets the instance reference being used as a monitor. */ + RefType getThisType() { result = thisType } + } + + /** + * A class used as a monitor. + * This is achieved by marking a static method as `synchronized`. + */ + class ClassMonitor extends Monitor, TClassMonitor { + RefType classType; + + ClassMonitor() { this = TClassMonitor(classType) } + + override Location getLocation() { result = classType.getLocation() } + + override string toString() { result = "ClassMonitor(" + classType.toString() + ")" } + + /** Gets the class being used as a monitor. */ + RefType getClassType() { result = classType } + } + + /** Holds if the expression `e` is synchronized on the monitor `m`. */ + predicate locallyMonitors(Expr e, Monitor m) { + exists(Variable v | v = m.(VariableMonitor).getVariable() | + locallyLockedOn(e, v) + or + locallySynchronizedOn(e, _, v) + ) + or + locallySynchronizedOnThis(e, m.(InstanceMonitor).getThisType()) + or + locallySynchronizedOnClass(e, m.(ClassMonitor).getClassType()) + } + + /** Holds if `localLock` refers to `lock`. */ + predicate represents(Field lock, Variable localLock) { + isLockType(lock.getType()) and + ( + localLock = lock + or + localLock.getInitializer() = lock.getAnAccess() + ) + } + + /** Holds if `e` is synchronized on the `Lock` `lock` by a locking call. */ + predicate locallyLockedOn(Expr e, Field lock) { + isLockType(lock.getType()) and + exists(Variable localLock, MethodCall lockCall, MethodCall unlockCall | + represents(lock, localLock) and + lockCall.getQualifier() = localLock.getAnAccess() and + lockCall.getMethod().getName() in ["lock", "lockInterruptibly", "tryLock"] and + unlockCall.getQualifier() = localLock.getAnAccess() and + unlockCall.getMethod().getName() = "unlock" + | + dominates(lockCall.getControlFlowNode(), unlockCall.getControlFlowNode()) and + dominates(lockCall.getControlFlowNode(), e.getControlFlowNode()) and + postDominates(unlockCall.getControlFlowNode(), e.getControlFlowNode()) + ) + } +} + +/** Provides predicates, chiefly `isModifying`, to check if a given expression modifies a shared resource. */ +module Modification { + import semmle.code.java.dataflow.FlowSummary + + /** Holds if the field access `a` modifies a shared resource. */ + predicate isModifying(FieldAccess a) { + a.isVarWrite() + or + exists(Call c | c.(MethodCall).getQualifier() = a | isModifyingCall(c)) + or + exists(ArrayAccess aa, Assignment asa | aa.getArray() = a | asa.getDest() = aa) + } + + /** Holds if the call `c` modifies a shared resource. */ + predicate isModifyingCall(Call c) { + exists(SummarizedCallable sc, string output, string prefix | sc.getACall() = c | + sc.propagatesFlow(_, output, _, _) and + prefix = "Argument[this]" and + output.prefix(prefix.length()) = prefix + ) + } +} + +/** Holds if the class is annotated as `@ThreadSafe`. */ +Class annotatedAsThreadSafe() { result.getAnAnnotation().getType().getName() = "ThreadSafe" } + +/** Holds if the type `t` is thread-safe. */ +predicate isThreadSafeType(Type t) { + t.getName().matches(["Atomic%", "Concurrent%"]) + or + t.getName() in [ + "CopyOnWriteArraySet", "BlockingQueue", "ThreadLocal", + // this is a method that returns a thread-safe version of the collection used as parameter + "synchronizedMap", "Executor", "ExecutorService", "CopyOnWriteArrayList", + "LinkedBlockingDeque", "LinkedBlockingQueue", "CompletableFuture" + ] + or + t = annotatedAsThreadSafe() +} + +/** + * A field access that is exposed to potential data races. + * We require the field to be in a class that is annotated as `@ThreadSafe`. + */ +class ExposedFieldAccess extends FieldAccess { + ExposedFieldAccess() { + this.getField() = annotatedAsThreadSafe().getAField() and + not this.getField().isVolatile() and + // field is not a lock + not isLockType(this.getField().getType()) and + // field is not thread-safe + not isThreadSafeType(this.getField().getType()) and + not isThreadSafeType(this.getField().getInitializer().getType()) and + // access is not the initializer of the field + not this.(VarWrite).getASource() = this.getField().getInitializer() and + // access not in a constructor + not this.getEnclosingCallable() = this.getField().getDeclaringType().getAConstructor() and + // not a field on a local variable + not this.getQualifier+().(VarAccess).getVariable() instanceof LocalVariableDecl and + // not the variable mention in a synchronized statement + not this = any(SynchronizedStmt sync).getExpr() + } + + // LHS of assignments are excluded from the control flow graph, + // so we use the control flow node for the assignment itself instead. + override ControlFlowNode getControlFlowNode() { + // this is the LHS of an assignment, use the control flow node for the assignment + exists(Assignment asgn | asgn.getDest() = this | result = asgn.getControlFlowNode()) + or + // this is not the LHS of an assignment, use the default control flow node + not exists(Assignment asgn | asgn.getDest() = this) and + result = super.getControlFlowNode() + } +} + +/** Holds if the location of `a` is strictly before the location of `b`. */ +pragma[inline] +predicate orderedLocations(Location a, Location b) { + a.getStartLine() < b.getStartLine() + or + a.getStartLine() = b.getStartLine() and + a.getStartColumn() < b.getStartColumn() +} + +/** + * A class annotated as `@ThreadSafe`. + * Provides predicates to check for concurrency issues. + */ +class ClassAnnotatedAsThreadSafe extends Class { + ClassAnnotatedAsThreadSafe() { this = annotatedAsThreadSafe() } + + /** Holds if `a` and `b` are conflicting accesses to the same field and not monitored by the same monitor. */ + predicate unsynchronised(ExposedFieldAccess a, ExposedFieldAccess b) { + this.conflicting(a, b) and + this.publicAccess(_, a) and + this.publicAccess(_, b) and + not exists(Monitors::Monitor m | + this.monitors(a, m) and + this.monitors(b, m) + ) + } + + /** Holds if `a` is the earliest write to its field that is unsynchronized with `b`. */ + predicate unsynchronised_normalized(ExposedFieldAccess a, ExposedFieldAccess b) { + this.unsynchronised(a, b) and + // Eliminate double reporting by making `a` the earliest write to this field + // that is unsynchronized with `b`. + not exists(ExposedFieldAccess earlier_a | + earlier_a.getField() = a.getField() and + orderedLocations(earlier_a.getLocation(), a.getLocation()) + | + this.unsynchronised(earlier_a, b) + ) + } + + /** + * Holds if `a` and `b` are unsynchronized and both publicly accessible + * as witnessed by `witness_a` and `witness_b`. + */ + predicate witness(ExposedFieldAccess a, Expr witness_a, ExposedFieldAccess b, Expr witness_b) { + this.unsynchronised_normalized(a, b) and + this.publicAccess(witness_a, a) and + this.publicAccess(witness_b, b) and + // avoid double reporting + not exists(Expr better_witness_a | this.publicAccess(better_witness_a, a) | + orderedLocations(better_witness_a.getLocation(), witness_a.getLocation()) + ) and + not exists(Expr better_witness_b | this.publicAccess(better_witness_b, b) | + orderedLocations(better_witness_b.getLocation(), witness_b.getLocation()) + ) + } + + /** + * Actions `a` and `b` are conflicting iff + * they are field access operations on the same field and + * at least one of them is a write. + */ + predicate conflicting(ExposedFieldAccess a, ExposedFieldAccess b) { + // We allow a = b, since they could be executed on different threads + // We are looking for two operations: + // - on the same non-volatile field + a.getField() = b.getField() and + // - on this class + a.getField() = this.getAField() and + // - where at least one is a write + // wlog we assume that is `a` + // We use a slightly more inclusive definition than simply `a.isVarWrite()` + Modification::isModifying(a) and + // Avoid reporting both `(a, b)` and `(b, a)` by choosing the tuple + // where `a` appears before `b` in the source code. + ( + ( + Modification::isModifying(b) and + a != b + ) + implies + orderedLocations(a.getLocation(), b.getLocation()) + ) + } + + /** Holds if `a` can be reached by a path from a public method, and all such paths are monitored by `monitor`. */ + predicate monitors(ExposedFieldAccess a, Monitors::Monitor monitor) { + forex(Method m | this.providesAccess(m, _, a) and m.isPublic() | + this.monitorsVia(m, a, monitor) + ) + } + + /** Holds if `a` can be reached by a path from a public method and `e` is the expression in that method that stsarts the path. */ + predicate publicAccess(Expr e, ExposedFieldAccess a) { + exists(Method m | m.isPublic() | this.providesAccess(m, e, a)) + } + + /** + * Holds if a call to method `m` can cause an access of `a` and `e` is the expression inside `m` that leads to that access. + * `e` will either be `a` itself or a method call that leads to `a`. + */ + predicate providesAccess(Method m, Expr e, ExposedFieldAccess a) { + m = this.getAMethod() and + ( + a.getEnclosingCallable() = m and + e = a + or + exists(MethodCall c | c.getEnclosingCallable() = m | + this.providesAccess(c.getCallee(), _, a) and + e = c + ) + ) + } + + /** Holds if all paths from `m` to `a` are monitored by `monitor`. */ + predicate monitorsVia(Method m, ExposedFieldAccess a, Monitors::Monitor monitor) { + m = this.getAMethod() and + this.providesAccess(m, _, a) and + (a.getEnclosingCallable() = m implies Monitors::locallyMonitors(a, monitor)) and + forall(MethodCall c | + c.getEnclosingCallable() = m and + this.providesAccess(c.getCallee(), _, a) + | + Monitors::locallyMonitors(c, monitor) + or + this.monitorsVia(c.getCallee(), a, monitor) + ) + } +} diff --git a/java/ql/src/Likely Bugs/Concurrency/ThreadSafe.qhelp b/java/ql/src/Likely Bugs/Concurrency/ThreadSafe.qhelp new file mode 100644 index 00000000000..cafcb3cdd79 --- /dev/null +++ b/java/ql/src/Likely Bugs/Concurrency/ThreadSafe.qhelp @@ -0,0 +1,33 @@ + + + + + +

+In a thread-safe class, all field accesses that can be caused by calls to public methods must be properly synchronized.

+ +
+ + +

+Protect the field access with a lock. Alternatively mark the field as volatile if the write operation is atomic. You can also choose to use a data type that guarantees atomic access. If the field is immutable, mark it as final.

+ +
+ + + + +
  • + Java Language Specification, chapter 17: + Threads and Locks. +
  • +
  • + Java concurrency package: + java.util.concurrent. +
  • + + +
    +
    diff --git a/java/ql/src/Likely Bugs/Concurrency/ThreadSafe.ql b/java/ql/src/Likely Bugs/Concurrency/ThreadSafe.ql new file mode 100644 index 00000000000..1498274131e --- /dev/null +++ b/java/ql/src/Likely Bugs/Concurrency/ThreadSafe.ql @@ -0,0 +1,26 @@ +/** + * @name Not thread-safe + * @description This class is not thread-safe. It is annotated as `@ThreadSafe`, but it has a + * conflicting access to a field that is not synchronized with the same monitor. + * @kind problem + * @problem.severity warning + * @precision high + * @id java/not-threadsafe + * @tags quality + * reliability + * concurrency + */ + +import java +import semmle.code.java.ConflictingAccess + +from + ClassAnnotatedAsThreadSafe cls, FieldAccess modifyingAccess, Expr witness_modifyingAccess, + FieldAccess conflictingAccess, Expr witness_conflictingAccess +where + cls.witness(modifyingAccess, witness_modifyingAccess, conflictingAccess, witness_conflictingAccess) +select modifyingAccess, + "This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor.", + witness_modifyingAccess, "this expression", conflictingAccess, "this field access", + witness_conflictingAccess, "this expression" +// select c, a.getField() diff --git a/java/ql/src/change-notes/2025-06-22-query-not-thread-safe.md b/java/ql/src/change-notes/2025-06-22-query-not-thread-safe.md new file mode 100644 index 00000000000..d5dd0744609 --- /dev/null +++ b/java/ql/src/change-notes/2025-06-22-query-not-thread-safe.md @@ -0,0 +1,4 @@ +--- +category: newQuery +--- +* Added a new query, `java/not-threadsafe`, to detect data races in classes marked as `@ThreadSafe`. \ No newline at end of file diff --git a/java/ql/test/query-tests/ThreadSafe/ThreadSafe.expected b/java/ql/test/query-tests/ThreadSafe/ThreadSafe.expected new file mode 100644 index 00000000000..72d0bbb1a3a --- /dev/null +++ b/java/ql/test/query-tests/ThreadSafe/ThreadSafe.expected @@ -0,0 +1,74 @@ +| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:14:9:14:14 | this.y | this field access | examples/C.java:14:9:14:14 | this.y | this expression | +| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:15:9:15:14 | this.y | this field access | examples/C.java:15:9:15:14 | this.y | this expression | +| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:16:9:16:14 | this.y | this field access | examples/C.java:16:9:16:14 | this.y | this expression | +| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:16:18:16:23 | this.y | this field access | examples/C.java:16:18:16:23 | this.y | this expression | +| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:20:9:20:14 | this.y | this field access | examples/C.java:20:9:20:14 | this.y | this expression | +| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:21:9:21:14 | this.y | this field access | examples/C.java:21:9:21:14 | this.y | this expression | +| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:22:9:22:14 | this.y | this field access | examples/C.java:22:9:22:14 | this.y | this expression | +| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:22:18:22:23 | this.y | this field access | examples/C.java:22:18:22:23 | this.y | this expression | +| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:26:9:26:14 | this.y | this field access | examples/C.java:26:9:26:14 | this.y | this expression | +| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:30:13:30:13 | y | this field access | examples/C.java:30:13:30:13 | y | this expression | +| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:33:9:33:9 | y | this field access | examples/C.java:33:9:33:9 | y | this expression | +| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:39:9:39:14 | this.y | this field access | examples/C.java:39:9:39:14 | this.y | this expression | +| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:40:9:40:14 | this.y | this field access | examples/C.java:40:9:40:14 | this.y | this expression | +| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:41:9:41:14 | this.y | this field access | examples/C.java:41:9:41:14 | this.y | this expression | +| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:41:18:41:23 | this.y | this field access | examples/C.java:41:18:41:23 | this.y | this expression | +| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:53:9:53:14 | this.y | this field access | examples/C.java:53:9:53:14 | this.y | this expression | +| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:54:9:54:14 | this.y | this field access | examples/C.java:54:9:54:14 | this.y | this expression | +| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:55:9:55:14 | this.y | this field access | examples/C.java:55:9:55:14 | this.y | this expression | +| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:55:18:55:23 | this.y | this field access | examples/C.java:55:18:55:23 | this.y | this expression | +| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:61:9:61:9 | y | this field access | examples/C.java:61:9:61:9 | y | this expression | +| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:62:9:62:9 | y | this field access | examples/C.java:62:9:62:9 | y | this expression | +| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:63:9:63:9 | y | this field access | examples/C.java:63:9:63:9 | y | this expression | +| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:63:13:63:13 | y | this field access | examples/C.java:63:13:63:13 | y | this expression | +| examples/FaultyTurnstileExample.java:13:5:13:9 | count | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/FaultyTurnstileExample.java:13:5:13:9 | count | this expression | examples/FaultyTurnstileExample.java:18:5:18:9 | count | this field access | examples/FaultyTurnstileExample.java:18:5:18:9 | count | this expression | +| examples/FaultyTurnstileExample.java:30:5:30:9 | count | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/FaultyTurnstileExample.java:30:5:30:9 | count | this expression | examples/FaultyTurnstileExample.java:36:5:36:9 | count | this field access | examples/FaultyTurnstileExample.java:36:5:36:9 | count | this expression | +| examples/FlawedSemaphore.java:18:7:18:11 | state | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/FlawedSemaphore.java:18:7:18:11 | state | this expression | examples/FlawedSemaphore.java:15:14:15:18 | state | this field access | examples/FlawedSemaphore.java:15:14:15:18 | state | this expression | +| examples/FlawedSemaphore.java:18:7:18:11 | state | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/FlawedSemaphore.java:18:7:18:11 | state | this expression | examples/FlawedSemaphore.java:18:7:18:11 | state | this field access | examples/FlawedSemaphore.java:18:7:18:11 | state | this expression | +| examples/FlawedSemaphore.java:18:7:18:11 | state | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/FlawedSemaphore.java:18:7:18:11 | state | this expression | examples/FlawedSemaphore.java:26:7:26:11 | state | this field access | examples/FlawedSemaphore.java:26:7:26:11 | state | this expression | +| examples/LockExample.java:24:5:24:10 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:24:5:24:10 | length | this expression | examples/LockExample.java:38:5:38:10 | length | this field access | examples/LockExample.java:38:5:38:10 | length | this expression | +| examples/LockExample.java:24:5:24:10 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:24:5:24:10 | length | this expression | examples/LockExample.java:39:13:39:18 | length | this field access | examples/LockExample.java:39:13:39:18 | length | this expression | +| examples/LockExample.java:24:5:24:10 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:24:5:24:10 | length | this expression | examples/LockExample.java:44:5:44:10 | length | this field access | examples/LockExample.java:44:5:44:10 | length | this expression | +| examples/LockExample.java:24:5:24:10 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:24:5:24:10 | length | this expression | examples/LockExample.java:45:13:45:18 | length | this field access | examples/LockExample.java:45:13:45:18 | length | this expression | +| examples/LockExample.java:24:5:24:10 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:24:5:24:10 | length | this expression | examples/LockExample.java:49:5:49:10 | length | this field access | examples/LockExample.java:49:5:49:10 | length | this expression | +| examples/LockExample.java:24:5:24:10 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:24:5:24:10 | length | this expression | examples/LockExample.java:57:5:57:10 | length | this field access | examples/LockExample.java:57:5:57:10 | length | this expression | +| examples/LockExample.java:24:5:24:10 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:24:5:24:10 | length | this expression | examples/LockExample.java:58:13:58:18 | length | this field access | examples/LockExample.java:58:13:58:18 | length | this expression | +| examples/LockExample.java:24:5:24:10 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:24:5:24:10 | length | this expression | examples/LockExample.java:62:5:62:10 | length | this field access | examples/LockExample.java:62:5:62:10 | length | this expression | +| examples/LockExample.java:24:5:24:10 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:24:5:24:10 | length | this expression | examples/LockExample.java:65:13:65:18 | length | this field access | examples/LockExample.java:65:13:65:18 | length | this expression | +| examples/LockExample.java:24:5:24:10 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:24:5:24:10 | length | this expression | examples/LockExample.java:69:5:69:10 | length | this field access | examples/LockExample.java:69:5:69:10 | length | this expression | +| examples/LockExample.java:24:5:24:10 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:24:5:24:10 | length | this expression | examples/LockExample.java:71:13:71:18 | length | this field access | examples/LockExample.java:71:13:71:18 | length | this expression | +| examples/LockExample.java:24:5:24:10 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:24:5:24:10 | length | this expression | examples/LockExample.java:76:5:76:10 | length | this field access | examples/LockExample.java:76:5:76:10 | length | this expression | +| examples/LockExample.java:24:5:24:10 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:24:5:24:10 | length | this expression | examples/LockExample.java:79:13:79:18 | length | this field access | examples/LockExample.java:79:13:79:18 | length | this expression | +| examples/LockExample.java:24:5:24:10 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:24:5:24:10 | length | this expression | examples/LockExample.java:127:7:127:12 | length | this field access | examples/LockExample.java:127:7:127:12 | length | this expression | +| examples/LockExample.java:24:5:24:10 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:24:5:24:10 | length | this expression | examples/LockExample.java:136:7:136:12 | length | this field access | examples/LockExample.java:136:7:136:12 | length | this expression | +| examples/LockExample.java:24:5:24:10 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:24:5:24:10 | length | this expression | examples/LockExample.java:142:7:142:12 | length | this field access | examples/LockExample.java:142:7:142:12 | length | this expression | +| examples/LockExample.java:25:5:25:11 | content | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:25:5:25:11 | content | this expression | examples/LockExample.java:39:5:39:11 | content | this field access | examples/LockExample.java:39:5:39:11 | content | this expression | +| examples/LockExample.java:25:5:25:11 | content | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:25:5:25:11 | content | this expression | examples/LockExample.java:45:5:45:11 | content | this field access | examples/LockExample.java:45:5:45:11 | content | this expression | +| examples/LockExample.java:25:5:25:11 | content | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:25:5:25:11 | content | this expression | examples/LockExample.java:58:5:58:11 | content | this field access | examples/LockExample.java:58:5:58:11 | content | this expression | +| examples/LockExample.java:25:5:25:11 | content | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:25:5:25:11 | content | this expression | examples/LockExample.java:65:5:65:11 | content | this field access | examples/LockExample.java:65:5:65:11 | content | this expression | +| examples/LockExample.java:25:5:25:11 | content | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:25:5:25:11 | content | this expression | examples/LockExample.java:71:5:71:11 | content | this field access | examples/LockExample.java:71:5:71:11 | content | this expression | +| examples/LockExample.java:25:5:25:11 | content | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:25:5:25:11 | content | this expression | examples/LockExample.java:79:5:79:11 | content | this field access | examples/LockExample.java:79:5:79:11 | content | this expression | +| examples/LockExample.java:38:5:38:10 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:38:5:38:10 | length | this expression | examples/LockExample.java:25:13:25:18 | length | this field access | examples/LockExample.java:25:13:25:18 | length | this expression | +| examples/LockExample.java:38:5:38:10 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:38:5:38:10 | length | this expression | examples/LockExample.java:32:13:32:18 | length | this field access | examples/LockExample.java:32:13:32:18 | length | this expression | +| examples/LockExample.java:38:5:38:10 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:38:5:38:10 | length | this expression | examples/LockExample.java:52:13:52:18 | length | this field access | examples/LockExample.java:52:13:52:18 | length | this expression | +| examples/LockExample.java:38:5:38:10 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:38:5:38:10 | length | this expression | examples/LockExample.java:150:7:150:12 | length | this field access | examples/LockExample.java:150:7:150:12 | length | this expression | +| examples/LockExample.java:39:5:39:11 | content | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:39:5:39:11 | content | this expression | examples/LockExample.java:52:5:52:11 | content | this field access | examples/LockExample.java:52:5:52:11 | content | this expression | +| examples/LockExample.java:85:5:85:21 | notRelatedToOther | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:85:5:85:21 | notRelatedToOther | this expression | examples/LockExample.java:94:5:94:21 | notRelatedToOther | this field access | examples/LockExample.java:94:5:94:21 | notRelatedToOther | this expression | +| examples/LockExample.java:85:5:85:21 | notRelatedToOther | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:85:5:85:21 | notRelatedToOther | this expression | examples/LockExample.java:112:5:112:21 | notRelatedToOther | this field access | examples/LockExample.java:112:5:112:21 | notRelatedToOther | this expression | +| examples/LockExample.java:85:5:85:21 | notRelatedToOther | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:85:5:85:21 | notRelatedToOther | this expression | examples/LockExample.java:119:5:119:21 | notRelatedToOther | this field access | examples/LockExample.java:119:5:119:21 | notRelatedToOther | this expression | +| examples/LockExample.java:85:5:85:21 | notRelatedToOther | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:85:5:85:21 | notRelatedToOther | this expression | examples/LockExample.java:124:5:124:21 | notRelatedToOther | this field access | examples/LockExample.java:124:5:124:21 | notRelatedToOther | this expression | +| examples/LockExample.java:85:5:85:21 | notRelatedToOther | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:85:5:85:21 | notRelatedToOther | this expression | examples/LockExample.java:145:5:145:21 | notRelatedToOther | this field access | examples/LockExample.java:145:5:145:21 | notRelatedToOther | this expression | +| examples/LockExample.java:85:5:85:21 | notRelatedToOther | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:85:5:85:21 | notRelatedToOther | this expression | examples/LockExample.java:153:5:153:21 | notRelatedToOther | this field access | examples/LockExample.java:153:5:153:21 | notRelatedToOther | this expression | +| examples/LockExample.java:94:5:94:21 | notRelatedToOther | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:94:5:94:21 | notRelatedToOther | this expression | examples/LockExample.java:100:5:100:21 | notRelatedToOther | this field access | examples/LockExample.java:100:5:100:21 | notRelatedToOther | this expression | +| examples/LockExample.java:94:5:94:21 | notRelatedToOther | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:94:5:94:21 | notRelatedToOther | this expression | examples/LockExample.java:103:5:103:21 | notRelatedToOther | this field access | examples/LockExample.java:103:5:103:21 | notRelatedToOther | this expression | +| examples/LockExample.java:94:5:94:21 | notRelatedToOther | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:94:5:94:21 | notRelatedToOther | this expression | examples/LockExample.java:109:5:109:21 | notRelatedToOther | this field access | examples/LockExample.java:109:5:109:21 | notRelatedToOther | this expression | +| examples/LockExample.java:94:5:94:21 | notRelatedToOther | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:94:5:94:21 | notRelatedToOther | this expression | examples/LockExample.java:117:5:117:21 | notRelatedToOther | this field access | examples/LockExample.java:117:5:117:21 | notRelatedToOther | this expression | +| examples/LoopyCallGraph.java:25:5:25:9 | count | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LoopyCallGraph.java:15:7:15:16 | increase(...) | this expression | examples/LoopyCallGraph.java:25:5:25:9 | count | this field access | examples/LoopyCallGraph.java:15:7:15:16 | increase(...) | this expression | +| examples/LoopyCallGraph.java:25:5:25:9 | count | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LoopyCallGraph.java:15:7:15:16 | increase(...) | this expression | examples/LoopyCallGraph.java:31:5:31:9 | count | this field access | examples/LoopyCallGraph.java:15:7:15:16 | increase(...) | this expression | +| examples/SyncLstExample.java:40:5:40:7 | lst | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/SyncLstExample.java:40:5:40:7 | lst | this expression | examples/SyncLstExample.java:45:5:45:7 | lst | this field access | examples/SyncLstExample.java:45:5:45:7 | lst | this expression | +| examples/SyncStackExample.java:32:5:32:7 | stc | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/SyncStackExample.java:32:5:32:7 | stc | this expression | examples/SyncStackExample.java:37:5:37:7 | stc | this field access | examples/SyncStackExample.java:37:5:37:7 | stc | this expression | +| examples/SynchronizedAndLock.java:14:9:14:14 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/SynchronizedAndLock.java:14:9:14:14 | length | this expression | examples/SynchronizedAndLock.java:19:9:19:14 | length | this field access | examples/SynchronizedAndLock.java:19:9:19:14 | length | this expression | +| examples/Test.java:43:5:43:10 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/Test.java:43:5:43:10 | this.y | this expression | examples/Test.java:52:5:52:10 | this.y | this field access | examples/Test.java:24:5:24:18 | setYPrivate(...) | this expression | +| examples/Test.java:43:5:43:10 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/Test.java:43:5:43:10 | this.y | this expression | examples/Test.java:60:5:60:10 | this.y | this field access | examples/Test.java:60:5:60:10 | this.y | this expression | +| examples/Test.java:43:5:43:10 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/Test.java:43:5:43:10 | this.y | this expression | examples/Test.java:74:5:74:10 | this.y | this field access | examples/Test.java:74:5:74:10 | this.y | this expression | +| examples/Test.java:43:5:43:10 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/Test.java:43:5:43:10 | this.y | this expression | examples/Test.java:74:14:74:14 | y | this field access | examples/Test.java:74:14:74:14 | y | this expression | diff --git a/java/ql/test/query-tests/ThreadSafe/ThreadSafe.qlref b/java/ql/test/query-tests/ThreadSafe/ThreadSafe.qlref new file mode 100644 index 00000000000..eba9a674554 --- /dev/null +++ b/java/ql/test/query-tests/ThreadSafe/ThreadSafe.qlref @@ -0,0 +1,2 @@ +query: Likely Bugs/Concurrency/ThreadSafe.ql +postprocess: utils/test/InlineExpectationsTestQuery.ql \ No newline at end of file diff --git a/java/ql/test/query-tests/ThreadSafe/examples/App.java b/java/ql/test/query-tests/ThreadSafe/examples/App.java new file mode 100644 index 00000000000..1c085ee6179 --- /dev/null +++ b/java/ql/test/query-tests/ThreadSafe/examples/App.java @@ -0,0 +1,14 @@ +/* + * This Java source file was generated by the Gradle 'init' task. + */ +package examples; + +public class App { + public String getGreeting() { + return "Hello World!"; + } + + public static void main(String[] args) { + System.out.println(new App().getGreeting()); + } +} diff --git a/java/ql/test/query-tests/ThreadSafe/examples/C.java b/java/ql/test/query-tests/ThreadSafe/examples/C.java new file mode 100644 index 00000000000..51201d4f6be --- /dev/null +++ b/java/ql/test/query-tests/ThreadSafe/examples/C.java @@ -0,0 +1,72 @@ +package examples; + +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; + +@ThreadSafe +public class C { + + private int y; + private Lock lock = new ReentrantLock(); + private Lock lock2 = new ReentrantLock(); + + public void m() { + this.y = 0; // $ Alert + this.y += 1; + this.y = this.y - 1; + } + + public void n4() { + this.y = 0; + this.y += 1; + this.y = this.y - 1; + } + + public void setY(int y) { + this.y = y; + } + + public void test() { + if (y == 0) { + lock.lock(); + } + y = 0; + lock.unlock(); + } + + public void n() { + this.lock.lock(); + this.y = 0; + this.y += 1; + this.y = this.y - 1; + this.lock.unlock(); + } + + public void callTestLock2() { + lock2.lock(); + setY(1); + lock2.unlock(); + } + + public void n2() { + lock.lock(); + this.y = 0; + this.y += 1; + this.y = this.y - 1; + lock.unlock(); + } + + public void n3() { + lock.lock(); + y = 0; + y += 1; + y = y - 1; + lock.unlock(); + } + + public void callTest() { + lock.lock(); + setY(1); + lock.unlock(); + } +} \ No newline at end of file diff --git a/java/ql/test/query-tests/ThreadSafe/examples/FaultyTurnstileExample.java b/java/ql/test/query-tests/ThreadSafe/examples/FaultyTurnstileExample.java new file mode 100644 index 00000000000..adbd74473e4 --- /dev/null +++ b/java/ql/test/query-tests/ThreadSafe/examples/FaultyTurnstileExample.java @@ -0,0 +1,40 @@ +package examples; + +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; + +@ThreadSafe +class FaultyTurnstileExample { + private Lock lock = new ReentrantLock(); + private int count = 0; + + public void inc() { + lock.lock(); + count++; // $ Alert + lock.unlock(); + } + + public void dec() { + count--; + } +} + +@ThreadSafe +class FaultyTurnstileExample2 { + private Lock lock1 = new ReentrantLock(); + private Lock lock2 = new ReentrantLock(); + private int count = 0; + + public void inc() { + lock1.lock(); + count++; // $ Alert + lock1.unlock(); + } + + public void dec() { + lock2.lock(); + count--; + lock2.unlock(); + } +} + diff --git a/java/ql/test/query-tests/ThreadSafe/examples/FlawedSemaphore.java b/java/ql/test/query-tests/ThreadSafe/examples/FlawedSemaphore.java new file mode 100644 index 00000000000..405edbe7058 --- /dev/null +++ b/java/ql/test/query-tests/ThreadSafe/examples/FlawedSemaphore.java @@ -0,0 +1,30 @@ +package examples; + +@ThreadSafe +public class FlawedSemaphore { + private final int capacity; + private int state; + + public FlawedSemaphore(int c) { + capacity = c; + state = 0; + } + + public void acquire() { + try { + while (state == capacity) { + this.wait(); + } + state++; // $ Alert + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + + public void release() { + synchronized (this) { + state--; // State can become negative + this.notifyAll(); + } + } +} diff --git a/java/ql/test/query-tests/ThreadSafe/examples/LockCorrect.java b/java/ql/test/query-tests/ThreadSafe/examples/LockCorrect.java new file mode 100644 index 00000000000..9c6c5abce56 --- /dev/null +++ b/java/ql/test/query-tests/ThreadSafe/examples/LockCorrect.java @@ -0,0 +1,51 @@ +package examples; + +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; + +@ThreadSafe +public class LockCorrect { + private Lock lock1 = new ReentrantLock(); + + private int length = 0; + private int notRelatedToOther = 10; + private int[] content = new int[10]; + private int thisSynchronized = 0; + + public void add(int value) { + lock1.lock(); + length++; + content[length] = value; + lock1.unlock(); + } + + public void removeCorrect() { + lock1.lock(); + content[length] = 0; + length--; + lock1.unlock(); + } + + public void synchronizedOnLock1() { + synchronized(lock1) { + notRelatedToOther++; + } + } + + public void synchronizedOnLock12() { + synchronized(lock1) { + notRelatedToOther++; + } + } + + public synchronized void x() { + thisSynchronized++; + } + + public void x1() { + synchronized(this) { + thisSynchronized++; + } + } + +} diff --git a/java/ql/test/query-tests/ThreadSafe/examples/LockExample.java b/java/ql/test/query-tests/ThreadSafe/examples/LockExample.java new file mode 100644 index 00000000000..92886bbb5ff --- /dev/null +++ b/java/ql/test/query-tests/ThreadSafe/examples/LockExample.java @@ -0,0 +1,156 @@ +// This example shows that we only get one alert "per concurrency problem": +// For each problematic variable, we get one alert at the earliest conflicting write. +// If the variable is involved in several different monitors, we get an alert for each monitor that +// is not correctly used. +// A single alert can have many related locations, since each conflicting access which is not +// prpoerly synchronized is a related location. +// This leads to many lines in the .expected file. +package examples; + +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; + +@ThreadSafe +public class LockExample { + private Lock lock1 = new ReentrantLock(); + private Lock lock2 = new ReentrantLock(); + + private int length = 0; + private int notRelatedToOther = 10; + private int[] content = new int[10]; + + public void add(int value) { + lock1.lock(); + length++; // $ Alert + content[length] = value; // $ Alert + lock1.unlock(); + } + + public void removeCorrect() { + lock1.lock(); + length--; + content[length] = 0; + lock1.unlock(); + } + + public void notTheSameLockAsAdd() { // use locks, but different ones + lock2.lock(); + length--; // $ Alert + content[length] = 0; // $ Alert + lock2.unlock(); + } + + public void noLock() { // no locks + length--; + content[length] = 0; + } + + public void fieldUpdatedOutsideOfLock() { // adjusts length without lock + length--; + + lock1.lock(); + content[length] = 0; + lock1.unlock(); + } + + public synchronized void synchronizedLock() { // no locks, but with synchronized + length--; + content[length] = 0; + } + + public void onlyLocked() { // never unlocked, only locked + length--; + + lock1.lock(); + content[length] = 0; + } + + public void onlyUnlocked() { // never locked, only unlocked + length--; + + content[length] = 0; + lock1.unlock(); + } + + public void notSameLock() { + length--; + + lock2.lock();// Not the same lock + content[length] = 0; + lock1.unlock(); + } + + public void updateCount() { + lock2.lock(); + notRelatedToOther++; // $ Alert + lock2.unlock(); + } + + public void updateCountTwiceCorrect() { + lock2.lock(); + notRelatedToOther++; + lock2.unlock(); + lock1.lock(); + notRelatedToOther++; // $ Alert + lock1.unlock(); + } + + public void updateCountTwiceDifferentLocks() { + lock2.lock(); + notRelatedToOther++; + lock2.unlock(); + lock1.lock(); + notRelatedToOther++; + lock2.unlock(); + } + + public void updateCountTwiceLock() { + lock2.lock(); + notRelatedToOther++; + lock2.unlock(); + lock1.lock(); + notRelatedToOther++; + } + + public void updateCountTwiceUnLock() { + lock2.lock(); + notRelatedToOther++; + lock2.unlock(); + notRelatedToOther++; + lock1.unlock(); + } + + public void synchronizedNonRelatedOutside() { + notRelatedToOther++; + + synchronized(this) { + length++; + } + } + + public void synchronizedNonRelatedOutside2() { + int x = 0; + x++; + + synchronized(this) { + length++; + } + } + + public void synchronizedNonRelatedOutside3() { + synchronized(this) { + length++; + } + + notRelatedToOther = 1; + } + + public void synchronizedNonRelatedOutside4() { + synchronized(lock1) { + length++; + } + + notRelatedToOther = 1; + } + +} diff --git a/java/ql/test/query-tests/ThreadSafe/examples/LoopyCallGraph.java b/java/ql/test/query-tests/ThreadSafe/examples/LoopyCallGraph.java new file mode 100644 index 00000000000..595aea014f2 --- /dev/null +++ b/java/ql/test/query-tests/ThreadSafe/examples/LoopyCallGraph.java @@ -0,0 +1,33 @@ +package examples; + +import java.util.Random; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; + +@ThreadSafe +public class LoopyCallGraph { + private Lock lock = new ReentrantLock(); + private int count = 0; + private Random random = new Random(); + + public void entry() { + if (random.nextBoolean()) { + increase(); // this looks like an unprotected path to a call to dec() + } else { + lock.lock(); + dec(); + lock.unlock(); + } + } + + private void increase() { + lock.lock(); + count = 10; //$ SPURIOUS: Alert + lock.unlock(); + entry(); // this looks like an unprotected path to a call to dec() + } + + private void dec() { + count--; + } +} \ No newline at end of file diff --git a/java/ql/test/query-tests/ThreadSafe/examples/SyncLstExample.java b/java/ql/test/query-tests/ThreadSafe/examples/SyncLstExample.java new file mode 100644 index 00000000000..63f6985840c --- /dev/null +++ b/java/ql/test/query-tests/ThreadSafe/examples/SyncLstExample.java @@ -0,0 +1,47 @@ +package examples; + +import java.util.List; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; + +@ThreadSafe +public class SyncLstExample { + private Lock lock = new ReentrantLock(); + private List lst; + + public SyncLstExample(List lst) { + this.lst = lst; + } + + public void add(T item) { + lock.lock(); + lst.add(item); + lock.unlock(); + } + + public void remove(int i) { + lock.lock(); + lst.remove(i); + lock.unlock(); + } +} + +@ThreadSafe +class FaultySyncLstExample { + private Lock lock = new ReentrantLock(); + private List lst; + + public FaultySyncLstExample(List lst) { + this.lst = lst; + } + + public void add(T item) { + lock.lock(); + lst.add(item); // $ Alert + lock.unlock(); + } + + public void remove(int i) { + lst.remove(i); + } +} diff --git a/java/ql/test/query-tests/ThreadSafe/examples/SyncStackExample.java b/java/ql/test/query-tests/ThreadSafe/examples/SyncStackExample.java new file mode 100644 index 00000000000..62eabde4b7d --- /dev/null +++ b/java/ql/test/query-tests/ThreadSafe/examples/SyncStackExample.java @@ -0,0 +1,39 @@ +package examples; + +import java.util.Stack; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; + +@ThreadSafe +public class SyncStackExample { + private Lock lock = new ReentrantLock(); + private Stack stc = new Stack(); + + public void push(T item) { + lock.lock(); + stc.push(item); + lock.unlock(); + } + + public void pop() { + lock.lock(); + stc.pop(); + lock.unlock(); + } +} + +@ThreadSafe +class FaultySyncStackExample { + private Lock lock = new ReentrantLock(); + private Stack stc = new Stack(); + + public void push(T item) { + lock.lock(); + stc.push(item); // $ Alert + lock.unlock(); + } + + public void pop() { + stc.pop(); + } +} diff --git a/java/ql/test/query-tests/ThreadSafe/examples/SynchronizedAndLock.java b/java/ql/test/query-tests/ThreadSafe/examples/SynchronizedAndLock.java new file mode 100644 index 00000000000..fc0aa038b0e --- /dev/null +++ b/java/ql/test/query-tests/ThreadSafe/examples/SynchronizedAndLock.java @@ -0,0 +1,21 @@ +package examples; + +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; + +@ThreadSafe +public class SynchronizedAndLock { + private Lock lock = new ReentrantLock(); + + private int length = 0; + + public void add(int value) { + lock.lock(); + length++; // $ Alert + lock.unlock(); + } + + public synchronized void subtract() { + length--; + } +} diff --git a/java/ql/test/query-tests/ThreadSafe/examples/Test.java b/java/ql/test/query-tests/ThreadSafe/examples/Test.java new file mode 100644 index 00000000000..55fef174fc5 --- /dev/null +++ b/java/ql/test/query-tests/ThreadSafe/examples/Test.java @@ -0,0 +1,76 @@ +package examples; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; + +@ThreadSafe +public class Test { + /** + * Escaping field due to public visuability. + */ + int publicField; + + private int y; + final int immutableField = 1; + + // As of the below examples with synchronized as well. Except the incorretly placed lock. + + private Lock lock = new ReentrantLock(); + + /** + * Calls the a method where y field escapes. + * @param y + */ + public void setYAgainInCorrect(int t) { + setYPrivate(t); + } + + /** + * Locks the method where y field escapes. + * @param y + */ + public void setYAgainCorrect(int y) { + lock.lock(); + setYPrivate(y); + lock.unlock(); + } + + /** + * No escaping y field. Locks the y before assignment. + * @param y + */ + public void setYCorrect(int y) { + lock.lock(); + this.y = y; // $ Alert + lock.unlock(); + } + + /** + * No direct escaping, since it method is private. Only escaping if another public method uses this. + * @param y + */ + private void setYPrivate(int y) { + this.y = y; + } + + /** + * Incorretly locks y. + * @param y + */ + public void setYWrongLock(int y) { + this.y = y; + lock.lock(); + lock.unlock(); + } + + public synchronized int getImmutableField() { + return immutableField; + } + + public synchronized int getImmutableField2() { + return immutableField; + } + + public void testMethod() { + this.y = y + 2; + } +} diff --git a/java/ql/test/query-tests/ThreadSafe/examples/Test2.java b/java/ql/test/query-tests/ThreadSafe/examples/Test2.java new file mode 100644 index 00000000000..731af5ecf67 --- /dev/null +++ b/java/ql/test/query-tests/ThreadSafe/examples/Test2.java @@ -0,0 +1,22 @@ +package examples; + +import java.util.ArrayList; + +// Note: Not marked as thread-safe +// We inherit from this in Test3Super.java +public class Test2 { + int x; + protected ArrayList lst = new ArrayList<>(); + + public Test2() { + this.x = 0; + } + + public void changeX() { + this.x = x + 1; + } + + public void changeLst() { + lst.add("Hello"); + } +} diff --git a/java/ql/test/query-tests/ThreadSafe/examples/Test3Super.java b/java/ql/test/query-tests/ThreadSafe/examples/Test3Super.java new file mode 100644 index 00000000000..5a48e20bc05 --- /dev/null +++ b/java/ql/test/query-tests/ThreadSafe/examples/Test3Super.java @@ -0,0 +1,17 @@ +package examples; + +@ThreadSafe +public class Test3Super extends Test2 { // We might want an alert here for the inherited unsafe methods. + + public Test3Super() { + super.x = 0; + } + + public void y() { + super.x = 0; //$ MISSING: Alert + } + + public void yLst() { + super.lst.add("Hello!"); //$ MISSING: Alert + } +} diff --git a/java/ql/test/query-tests/ThreadSafe/examples/ThreadSafe.java b/java/ql/test/query-tests/ThreadSafe/examples/ThreadSafe.java new file mode 100644 index 00000000000..fc0a645c442 --- /dev/null +++ b/java/ql/test/query-tests/ThreadSafe/examples/ThreadSafe.java @@ -0,0 +1,4 @@ +package examples; + +public @interface ThreadSafe { +} \ No newline at end of file diff --git a/java/ql/test/query-tests/ThreadSafe/examples/TurnstileExample.java b/java/ql/test/query-tests/ThreadSafe/examples/TurnstileExample.java new file mode 100644 index 00000000000..90ea98a77d9 --- /dev/null +++ b/java/ql/test/query-tests/ThreadSafe/examples/TurnstileExample.java @@ -0,0 +1,23 @@ +package examples; + +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; + +@ThreadSafe +public class TurnstileExample { + private Lock lock = new ReentrantLock(); + private int count = 0; + + public void inc() { + Lock l = lock; + l.lock(); + count++; + l.unlock(); + } + + public void dec() { + lock.lock(); + count--; + lock.unlock(); + } +} \ No newline at end of file From 328b53576a67c1eff6aabf2afab7a1bb2d271fa0 Mon Sep 17 00:00:00 2001 From: yoff Date: Thu, 15 May 2025 13:06:38 +0200 Subject: [PATCH 002/126] java: add SafePublication query (P2) --- .../Concurrency/SafePublication.java | 11 +++ .../Concurrency/SafePublication.qhelp | 62 +++++++++++++ .../Concurrency/SafePublication.ql | 93 +++++++++++++++++++ .../Concurrency/UnsafePublication.java | 12 +++ .../2025-06-22-query-safe-publication.md | 4 + .../SafePublication/SafePublication.expected | 7 ++ .../SafePublication/SafePublication.java | 29 ++++++ .../SafePublication/SafePublication.qlref | 2 + .../SafePublication/ThreadSafe.java | 2 + 9 files changed, 222 insertions(+) create mode 100644 java/ql/src/Likely Bugs/Concurrency/SafePublication.java create mode 100644 java/ql/src/Likely Bugs/Concurrency/SafePublication.qhelp create mode 100644 java/ql/src/Likely Bugs/Concurrency/SafePublication.ql create mode 100644 java/ql/src/Likely Bugs/Concurrency/UnsafePublication.java create mode 100644 java/ql/src/change-notes/2025-06-22-query-safe-publication.md create mode 100644 java/ql/test/query-tests/SafePublication/SafePublication.expected create mode 100644 java/ql/test/query-tests/SafePublication/SafePublication.java create mode 100644 java/ql/test/query-tests/SafePublication/SafePublication.qlref create mode 100644 java/ql/test/query-tests/SafePublication/ThreadSafe.java diff --git a/java/ql/src/Likely Bugs/Concurrency/SafePublication.java b/java/ql/src/Likely Bugs/Concurrency/SafePublication.java new file mode 100644 index 00000000000..64341017890 --- /dev/null +++ b/java/ql/src/Likely Bugs/Concurrency/SafePublication.java @@ -0,0 +1,11 @@ +public class SafePublication { + private Object value; + + public synchronized void produce() { + value = new Object(); // Safely published using synchronization + } + + public synchronized Object getValue() { + return value; + } +} \ No newline at end of file diff --git a/java/ql/src/Likely Bugs/Concurrency/SafePublication.qhelp b/java/ql/src/Likely Bugs/Concurrency/SafePublication.qhelp new file mode 100644 index 00000000000..a24977e6730 --- /dev/null +++ b/java/ql/src/Likely Bugs/Concurrency/SafePublication.qhelp @@ -0,0 +1,62 @@ + + + + + +

    +In a thread-safe class, values must be published safely to avoid inconsistent or unexpected behavior caused by visibility issues between threads. If a value is not safely published, one thread may see a stale or partially constructed value written by another thread, leading to subtle concurrency bugs. +

    +

    +In particular, values of primitive types should not be initialised to anything but their default values (which for Object is null) unless this happens in a static context. +

    +

    +Techniques for safe publication include: +

    +
      +
    • Using synchronized blocks or methods to ensure that a value is fully constructed before it is published.
    • +
    • Using volatile fields to ensure visibility of changes across threads.
    • +
    • Using thread-safe collections or classes that provide built-in synchronization, such as are found in java.util.concurrent.
    • +
    • Using the final keyword to ensure that a reference to an object is safely published when the object is constructed.
    • +
    + +
    + + +

    +Choose a safe publication technique that fits your use case. If the value only needs to be written once, say for a singleton, consider using the final keyword. If the value is mutable and needs to be shared across threads, consider using synchronized blocks or methods, or using a thread-safe collection from java.util.concurrent. +

    + +
    + + +

    In the following example, the value of value is not safely published. The produce method + creates a new object and assigns it to the field value. However, the field is not + declared as volatile, and there are no synchronization mechanisms in place to ensure + that the value is fully constructed before it is published.

    + + + +

    To fix this example, declare the field value as volatile, or use + synchronized blocks or methods to ensure that the value is fully constructed before it is + published. We illustrate the latter with the following example:

    + + + +
    + + + +
  • + Java Language Specification, chapter 17: + Threads and Locks. +
  • +
  • + Java concurrency package: + java.util.concurrent. +
  • + + +
    +
    diff --git a/java/ql/src/Likely Bugs/Concurrency/SafePublication.ql b/java/ql/src/Likely Bugs/Concurrency/SafePublication.ql new file mode 100644 index 00000000000..08cd3d5a577 --- /dev/null +++ b/java/ql/src/Likely Bugs/Concurrency/SafePublication.ql @@ -0,0 +1,93 @@ +/** + * @name Safe publication + * @description A field of a thread-safe class is not safely published. + * @kind problem + * @problem.severity warning + * @precision high + * @id java/safe-publication + * @tags quality + * reliability + * concurrency + */ + +import java +import semmle.code.java.ConflictingAccess + +/** + * Holds if `v` should be the default value for the field `f`. + * That is, `v` is an initial (or constructor) assignment of `f`. + */ +predicate shouldBeDefaultValueFor(Field f, Expr v) { + v = f.getAnAssignedValue() and + ( + v = f.getInitializer() + or + v.getEnclosingCallable() = f.getDeclaringType().getAConstructor() + ) +} + +/** + * Gets the default value for the field `f`. + * See https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html + * for the default values of the primitive types. + * The default value for non-primitive types is null. + */ +bindingset[result] +Expr getDefaultValue(Field f) { + f.getType().hasName("byte") and result.(IntegerLiteral).getIntValue() = 0 + or + f.getType().hasName("short") and result.(IntegerLiteral).getIntValue() = 0 + or + f.getType().hasName("int") and result.(IntegerLiteral).getIntValue() = 0 + or + f.getType().hasName("long") and + ( + result.(LongLiteral).getValue() = "0" or + result.(IntegerLiteral).getValue() = "0" + ) + or + f.getType().hasName("float") and result.(FloatLiteral).getValue() = "0.0" + or + f.getType().hasName("double") and result.(DoubleLiteral).getValue() = "0.0" + or + f.getType().hasName("char") and result.(CharacterLiteral).getCodePointValue() = 0 + or + f.getType().hasName("boolean") and result.(BooleanLiteral).getBooleanValue() = false + or + not f.getType().getName() in [ + "byte", "short", "int", "long", "float", "double", "char", "boolean" + ] and + result instanceof NullLiteral +} + +/** + * Holds if all constructor or initial assignments (if any) are to the default value. + * That is, assignments by the declaration: + * int x = 0; OK + * int x = 3; not OK + * or inside a constructor: + * public c(a) { + * x = 0; OK + * x = 3; not OK + * x = a; not OK + * } + */ +predicate isAssignedDefaultValue(Field f) { + forall(Expr v | shouldBeDefaultValueFor(f, v) | v = getDefaultValue(f)) +} + +predicate isSafelyPublished(Field f) { + f.isFinal() or // TODO: Consider non-primitive types + f.isStatic() or + f.isVolatile() or + isThreadSafeType(f.getType()) or + isThreadSafeType(f.getInitializer().getType()) or + isAssignedDefaultValue(f) +} + +from Field f, ClassAnnotatedAsThreadSafe c +where + f = c.getAField() and + not isSafelyPublished(f) +select f, "The class $@ is marked as thread-safe, but this field is not safely published.", c, + c.getName() diff --git a/java/ql/src/Likely Bugs/Concurrency/UnsafePublication.java b/java/ql/src/Likely Bugs/Concurrency/UnsafePublication.java new file mode 100644 index 00000000000..ddf8c8b400f --- /dev/null +++ b/java/ql/src/Likely Bugs/Concurrency/UnsafePublication.java @@ -0,0 +1,12 @@ +@ThreadSafe +public class UnsafePublication { + private Object value; + + public void produce() { + value = new Object(); // Not safely published, other threads may see the default value null + } + + public Object getValue() { + return value; + } +} \ No newline at end of file diff --git a/java/ql/src/change-notes/2025-06-22-query-safe-publication.md b/java/ql/src/change-notes/2025-06-22-query-safe-publication.md new file mode 100644 index 00000000000..23b64c970b3 --- /dev/null +++ b/java/ql/src/change-notes/2025-06-22-query-safe-publication.md @@ -0,0 +1,4 @@ +--- +category: newQuery +--- +* Added a new query, `java/safe-publication`, to detect unsafe publication in classes marked as `@ThreadSafe`. \ No newline at end of file diff --git a/java/ql/test/query-tests/SafePublication/SafePublication.expected b/java/ql/test/query-tests/SafePublication/SafePublication.expected new file mode 100644 index 00000000000..fbb54ff7b8c --- /dev/null +++ b/java/ql/test/query-tests/SafePublication/SafePublication.expected @@ -0,0 +1,7 @@ +| SafePublication.java:5:9:5:9 | z | The class $@ is marked as thread-safe, but this field is not safely published. | SafePublication.java:2:14:2:28 | SafePublication | SafePublication | +| SafePublication.java:6:9:6:9 | w | The class $@ is marked as thread-safe, but this field is not safely published. | SafePublication.java:2:14:2:28 | SafePublication | SafePublication | +| SafePublication.java:7:9:7:9 | u | The class $@ is marked as thread-safe, but this field is not safely published. | SafePublication.java:2:14:2:28 | SafePublication | SafePublication | +| SafePublication.java:11:10:11:10 | d | The class $@ is marked as thread-safe, but this field is not safely published. | SafePublication.java:2:14:2:28 | SafePublication | SafePublication | +| SafePublication.java:12:10:12:10 | e | The class $@ is marked as thread-safe, but this field is not safely published. | SafePublication.java:2:14:2:28 | SafePublication | SafePublication | +| SafePublication.java:14:11:14:13 | arr | The class $@ is marked as thread-safe, but this field is not safely published. | SafePublication.java:2:14:2:28 | SafePublication | SafePublication | +| SafePublication.java:17:10:17:11 | cc | The class $@ is marked as thread-safe, but this field is not safely published. | SafePublication.java:2:14:2:28 | SafePublication | SafePublication | diff --git a/java/ql/test/query-tests/SafePublication/SafePublication.java b/java/ql/test/query-tests/SafePublication/SafePublication.java new file mode 100644 index 00000000000..9c1d031987b --- /dev/null +++ b/java/ql/test/query-tests/SafePublication/SafePublication.java @@ -0,0 +1,29 @@ +@ThreadSafe +public class SafePublication { + int x; + int y = 0; + int z = 3; //$ Alert + int w; //$ Alert + int u; //$ Alert + long a; + long b = 0; + long c = 0L; + long d = 3; //$ Alert + long e = 3L; //$ Alert + + int[] arr = new int[3]; //$ Alert + float f = 0.0f; + double dd = 00.0d; + char cc = 'a'; //$ Alert + char ok = '\u0000'; + + public SafePublication(int a) { + x = 0; + w = 3; // not ok + u = a; // not ok + } + + public void methodLocal() { + int i; + } +} \ No newline at end of file diff --git a/java/ql/test/query-tests/SafePublication/SafePublication.qlref b/java/ql/test/query-tests/SafePublication/SafePublication.qlref new file mode 100644 index 00000000000..51bf2ced966 --- /dev/null +++ b/java/ql/test/query-tests/SafePublication/SafePublication.qlref @@ -0,0 +1,2 @@ +query: Likely Bugs/Concurrency/SafePublication.ql +postprocess: utils/test/InlineExpectationsTestQuery.ql \ No newline at end of file diff --git a/java/ql/test/query-tests/SafePublication/ThreadSafe.java b/java/ql/test/query-tests/SafePublication/ThreadSafe.java new file mode 100644 index 00000000000..1a4534cc78f --- /dev/null +++ b/java/ql/test/query-tests/SafePublication/ThreadSafe.java @@ -0,0 +1,2 @@ +public @interface ThreadSafe { +} \ No newline at end of file From 5b301531135385eed02c23a63605d07afa07d696 Mon Sep 17 00:00:00 2001 From: yoff Date: Thu, 15 May 2025 13:16:51 +0200 Subject: [PATCH 003/126] java: add Escaping query (P1) --- .../Likely Bugs/Concurrency/Escaping.qhelp | 34 +++++++++++++++++++ .../src/Likely Bugs/Concurrency/Escaping.ql | 26 ++++++++++++++ .../change-notes/2025-06-22-query-escaping.md | 4 +++ .../query-tests/Escaping/Escaping.expected | 3 ++ .../test/query-tests/Escaping/Escaping.java | 17 ++++++++++ .../test/query-tests/Escaping/Escaping.qlref | 2 ++ .../test/query-tests/Escaping/ThreadSafe.java | 2 ++ 7 files changed, 88 insertions(+) create mode 100644 java/ql/src/Likely Bugs/Concurrency/Escaping.qhelp create mode 100644 java/ql/src/Likely Bugs/Concurrency/Escaping.ql create mode 100644 java/ql/src/change-notes/2025-06-22-query-escaping.md create mode 100644 java/ql/test/query-tests/Escaping/Escaping.expected create mode 100644 java/ql/test/query-tests/Escaping/Escaping.java create mode 100644 java/ql/test/query-tests/Escaping/Escaping.qlref create mode 100644 java/ql/test/query-tests/Escaping/ThreadSafe.java diff --git a/java/ql/src/Likely Bugs/Concurrency/Escaping.qhelp b/java/ql/src/Likely Bugs/Concurrency/Escaping.qhelp new file mode 100644 index 00000000000..a8a614dbe36 --- /dev/null +++ b/java/ql/src/Likely Bugs/Concurrency/Escaping.qhelp @@ -0,0 +1,34 @@ + + + + + +

    +In a thread-safe class, non-final fields should generally be private (or possibly volatile) to ensure that they cannot be accessed by other threads in an unsafe manner. +

    + +
    + + +

    +If the field does not change, mark it as final. If the field is mutable, mark it as private and provide properly synchronized accessors.

    + +
    + + + + +
  • + Java Language Specification, chapter 17: + Threads and Locks. +
  • +
  • + Java concurrency package: + java.util.concurrent. +
  • + + +
    +
    diff --git a/java/ql/src/Likely Bugs/Concurrency/Escaping.ql b/java/ql/src/Likely Bugs/Concurrency/Escaping.ql new file mode 100644 index 00000000000..a2f3e0f7b46 --- /dev/null +++ b/java/ql/src/Likely Bugs/Concurrency/Escaping.ql @@ -0,0 +1,26 @@ +/** + * @name Escaping + * @description In a thread-safe class, care should be taken to avoid exposing mutable state. + * @kind problem + * @problem.severity warning + * @precision high + * @id java/escaping + * @tags quality + * reliability + * concurrency + */ + +import java +import semmle.code.java.ConflictingAccess + +from Field f, ClassAnnotatedAsThreadSafe c +where + f = c.getAField() and + not f.isFinal() and // final fields do not change + not f.isPrivate() and + // We believe that protected fields are also dangerous + // Volatile fields cannot cause data races, but it is dubious to allow changes. + // For now, we ignore volatile fields, but there are likely bugs to be caught here. + not f.isVolatile() +select f, "The class $@ is marked as thread-safe, but this field is potentially escaping.", c, + c.getName() diff --git a/java/ql/src/change-notes/2025-06-22-query-escaping.md b/java/ql/src/change-notes/2025-06-22-query-escaping.md new file mode 100644 index 00000000000..f33de2e8556 --- /dev/null +++ b/java/ql/src/change-notes/2025-06-22-query-escaping.md @@ -0,0 +1,4 @@ +--- +category: newQuery +--- +* Added a new query, `java/escaping`, to detect values escaping from classes marked as `@ThreadSafe`. \ No newline at end of file diff --git a/java/ql/test/query-tests/Escaping/Escaping.expected b/java/ql/test/query-tests/Escaping/Escaping.expected new file mode 100644 index 00000000000..e066b29dae4 --- /dev/null +++ b/java/ql/test/query-tests/Escaping/Escaping.expected @@ -0,0 +1,3 @@ +| Escaping.java:3:7:3:7 | x | The class $@ is marked as thread-safe, but this field is potentially escaping. | Escaping.java:2:14:2:21 | Escaping | Escaping | +| Escaping.java:4:14:4:14 | y | The class $@ is marked as thread-safe, but this field is potentially escaping. | Escaping.java:2:14:2:21 | Escaping | Escaping | +| Escaping.java:9:18:9:18 | b | The class $@ is marked as thread-safe, but this field is potentially escaping. | Escaping.java:2:14:2:21 | Escaping | Escaping | diff --git a/java/ql/test/query-tests/Escaping/Escaping.java b/java/ql/test/query-tests/Escaping/Escaping.java new file mode 100644 index 00000000000..9d3b568369a --- /dev/null +++ b/java/ql/test/query-tests/Escaping/Escaping.java @@ -0,0 +1,17 @@ +@ThreadSafe +public class Escaping { + int x; //$ Alert + public int y = 0; //$ Alert + private int z = 3; + final int w = 0; + public final int u = 4; + private final long a = 5; + protected long b = 0; //$ Alert + protected final long c = 0L; + volatile long d = 3; + protected volatile long e = 3L; + + public void methodLocal() { + int i; + } +} \ No newline at end of file diff --git a/java/ql/test/query-tests/Escaping/Escaping.qlref b/java/ql/test/query-tests/Escaping/Escaping.qlref new file mode 100644 index 00000000000..846d88a1e0a --- /dev/null +++ b/java/ql/test/query-tests/Escaping/Escaping.qlref @@ -0,0 +1,2 @@ +query: Likely Bugs/Concurrency/Escaping.ql +postprocess: utils/test/InlineExpectationsTestQuery.ql \ No newline at end of file diff --git a/java/ql/test/query-tests/Escaping/ThreadSafe.java b/java/ql/test/query-tests/Escaping/ThreadSafe.java new file mode 100644 index 00000000000..1a4534cc78f --- /dev/null +++ b/java/ql/test/query-tests/Escaping/ThreadSafe.java @@ -0,0 +1,2 @@ +public @interface ThreadSafe { +} \ No newline at end of file From 096d5f2a56e1ab778eec98c74de39bd67705858a Mon Sep 17 00:00:00 2001 From: yoff Date: Tue, 20 May 2025 14:12:45 +0200 Subject: [PATCH 004/126] java: implement SCC contraction of the call graph Our monitor analysis would be fooled by cycles in the call graph, since it required all edges on a path to a conflicting access to be either - targetting a method where the access is monitored (recursively) or - monitored locally, that is the call is monitored in the calling method For access to be monitored (first case) all outgoing edges (towards an access) need to satisfy this property. For a loop, that is too strong, only edges out of the loop actually need to be protected. This led to FPs. --- .../semmle/code/java/ConflictingAccess.qll | 111 ++++++++++++++++-- .../ThreadSafe/ThreadSafe.expected | 2 - .../ThreadSafe/examples/LoopyCallGraph.java | 6 +- 3 files changed, 107 insertions(+), 12 deletions(-) diff --git a/java/ql/lib/semmle/code/java/ConflictingAccess.qll b/java/ql/lib/semmle/code/java/ConflictingAccess.qll index 0d92438ae0f..75845044d27 100644 --- a/java/ql/lib/semmle/code/java/ConflictingAccess.qll +++ b/java/ql/lib/semmle/code/java/ConflictingAccess.qll @@ -321,18 +321,115 @@ class ClassAnnotatedAsThreadSafe extends Class { ) } - /** Holds if all paths from `m` to `a` are monitored by `monitor`. */ - predicate monitorsVia(Method m, ExposedFieldAccess a, Monitors::Monitor monitor) { + // NOTE: + // In order to deal with loops in the call graph, we compute the strongly connected components (SCCs). + // We only wish to do this for the methods that can lead to exposed field accesses. + // Given a field access `a`, we can consider a "call graph of interest", a sub graph of the call graph + // that only contains methods that lead to an access of `a`. We call this "the call graph induced by `a`". + // We can then compute the SCCs of this graph, yielding the SCC graph induced by `a`. + // + /** + * Holds if a call to method `m` can cause an access of `a` by `m` calling `callee`. + * This is an edge in the call graph induced by `a`. + */ + predicate accessVia(Method m, ExposedFieldAccess a, Method callee) { + exists(MethodCall c | this.providesAccess(m, c, a) | callee = c.getCallee()) + } + + /** Holds if `m` can reach `reached` by a path in the call graph induced by `a`. */ + predicate accessReach(Method m, ExposedFieldAccess a, Method reached) { + m = this.getAMethod() and + reached = this.getAMethod() and + this.providesAccess(m, _, a) and + this.providesAccess(reached, _, a) and + ( + this.accessVia(m, a, reached) + or + exists(Method mid | this.accessReach(m, a, mid) | this.accessVia(mid, a, reached)) + ) + } + + /** + * Holds if `rep` is a representative of the SCC containing `m` in the call graph induced by `a`. + * This only assigns representatives to methods involved in loops. + * To get a representative of any method, use `repScc`. + */ + predicate repInLoopScc(Method rep, ExposedFieldAccess a, Method m) { + // `rep` and `m` are in the same SCC + this.accessReach(rep, a, m) and + this.accessReach(m, a, rep) and + // `rep` is the representative of the SCC + // that is, the earliest in the source code + forall(Method alt_rep | + rep != alt_rep and + this.accessReach(alt_rep, a, m) and + this.accessReach(m, a, alt_rep) + | + rep.getLocation().getStartLine() < alt_rep.getLocation().getStartLine() + ) + } + + /** Holds if `rep` is a representative of the SCC containing `m` in the call graph induced by `a`. */ + predicate repScc(Method rep, ExposedFieldAccess a, Method m) { + this.repInLoopScc(rep, a, m) + or + // If `m` is in the call graph induced by `a` and did not get a representative from `repInLoopScc`, + // it is represented by itself. m = this.getAMethod() and this.providesAccess(m, _, a) and - (a.getEnclosingCallable() = m implies Monitors::locallyMonitors(a, monitor)) and - forall(MethodCall c | - c.getEnclosingCallable() = m and - this.providesAccess(c.getCallee(), _, a) + not this.repInLoopScc(_, a, m) and + rep = m + } + + /** + * Holds if `c` is a call from the SCC represented by `callerRep` to the (different) SCC represented by `calleeRep`. + * This is an edge in the SCC graph induced by `a`. + */ + predicate callEdgeScc(Method callerRep, ExposedFieldAccess a, MethodCall c, Method calleeRep) { + callerRep != calleeRep and + exists(Method caller, Method callee | + this.repScc(callerRep, a, caller) and + this.repScc(calleeRep, a, callee) | + this.accessVia(caller, a, callee) and + c.getEnclosingCallable() = caller and + c.getCallee() = callee + ) + } + + /** + * Holds if the SCC represented by `rep` can cause an access to `a` and `e` is the expression that leads to that access. + * `e` will either be `a` itself or a method call that leads to `a` via a different SCC. + */ + predicate providesAccessScc(Method rep, Expr e, ExposedFieldAccess a) { + rep = this.getAMethod() and + exists(Method m | this.repScc(rep, a, m) | + a.getEnclosingCallable() = m and + e = a + or + exists(MethodCall c | this.callEdgeScc(rep, a, c, _) | e = c) + ) + } + + /** Holds if all paths from `rep` to `a` are monitored by `monitor`. */ + predicate monitorsViaScc(Method rep, ExposedFieldAccess a, Monitors::Monitor monitor) { + rep = this.getAMethod() and + this.providesAccessScc(rep, _, a) and + // If we are in an SCC that can access `a`, the access must be monitored locally + (this.repScc(rep, a, a.getEnclosingCallable()) implies Monitors::locallyMonitors(a, monitor)) and + // Any call towards `a` must either be monitored or guarantee that the access is monitored + forall(MethodCall c, Method calleeRep | this.callEdgeScc(rep, a, c, calleeRep) | Monitors::locallyMonitors(c, monitor) or - this.monitorsVia(c.getCallee(), a, monitor) + this.monitorsViaScc(calleeRep, a, monitor) + ) + } + + /** Holds if all paths from `m` to `a` are monitored by `monitor`. */ + predicate monitorsVia(Method m, ExposedFieldAccess a, Monitors::Monitor monitor) { + exists(Method rep | + this.repScc(rep, a, m) and + this.monitorsViaScc(rep, a, monitor) ) } } diff --git a/java/ql/test/query-tests/ThreadSafe/ThreadSafe.expected b/java/ql/test/query-tests/ThreadSafe/ThreadSafe.expected index 72d0bbb1a3a..d25b09260ee 100644 --- a/java/ql/test/query-tests/ThreadSafe/ThreadSafe.expected +++ b/java/ql/test/query-tests/ThreadSafe/ThreadSafe.expected @@ -63,8 +63,6 @@ | examples/LockExample.java:94:5:94:21 | notRelatedToOther | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:94:5:94:21 | notRelatedToOther | this expression | examples/LockExample.java:103:5:103:21 | notRelatedToOther | this field access | examples/LockExample.java:103:5:103:21 | notRelatedToOther | this expression | | examples/LockExample.java:94:5:94:21 | notRelatedToOther | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:94:5:94:21 | notRelatedToOther | this expression | examples/LockExample.java:109:5:109:21 | notRelatedToOther | this field access | examples/LockExample.java:109:5:109:21 | notRelatedToOther | this expression | | examples/LockExample.java:94:5:94:21 | notRelatedToOther | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:94:5:94:21 | notRelatedToOther | this expression | examples/LockExample.java:117:5:117:21 | notRelatedToOther | this field access | examples/LockExample.java:117:5:117:21 | notRelatedToOther | this expression | -| examples/LoopyCallGraph.java:25:5:25:9 | count | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LoopyCallGraph.java:15:7:15:16 | increase(...) | this expression | examples/LoopyCallGraph.java:25:5:25:9 | count | this field access | examples/LoopyCallGraph.java:15:7:15:16 | increase(...) | this expression | -| examples/LoopyCallGraph.java:25:5:25:9 | count | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LoopyCallGraph.java:15:7:15:16 | increase(...) | this expression | examples/LoopyCallGraph.java:31:5:31:9 | count | this field access | examples/LoopyCallGraph.java:15:7:15:16 | increase(...) | this expression | | examples/SyncLstExample.java:40:5:40:7 | lst | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/SyncLstExample.java:40:5:40:7 | lst | this expression | examples/SyncLstExample.java:45:5:45:7 | lst | this field access | examples/SyncLstExample.java:45:5:45:7 | lst | this expression | | examples/SyncStackExample.java:32:5:32:7 | stc | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/SyncStackExample.java:32:5:32:7 | stc | this expression | examples/SyncStackExample.java:37:5:37:7 | stc | this field access | examples/SyncStackExample.java:37:5:37:7 | stc | this expression | | examples/SynchronizedAndLock.java:14:9:14:14 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/SynchronizedAndLock.java:14:9:14:14 | length | this expression | examples/SynchronizedAndLock.java:19:9:19:14 | length | this field access | examples/SynchronizedAndLock.java:19:9:19:14 | length | this expression | diff --git a/java/ql/test/query-tests/ThreadSafe/examples/LoopyCallGraph.java b/java/ql/test/query-tests/ThreadSafe/examples/LoopyCallGraph.java index 595aea014f2..caea22ac851 100644 --- a/java/ql/test/query-tests/ThreadSafe/examples/LoopyCallGraph.java +++ b/java/ql/test/query-tests/ThreadSafe/examples/LoopyCallGraph.java @@ -12,7 +12,7 @@ public class LoopyCallGraph { public void entry() { if (random.nextBoolean()) { - increase(); // this looks like an unprotected path to a call to dec() + increase(); // this could look like an unprotected path to a call to dec() } else { lock.lock(); dec(); @@ -22,9 +22,9 @@ public class LoopyCallGraph { private void increase() { lock.lock(); - count = 10; //$ SPURIOUS: Alert + count = 10; lock.unlock(); - entry(); // this looks like an unprotected path to a call to dec() + entry(); // this could look like an unprotected path to a call to dec() } private void dec() { From bf138693a3a7c56482b4c77ee084cdf82cb0502b Mon Sep 17 00:00:00 2001 From: yoff Date: Thu, 22 May 2025 14:44:24 +0200 Subject: [PATCH 005/126] java: update expectations for java-code-quality suite --- .../java/query-suite/java-code-quality.qls.expected | 3 +++ 1 file changed, 3 insertions(+) diff --git a/java/ql/integration-tests/java/query-suite/java-code-quality.qls.expected b/java/ql/integration-tests/java/query-suite/java-code-quality.qls.expected index eb502feb6ba..56e2daa58ce 100644 --- a/java/ql/integration-tests/java/query-suite/java-code-quality.qls.expected +++ b/java/ql/integration-tests/java/query-suite/java-code-quality.qls.expected @@ -30,10 +30,13 @@ ql/java/ql/src/Likely Bugs/Comparison/WrongNanComparison.ql ql/java/ql/src/Likely Bugs/Concurrency/CallsToRunnableRun.ql ql/java/ql/src/Likely Bugs/Concurrency/DoubleCheckedLocking.ql ql/java/ql/src/Likely Bugs/Concurrency/DoubleCheckedLockingWithInitRace.ql +ql/java/ql/src/Likely Bugs/Concurrency/Escaping.ql ql/java/ql/src/Likely Bugs/Concurrency/NonSynchronizedOverride.ql +ql/java/ql/src/Likely Bugs/Concurrency/SafePublication.ql ql/java/ql/src/Likely Bugs/Concurrency/ScheduledThreadPoolExecutorZeroThread.ql ql/java/ql/src/Likely Bugs/Concurrency/SynchOnBoxedType.ql ql/java/ql/src/Likely Bugs/Concurrency/SynchSetUnsynchGet.ql +ql/java/ql/src/Likely Bugs/Concurrency/ThreadSafe.ql ql/java/ql/src/Likely Bugs/Frameworks/JUnit/JUnit5MissingNestedAnnotation.ql ql/java/ql/src/Likely Bugs/Inheritance/NoNonFinalInConstructor.ql ql/java/ql/src/Likely Bugs/Likely Typos/ContainerSizeCmpZero.ql From 77734f83d5ea7281ef676df99f490274dd464432 Mon Sep 17 00:00:00 2001 From: yoff Date: Tue, 27 May 2025 15:39:41 +0200 Subject: [PATCH 006/126] java: better detection of thread safe fields. Identified by triage of DCA results. Previously, we did not use the erased type, so would not recgnize `CompletableFuture`. We now also recognize safe initializers. --- .../semmle/code/java/ConflictingAccess.qll | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/java/ql/lib/semmle/code/java/ConflictingAccess.qll b/java/ql/lib/semmle/code/java/ConflictingAccess.qll index 75845044d27..1a497566174 100644 --- a/java/ql/lib/semmle/code/java/ConflictingAccess.qll +++ b/java/ql/lib/semmle/code/java/ConflictingAccess.qll @@ -160,18 +160,22 @@ Class annotatedAsThreadSafe() { result.getAnAnnotation().getType().getName() = " /** Holds if the type `t` is thread-safe. */ predicate isThreadSafeType(Type t) { - t.getName().matches(["Atomic%", "Concurrent%"]) + t.getErasure().getName().matches(["Atomic%", "Concurrent%"]) or - t.getName() in [ - "CopyOnWriteArraySet", "BlockingQueue", "ThreadLocal", - // this is a method that returns a thread-safe version of the collection used as parameter - "synchronizedMap", "Executor", "ExecutorService", "CopyOnWriteArrayList", - "LinkedBlockingDeque", "LinkedBlockingQueue", "CompletableFuture" - ] + t.getErasure().getName() in ["ThreadLocal"] + or + // Anything in `java.itul.concurrent` is thread safe. + // See https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/package-summary.html#MemoryVisibility + t.getTypeDescriptor().matches("Ljava/util/concurrent/%;") or t = annotatedAsThreadSafe() } +/** Holds if the expression `e` is a thread-safe initializer. */ +predicate isThreadSafeInitializer(Expr e) { + e.(Call).getCallee().getQualifiedName().matches("java.util.Collections.synchronized%") +} + /** * A field access that is exposed to potential data races. * We require the field to be in a class that is annotated as `@ThreadSafe`. @@ -185,6 +189,8 @@ class ExposedFieldAccess extends FieldAccess { // field is not thread-safe not isThreadSafeType(this.getField().getType()) and not isThreadSafeType(this.getField().getInitializer().getType()) and + // the initializer guarantees thread safety + not isThreadSafeInitializer(this.getField().getInitializer()) and // access is not the initializer of the field not this.(VarWrite).getASource() = this.getField().getInitializer() and // access not in a constructor From 01ddc11fa7b6a2e964f28c0784738a9dae878b84 Mon Sep 17 00:00:00 2001 From: yoff Date: Mon, 9 Jun 2025 08:40:51 +0200 Subject: [PATCH 007/126] java: address some review comments --- .../semmle/code/java/ConflictingAccess.qll | 61 +++++++------------ 1 file changed, 23 insertions(+), 38 deletions(-) diff --git a/java/ql/lib/semmle/code/java/ConflictingAccess.qll b/java/ql/lib/semmle/code/java/ConflictingAccess.qll index 1a497566174..7ef2ca38dbd 100644 --- a/java/ql/lib/semmle/code/java/ConflictingAccess.qll +++ b/java/ql/lib/semmle/code/java/ConflictingAccess.qll @@ -37,7 +37,7 @@ module Monitors { abstract Location getLocation(); /** Gets a textual representation of this element. */ - string toString() { result = "Monitor" } + abstract string toString(); } /** @@ -46,16 +46,12 @@ module Monitors { * E.g `synchronized (m) { ... }` or `m.lock();` */ class VariableMonitor extends Monitor, TVariableMonitor { - Variable v; + override Location getLocation() { result = this.getVariable().getLocation() } - VariableMonitor() { this = TVariableMonitor(v) } - - override Location getLocation() { result = v.getLocation() } - - override string toString() { result = "VariableMonitor(" + v.toString() + ")" } + override string toString() { result = "VariableMonitor(" + this.getVariable().toString() + ")" } /** Gets the variable being used as a monitor. */ - Variable getVariable() { result = v } + Variable getVariable() { this = TVariableMonitor(result) } } /** @@ -63,16 +59,12 @@ module Monitors { * Either via `synchronized (this) { ... }` or by marking a non-static method as `synchronized`. */ class InstanceMonitor extends Monitor, TInstanceMonitor { - RefType thisType; + override Location getLocation() { result = this.getThisType().getLocation() } - InstanceMonitor() { this = TInstanceMonitor(thisType) } - - override Location getLocation() { result = thisType.getLocation() } - - override string toString() { result = "InstanceMonitor(" + thisType.toString() + ")" } + override string toString() { result = "InstanceMonitor(" + this.getThisType().toString() + ")" } /** Gets the instance reference being used as a monitor. */ - RefType getThisType() { result = thisType } + RefType getThisType() { this = TInstanceMonitor(result) } } /** @@ -80,16 +72,12 @@ module Monitors { * This is achieved by marking a static method as `synchronized`. */ class ClassMonitor extends Monitor, TClassMonitor { - RefType classType; + override Location getLocation() { result = this.getClassType().getLocation() } - ClassMonitor() { this = TClassMonitor(classType) } - - override Location getLocation() { result = classType.getLocation() } - - override string toString() { result = "ClassMonitor(" + classType.toString() + ")" } + override string toString() { result = "ClassMonitor(" + this.getClassType().toString() + ")" } /** Gets the class being used as a monitor. */ - RefType getClassType() { result = classType } + RefType getClassType() { this = TClassMonitor(result) } } /** Holds if the expression `e` is synchronized on the monitor `m`. */ @@ -115,6 +103,15 @@ module Monitors { ) } + ControlFlowNode getNodeToBeDominated(Expr e) { + // If `e` is the LHS of an assignment, use the control flow node for the assignment + exists(Assignment asgn | asgn.getDest() = e | result = asgn.getControlFlowNode()) + or + // if `e` is not the LHS of an assignment, use the default control flow node + not exists(Assignment asgn | asgn.getDest() = e) and + result = e.getControlFlowNode() + } + /** Holds if `e` is synchronized on the `Lock` `lock` by a locking call. */ predicate locallyLockedOn(Expr e, Field lock) { isLockType(lock.getType()) and @@ -126,8 +123,8 @@ module Monitors { unlockCall.getMethod().getName() = "unlock" | dominates(lockCall.getControlFlowNode(), unlockCall.getControlFlowNode()) and - dominates(lockCall.getControlFlowNode(), e.getControlFlowNode()) and - postDominates(unlockCall.getControlFlowNode(), e.getControlFlowNode()) + dominates(lockCall.getControlFlowNode(), getNodeToBeDominated(e)) and + postDominates(unlockCall.getControlFlowNode(), getNodeToBeDominated(e)) ) } } @@ -147,10 +144,9 @@ module Modification { /** Holds if the call `c` modifies a shared resource. */ predicate isModifyingCall(Call c) { - exists(SummarizedCallable sc, string output, string prefix | sc.getACall() = c | + exists(SummarizedCallable sc, string output | sc.getACall() = c | sc.propagatesFlow(_, output, _, _) and - prefix = "Argument[this]" and - output.prefix(prefix.length()) = prefix + output.matches("Argument[this]%") ) } } @@ -200,17 +196,6 @@ class ExposedFieldAccess extends FieldAccess { // not the variable mention in a synchronized statement not this = any(SynchronizedStmt sync).getExpr() } - - // LHS of assignments are excluded from the control flow graph, - // so we use the control flow node for the assignment itself instead. - override ControlFlowNode getControlFlowNode() { - // this is the LHS of an assignment, use the control flow node for the assignment - exists(Assignment asgn | asgn.getDest() = this | result = asgn.getControlFlowNode()) - or - // this is not the LHS of an assignment, use the default control flow node - not exists(Assignment asgn | asgn.getDest() = this) and - result = super.getControlFlowNode() - } } /** Holds if the location of `a` is strictly before the location of `b`. */ From 821b1de5b39041db4e3c17b82542967c29be4d02 Mon Sep 17 00:00:00 2001 From: yoff Date: Mon, 9 Jun 2025 09:18:02 +0200 Subject: [PATCH 008/126] java: inline char pred --- java/ql/lib/semmle/code/java/ConflictingAccess.qll | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/java/ql/lib/semmle/code/java/ConflictingAccess.qll b/java/ql/lib/semmle/code/java/ConflictingAccess.qll index 7ef2ca38dbd..74ae148db39 100644 --- a/java/ql/lib/semmle/code/java/ConflictingAccess.qll +++ b/java/ql/lib/semmle/code/java/ConflictingAccess.qll @@ -151,9 +151,6 @@ module Modification { } } -/** Holds if the class is annotated as `@ThreadSafe`. */ -Class annotatedAsThreadSafe() { result.getAnAnnotation().getType().getName() = "ThreadSafe" } - /** Holds if the type `t` is thread-safe. */ predicate isThreadSafeType(Type t) { t.getErasure().getName().matches(["Atomic%", "Concurrent%"]) @@ -164,7 +161,7 @@ predicate isThreadSafeType(Type t) { // See https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/package-summary.html#MemoryVisibility t.getTypeDescriptor().matches("Ljava/util/concurrent/%;") or - t = annotatedAsThreadSafe() + t instanceof ClassAnnotatedAsThreadSafe } /** Holds if the expression `e` is a thread-safe initializer. */ @@ -178,7 +175,7 @@ predicate isThreadSafeInitializer(Expr e) { */ class ExposedFieldAccess extends FieldAccess { ExposedFieldAccess() { - this.getField() = annotatedAsThreadSafe().getAField() and + this.getField() = any(ClassAnnotatedAsThreadSafe c).getAField() and not this.getField().isVolatile() and // field is not a lock not isLockType(this.getField().getType()) and @@ -212,7 +209,7 @@ predicate orderedLocations(Location a, Location b) { * Provides predicates to check for concurrency issues. */ class ClassAnnotatedAsThreadSafe extends Class { - ClassAnnotatedAsThreadSafe() { this = annotatedAsThreadSafe() } + ClassAnnotatedAsThreadSafe() { this.getAnAnnotation().getType().getName() = "ThreadSafe" } /** Holds if `a` and `b` are conflicting accesses to the same field and not monitored by the same monitor. */ predicate unsynchronised(ExposedFieldAccess a, ExposedFieldAccess b) { From a1671ea8af6d2661b32b379f27e6c875224e6d87 Mon Sep 17 00:00:00 2001 From: yoff Date: Thu, 9 Oct 2025 09:11:02 +0200 Subject: [PATCH 009/126] java: small cleanups - add missing qldoc - remove use of `getErasure` - remove use of `getTypeDescriptor` - define `ExposedField` --- .../semmle/code/java/ConflictingAccess.qll | 38 ++++++++++++------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/java/ql/lib/semmle/code/java/ConflictingAccess.qll b/java/ql/lib/semmle/code/java/ConflictingAccess.qll index 74ae148db39..17890e1798f 100644 --- a/java/ql/lib/semmle/code/java/ConflictingAccess.qll +++ b/java/ql/lib/semmle/code/java/ConflictingAccess.qll @@ -103,6 +103,7 @@ module Monitors { ) } + /** Gets the control flow node that must dominate `e` when `e` is synchronized on a lock. */ ControlFlowNode getNodeToBeDominated(Expr e) { // If `e` is the LHS of an assignment, use the control flow node for the assignment exists(Assignment asgn | asgn.getDest() = e | result = asgn.getControlFlowNode()) @@ -153,13 +154,13 @@ module Modification { /** Holds if the type `t` is thread-safe. */ predicate isThreadSafeType(Type t) { - t.getErasure().getName().matches(["Atomic%", "Concurrent%"]) + t.(RefType).getSourceDeclaration().getName().matches(["Atomic%", "Concurrent%"]) or - t.getErasure().getName() in ["ThreadLocal"] + t.(RefType).getSourceDeclaration().getName() in ["ThreadLocal"] or // Anything in `java.itul.concurrent` is thread safe. // See https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/package-summary.html#MemoryVisibility - t.getTypeDescriptor().matches("Ljava/util/concurrent/%;") + t.(RefType).getPackage().getName() = "java.util.concurrent" or t instanceof ClassAnnotatedAsThreadSafe } @@ -169,28 +170,39 @@ predicate isThreadSafeInitializer(Expr e) { e.(Call).getCallee().getQualifiedName().matches("java.util.Collections.synchronized%") } +/** + * A field that is exposed to potential data races. + * We require the field to be in a class that is annotated as `@ThreadSafe`. + */ +class ExposedField extends Field { + ExposedField() { + this.getDeclaringType() instanceof ClassAnnotatedAsThreadSafe and + not this.isVolatile() and + // field is not a lock + not isLockType(this.getType()) and + // field is not thread-safe + not isThreadSafeType(this.getType()) and + not isThreadSafeType(this.getInitializer().getType()) and + // the initializer guarantees thread safety + not isThreadSafeInitializer(this.getInitializer()) + } +} + /** * A field access that is exposed to potential data races. * We require the field to be in a class that is annotated as `@ThreadSafe`. */ class ExposedFieldAccess extends FieldAccess { ExposedFieldAccess() { - this.getField() = any(ClassAnnotatedAsThreadSafe c).getAField() and - not this.getField().isVolatile() and - // field is not a lock - not isLockType(this.getField().getType()) and - // field is not thread-safe - not isThreadSafeType(this.getField().getType()) and - not isThreadSafeType(this.getField().getInitializer().getType()) and - // the initializer guarantees thread safety - not isThreadSafeInitializer(this.getField().getInitializer()) and + // access is to an exposed field + this.getField() instanceof ExposedField and // access is not the initializer of the field not this.(VarWrite).getASource() = this.getField().getInitializer() and // access not in a constructor not this.getEnclosingCallable() = this.getField().getDeclaringType().getAConstructor() and // not a field on a local variable not this.getQualifier+().(VarAccess).getVariable() instanceof LocalVariableDecl and - // not the variable mention in a synchronized statement + // not the variable mentioned in a synchronized statement not this = any(SynchronizedStmt sync).getExpr() } } From 93fc287ef12768b571a22f2ce4a2b44d8a3f784b Mon Sep 17 00:00:00 2001 From: yoff Date: Thu, 9 Oct 2025 09:25:57 +0200 Subject: [PATCH 010/126] java: add auto-generated overlay annotations --- java/ql/lib/semmle/code/java/ConflictingAccess.qll | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/java/ql/lib/semmle/code/java/ConflictingAccess.qll b/java/ql/lib/semmle/code/java/ConflictingAccess.qll index 17890e1798f..39bd7f0d383 100644 --- a/java/ql/lib/semmle/code/java/ConflictingAccess.qll +++ b/java/ql/lib/semmle/code/java/ConflictingAccess.qll @@ -1,6 +1,8 @@ /** * Provides classes and predicates for detecting conflicting accesses in the sense of the Java Memory Model. */ +overlay[local?] +module; import java import Concurrency @@ -9,6 +11,7 @@ import Concurrency * Holds if `t` is the type of a lock. * Currently a crude test of the type name. */ +overlay[caller?] pragma[inline] predicate isLockType(Type t) { t.getName().matches("%Lock%") } @@ -208,6 +211,7 @@ class ExposedFieldAccess extends FieldAccess { } /** Holds if the location of `a` is strictly before the location of `b`. */ +overlay[caller?] pragma[inline] predicate orderedLocations(Location a, Location b) { a.getStartLine() < b.getStartLine() From 830f02af1ff14968cae0c45e9f0c595d11a7831a Mon Sep 17 00:00:00 2001 From: yoff Date: Thu, 9 Oct 2025 09:37:31 +0200 Subject: [PATCH 011/126] java: fixes from the CI bots --- java/ql/lib/semmle/code/java/ConflictingAccess.qll | 6 +++--- java/ql/src/Likely Bugs/Concurrency/SafePublication.ql | 2 +- .../test/query-tests/ThreadSafe/examples/LockExample.java | 2 +- java/ql/test/query-tests/ThreadSafe/examples/Test.java | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/java/ql/lib/semmle/code/java/ConflictingAccess.qll b/java/ql/lib/semmle/code/java/ConflictingAccess.qll index 39bd7f0d383..1243a94d661 100644 --- a/java/ql/lib/semmle/code/java/ConflictingAccess.qll +++ b/java/ql/lib/semmle/code/java/ConflictingAccess.qll @@ -159,9 +159,9 @@ module Modification { predicate isThreadSafeType(Type t) { t.(RefType).getSourceDeclaration().getName().matches(["Atomic%", "Concurrent%"]) or - t.(RefType).getSourceDeclaration().getName() in ["ThreadLocal"] + t.(RefType).getSourceDeclaration().getName() = "ThreadLocal" or - // Anything in `java.itul.concurrent` is thread safe. + // Anything in `java.util.concurrent` is thread safe. // See https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/package-summary.html#MemoryVisibility t.(RefType).getPackage().getName() = "java.util.concurrent" or @@ -303,7 +303,7 @@ class ClassAnnotatedAsThreadSafe extends Class { ) } - /** Holds if `a` can be reached by a path from a public method and `e` is the expression in that method that stsarts the path. */ + /** Holds if `a` can be reached by a path from a public method and `e` is the expression in that method that starts the path. */ predicate publicAccess(Expr e, ExposedFieldAccess a) { exists(Method m | m.isPublic() | this.providesAccess(m, e, a)) } diff --git a/java/ql/src/Likely Bugs/Concurrency/SafePublication.ql b/java/ql/src/Likely Bugs/Concurrency/SafePublication.ql index 08cd3d5a577..5e2a89ce372 100644 --- a/java/ql/src/Likely Bugs/Concurrency/SafePublication.ql +++ b/java/ql/src/Likely Bugs/Concurrency/SafePublication.ql @@ -77,7 +77,7 @@ predicate isAssignedDefaultValue(Field f) { } predicate isSafelyPublished(Field f) { - f.isFinal() or // TODO: Consider non-primitive types + f.isFinal() or // NOTE: For non-primitive types, 'final' alone does not guarantee safe publication unless the object is immutable or safely constructed. Consider reviewing the handling of non-primitive fields for safe publication. f.isStatic() or f.isVolatile() or isThreadSafeType(f.getType()) or diff --git a/java/ql/test/query-tests/ThreadSafe/examples/LockExample.java b/java/ql/test/query-tests/ThreadSafe/examples/LockExample.java index 92886bbb5ff..8ce34922c5b 100644 --- a/java/ql/test/query-tests/ThreadSafe/examples/LockExample.java +++ b/java/ql/test/query-tests/ThreadSafe/examples/LockExample.java @@ -3,7 +3,7 @@ // If the variable is involved in several different monitors, we get an alert for each monitor that // is not correctly used. // A single alert can have many related locations, since each conflicting access which is not -// prpoerly synchronized is a related location. +// properly synchronized is a related location. // This leads to many lines in the .expected file. package examples; diff --git a/java/ql/test/query-tests/ThreadSafe/examples/Test.java b/java/ql/test/query-tests/ThreadSafe/examples/Test.java index 55fef174fc5..b2e7ac46c0b 100644 --- a/java/ql/test/query-tests/ThreadSafe/examples/Test.java +++ b/java/ql/test/query-tests/ThreadSafe/examples/Test.java @@ -5,14 +5,14 @@ import java.util.concurrent.locks.ReentrantLock; @ThreadSafe public class Test { /** - * Escaping field due to public visuability. + * Escaping field due to public visibility. */ int publicField; private int y; final int immutableField = 1; - // As of the below examples with synchronized as well. Except the incorretly placed lock. + // As of the below examples with synchronized as well. Except the incorrectly placed lock. private Lock lock = new ReentrantLock(); @@ -53,7 +53,7 @@ public class Test { } /** - * Incorretly locks y. + * Incorrectly locks y. * @param y */ public void setYWrongLock(int y) { From 26c1b2f14316ccda78f8878769d84a3fc069cedc Mon Sep 17 00:00:00 2001 From: yoff Date: Thu, 9 Oct 2025 12:29:42 +0200 Subject: [PATCH 012/126] java: adjust test expectations; new queries are enabled in extended --- .../java/query-suite/java-code-quality-extended.qls.expected | 3 +++ 1 file changed, 3 insertions(+) diff --git a/java/ql/integration-tests/java/query-suite/java-code-quality-extended.qls.expected b/java/ql/integration-tests/java/query-suite/java-code-quality-extended.qls.expected index cdd6769ab46..6d0319431d6 100644 --- a/java/ql/integration-tests/java/query-suite/java-code-quality-extended.qls.expected +++ b/java/ql/integration-tests/java/query-suite/java-code-quality-extended.qls.expected @@ -67,15 +67,18 @@ ql/java/ql/src/Likely Bugs/Concurrency/CallsToRunnableRun.ql ql/java/ql/src/Likely Bugs/Concurrency/DateFormatThreadUnsafe.ql ql/java/ql/src/Likely Bugs/Concurrency/DoubleCheckedLocking.ql ql/java/ql/src/Likely Bugs/Concurrency/DoubleCheckedLockingWithInitRace.ql +ql/java/ql/src/Likely Bugs/Concurrency/Escaping.ql ql/java/ql/src/Likely Bugs/Concurrency/FutileSynchOnField.ql ql/java/ql/src/Likely Bugs/Concurrency/NonSynchronizedOverride.ql ql/java/ql/src/Likely Bugs/Concurrency/NotifyNotNotifyAll.ql +ql/java/ql/src/Likely Bugs/Concurrency/SafePublication.ql ql/java/ql/src/Likely Bugs/Concurrency/ScheduledThreadPoolExecutorZeroThread.ql ql/java/ql/src/Likely Bugs/Concurrency/SleepWithLock.ql ql/java/ql/src/Likely Bugs/Concurrency/StartInConstructor.ql ql/java/ql/src/Likely Bugs/Concurrency/SynchOnBoxedType.ql ql/java/ql/src/Likely Bugs/Concurrency/SynchSetUnsynchGet.ql ql/java/ql/src/Likely Bugs/Concurrency/SynchWriteObject.ql +ql/java/ql/src/Likely Bugs/Concurrency/ThreadSafe.ql ql/java/ql/src/Likely Bugs/Finalization/NullifiedSuperFinalize.ql ql/java/ql/src/Likely Bugs/Frameworks/JUnit/BadSuiteMethod.ql ql/java/ql/src/Likely Bugs/Frameworks/JUnit/JUnit5MissingNestedAnnotation.ql From f90e9dbb5ebb51596536f9eb73093806491b0fc6 Mon Sep 17 00:00:00 2001 From: yoff Date: Thu, 9 Oct 2025 13:01:25 +0200 Subject: [PATCH 013/126] java: favour `inline_late` over `inline` This gives much greater control over the join-order --- java/ql/lib/semmle/code/java/ConflictingAccess.qll | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/java/ql/lib/semmle/code/java/ConflictingAccess.qll b/java/ql/lib/semmle/code/java/ConflictingAccess.qll index 1243a94d661..ae76e0fa46e 100644 --- a/java/ql/lib/semmle/code/java/ConflictingAccess.qll +++ b/java/ql/lib/semmle/code/java/ConflictingAccess.qll @@ -11,8 +11,9 @@ import Concurrency * Holds if `t` is the type of a lock. * Currently a crude test of the type name. */ +bindingset[t] overlay[caller?] -pragma[inline] +pragma[inline_late] predicate isLockType(Type t) { t.getName().matches("%Lock%") } /** @@ -211,8 +212,9 @@ class ExposedFieldAccess extends FieldAccess { } /** Holds if the location of `a` is strictly before the location of `b`. */ +bindingset[a, b] overlay[caller?] -pragma[inline] +pragma[inline_late] predicate orderedLocations(Location a, Location b) { a.getStartLine() < b.getStartLine() or From 1ad239459f505f7da741ec13fa93fd054a1e1033 Mon Sep 17 00:00:00 2001 From: yoff Date: Thu, 9 Oct 2025 13:36:35 +0200 Subject: [PATCH 014/126] java: move shared code into `Concurrency.qll` --- java/ql/lib/semmle/code/java/Concurrency.qll | 161 ++++++++++++++++++ .../semmle/code/java/ConflictingAccess.qll | 129 +------------- .../Likely Bugs/Concurrency/UnreleasedLock.ql | 42 +---- 3 files changed, 163 insertions(+), 169 deletions(-) diff --git a/java/ql/lib/semmle/code/java/Concurrency.qll b/java/ql/lib/semmle/code/java/Concurrency.qll index 7322f16068c..f32c7ee963c 100644 --- a/java/ql/lib/semmle/code/java/Concurrency.qll +++ b/java/ql/lib/semmle/code/java/Concurrency.qll @@ -2,6 +2,47 @@ overlay[local?] module; import java +import semmle.code.java.frameworks.Mockito + +class LockType extends RefType { + LockType() { + this.getAMethod().hasName("lock") and + this.getAMethod().hasName("unlock") + } + + Method getLockMethod() { + result.getDeclaringType() = this and + result.hasName(["lock", "lockInterruptibly", "tryLock"]) + } + + Method getUnlockMethod() { + result.getDeclaringType() = this and + result.hasName("unlock") + } + + Method getIsHeldByCurrentThreadMethod() { + result.getDeclaringType() = this and + result.hasName("isHeldByCurrentThread") + } + + MethodCall getLockAccess() { + result.getMethod() = this.getLockMethod() and + // Not part of a Mockito verification call + not result instanceof MockitoVerifiedMethodCall + } + + MethodCall getUnlockAccess() { + result.getMethod() = this.getUnlockMethod() and + // Not part of a Mockito verification call + not result instanceof MockitoVerifiedMethodCall + } + + MethodCall getIsHeldByCurrentThreadAccess() { + result.getMethod() = this.getIsHeldByCurrentThreadMethod() and + // Not part of a Mockito verification call + not result instanceof MockitoVerifiedMethodCall + } +} /** * Holds if `e` is synchronized by a local synchronized statement `sync` on the variable `v`. @@ -49,3 +90,123 @@ class SynchronizedCallable extends Callable { ) } } + +/** + * This module provides predicates, chiefly `locallyMonitors`, to check if a given expression is synchronized on a specific monitor. + */ +module Monitors { + /** + * A monitor is any object that is used to synchronize access to a shared resource. + * This includes locks as well as variables used in synchronized blocks (including `this`). + */ + newtype TMonitor = + /** Either a lock or a variable used in a synchronized block. */ + TVariableMonitor(Variable v) { + v.getType() instanceof LockType or locallySynchronizedOn(_, _, v) + } or + /** An instance reference used as a monitor. */ + TInstanceMonitor(RefType thisType) { locallySynchronizedOnThis(_, thisType) } or + /** A class used as a monitor. */ + TClassMonitor(RefType classType) { locallySynchronizedOnClass(_, classType) } + + /** + * A monitor is any object that is used to synchronize access to a shared resource. + * This includes locks as well as variables used in synchronized blocks (including `this`). + */ + class Monitor extends TMonitor { + /** Gets the location of this monitor. */ + abstract Location getLocation(); + + /** Gets a textual representation of this element. */ + abstract string toString(); + } + + /** + * A variable used as a monitor. + * The variable is either a lock or is used in a synchronized block. + * E.g `synchronized (m) { ... }` or `m.lock();` + */ + class VariableMonitor extends Monitor, TVariableMonitor { + override Location getLocation() { result = this.getVariable().getLocation() } + + override string toString() { result = "VariableMonitor(" + this.getVariable().toString() + ")" } + + /** Gets the variable being used as a monitor. */ + Variable getVariable() { this = TVariableMonitor(result) } + } + + /** + * An instance reference used as a monitor. + * Either via `synchronized (this) { ... }` or by marking a non-static method as `synchronized`. + */ + class InstanceMonitor extends Monitor, TInstanceMonitor { + override Location getLocation() { result = this.getThisType().getLocation() } + + override string toString() { result = "InstanceMonitor(" + this.getThisType().toString() + ")" } + + /** Gets the instance reference being used as a monitor. */ + RefType getThisType() { this = TInstanceMonitor(result) } + } + + /** + * A class used as a monitor. + * This is achieved by marking a static method as `synchronized`. + */ + class ClassMonitor extends Monitor, TClassMonitor { + override Location getLocation() { result = this.getClassType().getLocation() } + + override string toString() { result = "ClassMonitor(" + this.getClassType().toString() + ")" } + + /** Gets the class being used as a monitor. */ + RefType getClassType() { this = TClassMonitor(result) } + } + + /** Holds if the expression `e` is synchronized on the monitor `m`. */ + predicate locallyMonitors(Expr e, Monitor m) { + exists(Variable v | v = m.(VariableMonitor).getVariable() | + locallyLockedOn(e, v) + or + locallySynchronizedOn(e, _, v) + ) + or + locallySynchronizedOnThis(e, m.(InstanceMonitor).getThisType()) + or + locallySynchronizedOnClass(e, m.(ClassMonitor).getClassType()) + } + + /** Holds if `localLock` refers to `lock`. */ + predicate represents(Field lock, Variable localLock) { + lock.getType() instanceof LockType and + ( + localLock = lock + or + localLock.getInitializer() = lock.getAnAccess() + ) + } + + /** Gets the control flow node that must dominate `e` when `e` is synchronized on a lock. */ + ControlFlowNode getNodeToBeDominated(Expr e) { + // If `e` is the LHS of an assignment, use the control flow node for the assignment + exists(Assignment asgn | asgn.getDest() = e | result = asgn.getControlFlowNode()) + or + // if `e` is not the LHS of an assignment, use the default control flow node + not exists(Assignment asgn | asgn.getDest() = e) and + result = e.getControlFlowNode() + } + + /** Holds if `e` is synchronized on the `Lock` `lock` by a locking call. */ + predicate locallyLockedOn(Expr e, Field lock) { + lock.getType() instanceof LockType and + exists(Variable localLock, MethodCall lockCall, MethodCall unlockCall | + represents(lock, localLock) and + lockCall.getQualifier() = localLock.getAnAccess() and + lockCall.getMethod() = lock.getType().(LockType).getLockMethod() and + unlockCall.getQualifier() = localLock.getAnAccess() and + unlockCall.getMethod() = lock.getType().(LockType).getUnlockMethod() + | + dominates(lockCall.getControlFlowNode(), unlockCall.getControlFlowNode()) and + dominates(lockCall.getControlFlowNode(), getNodeToBeDominated(e)) and + postDominates(unlockCall.getControlFlowNode(), getNodeToBeDominated(e)) + ) + } +} diff --git a/java/ql/lib/semmle/code/java/ConflictingAccess.qll b/java/ql/lib/semmle/code/java/ConflictingAccess.qll index ae76e0fa46e..c98fb3bdf3b 100644 --- a/java/ql/lib/semmle/code/java/ConflictingAccess.qll +++ b/java/ql/lib/semmle/code/java/ConflictingAccess.qll @@ -7,133 +7,6 @@ module; import java import Concurrency -/** - * Holds if `t` is the type of a lock. - * Currently a crude test of the type name. - */ -bindingset[t] -overlay[caller?] -pragma[inline_late] -predicate isLockType(Type t) { t.getName().matches("%Lock%") } - -/** - * This module provides predicates, chiefly `locallyMonitors`, to check if a given expression is synchronized on a specific monitor. - */ -module Monitors { - /** - * A monitor is any object that is used to synchronize access to a shared resource. - * This includes locks as well as variables used in synchronized blocks (including `this`). - */ - newtype TMonitor = - /** Either a lock or a variable used in a synchronized block. */ - TVariableMonitor(Variable v) { isLockType(v.getType()) or locallySynchronizedOn(_, _, v) } or - /** An instance reference used as a monitor. */ - TInstanceMonitor(RefType thisType) { locallySynchronizedOnThis(_, thisType) } or - /** A class used as a monitor. */ - TClassMonitor(RefType classType) { locallySynchronizedOnClass(_, classType) } - - /** - * A monitor is any object that is used to synchronize access to a shared resource. - * This includes locks as well as variables used in synchronized blocks (including `this`). - */ - class Monitor extends TMonitor { - /** Gets the location of this monitor. */ - abstract Location getLocation(); - - /** Gets a textual representation of this element. */ - abstract string toString(); - } - - /** - * A variable used as a monitor. - * The variable is either a lock or is used in a synchronized block. - * E.g `synchronized (m) { ... }` or `m.lock();` - */ - class VariableMonitor extends Monitor, TVariableMonitor { - override Location getLocation() { result = this.getVariable().getLocation() } - - override string toString() { result = "VariableMonitor(" + this.getVariable().toString() + ")" } - - /** Gets the variable being used as a monitor. */ - Variable getVariable() { this = TVariableMonitor(result) } - } - - /** - * An instance reference used as a monitor. - * Either via `synchronized (this) { ... }` or by marking a non-static method as `synchronized`. - */ - class InstanceMonitor extends Monitor, TInstanceMonitor { - override Location getLocation() { result = this.getThisType().getLocation() } - - override string toString() { result = "InstanceMonitor(" + this.getThisType().toString() + ")" } - - /** Gets the instance reference being used as a monitor. */ - RefType getThisType() { this = TInstanceMonitor(result) } - } - - /** - * A class used as a monitor. - * This is achieved by marking a static method as `synchronized`. - */ - class ClassMonitor extends Monitor, TClassMonitor { - override Location getLocation() { result = this.getClassType().getLocation() } - - override string toString() { result = "ClassMonitor(" + this.getClassType().toString() + ")" } - - /** Gets the class being used as a monitor. */ - RefType getClassType() { this = TClassMonitor(result) } - } - - /** Holds if the expression `e` is synchronized on the monitor `m`. */ - predicate locallyMonitors(Expr e, Monitor m) { - exists(Variable v | v = m.(VariableMonitor).getVariable() | - locallyLockedOn(e, v) - or - locallySynchronizedOn(e, _, v) - ) - or - locallySynchronizedOnThis(e, m.(InstanceMonitor).getThisType()) - or - locallySynchronizedOnClass(e, m.(ClassMonitor).getClassType()) - } - - /** Holds if `localLock` refers to `lock`. */ - predicate represents(Field lock, Variable localLock) { - isLockType(lock.getType()) and - ( - localLock = lock - or - localLock.getInitializer() = lock.getAnAccess() - ) - } - - /** Gets the control flow node that must dominate `e` when `e` is synchronized on a lock. */ - ControlFlowNode getNodeToBeDominated(Expr e) { - // If `e` is the LHS of an assignment, use the control flow node for the assignment - exists(Assignment asgn | asgn.getDest() = e | result = asgn.getControlFlowNode()) - or - // if `e` is not the LHS of an assignment, use the default control flow node - not exists(Assignment asgn | asgn.getDest() = e) and - result = e.getControlFlowNode() - } - - /** Holds if `e` is synchronized on the `Lock` `lock` by a locking call. */ - predicate locallyLockedOn(Expr e, Field lock) { - isLockType(lock.getType()) and - exists(Variable localLock, MethodCall lockCall, MethodCall unlockCall | - represents(lock, localLock) and - lockCall.getQualifier() = localLock.getAnAccess() and - lockCall.getMethod().getName() in ["lock", "lockInterruptibly", "tryLock"] and - unlockCall.getQualifier() = localLock.getAnAccess() and - unlockCall.getMethod().getName() = "unlock" - | - dominates(lockCall.getControlFlowNode(), unlockCall.getControlFlowNode()) and - dominates(lockCall.getControlFlowNode(), getNodeToBeDominated(e)) and - postDominates(unlockCall.getControlFlowNode(), getNodeToBeDominated(e)) - ) - } -} - /** Provides predicates, chiefly `isModifying`, to check if a given expression modifies a shared resource. */ module Modification { import semmle.code.java.dataflow.FlowSummary @@ -183,7 +56,7 @@ class ExposedField extends Field { this.getDeclaringType() instanceof ClassAnnotatedAsThreadSafe and not this.isVolatile() and // field is not a lock - not isLockType(this.getType()) and + not this.getType() instanceof LockType and // field is not thread-safe not isThreadSafeType(this.getType()) and not isThreadSafeType(this.getInitializer().getType()) and diff --git a/java/ql/src/Likely Bugs/Concurrency/UnreleasedLock.ql b/java/ql/src/Likely Bugs/Concurrency/UnreleasedLock.ql index 118593e31fe..c7d33eff4a9 100644 --- a/java/ql/src/Likely Bugs/Concurrency/UnreleasedLock.ql +++ b/java/ql/src/Likely Bugs/Concurrency/UnreleasedLock.ql @@ -16,47 +16,7 @@ import java import semmle.code.java.controlflow.Guards import semmle.code.java.dataflow.SSA -import semmle.code.java.frameworks.Mockito - -class LockType extends RefType { - LockType() { - this.getAMethod().hasName("lock") and - this.getAMethod().hasName("unlock") - } - - Method getLockMethod() { - result.getDeclaringType() = this and - (result.hasName("lock") or result.hasName("tryLock")) - } - - Method getUnlockMethod() { - result.getDeclaringType() = this and - result.hasName("unlock") - } - - Method getIsHeldByCurrentThreadMethod() { - result.getDeclaringType() = this and - result.hasName("isHeldByCurrentThread") - } - - MethodCall getLockAccess() { - result.getMethod() = this.getLockMethod() and - // Not part of a Mockito verification call - not result instanceof MockitoVerifiedMethodCall - } - - MethodCall getUnlockAccess() { - result.getMethod() = this.getUnlockMethod() and - // Not part of a Mockito verification call - not result instanceof MockitoVerifiedMethodCall - } - - MethodCall getIsHeldByCurrentThreadAccess() { - result.getMethod() = this.getIsHeldByCurrentThreadMethod() and - // Not part of a Mockito verification call - not result instanceof MockitoVerifiedMethodCall - } -} +import semmle.code.java.Concurrency predicate lockBlock(LockType t, BasicBlock b, int locks) { locks = strictcount(int i | b.getNode(i).asExpr() = t.getLockAccess()) From 5109babd928a0733782d398d421fce4301b8baa8 Mon Sep 17 00:00:00 2001 From: yoff Date: Thu, 9 Oct 2025 14:20:28 +0200 Subject: [PATCH 015/126] java: add qldoc These interfaces were previously in a .ql file. Also, use the XXAccess variants. --- java/ql/lib/semmle/code/java/Concurrency.qll | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/java/ql/lib/semmle/code/java/Concurrency.qll b/java/ql/lib/semmle/code/java/Concurrency.qll index f32c7ee963c..7fbf0647b27 100644 --- a/java/ql/lib/semmle/code/java/Concurrency.qll +++ b/java/ql/lib/semmle/code/java/Concurrency.qll @@ -4,39 +4,49 @@ module; import java import semmle.code.java.frameworks.Mockito +/** + * A Java type representing a lock. + * We identify a lock type as one that has both `lock` and `unlock` methods. + */ class LockType extends RefType { LockType() { this.getAMethod().hasName("lock") and this.getAMethod().hasName("unlock") } + /** Gets a method that is locking this lock type. */ Method getLockMethod() { result.getDeclaringType() = this and result.hasName(["lock", "lockInterruptibly", "tryLock"]) } + /** Gets a method that is unlocking this lock type. */ Method getUnlockMethod() { result.getDeclaringType() = this and result.hasName("unlock") } + /** Gets an `isHeldByCurrentThread` method of this lock type. */ Method getIsHeldByCurrentThreadMethod() { result.getDeclaringType() = this and result.hasName("isHeldByCurrentThread") } + /** Gets a call to a method that is locking this lock type. */ MethodCall getLockAccess() { result.getMethod() = this.getLockMethod() and // Not part of a Mockito verification call not result instanceof MockitoVerifiedMethodCall } + /** Gets a call to a method that is unlocking this lock type. */ MethodCall getUnlockAccess() { result.getMethod() = this.getUnlockMethod() and // Not part of a Mockito verification call not result instanceof MockitoVerifiedMethodCall } + /** Gets a call to a method that checks if the lock is held by the current thread. */ MethodCall getIsHeldByCurrentThreadAccess() { result.getMethod() = this.getIsHeldByCurrentThreadMethod() and // Not part of a Mockito verification call @@ -200,9 +210,9 @@ module Monitors { exists(Variable localLock, MethodCall lockCall, MethodCall unlockCall | represents(lock, localLock) and lockCall.getQualifier() = localLock.getAnAccess() and - lockCall.getMethod() = lock.getType().(LockType).getLockMethod() and + lockCall = lock.getType().(LockType).getLockAccess() and unlockCall.getQualifier() = localLock.getAnAccess() and - unlockCall.getMethod() = lock.getType().(LockType).getUnlockMethod() + unlockCall = lock.getType().(LockType).getUnlockAccess() | dominates(lockCall.getControlFlowNode(), unlockCall.getControlFlowNode()) and dominates(lockCall.getControlFlowNode(), getNodeToBeDominated(e)) and From 61a3e9630f9e7579491894a99948632cb1e57404 Mon Sep 17 00:00:00 2001 From: yoff Date: Fri, 17 Oct 2025 01:39:29 +0200 Subject: [PATCH 016/126] java: rewrite conflict detection - favour unary predicates over binary ones (the natural "conflicting access" is binary) - switch to a dual solution to trade recursion through forall for simple existentials. Co-authored-by: Anders Schack-Mulligen --- .../semmle/code/java/ConflictingAccess.qll | 366 ++++++++---------- .../src/Likely Bugs/Concurrency/ThreadSafe.ql | 46 ++- .../ThreadSafe/ThreadSafe.expected | 115 ++---- .../query-tests/ThreadSafe/examples/C.java | 16 +- .../examples/FaultyTurnstileExample.java | 8 +- .../ThreadSafe/examples/FlawedSemaphore.java | 2 +- .../ThreadSafe/examples/LockExample.java | 46 +-- .../ThreadSafe/examples/SyncLstExample.java | 4 +- .../ThreadSafe/examples/SyncStackExample.java | 4 +- .../examples/SynchronizedAndLock.java | 4 +- .../query-tests/ThreadSafe/examples/Test.java | 8 +- 11 files changed, 296 insertions(+), 323 deletions(-) diff --git a/java/ql/lib/semmle/code/java/ConflictingAccess.qll b/java/ql/lib/semmle/code/java/ConflictingAccess.qll index c98fb3bdf3b..9373845d6bc 100644 --- a/java/ql/lib/semmle/code/java/ConflictingAccess.qll +++ b/java/ql/lib/semmle/code/java/ConflictingAccess.qll @@ -44,7 +44,11 @@ predicate isThreadSafeType(Type t) { /** Holds if the expression `e` is a thread-safe initializer. */ predicate isThreadSafeInitializer(Expr e) { - e.(Call).getCallee().getQualifiedName().matches("java.util.Collections.synchronized%") + e.(Call) + .getCallee() + .getSourceDeclaration() + .getQualifiedName() + .matches("java.util.Collections.synchronized%") } /** @@ -84,17 +88,6 @@ class ExposedFieldAccess extends FieldAccess { } } -/** Holds if the location of `a` is strictly before the location of `b`. */ -bindingset[a, b] -overlay[caller?] -pragma[inline_late] -predicate orderedLocations(Location a, Location b) { - a.getStartLine() < b.getStartLine() - or - a.getStartLine() = b.getStartLine() and - a.getStartColumn() < b.getStartColumn() -} - /** * A class annotated as `@ThreadSafe`. * Provides predicates to check for concurrency issues. @@ -102,213 +95,192 @@ predicate orderedLocations(Location a, Location b) { class ClassAnnotatedAsThreadSafe extends Class { ClassAnnotatedAsThreadSafe() { this.getAnAnnotation().getType().getName() = "ThreadSafe" } - /** Holds if `a` and `b` are conflicting accesses to the same field and not monitored by the same monitor. */ - predicate unsynchronised(ExposedFieldAccess a, ExposedFieldAccess b) { - this.conflicting(a, b) and - this.publicAccess(_, a) and - this.publicAccess(_, b) and - not exists(Monitors::Monitor m | - this.monitors(a, m) and - this.monitors(b, m) - ) - } - - /** Holds if `a` is the earliest write to its field that is unsynchronized with `b`. */ - predicate unsynchronised_normalized(ExposedFieldAccess a, ExposedFieldAccess b) { - this.unsynchronised(a, b) and - // Eliminate double reporting by making `a` the earliest write to this field - // that is unsynchronized with `b`. - not exists(ExposedFieldAccess earlier_a | - earlier_a.getField() = a.getField() and - orderedLocations(earlier_a.getLocation(), a.getLocation()) - | - this.unsynchronised(earlier_a, b) - ) - } - + // We wish to find conflicting accesses that are reachable from public methods + // and to know which monitors protect them. + // + // It is very easy and natural to write a predicate for conflicting accesses, + // but that would be binary, and hence not suited for reachability analysis. + // + // It is also easy to state that all accesses to a field are protected by a single monitor, + // but that would require a forall, which is not suited for recursion. + // (The recursion occurs for example as you traverse the access path and keep requiring that all tails are protected.) + // + // We therefore use a dual solution: + // - We write a unary recursive predicate for accesses that are not protected by any monitor. + // Any such write access, reachable from a public method, is conflicting with itself. + // And any such read will be conflicting with any publicly reachable write access (locked or not). + // + // - We project the above predicate down to fields, so we can find fields with unprotected accesses. + // - From this we can derive a unary recursive predicate for fields whose accesses are protected by exactly one monitor. + // The predicate tracks the monitor. + // If such a field has two accesses protected by different monitors, we have a concurrency issue. + // This can be determined by simple counting at the end of the recursion. + // Technically, we only have a concurrency issue if there is a write access, + // but if you are locking your reads with different locks, you likely made a typo. + // + // - From the above, we can derive a unary recursive predicate for fields whose accesses are protected by at least one monitor. + // This predicate tracks all the monitors that protect accesses to the field. + // This is combined with a predicate that checks if any access escapes a given monitor. + // If all the monitors that protect accesses to a field are escaped by at least one access, + // we have a concurrency issue. + // This can be determined by a single forall at the end of the recursion. + // + // With this formulation we avoid binary predicates and foralls in recursion. + // + // Cases where a field access is not protected by any monitor /** - * Holds if `a` and `b` are unsynchronized and both publicly accessible - * as witnessed by `witness_a` and `witness_b`. + * Holds if the field access `a` to the field `f` is not protected by any monitor, and it can be reached via the expression `e` in the method `m`. + * We maintain the invariant that `m = e.getEnclosingCallable()`. */ - predicate witness(ExposedFieldAccess a, Expr witness_a, ExposedFieldAccess b, Expr witness_b) { - this.unsynchronised_normalized(a, b) and - this.publicAccess(witness_a, a) and - this.publicAccess(witness_b, b) and - // avoid double reporting - not exists(Expr better_witness_a | this.publicAccess(better_witness_a, a) | - orderedLocations(better_witness_a.getLocation(), witness_a.getLocation()) - ) and - not exists(Expr better_witness_b | this.publicAccess(better_witness_b, b) | - orderedLocations(better_witness_b.getLocation(), witness_b.getLocation()) - ) - } - - /** - * Actions `a` and `b` are conflicting iff - * they are field access operations on the same field and - * at least one of them is a write. - */ - predicate conflicting(ExposedFieldAccess a, ExposedFieldAccess b) { - // We allow a = b, since they could be executed on different threads - // We are looking for two operations: - // - on the same non-volatile field - a.getField() = b.getField() and - // - on this class - a.getField() = this.getAField() and - // - where at least one is a write - // wlog we assume that is `a` - // We use a slightly more inclusive definition than simply `a.isVarWrite()` - Modification::isModifying(a) and - // Avoid reporting both `(a, b)` and `(b, a)` by choosing the tuple - // where `a` appears before `b` in the source code. + predicate unlocked_access(ExposedField f, Expr e, Method m, ExposedFieldAccess a, boolean write) { + m.getDeclaringType() = this and ( - ( - Modification::isModifying(b) and - a != b - ) - implies - orderedLocations(a.getLocation(), b.getLocation()) - ) - } - - /** Holds if `a` can be reached by a path from a public method, and all such paths are monitored by `monitor`. */ - predicate monitors(ExposedFieldAccess a, Monitors::Monitor monitor) { - forex(Method m | this.providesAccess(m, _, a) and m.isPublic() | - this.monitorsVia(m, a, monitor) - ) - } - - /** Holds if `a` can be reached by a path from a public method and `e` is the expression in that method that starts the path. */ - predicate publicAccess(Expr e, ExposedFieldAccess a) { - exists(Method m | m.isPublic() | this.providesAccess(m, e, a)) - } - - /** - * Holds if a call to method `m` can cause an access of `a` and `e` is the expression inside `m` that leads to that access. - * `e` will either be `a` itself or a method call that leads to `a`. - */ - predicate providesAccess(Method m, Expr e, ExposedFieldAccess a) { - m = this.getAMethod() and - ( - a.getEnclosingCallable() = m and - e = a + // base case + f.getDeclaringType() = this and + m = e.getEnclosingCallable() and + a.getField() = f and + a = e and + (if Modification::isModifying(a) then write = true else write = false) or - exists(MethodCall c | c.getEnclosingCallable() = m | - this.providesAccess(c.getCallee(), _, a) and - e = c + // recursive case + exists(MethodCall c, Expr e0, Method m0 | this.unlocked_access(f, e0, m0, a, write) | + m = c.getEnclosingCallable() and + not m0.isPublic() and + c.getCallee().getSourceDeclaration() = m0 and + c = e and + not Monitors::locallyMonitors(e0, _) ) ) } - // NOTE: - // In order to deal with loops in the call graph, we compute the strongly connected components (SCCs). - // We only wish to do this for the methods that can lead to exposed field accesses. - // Given a field access `a`, we can consider a "call graph of interest", a sub graph of the call graph - // that only contains methods that lead to an access of `a`. We call this "the call graph induced by `a`". - // We can then compute the SCCs of this graph, yielding the SCC graph induced by `a`. + /** Holds if the class has an unlocked access to the field `f` via the expression `e` in the method `m`. */ + predicate has_unlocked_access(ExposedField f, Expr e, Method m, boolean write) { + this.unlocked_access(f, e, m, _, write) + } + + /** Holds if the field access `a` to the field `f` is not protected by any monitor, and it can be reached via the expression `e` in the public method `m`. */ + predicate unlocked_public_access( + ExposedField f, Expr e, Method m, ExposedFieldAccess a, boolean write + ) { + this.unlocked_access(f, e, m, a, write) and + m.isPublic() and + not Monitors::locallyMonitors(e, _) + } + + /** Holds if the class has an unlocked access to the field `f` via the expression `e` in the public method `m`. */ + predicate has_unlocked_public_access(ExposedField f, Expr e, Method m, boolean write) { + this.unlocked_public_access(f, e, m, _, write) + } + + // Cases where all accesses to a field are protected by exactly one monitor // /** - * Holds if a call to method `m` can cause an access of `a` by `m` calling `callee`. - * This is an edge in the call graph induced by `a`. + * Holds if the class has an access, locked by exactly one monitor, to the field `f` via the expression `e` in the method `m`. */ - predicate accessVia(Method m, ExposedFieldAccess a, Method callee) { - exists(MethodCall c | this.providesAccess(m, c, a) | callee = c.getCallee()) - } - - /** Holds if `m` can reach `reached` by a path in the call graph induced by `a`. */ - predicate accessReach(Method m, ExposedFieldAccess a, Method reached) { - m = this.getAMethod() and - reached = this.getAMethod() and - this.providesAccess(m, _, a) and - this.providesAccess(reached, _, a) and - ( - this.accessVia(m, a, reached) - or - exists(Method mid | this.accessReach(m, a, mid) | this.accessVia(mid, a, reached)) - ) - } - - /** - * Holds if `rep` is a representative of the SCC containing `m` in the call graph induced by `a`. - * This only assigns representatives to methods involved in loops. - * To get a representative of any method, use `repScc`. - */ - predicate repInLoopScc(Method rep, ExposedFieldAccess a, Method m) { - // `rep` and `m` are in the same SCC - this.accessReach(rep, a, m) and - this.accessReach(m, a, rep) and - // `rep` is the representative of the SCC - // that is, the earliest in the source code - forall(Method alt_rep | - rep != alt_rep and - this.accessReach(alt_rep, a, m) and - this.accessReach(m, a, alt_rep) - | - rep.getLocation().getStartLine() < alt_rep.getLocation().getStartLine() - ) - } - - /** Holds if `rep` is a representative of the SCC containing `m` in the call graph induced by `a`. */ - predicate repScc(Method rep, ExposedFieldAccess a, Method m) { - this.repInLoopScc(rep, a, m) + predicate has_onelocked_access( + ExposedField f, Expr e, Method m, boolean write, Monitors::Monitor monitor + ) { + //base + this.has_unlocked_access(f, e, m, write) and + Monitors::locallyMonitors(e, monitor) or - // If `m` is in the call graph induced by `a` and did not get a representative from `repInLoopScc`, - // it is represented by itself. - m = this.getAMethod() and - this.providesAccess(m, _, a) and - not this.repInLoopScc(_, a, m) and - rep = m + // recursive case + exists(MethodCall c, Expr e0, Method m0 | this.has_onelocked_access(f, e0, m0, write, monitor) | + m = c.getEnclosingCallable() and + not m0.isPublic() and + c.getCallee().getSourceDeclaration() = m0 and + c = e and + // consider allowing idempotent monitors + not Monitors::locallyMonitors(e, _) and + m.getDeclaringType() = this + ) } - /** - * Holds if `c` is a call from the SCC represented by `callerRep` to the (different) SCC represented by `calleeRep`. - * This is an edge in the SCC graph induced by `a`. - */ - predicate callEdgeScc(Method callerRep, ExposedFieldAccess a, MethodCall c, Method calleeRep) { - callerRep != calleeRep and - exists(Method caller, Method callee | - this.repScc(callerRep, a, caller) and - this.repScc(calleeRep, a, callee) + /** Holds if the class has an access, locked by exactly one monitor, to the field `f` via the expression `e` in the public method `m`. */ + predicate has_onelocked_public_access( + ExposedField f, Expr e, Method m, boolean write, Monitors::Monitor monitor + ) { + this.has_onelocked_access(f, e, m, write, monitor) and + m.isPublic() and + not this.has_unlocked_public_access(f, e, m, write) + } + + /** Holds if the field `f` has more than one access, all locked by a single monitor, but different monitors are used. */ + predicate single_monitor_mismatch(ExposedField f) { + 2 <= + strictcount(Monitors::Monitor monitor | this.has_onelocked_public_access(f, _, _, _, monitor)) + } + + // Cases where all accesses to a field are protected by at least one monitor + // + /** Holds if the class has an access, locked by at least one monitor, to the field `f` via the expression `e` in the method `m`. */ + predicate has_onepluslocked_access( + ExposedField f, Expr e, Method m, boolean write, Monitors::Monitor monitor + ) { + //base + this.has_onelocked_access(f, e, m, write, monitor) and + not this.single_monitor_mismatch(f) and + not this.has_unlocked_public_access(f, _, _, _) + or + // recursive case + exists(MethodCall c, Expr e0, Method m0, Monitors::Monitor monitor0 | + this.has_onepluslocked_access(f, e0, m0, write, monitor0) and + m = c.getEnclosingCallable() and + not m0.isPublic() and + c.getCallee().getSourceDeclaration() = m0 and + c = e and + m.getDeclaringType() = this | - this.accessVia(caller, a, callee) and - c.getEnclosingCallable() = caller and - c.getCallee() = callee - ) - } - - /** - * Holds if the SCC represented by `rep` can cause an access to `a` and `e` is the expression that leads to that access. - * `e` will either be `a` itself or a method call that leads to `a` via a different SCC. - */ - predicate providesAccessScc(Method rep, Expr e, ExposedFieldAccess a) { - rep = this.getAMethod() and - exists(Method m | this.repScc(rep, a, m) | - a.getEnclosingCallable() = m and - e = a + monitor = monitor0 or - exists(MethodCall c | this.callEdgeScc(rep, a, c, _) | e = c) + Monitors::locallyMonitors(e, monitor) ) } - /** Holds if all paths from `rep` to `a` are monitored by `monitor`. */ - predicate monitorsViaScc(Method rep, ExposedFieldAccess a, Monitors::Monitor monitor) { - rep = this.getAMethod() and - this.providesAccessScc(rep, _, a) and - // If we are in an SCC that can access `a`, the access must be monitored locally - (this.repScc(rep, a, a.getEnclosingCallable()) implies Monitors::locallyMonitors(a, monitor)) and - // Any call towards `a` must either be monitored or guarantee that the access is monitored - forall(MethodCall c, Method calleeRep | this.callEdgeScc(rep, a, c, calleeRep) | - Monitors::locallyMonitors(c, monitor) - or - this.monitorsViaScc(calleeRep, a, monitor) + /** Holds if the class has a write access to the field `f` that can be reached via a public method. */ + predicate has_public_write_access(ExposedField f) { + this.has_unlocked_public_access(f, _, _, true) + or + this.has_onelocked_public_access(f, _, _, true, _) + or + exists(Method m | m.getDeclaringType() = this and m.isPublic() | + this.has_onepluslocked_access(f, _, m, true, _) ) } - /** Holds if all paths from `m` to `a` are monitored by `monitor`. */ - predicate monitorsVia(Method m, ExposedFieldAccess a, Monitors::Monitor monitor) { - exists(Method rep | - this.repScc(rep, a, m) and - this.monitorsViaScc(rep, a, monitor) + /** Holds if the class has an access, not protected by the monitor `m`, to the field `f` via the expression `e` in the method `m`. */ + predicate escapes_monitor( + ExposedField f, Expr e, Method m, boolean write, Monitors::Monitor monitor + ) { + //base + this.has_onepluslocked_access(f, _, _, _, monitor) and + this.has_unlocked_access(f, e, m, write) and + not Monitors::locallyMonitors(e, monitor) + or + // recursive case + exists(MethodCall c, Expr e0, Method m0 | this.escapes_monitor(f, e0, m0, write, monitor) | + m = c.getEnclosingCallable() and + not m0.isPublic() and + c.getCallee().getSourceDeclaration() = m0 and + c = e and + // consider allowing idempotent monitors + not Monitors::locallyMonitors(e, monitor) and + m.getDeclaringType() = this + ) + } + + /** Holds if the class has an access, not protected by the monitor `m`, to the field `f` via the expression `e` in the public method `m`. */ + predicate escapes_monitor_public( + ExposedField f, Expr e, Method m, boolean write, Monitors::Monitor monitor + ) { + this.escapes_monitor(f, e, m, write, monitor) and + m.isPublic() + } + + /** Holds if no monitor protects all accesses to the field `f`. */ + predicate not_fully_monitored(ExposedField f) { + forex(Monitors::Monitor monitor | this.has_onepluslocked_access(f, _, _, _, monitor) | + this.escapes_monitor_public(f, _, _, _, monitor) ) } } diff --git a/java/ql/src/Likely Bugs/Concurrency/ThreadSafe.ql b/java/ql/src/Likely Bugs/Concurrency/ThreadSafe.ql index 1498274131e..89e9cbdb169 100644 --- a/java/ql/src/Likely Bugs/Concurrency/ThreadSafe.ql +++ b/java/ql/src/Likely Bugs/Concurrency/ThreadSafe.ql @@ -14,13 +14,43 @@ import java import semmle.code.java.ConflictingAccess +predicate unmonitored_access( + ClassAnnotatedAsThreadSafe cls, ExposedFieldAccess a, Expr entry, string msg, string entry_desc +) { + exists(ExposedField f | + cls.unlocked_public_access(f, entry, _, a, true) + or + cls.unlocked_public_access(f, entry, _, a, false) and + cls.has_public_write_access(f) + ) and + msg = + "This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe." and + entry_desc = "this expression" +} + +predicate not_fully_monitored_field( + ClassAnnotatedAsThreadSafe cls, ExposedField f, string msg, string cls_name +) { + ( + // Technically there has to be a write access for a conflict to exist. + // But if you are locking your reads with different locks, you likely made a typo, + // so in this case we alert without requiring `cls.has_public_write_access(f)` + cls.single_monitor_mismatch(f) + or + cls.not_fully_monitored(f) and + cls.has_public_write_access(f) + ) and + msg = + "The field $@ is not properly synchronized in that no single monitor covers all accesses, but the class $@ is annotated as @ThreadSafe." and + cls_name = cls.getName() +} + from - ClassAnnotatedAsThreadSafe cls, FieldAccess modifyingAccess, Expr witness_modifyingAccess, - FieldAccess conflictingAccess, Expr witness_conflictingAccess + ClassAnnotatedAsThreadSafe cls, Top alert_element, Top alert_context, string alert_msg, + string context_desc where - cls.witness(modifyingAccess, witness_modifyingAccess, conflictingAccess, witness_conflictingAccess) -select modifyingAccess, - "This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor.", - witness_modifyingAccess, "this expression", conflictingAccess, "this field access", - witness_conflictingAccess, "this expression" -// select c, a.getField() + unmonitored_access(cls, alert_element, alert_context, alert_msg, context_desc) + or + not_fully_monitored_field(cls, alert_element, alert_msg, context_desc) and + alert_context = cls +select alert_element, alert_msg, alert_context, context_desc diff --git a/java/ql/test/query-tests/ThreadSafe/ThreadSafe.expected b/java/ql/test/query-tests/ThreadSafe/ThreadSafe.expected index d25b09260ee..ae2bd4ea5c8 100644 --- a/java/ql/test/query-tests/ThreadSafe/ThreadSafe.expected +++ b/java/ql/test/query-tests/ThreadSafe/ThreadSafe.expected @@ -1,72 +1,43 @@ -| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:14:9:14:14 | this.y | this field access | examples/C.java:14:9:14:14 | this.y | this expression | -| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:15:9:15:14 | this.y | this field access | examples/C.java:15:9:15:14 | this.y | this expression | -| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:16:9:16:14 | this.y | this field access | examples/C.java:16:9:16:14 | this.y | this expression | -| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:16:18:16:23 | this.y | this field access | examples/C.java:16:18:16:23 | this.y | this expression | -| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:20:9:20:14 | this.y | this field access | examples/C.java:20:9:20:14 | this.y | this expression | -| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:21:9:21:14 | this.y | this field access | examples/C.java:21:9:21:14 | this.y | this expression | -| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:22:9:22:14 | this.y | this field access | examples/C.java:22:9:22:14 | this.y | this expression | -| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:22:18:22:23 | this.y | this field access | examples/C.java:22:18:22:23 | this.y | this expression | -| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:26:9:26:14 | this.y | this field access | examples/C.java:26:9:26:14 | this.y | this expression | -| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:30:13:30:13 | y | this field access | examples/C.java:30:13:30:13 | y | this expression | -| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:33:9:33:9 | y | this field access | examples/C.java:33:9:33:9 | y | this expression | -| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:39:9:39:14 | this.y | this field access | examples/C.java:39:9:39:14 | this.y | this expression | -| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:40:9:40:14 | this.y | this field access | examples/C.java:40:9:40:14 | this.y | this expression | -| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:41:9:41:14 | this.y | this field access | examples/C.java:41:9:41:14 | this.y | this expression | -| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:41:18:41:23 | this.y | this field access | examples/C.java:41:18:41:23 | this.y | this expression | -| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:53:9:53:14 | this.y | this field access | examples/C.java:53:9:53:14 | this.y | this expression | -| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:54:9:54:14 | this.y | this field access | examples/C.java:54:9:54:14 | this.y | this expression | -| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:55:9:55:14 | this.y | this field access | examples/C.java:55:9:55:14 | this.y | this expression | -| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:55:18:55:23 | this.y | this field access | examples/C.java:55:18:55:23 | this.y | this expression | -| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:61:9:61:9 | y | this field access | examples/C.java:61:9:61:9 | y | this expression | -| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:62:9:62:9 | y | this field access | examples/C.java:62:9:62:9 | y | this expression | -| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:63:9:63:9 | y | this field access | examples/C.java:63:9:63:9 | y | this expression | -| examples/C.java:14:9:14:14 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/C.java:14:9:14:14 | this.y | this expression | examples/C.java:63:13:63:13 | y | this field access | examples/C.java:63:13:63:13 | y | this expression | -| examples/FaultyTurnstileExample.java:13:5:13:9 | count | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/FaultyTurnstileExample.java:13:5:13:9 | count | this expression | examples/FaultyTurnstileExample.java:18:5:18:9 | count | this field access | examples/FaultyTurnstileExample.java:18:5:18:9 | count | this expression | -| examples/FaultyTurnstileExample.java:30:5:30:9 | count | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/FaultyTurnstileExample.java:30:5:30:9 | count | this expression | examples/FaultyTurnstileExample.java:36:5:36:9 | count | this field access | examples/FaultyTurnstileExample.java:36:5:36:9 | count | this expression | -| examples/FlawedSemaphore.java:18:7:18:11 | state | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/FlawedSemaphore.java:18:7:18:11 | state | this expression | examples/FlawedSemaphore.java:15:14:15:18 | state | this field access | examples/FlawedSemaphore.java:15:14:15:18 | state | this expression | -| examples/FlawedSemaphore.java:18:7:18:11 | state | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/FlawedSemaphore.java:18:7:18:11 | state | this expression | examples/FlawedSemaphore.java:18:7:18:11 | state | this field access | examples/FlawedSemaphore.java:18:7:18:11 | state | this expression | -| examples/FlawedSemaphore.java:18:7:18:11 | state | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/FlawedSemaphore.java:18:7:18:11 | state | this expression | examples/FlawedSemaphore.java:26:7:26:11 | state | this field access | examples/FlawedSemaphore.java:26:7:26:11 | state | this expression | -| examples/LockExample.java:24:5:24:10 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:24:5:24:10 | length | this expression | examples/LockExample.java:38:5:38:10 | length | this field access | examples/LockExample.java:38:5:38:10 | length | this expression | -| examples/LockExample.java:24:5:24:10 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:24:5:24:10 | length | this expression | examples/LockExample.java:39:13:39:18 | length | this field access | examples/LockExample.java:39:13:39:18 | length | this expression | -| examples/LockExample.java:24:5:24:10 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:24:5:24:10 | length | this expression | examples/LockExample.java:44:5:44:10 | length | this field access | examples/LockExample.java:44:5:44:10 | length | this expression | -| examples/LockExample.java:24:5:24:10 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:24:5:24:10 | length | this expression | examples/LockExample.java:45:13:45:18 | length | this field access | examples/LockExample.java:45:13:45:18 | length | this expression | -| examples/LockExample.java:24:5:24:10 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:24:5:24:10 | length | this expression | examples/LockExample.java:49:5:49:10 | length | this field access | examples/LockExample.java:49:5:49:10 | length | this expression | -| examples/LockExample.java:24:5:24:10 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:24:5:24:10 | length | this expression | examples/LockExample.java:57:5:57:10 | length | this field access | examples/LockExample.java:57:5:57:10 | length | this expression | -| examples/LockExample.java:24:5:24:10 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:24:5:24:10 | length | this expression | examples/LockExample.java:58:13:58:18 | length | this field access | examples/LockExample.java:58:13:58:18 | length | this expression | -| examples/LockExample.java:24:5:24:10 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:24:5:24:10 | length | this expression | examples/LockExample.java:62:5:62:10 | length | this field access | examples/LockExample.java:62:5:62:10 | length | this expression | -| examples/LockExample.java:24:5:24:10 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:24:5:24:10 | length | this expression | examples/LockExample.java:65:13:65:18 | length | this field access | examples/LockExample.java:65:13:65:18 | length | this expression | -| examples/LockExample.java:24:5:24:10 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:24:5:24:10 | length | this expression | examples/LockExample.java:69:5:69:10 | length | this field access | examples/LockExample.java:69:5:69:10 | length | this expression | -| examples/LockExample.java:24:5:24:10 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:24:5:24:10 | length | this expression | examples/LockExample.java:71:13:71:18 | length | this field access | examples/LockExample.java:71:13:71:18 | length | this expression | -| examples/LockExample.java:24:5:24:10 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:24:5:24:10 | length | this expression | examples/LockExample.java:76:5:76:10 | length | this field access | examples/LockExample.java:76:5:76:10 | length | this expression | -| examples/LockExample.java:24:5:24:10 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:24:5:24:10 | length | this expression | examples/LockExample.java:79:13:79:18 | length | this field access | examples/LockExample.java:79:13:79:18 | length | this expression | -| examples/LockExample.java:24:5:24:10 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:24:5:24:10 | length | this expression | examples/LockExample.java:127:7:127:12 | length | this field access | examples/LockExample.java:127:7:127:12 | length | this expression | -| examples/LockExample.java:24:5:24:10 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:24:5:24:10 | length | this expression | examples/LockExample.java:136:7:136:12 | length | this field access | examples/LockExample.java:136:7:136:12 | length | this expression | -| examples/LockExample.java:24:5:24:10 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:24:5:24:10 | length | this expression | examples/LockExample.java:142:7:142:12 | length | this field access | examples/LockExample.java:142:7:142:12 | length | this expression | -| examples/LockExample.java:25:5:25:11 | content | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:25:5:25:11 | content | this expression | examples/LockExample.java:39:5:39:11 | content | this field access | examples/LockExample.java:39:5:39:11 | content | this expression | -| examples/LockExample.java:25:5:25:11 | content | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:25:5:25:11 | content | this expression | examples/LockExample.java:45:5:45:11 | content | this field access | examples/LockExample.java:45:5:45:11 | content | this expression | -| examples/LockExample.java:25:5:25:11 | content | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:25:5:25:11 | content | this expression | examples/LockExample.java:58:5:58:11 | content | this field access | examples/LockExample.java:58:5:58:11 | content | this expression | -| examples/LockExample.java:25:5:25:11 | content | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:25:5:25:11 | content | this expression | examples/LockExample.java:65:5:65:11 | content | this field access | examples/LockExample.java:65:5:65:11 | content | this expression | -| examples/LockExample.java:25:5:25:11 | content | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:25:5:25:11 | content | this expression | examples/LockExample.java:71:5:71:11 | content | this field access | examples/LockExample.java:71:5:71:11 | content | this expression | -| examples/LockExample.java:25:5:25:11 | content | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:25:5:25:11 | content | this expression | examples/LockExample.java:79:5:79:11 | content | this field access | examples/LockExample.java:79:5:79:11 | content | this expression | -| examples/LockExample.java:38:5:38:10 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:38:5:38:10 | length | this expression | examples/LockExample.java:25:13:25:18 | length | this field access | examples/LockExample.java:25:13:25:18 | length | this expression | -| examples/LockExample.java:38:5:38:10 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:38:5:38:10 | length | this expression | examples/LockExample.java:32:13:32:18 | length | this field access | examples/LockExample.java:32:13:32:18 | length | this expression | -| examples/LockExample.java:38:5:38:10 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:38:5:38:10 | length | this expression | examples/LockExample.java:52:13:52:18 | length | this field access | examples/LockExample.java:52:13:52:18 | length | this expression | -| examples/LockExample.java:38:5:38:10 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:38:5:38:10 | length | this expression | examples/LockExample.java:150:7:150:12 | length | this field access | examples/LockExample.java:150:7:150:12 | length | this expression | -| examples/LockExample.java:39:5:39:11 | content | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:39:5:39:11 | content | this expression | examples/LockExample.java:52:5:52:11 | content | this field access | examples/LockExample.java:52:5:52:11 | content | this expression | -| examples/LockExample.java:85:5:85:21 | notRelatedToOther | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:85:5:85:21 | notRelatedToOther | this expression | examples/LockExample.java:94:5:94:21 | notRelatedToOther | this field access | examples/LockExample.java:94:5:94:21 | notRelatedToOther | this expression | -| examples/LockExample.java:85:5:85:21 | notRelatedToOther | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:85:5:85:21 | notRelatedToOther | this expression | examples/LockExample.java:112:5:112:21 | notRelatedToOther | this field access | examples/LockExample.java:112:5:112:21 | notRelatedToOther | this expression | -| examples/LockExample.java:85:5:85:21 | notRelatedToOther | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:85:5:85:21 | notRelatedToOther | this expression | examples/LockExample.java:119:5:119:21 | notRelatedToOther | this field access | examples/LockExample.java:119:5:119:21 | notRelatedToOther | this expression | -| examples/LockExample.java:85:5:85:21 | notRelatedToOther | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:85:5:85:21 | notRelatedToOther | this expression | examples/LockExample.java:124:5:124:21 | notRelatedToOther | this field access | examples/LockExample.java:124:5:124:21 | notRelatedToOther | this expression | -| examples/LockExample.java:85:5:85:21 | notRelatedToOther | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:85:5:85:21 | notRelatedToOther | this expression | examples/LockExample.java:145:5:145:21 | notRelatedToOther | this field access | examples/LockExample.java:145:5:145:21 | notRelatedToOther | this expression | -| examples/LockExample.java:85:5:85:21 | notRelatedToOther | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:85:5:85:21 | notRelatedToOther | this expression | examples/LockExample.java:153:5:153:21 | notRelatedToOther | this field access | examples/LockExample.java:153:5:153:21 | notRelatedToOther | this expression | -| examples/LockExample.java:94:5:94:21 | notRelatedToOther | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:94:5:94:21 | notRelatedToOther | this expression | examples/LockExample.java:100:5:100:21 | notRelatedToOther | this field access | examples/LockExample.java:100:5:100:21 | notRelatedToOther | this expression | -| examples/LockExample.java:94:5:94:21 | notRelatedToOther | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:94:5:94:21 | notRelatedToOther | this expression | examples/LockExample.java:103:5:103:21 | notRelatedToOther | this field access | examples/LockExample.java:103:5:103:21 | notRelatedToOther | this expression | -| examples/LockExample.java:94:5:94:21 | notRelatedToOther | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:94:5:94:21 | notRelatedToOther | this expression | examples/LockExample.java:109:5:109:21 | notRelatedToOther | this field access | examples/LockExample.java:109:5:109:21 | notRelatedToOther | this expression | -| examples/LockExample.java:94:5:94:21 | notRelatedToOther | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/LockExample.java:94:5:94:21 | notRelatedToOther | this expression | examples/LockExample.java:117:5:117:21 | notRelatedToOther | this field access | examples/LockExample.java:117:5:117:21 | notRelatedToOther | this expression | -| examples/SyncLstExample.java:40:5:40:7 | lst | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/SyncLstExample.java:40:5:40:7 | lst | this expression | examples/SyncLstExample.java:45:5:45:7 | lst | this field access | examples/SyncLstExample.java:45:5:45:7 | lst | this expression | -| examples/SyncStackExample.java:32:5:32:7 | stc | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/SyncStackExample.java:32:5:32:7 | stc | this expression | examples/SyncStackExample.java:37:5:37:7 | stc | this field access | examples/SyncStackExample.java:37:5:37:7 | stc | this expression | -| examples/SynchronizedAndLock.java:14:9:14:14 | length | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/SynchronizedAndLock.java:14:9:14:14 | length | this expression | examples/SynchronizedAndLock.java:19:9:19:14 | length | this field access | examples/SynchronizedAndLock.java:19:9:19:14 | length | this expression | -| examples/Test.java:43:5:43:10 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/Test.java:43:5:43:10 | this.y | this expression | examples/Test.java:52:5:52:10 | this.y | this field access | examples/Test.java:24:5:24:18 | setYPrivate(...) | this expression | -| examples/Test.java:43:5:43:10 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/Test.java:43:5:43:10 | this.y | this expression | examples/Test.java:60:5:60:10 | this.y | this field access | examples/Test.java:60:5:60:10 | this.y | this expression | -| examples/Test.java:43:5:43:10 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/Test.java:43:5:43:10 | this.y | this expression | examples/Test.java:74:5:74:10 | this.y | this field access | examples/Test.java:74:5:74:10 | this.y | this expression | -| examples/Test.java:43:5:43:10 | this.y | This modifying field access (publicly accessible via $@) is conflicting with $@ (publicly accessible via $@) because they are not synchronized with the same monitor. | examples/Test.java:43:5:43:10 | this.y | this expression | examples/Test.java:74:14:74:14 | y | this field access | examples/Test.java:74:14:74:14 | y | this expression | +| examples/C.java:14:9:14:14 | this.y | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/C.java:14:9:14:14 | this.y | this expression | +| examples/C.java:15:9:15:14 | this.y | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/C.java:15:9:15:14 | this.y | this expression | +| examples/C.java:16:9:16:14 | this.y | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/C.java:16:9:16:14 | this.y | this expression | +| examples/C.java:16:18:16:23 | this.y | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/C.java:16:18:16:23 | this.y | this expression | +| examples/C.java:20:9:20:14 | this.y | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/C.java:20:9:20:14 | this.y | this expression | +| examples/C.java:21:9:21:14 | this.y | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/C.java:21:9:21:14 | this.y | this expression | +| examples/C.java:22:9:22:14 | this.y | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/C.java:22:9:22:14 | this.y | this expression | +| examples/C.java:22:18:22:23 | this.y | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/C.java:22:18:22:23 | this.y | this expression | +| examples/C.java:26:9:26:14 | this.y | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/C.java:26:9:26:14 | this.y | this expression | +| examples/C.java:30:13:30:13 | y | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/C.java:30:13:30:13 | y | this expression | +| examples/C.java:33:9:33:9 | y | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/C.java:33:9:33:9 | y | this expression | +| examples/FaultyTurnstileExample.java:18:5:18:9 | count | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/FaultyTurnstileExample.java:18:5:18:9 | count | this expression | +| examples/FaultyTurnstileExample.java:26:15:26:19 | count | The field $@ is not properly synchronized in that no single monitor covers all accesses, but the class $@ is annotated as @ThreadSafe. | examples/FaultyTurnstileExample.java:23:7:23:29 | FaultyTurnstileExample2 | FaultyTurnstileExample2 | +| examples/FlawedSemaphore.java:15:14:15:18 | state | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/FlawedSemaphore.java:15:14:15:18 | state | this expression | +| examples/FlawedSemaphore.java:18:7:18:11 | state | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/FlawedSemaphore.java:18:7:18:11 | state | this expression | +| examples/LockExample.java:18:15:18:20 | length | The field $@ is not properly synchronized in that no single monitor covers all accesses, but the class $@ is annotated as @ThreadSafe. | examples/LockExample.java:14:14:14:24 | LockExample | LockExample | +| examples/LockExample.java:19:15:19:31 | notRelatedToOther | The field $@ is not properly synchronized in that no single monitor covers all accesses, but the class $@ is annotated as @ThreadSafe. | examples/LockExample.java:14:14:14:24 | LockExample | LockExample | +| examples/LockExample.java:20:17:20:23 | content | The field $@ is not properly synchronized in that no single monitor covers all accesses, but the class $@ is annotated as @ThreadSafe. | examples/LockExample.java:14:14:14:24 | LockExample | LockExample | +| examples/LockExample.java:44:5:44:10 | length | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/LockExample.java:44:5:44:10 | length | this expression | +| examples/LockExample.java:45:5:45:11 | content | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/LockExample.java:45:5:45:11 | content | this expression | +| examples/LockExample.java:45:13:45:18 | length | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/LockExample.java:45:13:45:18 | length | this expression | +| examples/LockExample.java:49:5:49:10 | length | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/LockExample.java:49:5:49:10 | length | this expression | +| examples/LockExample.java:62:5:62:10 | length | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/LockExample.java:62:5:62:10 | length | this expression | +| examples/LockExample.java:65:5:65:11 | content | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/LockExample.java:65:5:65:11 | content | this expression | +| examples/LockExample.java:65:13:65:18 | length | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/LockExample.java:65:13:65:18 | length | this expression | +| examples/LockExample.java:69:5:69:10 | length | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/LockExample.java:69:5:69:10 | length | this expression | +| examples/LockExample.java:71:5:71:11 | content | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/LockExample.java:71:5:71:11 | content | this expression | +| examples/LockExample.java:71:13:71:18 | length | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/LockExample.java:71:13:71:18 | length | this expression | +| examples/LockExample.java:76:5:76:10 | length | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/LockExample.java:76:5:76:10 | length | this expression | +| examples/LockExample.java:79:5:79:11 | content | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/LockExample.java:79:5:79:11 | content | this expression | +| examples/LockExample.java:79:13:79:18 | length | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/LockExample.java:79:13:79:18 | length | this expression | +| examples/LockExample.java:112:5:112:21 | notRelatedToOther | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/LockExample.java:112:5:112:21 | notRelatedToOther | this expression | +| examples/LockExample.java:119:5:119:21 | notRelatedToOther | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/LockExample.java:119:5:119:21 | notRelatedToOther | this expression | +| examples/LockExample.java:124:5:124:21 | notRelatedToOther | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/LockExample.java:124:5:124:21 | notRelatedToOther | this expression | +| examples/LockExample.java:145:5:145:21 | notRelatedToOther | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/LockExample.java:145:5:145:21 | notRelatedToOther | this expression | +| examples/LockExample.java:153:5:153:21 | notRelatedToOther | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/LockExample.java:153:5:153:21 | notRelatedToOther | this expression | +| examples/SyncLstExample.java:45:5:45:7 | lst | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/SyncLstExample.java:45:5:45:7 | lst | this expression | +| examples/SyncStackExample.java:37:5:37:7 | stc | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/SyncStackExample.java:37:5:37:7 | stc | this expression | +| examples/SynchronizedAndLock.java:10:17:10:22 | length | The field $@ is not properly synchronized in that no single monitor covers all accesses, but the class $@ is annotated as @ThreadSafe. | examples/SynchronizedAndLock.java:7:14:7:32 | SynchronizedAndLock | SynchronizedAndLock | +| examples/Test.java:52:5:52:10 | this.y | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/Test.java:24:5:24:18 | setYPrivate(...) | this expression | +| examples/Test.java:60:5:60:10 | this.y | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/Test.java:60:5:60:10 | this.y | this expression | +| examples/Test.java:74:5:74:10 | this.y | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/Test.java:74:5:74:10 | this.y | this expression | +| examples/Test.java:74:14:74:14 | y | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/Test.java:74:14:74:14 | y | this expression | diff --git a/java/ql/test/query-tests/ThreadSafe/examples/C.java b/java/ql/test/query-tests/ThreadSafe/examples/C.java index 51201d4f6be..92c6b82800c 100644 --- a/java/ql/test/query-tests/ThreadSafe/examples/C.java +++ b/java/ql/test/query-tests/ThreadSafe/examples/C.java @@ -12,25 +12,25 @@ public class C { public void m() { this.y = 0; // $ Alert - this.y += 1; - this.y = this.y - 1; + this.y += 1; // $ Alert + this.y = this.y - 1; // $ Alert } public void n4() { - this.y = 0; - this.y += 1; - this.y = this.y - 1; + this.y = 0; // $ Alert + this.y += 1; // $ Alert + this.y = this.y - 1; // $ Alert } public void setY(int y) { - this.y = y; + this.y = y; // $ Alert } public void test() { - if (y == 0) { + if (y == 0) { // $ Alert lock.lock(); } - y = 0; + y = 0; // $ Alert lock.unlock(); } diff --git a/java/ql/test/query-tests/ThreadSafe/examples/FaultyTurnstileExample.java b/java/ql/test/query-tests/ThreadSafe/examples/FaultyTurnstileExample.java index adbd74473e4..20b258135f6 100644 --- a/java/ql/test/query-tests/ThreadSafe/examples/FaultyTurnstileExample.java +++ b/java/ql/test/query-tests/ThreadSafe/examples/FaultyTurnstileExample.java @@ -10,12 +10,12 @@ class FaultyTurnstileExample { public void inc() { lock.lock(); - count++; // $ Alert + count++; // $ MISSING: Alert lock.unlock(); } public void dec() { - count--; + count--; // $ Alert } } @@ -23,11 +23,11 @@ class FaultyTurnstileExample { class FaultyTurnstileExample2 { private Lock lock1 = new ReentrantLock(); private Lock lock2 = new ReentrantLock(); - private int count = 0; + private int count = 0; // $ Alert public void inc() { lock1.lock(); - count++; // $ Alert + count++; lock1.unlock(); } diff --git a/java/ql/test/query-tests/ThreadSafe/examples/FlawedSemaphore.java b/java/ql/test/query-tests/ThreadSafe/examples/FlawedSemaphore.java index 405edbe7058..a73b45e60ed 100644 --- a/java/ql/test/query-tests/ThreadSafe/examples/FlawedSemaphore.java +++ b/java/ql/test/query-tests/ThreadSafe/examples/FlawedSemaphore.java @@ -12,7 +12,7 @@ public class FlawedSemaphore { public void acquire() { try { - while (state == capacity) { + while (state == capacity) { // $ Alert this.wait(); } state++; // $ Alert diff --git a/java/ql/test/query-tests/ThreadSafe/examples/LockExample.java b/java/ql/test/query-tests/ThreadSafe/examples/LockExample.java index 8ce34922c5b..1e1792d0d2e 100644 --- a/java/ql/test/query-tests/ThreadSafe/examples/LockExample.java +++ b/java/ql/test/query-tests/ThreadSafe/examples/LockExample.java @@ -15,14 +15,14 @@ public class LockExample { private Lock lock1 = new ReentrantLock(); private Lock lock2 = new ReentrantLock(); - private int length = 0; - private int notRelatedToOther = 10; - private int[] content = new int[10]; + private int length = 0; // $ Alert + private int notRelatedToOther = 10; // $ Alert + private int[] content = new int[10]; // $ Alert public void add(int value) { lock1.lock(); - length++; // $ Alert - content[length] = value; // $ Alert + length++; + content[length] = value; lock1.unlock(); } @@ -35,18 +35,18 @@ public class LockExample { public void notTheSameLockAsAdd() { // use locks, but different ones lock2.lock(); - length--; // $ Alert - content[length] = 0; // $ Alert + length--; + content[length] = 0; lock2.unlock(); } public void noLock() { // no locks - length--; - content[length] = 0; + length--; // $ Alert + content[length] = 0; // $ Alert } public void fieldUpdatedOutsideOfLock() { // adjusts length without lock - length--; + length--; // $ Alert lock1.lock(); content[length] = 0; @@ -59,30 +59,30 @@ public class LockExample { } public void onlyLocked() { // never unlocked, only locked - length--; + length--; // $ Alert lock1.lock(); - content[length] = 0; + content[length] = 0; // $ Alert } public void onlyUnlocked() { // never locked, only unlocked - length--; + length--; // $ Alert - content[length] = 0; + content[length] = 0; // $ Alert lock1.unlock(); } public void notSameLock() { - length--; + length--; // $ Alert lock2.lock();// Not the same lock - content[length] = 0; + content[length] = 0; // $ Alert lock1.unlock(); } public void updateCount() { lock2.lock(); - notRelatedToOther++; // $ Alert + notRelatedToOther++; lock2.unlock(); } @@ -91,7 +91,7 @@ public class LockExample { notRelatedToOther++; lock2.unlock(); lock1.lock(); - notRelatedToOther++; // $ Alert + notRelatedToOther++; lock1.unlock(); } @@ -109,19 +109,19 @@ public class LockExample { notRelatedToOther++; lock2.unlock(); lock1.lock(); - notRelatedToOther++; + notRelatedToOther++; // $ Alert } public void updateCountTwiceUnLock() { lock2.lock(); notRelatedToOther++; lock2.unlock(); - notRelatedToOther++; + notRelatedToOther++; // $ Alert lock1.unlock(); } public void synchronizedNonRelatedOutside() { - notRelatedToOther++; + notRelatedToOther++; // $ Alert synchronized(this) { length++; @@ -142,7 +142,7 @@ public class LockExample { length++; } - notRelatedToOther = 1; + notRelatedToOther = 1; // $ Alert } public void synchronizedNonRelatedOutside4() { @@ -150,7 +150,7 @@ public class LockExample { length++; } - notRelatedToOther = 1; + notRelatedToOther = 1; // $ Alert } } diff --git a/java/ql/test/query-tests/ThreadSafe/examples/SyncLstExample.java b/java/ql/test/query-tests/ThreadSafe/examples/SyncLstExample.java index 63f6985840c..04bc1c3c454 100644 --- a/java/ql/test/query-tests/ThreadSafe/examples/SyncLstExample.java +++ b/java/ql/test/query-tests/ThreadSafe/examples/SyncLstExample.java @@ -37,11 +37,11 @@ class FaultySyncLstExample { public void add(T item) { lock.lock(); - lst.add(item); // $ Alert + lst.add(item); lock.unlock(); } public void remove(int i) { - lst.remove(i); + lst.remove(i); // $ Alert } } diff --git a/java/ql/test/query-tests/ThreadSafe/examples/SyncStackExample.java b/java/ql/test/query-tests/ThreadSafe/examples/SyncStackExample.java index 62eabde4b7d..31e8cebee3e 100644 --- a/java/ql/test/query-tests/ThreadSafe/examples/SyncStackExample.java +++ b/java/ql/test/query-tests/ThreadSafe/examples/SyncStackExample.java @@ -29,11 +29,11 @@ class FaultySyncStackExample { public void push(T item) { lock.lock(); - stc.push(item); // $ Alert + stc.push(item); lock.unlock(); } public void pop() { - stc.pop(); + stc.pop(); // $ Alert } } diff --git a/java/ql/test/query-tests/ThreadSafe/examples/SynchronizedAndLock.java b/java/ql/test/query-tests/ThreadSafe/examples/SynchronizedAndLock.java index fc0aa038b0e..52b35a84bb7 100644 --- a/java/ql/test/query-tests/ThreadSafe/examples/SynchronizedAndLock.java +++ b/java/ql/test/query-tests/ThreadSafe/examples/SynchronizedAndLock.java @@ -7,11 +7,11 @@ import java.util.concurrent.locks.ReentrantLock; public class SynchronizedAndLock { private Lock lock = new ReentrantLock(); - private int length = 0; + private int length = 0; // $ Alert public void add(int value) { lock.lock(); - length++; // $ Alert + length++; lock.unlock(); } diff --git a/java/ql/test/query-tests/ThreadSafe/examples/Test.java b/java/ql/test/query-tests/ThreadSafe/examples/Test.java index b2e7ac46c0b..e6b0567ef89 100644 --- a/java/ql/test/query-tests/ThreadSafe/examples/Test.java +++ b/java/ql/test/query-tests/ThreadSafe/examples/Test.java @@ -40,7 +40,7 @@ public class Test { */ public void setYCorrect(int y) { lock.lock(); - this.y = y; // $ Alert + this.y = y; lock.unlock(); } @@ -49,7 +49,7 @@ public class Test { * @param y */ private void setYPrivate(int y) { - this.y = y; + this.y = y; // $ Alert } /** @@ -57,7 +57,7 @@ public class Test { * @param y */ public void setYWrongLock(int y) { - this.y = y; + this.y = y; // $ Alert lock.lock(); lock.unlock(); } @@ -71,6 +71,6 @@ public class Test { } public void testMethod() { - this.y = y + 2; + this.y = y + 2; // $ Alert } } From 3a0a8999d5a7c1c76dfdbd2e2503cf7cd064a048 Mon Sep 17 00:00:00 2001 From: yoff Date: Fri, 17 Oct 2025 01:52:23 +0200 Subject: [PATCH 017/126] java: fix ql alerts --- java/ql/lib/semmle/code/java/ConflictingAccess.qll | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/java/ql/lib/semmle/code/java/ConflictingAccess.qll b/java/ql/lib/semmle/code/java/ConflictingAccess.qll index 9373845d6bc..f075bb3d198 100644 --- a/java/ql/lib/semmle/code/java/ConflictingAccess.qll +++ b/java/ql/lib/semmle/code/java/ConflictingAccess.qll @@ -185,7 +185,7 @@ class ClassAnnotatedAsThreadSafe extends Class { Monitors::locallyMonitors(e, monitor) or // recursive case - exists(MethodCall c, Expr e0, Method m0 | this.has_onelocked_access(f, e0, m0, write, monitor) | + exists(MethodCall c, Method m0 | this.has_onelocked_access(f, _, m0, write, monitor) | m = c.getEnclosingCallable() and not m0.isPublic() and c.getCallee().getSourceDeclaration() = m0 and @@ -223,8 +223,8 @@ class ClassAnnotatedAsThreadSafe extends Class { not this.has_unlocked_public_access(f, _, _, _) or // recursive case - exists(MethodCall c, Expr e0, Method m0, Monitors::Monitor monitor0 | - this.has_onepluslocked_access(f, e0, m0, write, monitor0) and + exists(MethodCall c, Method m0, Monitors::Monitor monitor0 | + this.has_onepluslocked_access(f, _, m0, write, monitor0) and m = c.getEnclosingCallable() and not m0.isPublic() and c.getCallee().getSourceDeclaration() = m0 and @@ -258,7 +258,7 @@ class ClassAnnotatedAsThreadSafe extends Class { not Monitors::locallyMonitors(e, monitor) or // recursive case - exists(MethodCall c, Expr e0, Method m0 | this.escapes_monitor(f, e0, m0, write, monitor) | + exists(MethodCall c, Method m0 | this.escapes_monitor(f, _, m0, write, monitor) | m = c.getEnclosingCallable() and not m0.isPublic() and c.getCallee().getSourceDeclaration() = m0 and From 715acefaccaf0711fbb9c85500cd46b76253d5de Mon Sep 17 00:00:00 2001 From: yoff Date: Tue, 21 Oct 2025 12:52:59 +0200 Subject: [PATCH 018/126] Apply suggestions from code review Co-authored-by: Anders Schack-Mulligen --- java/ql/lib/semmle/code/java/ConflictingAccess.qll | 1 - java/ql/src/Likely Bugs/Concurrency/ThreadSafe.ql | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/java/ql/lib/semmle/code/java/ConflictingAccess.qll b/java/ql/lib/semmle/code/java/ConflictingAccess.qll index f075bb3d198..eb4f7c0f0b7 100644 --- a/java/ql/lib/semmle/code/java/ConflictingAccess.qll +++ b/java/ql/lib/semmle/code/java/ConflictingAccess.qll @@ -263,7 +263,6 @@ class ClassAnnotatedAsThreadSafe extends Class { not m0.isPublic() and c.getCallee().getSourceDeclaration() = m0 and c = e and - // consider allowing idempotent monitors not Monitors::locallyMonitors(e, monitor) and m.getDeclaringType() = this ) diff --git a/java/ql/src/Likely Bugs/Concurrency/ThreadSafe.ql b/java/ql/src/Likely Bugs/Concurrency/ThreadSafe.ql index 89e9cbdb169..bdb081ec4a6 100644 --- a/java/ql/src/Likely Bugs/Concurrency/ThreadSafe.ql +++ b/java/ql/src/Likely Bugs/Concurrency/ThreadSafe.ql @@ -41,7 +41,7 @@ predicate not_fully_monitored_field( cls.has_public_write_access(f) ) and msg = - "The field $@ is not properly synchronized in that no single monitor covers all accesses, but the class $@ is annotated as @ThreadSafe." and + "This field is not properly synchronized in that no single monitor covers all accesses, but the class $@ is annotated as @ThreadSafe." and cls_name = cls.getName() } From de05bfbce3c703a6e5ef1e391819ee1c3125556f Mon Sep 17 00:00:00 2001 From: yoff Date: Tue, 21 Oct 2025 12:49:07 +0200 Subject: [PATCH 019/126] java: address review comments - do not use `getQualifiedName` - use camelCase - rework alert predicates --- .../semmle/code/java/ConflictingAccess.qll | 79 +++++++++---------- .../src/Likely Bugs/Concurrency/ThreadSafe.ql | 31 +++----- .../ThreadSafe/ThreadSafe.expected | 10 +-- 3 files changed, 57 insertions(+), 63 deletions(-) diff --git a/java/ql/lib/semmle/code/java/ConflictingAccess.qll b/java/ql/lib/semmle/code/java/ConflictingAccess.qll index eb4f7c0f0b7..39f8a5e1e9e 100644 --- a/java/ql/lib/semmle/code/java/ConflictingAccess.qll +++ b/java/ql/lib/semmle/code/java/ConflictingAccess.qll @@ -44,11 +44,11 @@ predicate isThreadSafeType(Type t) { /** Holds if the expression `e` is a thread-safe initializer. */ predicate isThreadSafeInitializer(Expr e) { - e.(Call) - .getCallee() - .getSourceDeclaration() - .getQualifiedName() - .matches("java.util.Collections.synchronized%") + exists(string name | + e.(Call).getCallee().getSourceDeclaration().hasQualifiedName("java.util", "Collections", name) + | + name.matches("synchronized%") + ) } /** @@ -132,7 +132,7 @@ class ClassAnnotatedAsThreadSafe extends Class { * Holds if the field access `a` to the field `f` is not protected by any monitor, and it can be reached via the expression `e` in the method `m`. * We maintain the invariant that `m = e.getEnclosingCallable()`. */ - predicate unlocked_access(ExposedField f, Expr e, Method m, ExposedFieldAccess a, boolean write) { + predicate unlockedAccess(ExposedField f, Expr e, Method m, ExposedFieldAccess a, boolean write) { m.getDeclaringType() = this and ( // base case @@ -143,7 +143,7 @@ class ClassAnnotatedAsThreadSafe extends Class { (if Modification::isModifying(a) then write = true else write = false) or // recursive case - exists(MethodCall c, Expr e0, Method m0 | this.unlocked_access(f, e0, m0, a, write) | + exists(MethodCall c, Expr e0, Method m0 | this.unlockedAccess(f, e0, m0, a, write) | m = c.getEnclosingCallable() and not m0.isPublic() and c.getCallee().getSourceDeclaration() = m0 and @@ -154,22 +154,22 @@ class ClassAnnotatedAsThreadSafe extends Class { } /** Holds if the class has an unlocked access to the field `f` via the expression `e` in the method `m`. */ - predicate has_unlocked_access(ExposedField f, Expr e, Method m, boolean write) { - this.unlocked_access(f, e, m, _, write) + predicate hasUnlockedAccess(ExposedField f, Expr e, Method m, boolean write) { + this.unlockedAccess(f, e, m, _, write) } /** Holds if the field access `a` to the field `f` is not protected by any monitor, and it can be reached via the expression `e` in the public method `m`. */ - predicate unlocked_public_access( + predicate unlockedPublicAccess( ExposedField f, Expr e, Method m, ExposedFieldAccess a, boolean write ) { - this.unlocked_access(f, e, m, a, write) and + this.unlockedAccess(f, e, m, a, write) and m.isPublic() and not Monitors::locallyMonitors(e, _) } /** Holds if the class has an unlocked access to the field `f` via the expression `e` in the public method `m`. */ - predicate has_unlocked_public_access(ExposedField f, Expr e, Method m, boolean write) { - this.unlocked_public_access(f, e, m, _, write) + predicate hasUnlockedPublicAccess(ExposedField f, Expr e, Method m, boolean write) { + this.unlockedPublicAccess(f, e, m, _, write) } // Cases where all accesses to a field are protected by exactly one monitor @@ -177,15 +177,15 @@ class ClassAnnotatedAsThreadSafe extends Class { /** * Holds if the class has an access, locked by exactly one monitor, to the field `f` via the expression `e` in the method `m`. */ - predicate has_onelocked_access( + predicate hasOnelockedAccess( ExposedField f, Expr e, Method m, boolean write, Monitors::Monitor monitor ) { //base - this.has_unlocked_access(f, e, m, write) and + this.hasUnlockedAccess(f, e, m, write) and Monitors::locallyMonitors(e, monitor) or // recursive case - exists(MethodCall c, Method m0 | this.has_onelocked_access(f, _, m0, write, monitor) | + exists(MethodCall c, Method m0 | this.hasOnelockedAccess(f, _, m0, write, monitor) | m = c.getEnclosingCallable() and not m0.isPublic() and c.getCallee().getSourceDeclaration() = m0 and @@ -197,34 +197,33 @@ class ClassAnnotatedAsThreadSafe extends Class { } /** Holds if the class has an access, locked by exactly one monitor, to the field `f` via the expression `e` in the public method `m`. */ - predicate has_onelocked_public_access( + predicate hasOnelockedPublicAccess( ExposedField f, Expr e, Method m, boolean write, Monitors::Monitor monitor ) { - this.has_onelocked_access(f, e, m, write, monitor) and + this.hasOnelockedAccess(f, e, m, write, monitor) and m.isPublic() and - not this.has_unlocked_public_access(f, e, m, write) + not this.hasUnlockedPublicAccess(f, e, m, write) } /** Holds if the field `f` has more than one access, all locked by a single monitor, but different monitors are used. */ - predicate single_monitor_mismatch(ExposedField f) { - 2 <= - strictcount(Monitors::Monitor monitor | this.has_onelocked_public_access(f, _, _, _, monitor)) + predicate singleMonitorMismatch(ExposedField f) { + 2 <= strictcount(Monitors::Monitor monitor | this.hasOnelockedPublicAccess(f, _, _, _, monitor)) } // Cases where all accesses to a field are protected by at least one monitor // /** Holds if the class has an access, locked by at least one monitor, to the field `f` via the expression `e` in the method `m`. */ - predicate has_onepluslocked_access( + predicate hasOnepluslockedAccess( ExposedField f, Expr e, Method m, boolean write, Monitors::Monitor monitor ) { //base - this.has_onelocked_access(f, e, m, write, monitor) and - not this.single_monitor_mismatch(f) and - not this.has_unlocked_public_access(f, _, _, _) + this.hasOnelockedAccess(f, e, m, write, monitor) and + not this.singleMonitorMismatch(f) and + not this.hasUnlockedPublicAccess(f, _, _, _) or // recursive case exists(MethodCall c, Method m0, Monitors::Monitor monitor0 | - this.has_onepluslocked_access(f, _, m0, write, monitor0) and + this.hasOnepluslockedAccess(f, _, m0, write, monitor0) and m = c.getEnclosingCallable() and not m0.isPublic() and c.getCallee().getSourceDeclaration() = m0 and @@ -238,27 +237,27 @@ class ClassAnnotatedAsThreadSafe extends Class { } /** Holds if the class has a write access to the field `f` that can be reached via a public method. */ - predicate has_public_write_access(ExposedField f) { - this.has_unlocked_public_access(f, _, _, true) + predicate hasPublicWriteAccess(ExposedField f) { + this.hasUnlockedPublicAccess(f, _, _, true) or - this.has_onelocked_public_access(f, _, _, true, _) + this.hasOnelockedPublicAccess(f, _, _, true, _) or exists(Method m | m.getDeclaringType() = this and m.isPublic() | - this.has_onepluslocked_access(f, _, m, true, _) + this.hasOnepluslockedAccess(f, _, m, true, _) ) } /** Holds if the class has an access, not protected by the monitor `m`, to the field `f` via the expression `e` in the method `m`. */ - predicate escapes_monitor( + predicate escapesMonitor( ExposedField f, Expr e, Method m, boolean write, Monitors::Monitor monitor ) { //base - this.has_onepluslocked_access(f, _, _, _, monitor) and - this.has_unlocked_access(f, e, m, write) and + this.hasOnepluslockedAccess(f, _, _, _, monitor) and + this.hasUnlockedAccess(f, e, m, write) and not Monitors::locallyMonitors(e, monitor) or // recursive case - exists(MethodCall c, Method m0 | this.escapes_monitor(f, _, m0, write, monitor) | + exists(MethodCall c, Method m0 | this.escapesMonitor(f, _, m0, write, monitor) | m = c.getEnclosingCallable() and not m0.isPublic() and c.getCallee().getSourceDeclaration() = m0 and @@ -269,17 +268,17 @@ class ClassAnnotatedAsThreadSafe extends Class { } /** Holds if the class has an access, not protected by the monitor `m`, to the field `f` via the expression `e` in the public method `m`. */ - predicate escapes_monitor_public( + predicate escapesMonitorPublic( ExposedField f, Expr e, Method m, boolean write, Monitors::Monitor monitor ) { - this.escapes_monitor(f, e, m, write, monitor) and + this.escapesMonitor(f, e, m, write, monitor) and m.isPublic() } /** Holds if no monitor protects all accesses to the field `f`. */ - predicate not_fully_monitored(ExposedField f) { - forex(Monitors::Monitor monitor | this.has_onepluslocked_access(f, _, _, _, monitor) | - this.escapes_monitor_public(f, _, _, _, monitor) + predicate notFullyMonitored(ExposedField f) { + forex(Monitors::Monitor monitor | this.hasOnepluslockedAccess(f, _, _, _, monitor) | + this.escapesMonitorPublic(f, _, _, _, monitor) ) } } diff --git a/java/ql/src/Likely Bugs/Concurrency/ThreadSafe.ql b/java/ql/src/Likely Bugs/Concurrency/ThreadSafe.ql index bdb081ec4a6..fafa4701ed2 100644 --- a/java/ql/src/Likely Bugs/Concurrency/ThreadSafe.ql +++ b/java/ql/src/Likely Bugs/Concurrency/ThreadSafe.ql @@ -14,43 +14,38 @@ import java import semmle.code.java.ConflictingAccess -predicate unmonitored_access( - ClassAnnotatedAsThreadSafe cls, ExposedFieldAccess a, Expr entry, string msg, string entry_desc -) { - exists(ExposedField f | - cls.unlocked_public_access(f, entry, _, a, true) +predicate unmonitoredAccess(ExposedFieldAccess a, string msg, Expr entry, string entry_desc) { + exists(ClassAnnotatedAsThreadSafe cls, ExposedField f | + cls.unlockedPublicAccess(f, entry, _, a, true) or - cls.unlocked_public_access(f, entry, _, a, false) and - cls.has_public_write_access(f) + cls.unlockedPublicAccess(f, entry, _, a, false) and + cls.hasPublicWriteAccess(f) ) and msg = "This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe." and entry_desc = "this expression" } -predicate not_fully_monitored_field( - ClassAnnotatedAsThreadSafe cls, ExposedField f, string msg, string cls_name +predicate notFullyMonitoredField( + ExposedField f, string msg, ClassAnnotatedAsThreadSafe cls, string cls_name ) { ( // Technically there has to be a write access for a conflict to exist. // But if you are locking your reads with different locks, you likely made a typo, // so in this case we alert without requiring `cls.has_public_write_access(f)` - cls.single_monitor_mismatch(f) + cls.singleMonitorMismatch(f) or - cls.not_fully_monitored(f) and - cls.has_public_write_access(f) + cls.notFullyMonitored(f) and + cls.hasPublicWriteAccess(f) ) and msg = "This field is not properly synchronized in that no single monitor covers all accesses, but the class $@ is annotated as @ThreadSafe." and cls_name = cls.getName() } -from - ClassAnnotatedAsThreadSafe cls, Top alert_element, Top alert_context, string alert_msg, - string context_desc +from Top alert_element, Top alert_context, string alert_msg, string context_desc where - unmonitored_access(cls, alert_element, alert_context, alert_msg, context_desc) + unmonitoredAccess(alert_element, alert_msg, alert_context, context_desc) or - not_fully_monitored_field(cls, alert_element, alert_msg, context_desc) and - alert_context = cls + notFullyMonitoredField(alert_element, alert_msg, alert_context, context_desc) select alert_element, alert_msg, alert_context, context_desc diff --git a/java/ql/test/query-tests/ThreadSafe/ThreadSafe.expected b/java/ql/test/query-tests/ThreadSafe/ThreadSafe.expected index ae2bd4ea5c8..d6005400129 100644 --- a/java/ql/test/query-tests/ThreadSafe/ThreadSafe.expected +++ b/java/ql/test/query-tests/ThreadSafe/ThreadSafe.expected @@ -10,12 +10,12 @@ | examples/C.java:30:13:30:13 | y | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/C.java:30:13:30:13 | y | this expression | | examples/C.java:33:9:33:9 | y | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/C.java:33:9:33:9 | y | this expression | | examples/FaultyTurnstileExample.java:18:5:18:9 | count | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/FaultyTurnstileExample.java:18:5:18:9 | count | this expression | -| examples/FaultyTurnstileExample.java:26:15:26:19 | count | The field $@ is not properly synchronized in that no single monitor covers all accesses, but the class $@ is annotated as @ThreadSafe. | examples/FaultyTurnstileExample.java:23:7:23:29 | FaultyTurnstileExample2 | FaultyTurnstileExample2 | +| examples/FaultyTurnstileExample.java:26:15:26:19 | count | This field is not properly synchronized in that no single monitor covers all accesses, but the class $@ is annotated as @ThreadSafe. | examples/FaultyTurnstileExample.java:23:7:23:29 | FaultyTurnstileExample2 | FaultyTurnstileExample2 | | examples/FlawedSemaphore.java:15:14:15:18 | state | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/FlawedSemaphore.java:15:14:15:18 | state | this expression | | examples/FlawedSemaphore.java:18:7:18:11 | state | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/FlawedSemaphore.java:18:7:18:11 | state | this expression | -| examples/LockExample.java:18:15:18:20 | length | The field $@ is not properly synchronized in that no single monitor covers all accesses, but the class $@ is annotated as @ThreadSafe. | examples/LockExample.java:14:14:14:24 | LockExample | LockExample | -| examples/LockExample.java:19:15:19:31 | notRelatedToOther | The field $@ is not properly synchronized in that no single monitor covers all accesses, but the class $@ is annotated as @ThreadSafe. | examples/LockExample.java:14:14:14:24 | LockExample | LockExample | -| examples/LockExample.java:20:17:20:23 | content | The field $@ is not properly synchronized in that no single monitor covers all accesses, but the class $@ is annotated as @ThreadSafe. | examples/LockExample.java:14:14:14:24 | LockExample | LockExample | +| examples/LockExample.java:18:15:18:20 | length | This field is not properly synchronized in that no single monitor covers all accesses, but the class $@ is annotated as @ThreadSafe. | examples/LockExample.java:14:14:14:24 | LockExample | LockExample | +| examples/LockExample.java:19:15:19:31 | notRelatedToOther | This field is not properly synchronized in that no single monitor covers all accesses, but the class $@ is annotated as @ThreadSafe. | examples/LockExample.java:14:14:14:24 | LockExample | LockExample | +| examples/LockExample.java:20:17:20:23 | content | This field is not properly synchronized in that no single monitor covers all accesses, but the class $@ is annotated as @ThreadSafe. | examples/LockExample.java:14:14:14:24 | LockExample | LockExample | | examples/LockExample.java:44:5:44:10 | length | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/LockExample.java:44:5:44:10 | length | this expression | | examples/LockExample.java:45:5:45:11 | content | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/LockExample.java:45:5:45:11 | content | this expression | | examples/LockExample.java:45:13:45:18 | length | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/LockExample.java:45:13:45:18 | length | this expression | @@ -36,7 +36,7 @@ | examples/LockExample.java:153:5:153:21 | notRelatedToOther | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/LockExample.java:153:5:153:21 | notRelatedToOther | this expression | | examples/SyncLstExample.java:45:5:45:7 | lst | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/SyncLstExample.java:45:5:45:7 | lst | this expression | | examples/SyncStackExample.java:37:5:37:7 | stc | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/SyncStackExample.java:37:5:37:7 | stc | this expression | -| examples/SynchronizedAndLock.java:10:17:10:22 | length | The field $@ is not properly synchronized in that no single monitor covers all accesses, but the class $@ is annotated as @ThreadSafe. | examples/SynchronizedAndLock.java:7:14:7:32 | SynchronizedAndLock | SynchronizedAndLock | +| examples/SynchronizedAndLock.java:10:17:10:22 | length | This field is not properly synchronized in that no single monitor covers all accesses, but the class $@ is annotated as @ThreadSafe. | examples/SynchronizedAndLock.java:7:14:7:32 | SynchronizedAndLock | SynchronizedAndLock | | examples/Test.java:52:5:52:10 | this.y | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/Test.java:24:5:24:18 | setYPrivate(...) | this expression | | examples/Test.java:60:5:60:10 | this.y | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/Test.java:60:5:60:10 | this.y | this expression | | examples/Test.java:74:5:74:10 | this.y | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/Test.java:74:5:74:10 | this.y | this expression | From f4878b38069642b59389ee42c10fe72bfeb1c139 Mon Sep 17 00:00:00 2001 From: yoff Date: Tue, 21 Oct 2025 13:24:23 +0200 Subject: [PATCH 020/126] java: make as many predicates private as possible --- java/ql/lib/semmle/code/java/Concurrency.qll | 6 +++--- .../semmle/code/java/ConflictingAccess.qll | 20 ++++++++++--------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/java/ql/lib/semmle/code/java/Concurrency.qll b/java/ql/lib/semmle/code/java/Concurrency.qll index 7fbf0647b27..b16aa850c39 100644 --- a/java/ql/lib/semmle/code/java/Concurrency.qll +++ b/java/ql/lib/semmle/code/java/Concurrency.qll @@ -15,19 +15,19 @@ class LockType extends RefType { } /** Gets a method that is locking this lock type. */ - Method getLockMethod() { + private Method getLockMethod() { result.getDeclaringType() = this and result.hasName(["lock", "lockInterruptibly", "tryLock"]) } /** Gets a method that is unlocking this lock type. */ - Method getUnlockMethod() { + private Method getUnlockMethod() { result.getDeclaringType() = this and result.hasName("unlock") } /** Gets an `isHeldByCurrentThread` method of this lock type. */ - Method getIsHeldByCurrentThreadMethod() { + private Method getIsHeldByCurrentThreadMethod() { result.getDeclaringType() = this and result.hasName("isHeldByCurrentThread") } diff --git a/java/ql/lib/semmle/code/java/ConflictingAccess.qll b/java/ql/lib/semmle/code/java/ConflictingAccess.qll index 39f8a5e1e9e..ceff3e4ffa3 100644 --- a/java/ql/lib/semmle/code/java/ConflictingAccess.qll +++ b/java/ql/lib/semmle/code/java/ConflictingAccess.qll @@ -43,7 +43,7 @@ predicate isThreadSafeType(Type t) { } /** Holds if the expression `e` is a thread-safe initializer. */ -predicate isThreadSafeInitializer(Expr e) { +private predicate isThreadSafeInitializer(Expr e) { exists(string name | e.(Call).getCallee().getSourceDeclaration().hasQualifiedName("java.util", "Collections", name) | @@ -132,7 +132,9 @@ class ClassAnnotatedAsThreadSafe extends Class { * Holds if the field access `a` to the field `f` is not protected by any monitor, and it can be reached via the expression `e` in the method `m`. * We maintain the invariant that `m = e.getEnclosingCallable()`. */ - predicate unlockedAccess(ExposedField f, Expr e, Method m, ExposedFieldAccess a, boolean write) { + private predicate unlockedAccess( + ExposedField f, Expr e, Method m, ExposedFieldAccess a, boolean write + ) { m.getDeclaringType() = this and ( // base case @@ -154,7 +156,7 @@ class ClassAnnotatedAsThreadSafe extends Class { } /** Holds if the class has an unlocked access to the field `f` via the expression `e` in the method `m`. */ - predicate hasUnlockedAccess(ExposedField f, Expr e, Method m, boolean write) { + private predicate hasUnlockedAccess(ExposedField f, Expr e, Method m, boolean write) { this.unlockedAccess(f, e, m, _, write) } @@ -168,7 +170,7 @@ class ClassAnnotatedAsThreadSafe extends Class { } /** Holds if the class has an unlocked access to the field `f` via the expression `e` in the public method `m`. */ - predicate hasUnlockedPublicAccess(ExposedField f, Expr e, Method m, boolean write) { + private predicate hasUnlockedPublicAccess(ExposedField f, Expr e, Method m, boolean write) { this.unlockedPublicAccess(f, e, m, _, write) } @@ -177,7 +179,7 @@ class ClassAnnotatedAsThreadSafe extends Class { /** * Holds if the class has an access, locked by exactly one monitor, to the field `f` via the expression `e` in the method `m`. */ - predicate hasOnelockedAccess( + private predicate hasOnelockedAccess( ExposedField f, Expr e, Method m, boolean write, Monitors::Monitor monitor ) { //base @@ -197,7 +199,7 @@ class ClassAnnotatedAsThreadSafe extends Class { } /** Holds if the class has an access, locked by exactly one monitor, to the field `f` via the expression `e` in the public method `m`. */ - predicate hasOnelockedPublicAccess( + private predicate hasOnelockedPublicAccess( ExposedField f, Expr e, Method m, boolean write, Monitors::Monitor monitor ) { this.hasOnelockedAccess(f, e, m, write, monitor) and @@ -213,7 +215,7 @@ class ClassAnnotatedAsThreadSafe extends Class { // Cases where all accesses to a field are protected by at least one monitor // /** Holds if the class has an access, locked by at least one monitor, to the field `f` via the expression `e` in the method `m`. */ - predicate hasOnepluslockedAccess( + private predicate hasOnepluslockedAccess( ExposedField f, Expr e, Method m, boolean write, Monitors::Monitor monitor ) { //base @@ -248,7 +250,7 @@ class ClassAnnotatedAsThreadSafe extends Class { } /** Holds if the class has an access, not protected by the monitor `m`, to the field `f` via the expression `e` in the method `m`. */ - predicate escapesMonitor( + private predicate escapesMonitor( ExposedField f, Expr e, Method m, boolean write, Monitors::Monitor monitor ) { //base @@ -268,7 +270,7 @@ class ClassAnnotatedAsThreadSafe extends Class { } /** Holds if the class has an access, not protected by the monitor `m`, to the field `f` via the expression `e` in the public method `m`. */ - predicate escapesMonitorPublic( + private predicate escapesMonitorPublic( ExposedField f, Expr e, Method m, boolean write, Monitors::Monitor monitor ) { this.escapesMonitor(f, e, m, write, monitor) and From f183a7223fd4d2676975e6e4089e8b369e7ab611 Mon Sep 17 00:00:00 2001 From: yoff Date: Tue, 21 Oct 2025 13:40:29 +0200 Subject: [PATCH 021/126] java: add test for `notFullyMonitored` --- .../ThreadSafe/ThreadSafe.expected | 1 + .../ThreadSafe/examples/ManyLocks.java | 37 +++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 java/ql/test/query-tests/ThreadSafe/examples/ManyLocks.java diff --git a/java/ql/test/query-tests/ThreadSafe/ThreadSafe.expected b/java/ql/test/query-tests/ThreadSafe/ThreadSafe.expected index d6005400129..a4da07d7ac6 100644 --- a/java/ql/test/query-tests/ThreadSafe/ThreadSafe.expected +++ b/java/ql/test/query-tests/ThreadSafe/ThreadSafe.expected @@ -34,6 +34,7 @@ | examples/LockExample.java:124:5:124:21 | notRelatedToOther | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/LockExample.java:124:5:124:21 | notRelatedToOther | this expression | | examples/LockExample.java:145:5:145:21 | notRelatedToOther | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/LockExample.java:145:5:145:21 | notRelatedToOther | this expression | | examples/LockExample.java:153:5:153:21 | notRelatedToOther | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/LockExample.java:153:5:153:21 | notRelatedToOther | this expression | +| examples/ManyLocks.java:8:15:8:15 | y | This field is not properly synchronized in that no single monitor covers all accesses, but the class $@ is annotated as @ThreadSafe. | examples/ManyLocks.java:7:14:7:22 | ManyLocks | ManyLocks | | examples/SyncLstExample.java:45:5:45:7 | lst | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/SyncLstExample.java:45:5:45:7 | lst | this expression | | examples/SyncStackExample.java:37:5:37:7 | stc | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/SyncStackExample.java:37:5:37:7 | stc | this expression | | examples/SynchronizedAndLock.java:10:17:10:22 | length | This field is not properly synchronized in that no single monitor covers all accesses, but the class $@ is annotated as @ThreadSafe. | examples/SynchronizedAndLock.java:7:14:7:32 | SynchronizedAndLock | SynchronizedAndLock | diff --git a/java/ql/test/query-tests/ThreadSafe/examples/ManyLocks.java b/java/ql/test/query-tests/ThreadSafe/examples/ManyLocks.java new file mode 100644 index 00000000000..93557ecdafe --- /dev/null +++ b/java/ql/test/query-tests/ThreadSafe/examples/ManyLocks.java @@ -0,0 +1,37 @@ +package examples; + +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; + +@ThreadSafe +public class ManyLocks { + private int y; // $ Alert + + private final Lock lock1 = new ReentrantLock(); + private final Lock lock2 = new ReentrantLock(); + private final Lock lock3 = new ReentrantLock(); + + public void inc() { + lock1.lock(); + lock2.lock(); + y++; + lock2.unlock(); + lock1.unlock(); + } + + public void dec() { + lock2.lock(); + lock3.lock(); + y--; + lock3.unlock(); + lock2.unlock(); + } + + public void reset() { + lock1.lock(); + lock3.lock(); + y = 0; + lock3.unlock(); + lock1.unlock(); + } +} \ No newline at end of file From 9e77e5b0468055aca55417569d3ab8831a1c103d Mon Sep 17 00:00:00 2001 From: yoff Date: Tue, 21 Oct 2025 14:02:36 +0200 Subject: [PATCH 022/126] java: add test with deeper paths also format test files --- .../ThreadSafe/ThreadSafe.expected | 3 +- .../ThreadSafe/examples/DeepPaths.java | 61 +++++++++++++++++++ .../ThreadSafe/examples/ManyLocks.java | 50 +++++++-------- 3 files changed, 88 insertions(+), 26 deletions(-) create mode 100644 java/ql/test/query-tests/ThreadSafe/examples/DeepPaths.java diff --git a/java/ql/test/query-tests/ThreadSafe/ThreadSafe.expected b/java/ql/test/query-tests/ThreadSafe/ThreadSafe.expected index a4da07d7ac6..3d73caaffe5 100644 --- a/java/ql/test/query-tests/ThreadSafe/ThreadSafe.expected +++ b/java/ql/test/query-tests/ThreadSafe/ThreadSafe.expected @@ -9,6 +9,7 @@ | examples/C.java:26:9:26:14 | this.y | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/C.java:26:9:26:14 | this.y | this expression | | examples/C.java:30:13:30:13 | y | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/C.java:30:13:30:13 | y | this expression | | examples/C.java:33:9:33:9 | y | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/C.java:33:9:33:9 | y | this expression | +| examples/DeepPaths.java:8:17:8:17 | y | This field is not properly synchronized in that no single monitor covers all accesses, but the class $@ is annotated as @ThreadSafe. | examples/DeepPaths.java:7:14:7:22 | DeepPaths | DeepPaths | | examples/FaultyTurnstileExample.java:18:5:18:9 | count | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/FaultyTurnstileExample.java:18:5:18:9 | count | this expression | | examples/FaultyTurnstileExample.java:26:15:26:19 | count | This field is not properly synchronized in that no single monitor covers all accesses, but the class $@ is annotated as @ThreadSafe. | examples/FaultyTurnstileExample.java:23:7:23:29 | FaultyTurnstileExample2 | FaultyTurnstileExample2 | | examples/FlawedSemaphore.java:15:14:15:18 | state | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/FlawedSemaphore.java:15:14:15:18 | state | this expression | @@ -34,7 +35,7 @@ | examples/LockExample.java:124:5:124:21 | notRelatedToOther | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/LockExample.java:124:5:124:21 | notRelatedToOther | this expression | | examples/LockExample.java:145:5:145:21 | notRelatedToOther | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/LockExample.java:145:5:145:21 | notRelatedToOther | this expression | | examples/LockExample.java:153:5:153:21 | notRelatedToOther | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/LockExample.java:153:5:153:21 | notRelatedToOther | this expression | -| examples/ManyLocks.java:8:15:8:15 | y | This field is not properly synchronized in that no single monitor covers all accesses, but the class $@ is annotated as @ThreadSafe. | examples/ManyLocks.java:7:14:7:22 | ManyLocks | ManyLocks | +| examples/ManyLocks.java:8:17:8:17 | y | This field is not properly synchronized in that no single monitor covers all accesses, but the class $@ is annotated as @ThreadSafe. | examples/ManyLocks.java:7:14:7:22 | ManyLocks | ManyLocks | | examples/SyncLstExample.java:45:5:45:7 | lst | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/SyncLstExample.java:45:5:45:7 | lst | this expression | | examples/SyncStackExample.java:37:5:37:7 | stc | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/SyncStackExample.java:37:5:37:7 | stc | this expression | | examples/SynchronizedAndLock.java:10:17:10:22 | length | This field is not properly synchronized in that no single monitor covers all accesses, but the class $@ is annotated as @ThreadSafe. | examples/SynchronizedAndLock.java:7:14:7:32 | SynchronizedAndLock | SynchronizedAndLock | diff --git a/java/ql/test/query-tests/ThreadSafe/examples/DeepPaths.java b/java/ql/test/query-tests/ThreadSafe/examples/DeepPaths.java new file mode 100644 index 00000000000..095087a5018 --- /dev/null +++ b/java/ql/test/query-tests/ThreadSafe/examples/DeepPaths.java @@ -0,0 +1,61 @@ +package examples; + +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; + +@ThreadSafe +public class DeepPaths { + private int y; // $ Alert + + private final Lock lock1 = new ReentrantLock(); + private final Lock lock2 = new ReentrantLock(); + private final Lock lock3 = new ReentrantLock(); + + public void layer1Locked() { + lock1.lock(); + this.layer2Locked(); + lock1.unlock(); + } + + private void layer2Locked() { + lock2.lock(); + this.layer3Unlocked(); + lock2.unlock(); + } + + private void layer3Locked() { + lock3.lock(); + y++; + lock3.unlock(); + } + + public void layer1Skip() { + lock2.lock(); + this.layer3Locked(); + lock2.unlock(); + } + + public void layer1Indirect() { + this.layer2(); + } + + private void layer2() { + this.layer2Locked(); + } + + public void layer1Unlocked() { + this.layer2Unlocked(); + } + + private void layer2Unlocked() { + this.layer3(); + } + + private void layer3() { + this.layer3Locked(); + } + + private void layer3Unlocked() { + y++; + } +} diff --git a/java/ql/test/query-tests/ThreadSafe/examples/ManyLocks.java b/java/ql/test/query-tests/ThreadSafe/examples/ManyLocks.java index 93557ecdafe..a7e19b3424b 100644 --- a/java/ql/test/query-tests/ThreadSafe/examples/ManyLocks.java +++ b/java/ql/test/query-tests/ThreadSafe/examples/ManyLocks.java @@ -5,33 +5,33 @@ import java.util.concurrent.locks.ReentrantLock; @ThreadSafe public class ManyLocks { - private int y; // $ Alert + private int y; // $ Alert - private final Lock lock1 = new ReentrantLock(); - private final Lock lock2 = new ReentrantLock(); - private final Lock lock3 = new ReentrantLock(); + private final Lock lock1 = new ReentrantLock(); + private final Lock lock2 = new ReentrantLock(); + private final Lock lock3 = new ReentrantLock(); - public void inc() { - lock1.lock(); - lock2.lock(); - y++; - lock2.unlock(); - lock1.unlock(); - } + public void inc() { + lock1.lock(); + lock2.lock(); + y++; + lock2.unlock(); + lock1.unlock(); + } - public void dec() { - lock2.lock(); - lock3.lock(); - y--; - lock3.unlock(); - lock2.unlock(); - } + public void dec() { + lock2.lock(); + lock3.lock(); + y--; + lock3.unlock(); + lock2.unlock(); + } - public void reset() { - lock1.lock(); - lock3.lock(); - y = 0; - lock3.unlock(); - lock1.unlock(); - } + public void reset() { + lock1.lock(); + lock3.lock(); + y = 0; + lock3.unlock(); + lock1.unlock(); + } } \ No newline at end of file From 2a43a95049cdfb53d1495c81c47e64edde91fee2 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 7 Oct 2025 20:14:56 +0200 Subject: [PATCH 023/126] Rust: More type inference tests --- .../PathResolutionConsistency.expected | 2 + .../type-inference/blanket_impl.rs | 79 +++++++++++ .../type-inference/type-inference.expected | 128 ++++++++++++------ 3 files changed, 169 insertions(+), 40 deletions(-) diff --git a/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected index 2a12ae35276..8d1db81d147 100644 --- a/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected @@ -1,4 +1,6 @@ multipleCallTargets +| blanket_impl.rs:257:18:257:27 | ... .m2() | +| blanket_impl.rs:259:18:259:24 | S1.m4() | | dereference.rs:69:15:69:24 | e1.deref() | | dereference.rs:182:17:182:26 | ... .foo() | | dereference.rs:183:17:183:23 | S.foo() | diff --git a/rust/ql/test/library-tests/type-inference/blanket_impl.rs b/rust/ql/test/library-tests/type-inference/blanket_impl.rs index 12449efe7d2..5f3a23ead89 100644 --- a/rust/ql/test/library-tests/type-inference/blanket_impl.rs +++ b/rust/ql/test/library-tests/type-inference/blanket_impl.rs @@ -184,6 +184,85 @@ mod extension_trait_blanket_impl { } } +mod blanket_like_impl { + #[derive(Debug, Copy, Clone)] + struct S1; + + #[derive(Debug, Copy, Clone)] + struct S2; + + trait MyTrait1 { + // MyTrait1::m1 + fn m1(self); + } + + trait MyTrait2 { + // MyTrait2::m2 + fn m2(self); + } + + trait MyTrait3 { + // MyTrait3::m3 + fn m3(self); + } + + trait MyTrait4a { + // MyTrait4a::m4 + fn m4(self); + } + + trait MyTrait4b { + // MyTrait4b::m4 + fn m4(self); + } + + impl MyTrait1 for S1 { + // S1::m1 + fn m1(self) {} + } + + impl MyTrait3 for S1 { + // S1::m3 + fn m3(self) {} + } + + impl MyTrait2 for &T { + // MyTrait2Ref::m2 + fn m2(self) { + self.m1() // $ target=MyTrait1::m1 + } + } + + impl MyTrait2 for &&S1 { + // MyTrait2RefRefS1::m2 + fn m2(self) { + self.m1() // $ MISSING: target=S1::m1 + } + } + + impl MyTrait4a for T { + // MyTrait4aBlanket::m4 + fn m4(self) { + self.m3() // $ target=MyTrait3::m3 + } + } + + impl MyTrait4b for &T { + // MyTrait4bRef::m4 + fn m4(self) {} + } + + pub fn test_basic_blanket() { + let x1 = S1.m1(); // $ target=S1::m1 + let x2 = (&S1).m2(); // $ target=MyTrait2Ref::m2 $ SPURIOUS: target=MyTrait2RefRefS1::m2 + let x3 = (&&S1).m2(); // $ target=MyTrait2RefRefS1::m2 + let x4 = S1.m4(); // $ target=MyTrait4aBlanket::m4 $ SPURIOUS: target=MyTrait4bRef::m4 + let x5 = (&S1).m4(); // $ target=MyTrait4bRef::m4 + let x6 = S2.m4(); // $ target=MyTrait4bRef::m4 + let x7 = (&S2).m4(); // $ target=MyTrait4bRef::m4 + } +} + pub mod sql_exec { // a highly simplified model of `MySqlConnection.execute` in SQLx 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 170651621c8..76b4afc482f 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -207,46 +207,94 @@ inferType | blanket_impl.rs:183:22:183:34 | my_other_flag | | blanket_impl.rs:160:5:162:5 | MyOtherFlag | | blanket_impl.rs:183:22:183:56 | my_other_flag.try_read_flag_twice() | | {EXTERNAL LOCATION} | Option | | blanket_impl.rs:183:22:183:56 | my_other_flag.try_read_flag_twice() | T | {EXTERNAL LOCATION} | bool | -| blanket_impl.rs:193:21:193:25 | SelfParam | | file://:0:0:0:0 | & | -| blanket_impl.rs:193:21:193:25 | SelfParam | &T | blanket_impl.rs:192:5:195:5 | Self [trait Executor] | -| blanket_impl.rs:194:24:194:28 | SelfParam | | file://:0:0:0:0 | & | -| blanket_impl.rs:194:24:194:28 | SelfParam | &T | blanket_impl.rs:192:5:195:5 | Self [trait Executor] | -| blanket_impl.rs:194:31:194:35 | query | | blanket_impl.rs:194:21:194:21 | E | -| blanket_impl.rs:198:21:198:25 | SelfParam | | file://:0:0:0:0 | & | -| blanket_impl.rs:198:21:198:25 | SelfParam | &T | blanket_impl.rs:197:10:197:22 | T | -| blanket_impl.rs:199:22:199:41 | "Executor::execute1\\n" | | file://:0:0:0:0 | & | -| blanket_impl.rs:199:22:199:41 | "Executor::execute1\\n" | &T | {EXTERNAL LOCATION} | str | -| blanket_impl.rs:199:22:199:41 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| blanket_impl.rs:199:22:199:41 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| blanket_impl.rs:202:24:202:28 | SelfParam | | file://:0:0:0:0 | & | -| blanket_impl.rs:202:24:202:28 | SelfParam | &T | blanket_impl.rs:197:10:197:22 | T | -| blanket_impl.rs:202:31:202:36 | _query | | blanket_impl.rs:202:21:202:21 | E | -| blanket_impl.rs:203:22:203:41 | "Executor::execute2\\n" | | file://:0:0:0:0 | & | -| blanket_impl.rs:203:22:203:41 | "Executor::execute2\\n" | &T | {EXTERNAL LOCATION} | str | -| blanket_impl.rs:203:22:203:41 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| blanket_impl.rs:203:22:203:41 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| blanket_impl.rs:212:13:212:13 | c | | blanket_impl.rs:207:5:207:29 | MySqlConnection | -| blanket_impl.rs:212:17:212:34 | MySqlConnection {...} | | blanket_impl.rs:207:5:207:29 | MySqlConnection | -| blanket_impl.rs:214:9:214:9 | c | | blanket_impl.rs:207:5:207:29 | MySqlConnection | -| blanket_impl.rs:215:35:215:36 | &c | | file://:0:0:0:0 | & | -| blanket_impl.rs:215:35:215:36 | &c | &T | blanket_impl.rs:207:5:207:29 | MySqlConnection | -| blanket_impl.rs:215:36:215:36 | c | | blanket_impl.rs:207:5:207:29 | MySqlConnection | -| blanket_impl.rs:217:9:217:9 | c | | blanket_impl.rs:207:5:207:29 | MySqlConnection | -| blanket_impl.rs:217:20:217:40 | "SELECT * FROM users" | | file://:0:0:0:0 | & | -| blanket_impl.rs:217:20:217:40 | "SELECT * FROM users" | &T | {EXTERNAL LOCATION} | str | -| blanket_impl.rs:218:9:218:9 | c | | blanket_impl.rs:207:5:207:29 | MySqlConnection | -| blanket_impl.rs:218:28:218:48 | "SELECT * FROM users" | | file://:0:0:0:0 | & | -| blanket_impl.rs:218:28:218:48 | "SELECT * FROM users" | &T | {EXTERNAL LOCATION} | str | -| blanket_impl.rs:219:35:219:36 | &c | | file://:0:0:0:0 | & | -| blanket_impl.rs:219:35:219:36 | &c | &T | blanket_impl.rs:207:5:207:29 | MySqlConnection | -| blanket_impl.rs:219:36:219:36 | c | | blanket_impl.rs:207:5:207:29 | MySqlConnection | -| blanket_impl.rs:219:39:219:59 | "SELECT * FROM users" | | file://:0:0:0:0 | & | -| blanket_impl.rs:219:39:219:59 | "SELECT * FROM users" | &T | {EXTERNAL LOCATION} | str | -| blanket_impl.rs:220:43:220:44 | &c | | file://:0:0:0:0 | & | -| blanket_impl.rs:220:43:220:44 | &c | &T | blanket_impl.rs:207:5:207:29 | MySqlConnection | -| blanket_impl.rs:220:44:220:44 | c | | blanket_impl.rs:207:5:207:29 | MySqlConnection | -| blanket_impl.rs:220:47:220:67 | "SELECT * FROM users" | | file://:0:0:0:0 | & | -| blanket_impl.rs:220:47:220:67 | "SELECT * FROM users" | &T | {EXTERNAL LOCATION} | str | +| blanket_impl.rs:196:15:196:18 | SelfParam | | blanket_impl.rs:194:5:197:5 | Self [trait MyTrait1] | +| blanket_impl.rs:201:15:201:18 | SelfParam | | blanket_impl.rs:199:5:202:5 | Self [trait MyTrait2] | +| blanket_impl.rs:206:15:206:18 | SelfParam | | blanket_impl.rs:204:5:207:5 | Self [trait MyTrait3] | +| blanket_impl.rs:211:15:211:18 | SelfParam | | blanket_impl.rs:209:5:212:5 | Self [trait MyTrait4a] | +| blanket_impl.rs:216:15:216:18 | SelfParam | | blanket_impl.rs:214:5:217:5 | Self [trait MyTrait4b] | +| blanket_impl.rs:221:15:221:18 | SelfParam | | blanket_impl.rs:188:5:189:14 | S1 | +| blanket_impl.rs:226:15:226:18 | SelfParam | | blanket_impl.rs:188:5:189:14 | S1 | +| blanket_impl.rs:231:15:231:18 | SelfParam | | file://:0:0:0:0 | & | +| blanket_impl.rs:231:15:231:18 | SelfParam | &T | blanket_impl.rs:229:10:229:27 | T | +| blanket_impl.rs:232:13:232:16 | self | | file://:0:0:0:0 | & | +| blanket_impl.rs:232:13:232:16 | self | &T | blanket_impl.rs:229:10:229:27 | T | +| blanket_impl.rs:238:15:238:18 | SelfParam | | file://:0:0:0:0 | & | +| blanket_impl.rs:238:15:238:18 | SelfParam | &T | file://:0:0:0:0 | & | +| blanket_impl.rs:238:15:238:18 | SelfParam | &T.&T | blanket_impl.rs:188:5:189:14 | S1 | +| blanket_impl.rs:239:13:239:16 | self | | file://:0:0:0:0 | & | +| blanket_impl.rs:239:13:239:16 | self | &T | file://:0:0:0:0 | & | +| blanket_impl.rs:239:13:239:16 | self | &T.&T | blanket_impl.rs:188:5:189:14 | S1 | +| blanket_impl.rs:245:15:245:18 | SelfParam | | blanket_impl.rs:243:10:243:20 | T | +| blanket_impl.rs:246:13:246:16 | self | | blanket_impl.rs:243:10:243:20 | T | +| blanket_impl.rs:252:15:252:18 | SelfParam | | file://:0:0:0:0 | & | +| blanket_impl.rs:252:15:252:18 | SelfParam | &T | blanket_impl.rs:250:10:250:10 | T | +| blanket_impl.rs:256:18:256:19 | S1 | | blanket_impl.rs:188:5:189:14 | S1 | +| blanket_impl.rs:257:18:257:22 | (...) | | file://:0:0:0:0 | & | +| blanket_impl.rs:257:18:257:22 | (...) | &T | blanket_impl.rs:188:5:189:14 | S1 | +| blanket_impl.rs:257:19:257:21 | &S1 | | file://:0:0:0:0 | & | +| blanket_impl.rs:257:19:257:21 | &S1 | &T | blanket_impl.rs:188:5:189:14 | S1 | +| blanket_impl.rs:257:20:257:21 | S1 | | blanket_impl.rs:188:5:189:14 | S1 | +| blanket_impl.rs:258:18:258:23 | (...) | | file://:0:0:0:0 | & | +| blanket_impl.rs:258:18:258:23 | (...) | &T | file://:0:0:0:0 | & | +| blanket_impl.rs:258:18:258:23 | (...) | &T.&T | blanket_impl.rs:188:5:189:14 | S1 | +| blanket_impl.rs:258:19:258:22 | &... | | file://:0:0:0:0 | & | +| blanket_impl.rs:258:19:258:22 | &... | &T | file://:0:0:0:0 | & | +| blanket_impl.rs:258:19:258:22 | &... | &T.&T | blanket_impl.rs:188:5:189:14 | S1 | +| blanket_impl.rs:258:20:258:22 | &S1 | | file://:0:0:0:0 | & | +| blanket_impl.rs:258:20:258:22 | &S1 | &T | blanket_impl.rs:188:5:189:14 | S1 | +| blanket_impl.rs:258:21:258:22 | S1 | | blanket_impl.rs:188:5:189:14 | S1 | +| blanket_impl.rs:259:18:259:19 | S1 | | blanket_impl.rs:188:5:189:14 | S1 | +| blanket_impl.rs:260:18:260:22 | (...) | | file://:0:0:0:0 | & | +| blanket_impl.rs:260:18:260:22 | (...) | &T | blanket_impl.rs:188:5:189:14 | S1 | +| blanket_impl.rs:260:19:260:21 | &S1 | | file://:0:0:0:0 | & | +| blanket_impl.rs:260:19:260:21 | &S1 | &T | blanket_impl.rs:188:5:189:14 | S1 | +| blanket_impl.rs:260:20:260:21 | S1 | | blanket_impl.rs:188:5:189:14 | S1 | +| blanket_impl.rs:261:18:261:19 | S2 | | blanket_impl.rs:191:5:192:14 | S2 | +| blanket_impl.rs:262:18:262:22 | (...) | | file://:0:0:0:0 | & | +| blanket_impl.rs:262:18:262:22 | (...) | &T | blanket_impl.rs:191:5:192:14 | S2 | +| blanket_impl.rs:262:19:262:21 | &S2 | | file://:0:0:0:0 | & | +| blanket_impl.rs:262:19:262:21 | &S2 | &T | blanket_impl.rs:191:5:192:14 | S2 | +| blanket_impl.rs:262:20:262:21 | S2 | | blanket_impl.rs:191:5:192:14 | S2 | +| blanket_impl.rs:272:21:272:25 | SelfParam | | file://:0:0:0:0 | & | +| blanket_impl.rs:272:21:272:25 | SelfParam | &T | blanket_impl.rs:271:5:274:5 | Self [trait Executor] | +| blanket_impl.rs:273:24:273:28 | SelfParam | | file://:0:0:0:0 | & | +| blanket_impl.rs:273:24:273:28 | SelfParam | &T | blanket_impl.rs:271:5:274:5 | Self [trait Executor] | +| blanket_impl.rs:273:31:273:35 | query | | blanket_impl.rs:273:21:273:21 | E | +| blanket_impl.rs:277:21:277:25 | SelfParam | | file://:0:0:0:0 | & | +| blanket_impl.rs:277:21:277:25 | SelfParam | &T | blanket_impl.rs:276:10:276:22 | T | +| blanket_impl.rs:278:22:278:41 | "Executor::execute1\\n" | | file://:0:0:0:0 | & | +| blanket_impl.rs:278:22:278:41 | "Executor::execute1\\n" | &T | {EXTERNAL LOCATION} | str | +| blanket_impl.rs:278:22:278:41 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| blanket_impl.rs:278:22:278:41 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| blanket_impl.rs:281:24:281:28 | SelfParam | | file://:0:0:0:0 | & | +| blanket_impl.rs:281:24:281:28 | SelfParam | &T | blanket_impl.rs:276:10:276:22 | T | +| blanket_impl.rs:281:31:281:36 | _query | | blanket_impl.rs:281:21:281:21 | E | +| blanket_impl.rs:282:22:282:41 | "Executor::execute2\\n" | | file://:0:0:0:0 | & | +| blanket_impl.rs:282:22:282:41 | "Executor::execute2\\n" | &T | {EXTERNAL LOCATION} | str | +| blanket_impl.rs:282:22:282:41 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| blanket_impl.rs:282:22:282:41 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| 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 | +| blanket_impl.rs:293:9:293:9 | c | | blanket_impl.rs:286:5:286:29 | MySqlConnection | +| blanket_impl.rs:294:35:294:36 | &c | | file://:0:0:0:0 | & | +| blanket_impl.rs:294:35:294:36 | &c | &T | blanket_impl.rs:286:5:286:29 | MySqlConnection | +| blanket_impl.rs:294:36:294:36 | c | | blanket_impl.rs:286:5:286:29 | MySqlConnection | +| blanket_impl.rs:296:9:296:9 | c | | blanket_impl.rs:286:5:286:29 | MySqlConnection | +| blanket_impl.rs:296:20:296:40 | "SELECT * FROM users" | | file://:0:0:0:0 | & | +| blanket_impl.rs:296:20:296:40 | "SELECT * FROM users" | &T | {EXTERNAL LOCATION} | str | +| blanket_impl.rs:297:9:297:9 | c | | blanket_impl.rs:286:5:286:29 | MySqlConnection | +| blanket_impl.rs:297:28:297:48 | "SELECT * FROM users" | | file://:0:0:0:0 | & | +| blanket_impl.rs:297:28:297:48 | "SELECT * FROM users" | &T | {EXTERNAL LOCATION} | str | +| blanket_impl.rs:298:35:298:36 | &c | | file://:0:0:0:0 | & | +| blanket_impl.rs:298:35:298:36 | &c | &T | blanket_impl.rs:286:5:286:29 | MySqlConnection | +| blanket_impl.rs:298:36:298:36 | c | | blanket_impl.rs:286:5:286:29 | MySqlConnection | +| blanket_impl.rs:298:39:298:59 | "SELECT * FROM users" | | file://:0:0:0:0 | & | +| blanket_impl.rs:298:39:298:59 | "SELECT * FROM users" | &T | {EXTERNAL LOCATION} | str | +| blanket_impl.rs:299:43:299:44 | &c | | file://:0:0:0:0 | & | +| blanket_impl.rs:299:43:299:44 | &c | &T | blanket_impl.rs:286:5:286:29 | MySqlConnection | +| blanket_impl.rs:299:44:299:44 | c | | blanket_impl.rs:286:5:286:29 | MySqlConnection | +| blanket_impl.rs:299:47:299:67 | "SELECT * FROM users" | | file://:0:0:0:0 | & | +| blanket_impl.rs:299:47:299:67 | "SELECT * FROM users" | &T | {EXTERNAL LOCATION} | str | | closure.rs:6:13:6:22 | my_closure | | {EXTERNAL LOCATION} | dyn FnOnce | | closure.rs:6:13:6:22 | my_closure | dyn(Args) | file://:0:0:0:0 | (T_2) | | closure.rs:6:13:6:22 | my_closure | dyn(Args).0(2) | {EXTERNAL LOCATION} | bool | From 0e885e929795b5c146f2b96eb6f9e49a26db343b Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Thu, 9 Oct 2025 12:50:29 +0200 Subject: [PATCH 024/126] Rust: Compute incompatible blanket implementations --- .../codeql/rust/internal/TypeInference.qll | 179 ++++++++++++++---- .../typeinference/BlanketImplementation.qll | 13 ++ .../PathResolutionConsistency.expected | 2 - .../type-inference/blanket_impl.rs | 4 +- .../typeinference/internal/TypeInference.qll | 69 ++++++- 5 files changed, 218 insertions(+), 49 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index bcc18342c00..b8c543ee95b 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -901,14 +901,14 @@ private predicate assocFunctionInfo( /** * Holds if function `f` with the name `name` and the arity `arity` exists in - * blanket implementation `impl` of `trait`, and the type at position + * blanket (like) implementation `impl` of `trait`, and the type at position * `pos` is `t`. * * `blanketPath` points to the type `blanketTypeParam` inside `t`, which * is the type parameter used in the blanket implementation. */ pragma[nomagic] -private predicate functionInfoBlanket( +private predicate functionInfoBlanketLike( Function f, string name, int arity, ImplItemNode impl, Trait trait, FunctionPosition pos, AssocFunctionType t, TypePath blanketPath, TypeParam blanketTypeParam ) { @@ -1027,19 +1027,20 @@ private module MethodResolution { /** * Holds if method `m` with the name `name` and the arity `arity` exists in - * blanket implementation `impl` of `trait`, and the type of the `self` + * blanket (like) implementation `impl` of `trait`, and the type of the `self` * parameter is `selfType`. * * `blanketPath` points to the type `blanketTypeParam` inside `selfType`, which * is the type parameter used in the blanket implementation. */ pragma[nomagic] - private predicate methodInfoBlanket( + private predicate methodInfoBlanketLike( Method m, string name, int arity, ImplItemNode impl, Trait trait, AssocFunctionType selfType, TypePath blanketPath, TypeParam blanketTypeParam ) { exists(FunctionPosition pos | - functionInfoBlanket(m, name, arity, impl, trait, pos, selfType, blanketPath, blanketTypeParam) and + functionInfoBlanketLike(m, name, arity, impl, trait, pos, selfType, blanketPath, + blanketTypeParam) and pos.isSelf() ) } @@ -1113,8 +1114,8 @@ private module MethodResolution { } /** - * Holds if method call `mc` may target a method in blanket implementation `i` - * with `self` parameter having type `selfType`. + * Holds if method call `mc` may target a method in blanket (like) implementation + * `impl` with `self` parameter having type `selfType`. * * `blanketPath` points to the type `blanketTypeParam` inside `selfType`, which * is the type parameter used in the blanket implementation. @@ -1125,13 +1126,13 @@ private module MethodResolution { */ bindingset[mc] pragma[inline_late] - private predicate methodCallBlanketCandidate( + private predicate methodCallBlanketLikeCandidate( MethodCall mc, Method m, ImplItemNode impl, AssocFunctionType self, TypePath blanketPath, TypeParam blanketTypeParam ) { exists(string name, int arity | mc.hasNameAndArity(name, arity) and - methodInfoBlanket(m, name, arity, impl, _, self, blanketPath, blanketTypeParam) + methodInfoBlanketLike(m, name, arity, impl, _, self, blanketPath, blanketTypeParam) | methodCallVisibleImplTraitCandidate(mc, impl) or @@ -1216,6 +1217,23 @@ private module MethodResolution { borrow), i, _) } + /** + * Holds if the method inside blanket-like implementation `impl` with matching name + * and arity can be ruled out as a target of this call, either because the candidate + * receiver type represented by `derefChain` and `borrow` is incompatible with the `self` + * parameter type, or because the blanket constraint is not satisfied. + */ + pragma[nomagic] + private predicate hasIncompatibleBlanketLikeTarget( + ImplItemNode impl, string derefChain, boolean borrow + ) { + ReceiverIsNotInstantiationOfBlanketLikeSelfParam::argIsNotInstantiationOf(MkMethodCallCand(this, + derefChain, borrow), impl, _) + or + ReceiverSatisfiesBlanketLikeConstraint::satisfiesNotBlanketConstraint(MkMethodCallCand(this, + derefChain, borrow), impl) + } + /** * Same as `getACandidateReceiverTypeAt`, but with traits substituted in for types * with trait bounds. @@ -1234,11 +1252,10 @@ private module MethodResolution { isComplexRootStripped(strippedTypePath, result) } - bindingset[strippedTypePath, strippedType, derefChain, borrow] - private predicate hasNoCompatibleTargetCheck( + bindingset[derefChain, borrow, strippedTypePath, strippedType] + private predicate hasNoCompatibleNonBlanketLikeTargetCheck( string derefChain, boolean borrow, TypePath strippedTypePath, Type strippedType ) { - // todo: also check that all blanket implementation candidates are incompatible forall(ImplOrTraitItemNode i | methodCallNonBlanketCandidate(this, _, i, _, strippedTypePath, strippedType) | @@ -1246,6 +1263,30 @@ private module MethodResolution { ) } + bindingset[derefChain, borrow, strippedTypePath, strippedType] + private predicate hasNoCompatibleTargetCheck( + string derefChain, boolean borrow, TypePath strippedTypePath, Type strippedType + ) { + this.hasNoCompatibleNonBlanketLikeTargetCheck(derefChain, borrow, strippedTypePath, + strippedType) and + forall(ImplItemNode i | methodCallBlanketLikeCandidate(this, _, i, _, _, _) | + this.hasIncompatibleBlanketLikeTarget(i, derefChain, borrow) + ) + } + + bindingset[derefChain, borrow, strippedTypePath, strippedType] + private predicate hasNoCompatibleNonBlanketTargetCheck( + string derefChain, boolean borrow, TypePath strippedTypePath, Type strippedType + ) { + this.hasNoCompatibleNonBlanketLikeTargetCheck(derefChain, borrow, strippedTypePath, + strippedType) and + forall(ImplItemNode i | + methodCallBlanketLikeCandidate(this, _, i, _, _, _) and not i.isBlanketImplementation() + | + this.hasIncompatibleBlanketLikeTarget(i, derefChain, borrow) + ) + } + /** * Holds if the candidate receiver type represented by `derefChain` does not * have a matching method target. @@ -1256,7 +1297,7 @@ private module MethodResolution { this.supportsAutoDerefAndBorrow() or // needed for the `hasNoCompatibleTarget` check in - // `SatisfiesBlanketConstraintInput::hasBlanketCandidate` + // `ReceiverSatisfiesBlanketLikeConstraintInput::hasBlanketCandidate` derefChain = "" ) and exists(TypePath strippedTypePath, Type strippedType | @@ -1266,6 +1307,26 @@ private module MethodResolution { ) } + /** + * Holds if the candidate receiver type represented by `derefChain` does not have + * a matching non-blanket method target. + */ + pragma[nomagic] + predicate hasNoCompatibleNonBlanketTargetNoBorrow(string derefChain) { + ( + this.supportsAutoDerefAndBorrow() + or + // needed for the `hasNoCompatibleTarget` check in + // `ReceiverSatisfiesBlanketLikeConstraintInput::hasBlanketCandidate` + derefChain = "" + ) and + exists(TypePath strippedTypePath, Type strippedType | + not derefChain.matches("%.ref") and // no need to try a borrow if the last thing we did was a deref + strippedType = this.getComplexStrippedType(derefChain, false, strippedTypePath) and + this.hasNoCompatibleNonBlanketTargetCheck(derefChain, false, strippedTypePath, strippedType) + ) + } + /** * Holds if the candidate receiver type represented by `derefChain`, followed * by a borrow, does not have a matching method target. @@ -1275,7 +1336,21 @@ private module MethodResolution { exists(TypePath strippedTypePath, Type strippedType | this.hasNoCompatibleTargetNoBorrow(derefChain) and strippedType = this.getComplexStrippedType(derefChain, true, strippedTypePath) and - this.hasNoCompatibleTargetCheck(derefChain, true, strippedTypePath, strippedType) + this.hasNoCompatibleNonBlanketLikeTargetCheck(derefChain, true, strippedTypePath, + strippedType) + ) + } + + /** + * Holds if the candidate receiver type represented by `derefChain`, followed + * by a borrow, does not have a matching non-blanket method target. + */ + pragma[nomagic] + predicate hasNoCompatibleNonBlanketTargetBorrow(string derefChain) { + exists(TypePath strippedTypePath, Type strippedType | + this.hasNoCompatibleTargetNoBorrow(derefChain) and + strippedType = this.getComplexStrippedType(derefChain, true, strippedTypePath) and + this.hasNoCompatibleNonBlanketTargetCheck(derefChain, true, strippedTypePath, strippedType) ) } @@ -1470,11 +1545,11 @@ private module MethodResolution { } pragma[nomagic] - predicate hasNoCompatibleTarget() { - mc_.hasNoCompatibleTargetBorrow(derefChain) and + predicate hasNoCompatibleNonBlanketTarget() { + mc_.hasNoCompatibleNonBlanketTargetBorrow(derefChain) and borrow = true or - mc_.hasNoCompatibleTargetNoBorrow(derefChain) and + mc_.hasNoCompatibleNonBlanketTargetNoBorrow(derefChain) and borrow = false } @@ -1555,20 +1630,20 @@ private module MethodResolution { Location getLocation() { result = mc_.getLocation() } } - private module ReceiverSatisfiesBlanketConstraintInput implements + private module ReceiverSatisfiesBlanketLikeConstraintInput implements BlanketImplementation::SatisfiesBlanketConstraintInputSig { pragma[nomagic] predicate hasBlanketCandidate( MethodCallCand mcc, ImplItemNode impl, TypePath blanketPath, TypeParam blanketTypeParam ) { - exists(MethodCall mc, string name, int arity | - mcc.hasSignature(mc, _, _, name, arity) and - methodCallBlanketCandidate(mc, _, impl, _, blanketPath, blanketTypeParam) and + exists(MethodCall mc | + mc = mcc.getMethodCall() and + methodCallBlanketLikeCandidate(mc, _, impl, _, blanketPath, blanketTypeParam) and // Only apply blanket implementations when no other implementations are possible; // this is to account for codebases that use the (unstable) specialization feature // (https://rust-lang.github.io/rfcs/1210-impl-specialization.html) - mcc.hasNoCompatibleTarget() + (mcc.hasNoCompatibleNonBlanketTarget() or not impl.isBlanketImplementation()) | mcc.hasNoBorrow() or @@ -1577,9 +1652,9 @@ private module MethodResolution { } } - private module ReceiverSatisfiesBlanketConstraint = + private module ReceiverSatisfiesBlanketLikeConstraint = BlanketImplementation::SatisfiesBlanketConstraint; + ReceiverSatisfiesBlanketLikeConstraintInput>; /** * A configuration for matching the type of a receiver against the type of @@ -1600,8 +1675,8 @@ private module MethodResolution { | methodCallNonBlanketCandidate(mc, m, i, selfType, strippedTypePath, strippedType) or - methodCallBlanketCandidate(mc, m, i, selfType, _, _) and - ReceiverSatisfiesBlanketConstraint::satisfiesBlanketConstraint(mcc, i) + methodCallBlanketLikeCandidate(mc, m, i, selfType, _, _) and + ReceiverSatisfiesBlanketLikeConstraint::satisfiesBlanketConstraint(mcc, i) ) } @@ -1626,6 +1701,30 @@ private module MethodResolution { private module ReceiverIsInstantiationOfSelfParam = ArgIsInstantiationOf; + /** + * A configuration for anti-matching the type of a receiver against the type of + * a `self` parameter belonging to a blanket (like) implementation. + */ + private module ReceiverIsNotInstantiationOfBlanketLikeSelfParamInput implements + IsInstantiationOfInputSig + { + pragma[nomagic] + predicate potentialInstantiationOf( + MethodCallCand mcc, TypeAbstraction abs, AssocFunctionType constraint + ) { + methodCallBlanketLikeCandidate(mcc.getMethodCall(), _, abs, constraint, _, _) and + if abs.(Impl).hasTrait() + then + // inherent methods take precedence over trait methods, so only allow + // trait methods when there are no matching inherent methods + mcc.hasNoInherentTarget() + else any() + } + } + + private module ReceiverIsNotInstantiationOfBlanketLikeSelfParam = + ArgIsInstantiationOf; + /** * A configuration for matching the type qualifier of a method call * against the type being implemented in an `impl` block. For example, @@ -1679,10 +1778,6 @@ private module MethodResolution { ReceiverIsInstantiationOfSelfParamInput::potentialInstantiationOf0(mcc, abs, constraint) and abs = any(Impl i | not i.hasTrait()) } - - predicate relevantConstraint(AssocFunctionType constraint) { - methodInfo(_, _, _, _, constraint, _, _) - } } private module ReceiverIsNotInstantiationOfInherentSelfParam = @@ -1948,18 +2043,18 @@ private module NonMethodResolution { } pragma[nomagic] - private predicate functionInfoBlanketRelevantPos( + private predicate functionInfoBlanketLikeRelevantPos( NonMethodFunction f, string name, int arity, ImplItemNode impl, Trait trait, FunctionPosition pos, AssocFunctionType t, TypePath blanketPath, TypeParam blanketTypeParam ) { - functionInfoBlanket(f, name, arity, impl, trait, pos, t, blanketPath, blanketTypeParam) and + functionInfoBlanketLike(f, name, arity, impl, trait, pos, t, blanketPath, blanketTypeParam) and ( if pos.isReturn() then // We only check that the context of the call provides relevant type information // when no argument can not exists(FunctionPosition pos0 | - functionInfoBlanket(f, name, arity, impl, trait, pos0, _, _, _) and + functionInfoBlanketLike(f, name, arity, impl, trait, pos0, _, _, _) and not pos0.isReturn() ) else any() @@ -1967,10 +2062,10 @@ private module NonMethodResolution { } pragma[nomagic] - private predicate blanketCallTraitCandidate(Element fc, Trait trait) { + private predicate blanketLikeCallTraitCandidate(Element fc, Trait trait) { exists(string name, int arity | fc.(NonMethodCall).hasNameAndArity(name, arity) and - functionInfoBlanketRelevantPos(_, name, arity, _, trait, _, _, _, _) + functionInfoBlanketLikeRelevantPos(_, name, arity, _, trait, _, _, _, _) | not fc.(Call).hasTrait() or @@ -1978,7 +2073,7 @@ private module NonMethodResolution { ) } - private module BlanketTraitIsVisible = TraitIsVisible; + private module BlanketTraitIsVisible = TraitIsVisible; /** A (potential) non-method call, `f(x)`. */ final class NonMethodCall extends CallExpr { @@ -2037,13 +2132,13 @@ private module NonMethodResolution { } pragma[nomagic] - predicate resolveCallTargetBlanketCandidate( + predicate resolveCallTargetBlanketLikeCandidate( ImplItemNode impl, FunctionPosition pos, TypePath blanketPath, TypeParam blanketTypeParam ) { exists(string name, int arity, Trait trait, AssocFunctionType t | this.hasNameAndArity(name, arity) and exists(this.getTypeAt(pos, blanketPath)) and - functionInfoBlanketRelevantPos(_, name, arity, impl, trait, pos, t, blanketPath, + functionInfoBlanketLikeRelevantPos(_, name, arity, impl, trait, pos, t, blanketPath, blanketTypeParam) and BlanketTraitIsVisible::traitIsVisible(this, trait) ) @@ -2080,7 +2175,7 @@ private module NonMethodResolution { private newtype TCallAndBlanketPos = MkCallAndBlanketPos(NonMethodCall fc, FunctionPosition pos) { - fc.resolveCallTargetBlanketCandidate(_, pos, _, _) + fc.resolveCallTargetBlanketLikeCandidate(_, pos, _, _) } /** A call tagged with a position. */ @@ -2106,7 +2201,7 @@ private module NonMethodResolution { ) { exists(NonMethodCall fc, FunctionPosition pos | fcp = MkCallAndBlanketPos(fc, pos) and - fc.resolveCallTargetBlanketCandidate(impl, pos, blanketPath, blanketTypeParam) + fc.resolveCallTargetBlanketLikeCandidate(impl, pos, blanketPath, blanketTypeParam) ) } } @@ -2129,12 +2224,12 @@ private module NonMethodResolution { exists(FunctionPosition pos | ArgSatisfiesBlanketConstraint::satisfiesBlanketConstraint(fcp, abs) and fcp = MkCallAndBlanketPos(_, pos) and - functionInfoBlanketRelevantPos(_, _, _, abs, _, pos, constraint, _, _) + functionInfoBlanketLikeRelevantPos(_, _, _, abs, _, pos, constraint, _, _) ) } predicate relevantConstraint(AssocFunctionType constraint) { - functionInfoBlanketRelevantPos(_, _, _, _, _, _, constraint, _, _) + functionInfoBlanketLikeRelevantPos(_, _, _, _, _, _, constraint, _, _) } } diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/BlanketImplementation.qll b/rust/ql/lib/codeql/rust/internal/typeinference/BlanketImplementation.qll index 8f2483c3f68..2a615418bc2 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/BlanketImplementation.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/BlanketImplementation.qll @@ -132,4 +132,17 @@ module SatisfiesBlanketConstraint< SatisfiesBlanketConstraint::satisfiesConstraintType(ato, TTrait(traitBound), _, _) ) } + + /** + * Holds if the argument type `at` does _not_ satisfy the first non-trivial blanket + * constraint of `impl`. + */ + pragma[nomagic] + predicate satisfiesNotBlanketConstraint(ArgumentType at, ImplItemNode impl) { + exists(ArgumentTypeAndBlanketOffset ato, Trait traitBound | + ato = MkArgumentTypeAndBlanketOffset(at, _) and + SatisfiesBlanketConstraintInput::relevantConstraint(ato, impl, traitBound) and + SatisfiesBlanketConstraint::satisfiesNotConstraint(ato, TTrait(traitBound)) + ) + } } 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 8d1db81d147..2a12ae35276 100644 --- a/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected @@ -1,6 +1,4 @@ multipleCallTargets -| blanket_impl.rs:257:18:257:27 | ... .m2() | -| blanket_impl.rs:259:18:259:24 | S1.m4() | | dereference.rs:69:15:69:24 | e1.deref() | | dereference.rs:182:17:182:26 | ... .foo() | | dereference.rs:183:17:183:23 | S.foo() | diff --git a/rust/ql/test/library-tests/type-inference/blanket_impl.rs b/rust/ql/test/library-tests/type-inference/blanket_impl.rs index 5f3a23ead89..49fcd8af0a6 100644 --- a/rust/ql/test/library-tests/type-inference/blanket_impl.rs +++ b/rust/ql/test/library-tests/type-inference/blanket_impl.rs @@ -254,9 +254,9 @@ mod blanket_like_impl { pub fn test_basic_blanket() { let x1 = S1.m1(); // $ target=S1::m1 - let x2 = (&S1).m2(); // $ target=MyTrait2Ref::m2 $ SPURIOUS: target=MyTrait2RefRefS1::m2 + let x2 = (&S1).m2(); // $ target=MyTrait2Ref::m2 let x3 = (&&S1).m2(); // $ target=MyTrait2RefRefS1::m2 - let x4 = S1.m4(); // $ target=MyTrait4aBlanket::m4 $ SPURIOUS: target=MyTrait4bRef::m4 + let x4 = S1.m4(); // $ target=MyTrait4aBlanket::m4 let x5 = (&S1).m4(); // $ target=MyTrait4bRef::m4 let x6 = S2.m4(); // $ target=MyTrait4bRef::m4 let x7 = (&S2).m4(); // $ target=MyTrait4bRef::m4 diff --git a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll index ff9ccf3c192..78b140f91e5 100644 --- a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll +++ b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll @@ -704,14 +704,23 @@ module Make1 Input1> { /** * Holds if `app` is _not_ a possible instantiation of `constraint`. + * + * This is a monotonic approximation of `not isInstantiationOf(app, abs, constraint)`; + * if, for example, `app` has two different types `t1` and `t2` at the same type path, + * and `t1` satisfies `constraint` while `t2` does not, then both `isInstantiationOf` + * and `isNotInstantiationOf` will hold. + * + * Dually, if `app` does not have a type at a required type path, then neither + * `isInstantiationOf` nor `isNotInstantiationOf` will hold. */ pragma[nomagic] predicate isNotInstantiationOf(App app, TypeAbstraction abs, Constraint constraint) { // `app` and `constraint` differ on a concrete type - exists(Type t, TypePath path | + exists(Type t, Type t2, TypePath path | t = resolveTypeAt(app, abs, constraint, path) and not t = abs.getATypeParameter() and - app.getTypeAt(path) != t + app.getTypeAt(path) = t2 and + t2 != t ) } } @@ -793,7 +802,7 @@ module Make1 Input1> { } /** - * Holds if its possible for a type with `conditionRoot` at the root to + * Holds if it's possible for a type with `conditionRoot` at the root to * satisfy a constraint with `constraintRoot` at the root through `abs`, * `condition`, and `constraint`. */ @@ -997,6 +1006,40 @@ module Make1 Input1> { ) } + /** + * Holds if `tt` does not satisfy `constraint`. + */ + pragma[nomagic] + private predicate hasNotConstraintMention(HasTypeTree tt, Type constraint) { + exists(Type type | hasTypeConstraint(tt, type, constraint) | + ( + not useUniversalConditions() + or + exists(countConstraintImplementations(type, constraint)) + or + forall(TypeAbstraction abs, TypeMention condition, TypeMention constraintMention | + conditionSatisfiesConstraintTypeAt(abs, condition, constraintMention, _, _) and + resolveTypeMentionRoot(condition) = abs.getATypeParameter() + | + not constraint = resolveTypeMentionRoot(constraintMention) + ) + ) and + ( + countConstraintImplementations(type, constraint) = 0 + or + not rootTypesSatisfaction(type, constraint, _, _, _) + or + multipleConstraintImplementations(type, constraint) and + forex(TypeAbstraction abs, TypeMention condition | + rootTypesSatisfaction(type, constraint, abs, condition, _) + | + IsInstantiationOf::isNotInstantiationOf(tt, + abs, condition) + ) + ) + ) + } + pragma[nomagic] private predicate satisfiesConstraintTypeMention0( HasTypeTree tt, Type constraint, TypeAbstraction abs, TypeMention sub, TypePath path, Type t @@ -1038,6 +1081,26 @@ module Make1 Input1> { hasTypeConstraint(tt, constraint, constraint) and t = tt.getTypeAt(path) } + + /** + * Holds if the type tree at `tt` does _not_ satisfy the constraint `constraint`. + * + * This is a monotonic approximation of `not satisfiesConstraintType(tt, constraint, _, _)`; + * if, for example, `tt` has two different types `t1` and `t2`, and `t1` satisfies + * `constraint` while `t2` does not, then both `satisfiesConstraintType` and + * `satisfiesNotConstraint` will hold. + * + * Dually, if `tt` does not have a type, then neither `satisfiesConstraintType` nor + * `satisfiesNotConstraint` will hold. + */ + pragma[nomagic] + predicate satisfiesNotConstraint(HasTypeTree tt, Type constraint) { + hasNotConstraintMention(tt, constraint) and + exists(Type t | + hasTypeConstraint(tt, t, constraint) and + t != constraint + ) + } } /** Provides the input to `MatchingWithEnvironment`. */ From 83508ba661414c392c31916bf9f3a3dea4b70673 Mon Sep 17 00:00:00 2001 From: yoff Date: Mon, 27 Oct 2025 11:25:51 +0100 Subject: [PATCH 025/126] java: adjust qhelp and examples for SafePublication --- .../src/Likely Bugs/Concurrency/SafePublication.java | 12 +++++++++--- .../Likely Bugs/Concurrency/SafePublication.qhelp | 9 ++------- .../Likely Bugs/Concurrency/UnsafePublication.java | 9 +++++++-- 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/java/ql/src/Likely Bugs/Concurrency/SafePublication.java b/java/ql/src/Likely Bugs/Concurrency/SafePublication.java index 64341017890..76980412e8c 100644 --- a/java/ql/src/Likely Bugs/Concurrency/SafePublication.java +++ b/java/ql/src/Likely Bugs/Concurrency/SafePublication.java @@ -1,11 +1,17 @@ public class SafePublication { - private Object value; + private volatile Object value; + private final int server_id; - public synchronized void produce() { - value = new Object(); // Safely published using synchronization + public SafePublication() { + value = new Object(); // Safely published as volatile + server_id = 1; // Safely published as final } public synchronized Object getValue() { return value; } + + public int getServerId() { + return server_id; + } } \ No newline at end of file diff --git a/java/ql/src/Likely Bugs/Concurrency/SafePublication.qhelp b/java/ql/src/Likely Bugs/Concurrency/SafePublication.qhelp index a24977e6730..4b422530411 100644 --- a/java/ql/src/Likely Bugs/Concurrency/SafePublication.qhelp +++ b/java/ql/src/Likely Bugs/Concurrency/SafePublication.qhelp @@ -31,16 +31,11 @@ Choose a safe publication technique that fits your use case. If the value only n -

    In the following example, the value of value is not safely published. The produce method - creates a new object and assigns it to the field value. However, the field is not - declared as volatile, and there are no synchronization mechanisms in place to ensure - that the value is fully constructed before it is published.

    +

    In the following example, the values of value and server_id are not safely published. The constructor creates a new object and assigns it to the field value. However, the field is not declared as volatile or final, and there are no synchronization mechanisms in place to ensure that the value is fully constructed before it is published. A different thread may see the default value null. Similarly, the field server_id may be observed to be 0.

    -

    To fix this example, declare the field value as volatile, or use - synchronized blocks or methods to ensure that the value is fully constructed before it is - published. We illustrate the latter with the following example:

    +

    To fix this example, we declare the field value as volatile. This will ensure that all changes to the field are visible to all threads. The field server_id is only meant to be written once, so we only need the write inside the constructor to be visible to other threads; declaring it final guarantees this:

    diff --git a/java/ql/src/Likely Bugs/Concurrency/UnsafePublication.java b/java/ql/src/Likely Bugs/Concurrency/UnsafePublication.java index ddf8c8b400f..0b7ea330981 100644 --- a/java/ql/src/Likely Bugs/Concurrency/UnsafePublication.java +++ b/java/ql/src/Likely Bugs/Concurrency/UnsafePublication.java @@ -1,12 +1,17 @@ -@ThreadSafe public class UnsafePublication { private Object value; + private int server_id; - public void produce() { + public UnsafePublication() { value = new Object(); // Not safely published, other threads may see the default value null + server_id = 1; // Not safely published, other threads may see the default value 0 } public Object getValue() { return value; } + + public int getServerId() { + return server_id; + } } \ No newline at end of file From d650ccb74b38bf03db050f1ae61b41926206e0ef Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 27 Oct 2025 11:10:28 +0000 Subject: [PATCH 026/126] Rust: Generalize some std::io::Read models. --- .../ql/lib/codeql/rust/frameworks/rustls.model.yml | 1 - .../codeql/rust/frameworks/stdlib/net.model.yml | 8 ++++---- .../dataflow/sources/net/InlineFlow.expected | 14 ++++++-------- 3 files changed, 10 insertions(+), 13 deletions(-) diff --git a/rust/ql/lib/codeql/rust/frameworks/rustls.model.yml b/rust/ql/lib/codeql/rust/frameworks/rustls.model.yml index 19f7ececcd2..e9b3cd32292 100644 --- a/rust/ql/lib/codeql/rust/frameworks/rustls.model.yml +++ b/rust/ql/lib/codeql/rust/frameworks/rustls.model.yml @@ -11,4 +11,3 @@ extensions: - ["::connect", "Argument[1]", "ReturnValue.Future.Field[core::result::Result::Ok(0)]", "taint", "manual"] - ["::poll_read", "Argument[self].Reference", "Argument[1].Reference", "taint", "manual"] - ["::reader", "Argument[self]", "ReturnValue", "taint", "manual"] - - ["::read", "Argument[self]", "Argument[0].Reference", "taint", "manual"] diff --git a/rust/ql/lib/codeql/rust/frameworks/stdlib/net.model.yml b/rust/ql/lib/codeql/rust/frameworks/stdlib/net.model.yml index bf158cbae2d..f7f4475c045 100644 --- a/rust/ql/lib/codeql/rust/frameworks/stdlib/net.model.yml +++ b/rust/ql/lib/codeql/rust/frameworks/stdlib/net.model.yml @@ -10,7 +10,7 @@ extensions: extensible: summaryModel data: - ["::try_clone", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "taint", "manual"] - - ["::read", "Argument[self]", "Argument[0].Reference", "taint", "manual"] - - ["::read_to_string", "Argument[self]", "Argument[0].Reference", "taint", "manual"] - - ["::read_to_end", "Argument[self]", "Argument[0].Reference", "taint", "manual"] - - ["::read_exact", "Argument[self]", "Argument[0].Reference", "taint", "manual"] + - ["<_ as std::io::Read>::read", "Argument[self]", "Argument[0].Reference", "taint", "manual"] + - ["<_ as std::io::Read>::read_to_string", "Argument[self]", "Argument[0].Reference", "taint", "manual"] + - ["<_ as std::io::Read>::read_to_end", "Argument[self]", "Argument[0].Reference", "taint", "manual"] + - ["<_ as std::io::Read>::read_exact", "Argument[self]", "Argument[0].Reference", "taint", "manual"] diff --git a/rust/ql/test/library-tests/dataflow/sources/net/InlineFlow.expected b/rust/ql/test/library-tests/dataflow/sources/net/InlineFlow.expected index adeaf8225fe..876ac960f05 100644 --- a/rust/ql/test/library-tests/dataflow/sources/net/InlineFlow.expected +++ b/rust/ql/test/library-tests/dataflow/sources/net/InlineFlow.expected @@ -34,10 +34,9 @@ models | 33 | Summary: ::text; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | | 34 | Summary: ::text_with_charset; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | | 35 | Summary: ::new; Argument[0]; ReturnValue; taint | -| 36 | Summary: ::read; Argument[self]; Argument[0].Reference; taint | -| 37 | Summary: ::peek; Argument[self]; Argument[0].Reference; taint | -| 38 | Summary: ::try_read; Argument[self]; Argument[0].Reference; taint | -| 39 | Summary: ::try_read_buf; Argument[self]; Argument[0].Reference; taint | +| 36 | Summary: ::peek; Argument[self]; Argument[0].Reference; taint | +| 37 | Summary: ::try_read; Argument[self]; Argument[0].Reference; taint | +| 38 | Summary: ::try_read_buf; Argument[self]; Argument[0].Reference; taint | edges | test.rs:11:9:11:22 | remote_string1 | test.rs:12:10:12:23 | remote_string1 | provenance | | | test.rs:11:26:11:47 | ...::get | test.rs:11:26:11:62 | ...::get(...) [Ok] | provenance | Src:MaD:6 | @@ -107,7 +106,6 @@ edges | test.rs:67:31:67:42 | send_request | test.rs:67:24:67:51 | sender.send_request(...) [future, Ok] | provenance | Src:MaD:2 | | test.rs:68:11:68:18 | response | test.rs:68:10:68:18 | &response | provenance | | | test.rs:155:13:155:22 | mut stream | test.rs:162:29:162:39 | [post] &mut buffer [&ref] | provenance | MaD:19 | -| test.rs:155:13:155:22 | mut stream | test.rs:162:29:162:39 | [post] &mut buffer [&ref] | provenance | MaD:36 | | test.rs:155:26:155:53 | ...::connect | test.rs:155:26:155:62 | ...::connect(...) [Ok] | provenance | Src:MaD:3 | | test.rs:155:26:155:62 | ...::connect(...) [Ok] | test.rs:155:26:155:63 | TryExpr | provenance | | | test.rs:155:26:155:63 | TryExpr | test.rs:155:13:155:22 | mut stream | provenance | | @@ -126,10 +124,10 @@ edges | test.rs:185:44:185:52 | [post] &mut line [&ref] | test.rs:185:49:185:52 | [post] line | provenance | | | test.rs:185:49:185:52 | [post] line | test.rs:192:35:192:38 | line | provenance | | | test.rs:192:35:192:38 | line | test.rs:192:34:192:38 | &line | provenance | | -| test.rs:224:9:224:24 | mut tokio_stream | test.rs:232:35:232:46 | [post] &mut buffer1 [&ref] | provenance | MaD:37 | +| test.rs:224:9:224:24 | mut tokio_stream | test.rs:232:35:232:46 | [post] &mut buffer1 [&ref] | provenance | MaD:36 | | test.rs:224:9:224:24 | mut tokio_stream | test.rs:236:36:236:47 | [post] &mut buffer2 [&ref] | provenance | MaD:21 | -| test.rs:224:9:224:24 | mut tokio_stream | test.rs:252:41:252:51 | [post] &mut buffer [&ref] | provenance | MaD:38 | -| test.rs:224:9:224:24 | mut tokio_stream | test.rs:275:45:275:55 | [post] &mut buffer [&ref] | provenance | MaD:39 | +| test.rs:224:9:224:24 | mut tokio_stream | test.rs:252:41:252:51 | [post] &mut buffer [&ref] | provenance | MaD:37 | +| test.rs:224:9:224:24 | mut tokio_stream | test.rs:275:45:275:55 | [post] &mut buffer [&ref] | provenance | MaD:38 | | test.rs:224:28:224:57 | ...::connect | test.rs:224:28:224:66 | ...::connect(...) [future, Ok] | provenance | Src:MaD:5 | | test.rs:224:28:224:66 | ...::connect(...) [future, Ok] | test.rs:224:28:224:72 | await ... [Ok] | provenance | | | test.rs:224:28:224:72 | await ... [Ok] | test.rs:224:28:224:73 | TryExpr | provenance | | From c8b80463027011cd2f5eb4b5c610a36cd3525b00 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 27 Oct 2025 11:30:41 +0000 Subject: [PATCH 027/126] Rust: Generalize a model of alloc::boxed::Box. --- rust/ql/lib/codeql/rust/frameworks/futures.model.yml | 1 - rust/ql/lib/codeql/rust/frameworks/stdlib/core.model.yml | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/rust/ql/lib/codeql/rust/frameworks/futures.model.yml b/rust/ql/lib/codeql/rust/frameworks/futures.model.yml index dd81e23fad6..966dbd5f603 100644 --- a/rust/ql/lib/codeql/rust/frameworks/futures.model.yml +++ b/rust/ql/lib/codeql/rust/frameworks/futures.model.yml @@ -15,5 +15,4 @@ extensions: - ["<_ as futures_util::io::AsyncBufReadExt>::read_until", "Argument[self].Reference", "Argument[1].Reference", "taint", "manual"] - ["<_ as futures_util::io::AsyncBufReadExt>::fill_buf", "Argument[self]", "ReturnValue.Future.Field[core::result::Result::Ok(0)]", "taint", "manual"] - ["<_ as futures_util::io::AsyncBufReadExt>::lines", "Argument[self]", "ReturnValue", "taint", "manual"] - - ["::next", "Argument[self]", "ReturnValue.Future.Field[core::option::Option::Some(0)]", "taint", "manual"] - ["<_ as futures_io::if_std::AsyncBufRead>::poll_fill_buf", "Argument[self].Reference", "ReturnValue.Field[core::task::poll::Poll::Ready(0)].Field[core::result::Result::Ok(0)]", "taint", "manual"] diff --git a/rust/ql/lib/codeql/rust/frameworks/stdlib/core.model.yml b/rust/ql/lib/codeql/rust/frameworks/stdlib/core.model.yml index 9a29741bd37..17019618601 100644 --- a/rust/ql/lib/codeql/rust/frameworks/stdlib/core.model.yml +++ b/rust/ql/lib/codeql/rust/frameworks/stdlib/core.model.yml @@ -18,6 +18,7 @@ extensions: - ["::into_iter", "Argument[self].Element", "ReturnValue.Element", "value", "manual"] - ["<_ as core::iter::traits::iterator::Iterator>::for_each", "Argument[self].Element", "Argument[0].Parameter[0]", "value", "manual"] - ["<_ as core::iter::traits::iterator::Iterator>::nth", "Argument[self].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "manual"] + - ["<_ as core::iter::traits::iterator::Iterator>::next", "Argument[self]", "ReturnValue.Future.Field[core::option::Option::Some(0)]", "taint", "manual"] - ["<_ as core::iter::traits::iterator::Iterator>::next", "Argument[self].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "manual"] - ["<_ as core::iter::traits::iterator::Iterator>::next", "Argument[self].Element", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::result::Result::Ok(0)]", "value", "manual"] - ["<_ as core::iter::traits::iterator::Iterator>::collect", "Argument[self].Element", "ReturnValue.Element", "value", "manual"] From bd11873e0d81b53da0deccfac8a8df774f12c62d Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 27 Oct 2025 12:04:30 +0000 Subject: [PATCH 028/126] Rust: Generalize a model of futures_io...poll_read. --- .../codeql/rust/frameworks/futures.model.yml | 1 + .../codeql/rust/frameworks/rustls.model.yml | 1 - .../dataflow/sources/net/InlineFlow.expected | 129 ++++++++++-------- .../dataflow/sources/net/test.rs | 4 +- 4 files changed, 75 insertions(+), 60 deletions(-) diff --git a/rust/ql/lib/codeql/rust/frameworks/futures.model.yml b/rust/ql/lib/codeql/rust/frameworks/futures.model.yml index 966dbd5f603..35e547076d9 100644 --- a/rust/ql/lib/codeql/rust/frameworks/futures.model.yml +++ b/rust/ql/lib/codeql/rust/frameworks/futures.model.yml @@ -16,3 +16,4 @@ extensions: - ["<_ as futures_util::io::AsyncBufReadExt>::fill_buf", "Argument[self]", "ReturnValue.Future.Field[core::result::Result::Ok(0)]", "taint", "manual"] - ["<_ as futures_util::io::AsyncBufReadExt>::lines", "Argument[self]", "ReturnValue", "taint", "manual"] - ["<_ as futures_io::if_std::AsyncBufRead>::poll_fill_buf", "Argument[self].Reference", "ReturnValue.Field[core::task::poll::Poll::Ready(0)].Field[core::result::Result::Ok(0)]", "taint", "manual"] + - ["<_ as futures_io::if_std::AsyncRead>::poll_read", "Argument[self].Reference", "Argument[1].Reference", "taint", "manual"] diff --git a/rust/ql/lib/codeql/rust/frameworks/rustls.model.yml b/rust/ql/lib/codeql/rust/frameworks/rustls.model.yml index e9b3cd32292..b1fea8ac538 100644 --- a/rust/ql/lib/codeql/rust/frameworks/rustls.model.yml +++ b/rust/ql/lib/codeql/rust/frameworks/rustls.model.yml @@ -9,5 +9,4 @@ extensions: extensible: summaryModel data: - ["::connect", "Argument[1]", "ReturnValue.Future.Field[core::result::Result::Ok(0)]", "taint", "manual"] - - ["::poll_read", "Argument[self].Reference", "Argument[1].Reference", "taint", "manual"] - ["::reader", "Argument[self]", "ReturnValue", "taint", "manual"] diff --git a/rust/ql/test/library-tests/dataflow/sources/net/InlineFlow.expected b/rust/ql/test/library-tests/dataflow/sources/net/InlineFlow.expected index 876ac960f05..d29b19fe58a 100644 --- a/rust/ql/test/library-tests/dataflow/sources/net/InlineFlow.expected +++ b/rust/ql/test/library-tests/dataflow/sources/net/InlineFlow.expected @@ -7,25 +7,25 @@ models | 6 | Source: reqwest::blocking::get; ReturnValue.Field[core::result::Result::Ok(0)]; remote | | 7 | Source: reqwest::get; ReturnValue.Future.Field[core::result::Result::Ok(0)]; remote | | 8 | Summary: <_ as futures_io::if_std::AsyncBufRead>::poll_fill_buf; Argument[self].Reference; ReturnValue.Field[core::task::poll::Poll::Ready(0)].Field[core::result::Result::Ok(0)]; taint | -| 9 | Summary: <_ as futures_util::io::AsyncBufReadExt>::fill_buf; Argument[self]; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint | -| 10 | Summary: <_ as futures_util::io::AsyncBufReadExt>::read_line; Argument[self].Reference; Argument[0].Reference; taint | -| 11 | Summary: <_ as futures_util::io::AsyncBufReadExt>::read_line; Argument[self]; Argument[0].Reference; taint | -| 12 | Summary: <_ as futures_util::io::AsyncBufReadExt>::read_until; Argument[self].Reference; Argument[1].Reference; taint | -| 13 | Summary: <_ as futures_util::io::AsyncBufReadExt>::read_until; Argument[self]; Argument[1].Reference; taint | -| 14 | Summary: <_ as futures_util::io::AsyncReadExt>::read; Argument[self].Reference; Argument[0].Reference; taint | -| 15 | Summary: <_ as futures_util::io::AsyncReadExt>::read; Argument[self]; Argument[0].Reference; taint | -| 16 | Summary: <_ as futures_util::io::AsyncReadExt>::read_to_end; Argument[self].Reference; Argument[0].Reference; taint | -| 17 | Summary: <_ as futures_util::io::AsyncReadExt>::read_to_end; Argument[self]; Argument[0].Reference; taint | -| 18 | Summary: <_ as std::io::BufRead>::read_line; Argument[self]; Argument[0].Reference; taint | -| 19 | Summary: <_ as std::io::Read>::read; Argument[self]; Argument[0].Reference; taint | -| 20 | Summary: <_ as std::io::Read>::take; Argument[self]; ReturnValue; taint | -| 21 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read; Argument[self]; Argument[0].Reference; taint | -| 22 | Summary: ::unwrap; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | -| 23 | Summary: ::new; Argument[0].Reference; ReturnValue; value | -| 24 | Summary: ::new; Argument[0]; ReturnValue; value | -| 25 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | -| 26 | Summary: ::connect; Argument[1]; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint | -| 27 | Summary: ::poll_read; Argument[self].Reference; Argument[1].Reference; taint | +| 9 | Summary: <_ as futures_io::if_std::AsyncRead>::poll_read; Argument[self].Reference; Argument[1].Reference; taint | +| 10 | Summary: <_ as futures_util::io::AsyncBufReadExt>::fill_buf; Argument[self]; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint | +| 11 | Summary: <_ as futures_util::io::AsyncBufReadExt>::read_line; Argument[self].Reference; Argument[0].Reference; taint | +| 12 | Summary: <_ as futures_util::io::AsyncBufReadExt>::read_line; Argument[self]; Argument[0].Reference; taint | +| 13 | Summary: <_ as futures_util::io::AsyncBufReadExt>::read_until; Argument[self].Reference; Argument[1].Reference; taint | +| 14 | Summary: <_ as futures_util::io::AsyncBufReadExt>::read_until; Argument[self]; Argument[1].Reference; taint | +| 15 | Summary: <_ as futures_util::io::AsyncReadExt>::read; Argument[self].Reference; Argument[0].Reference; taint | +| 16 | Summary: <_ as futures_util::io::AsyncReadExt>::read; Argument[self]; Argument[0].Reference; taint | +| 17 | Summary: <_ as futures_util::io::AsyncReadExt>::read_to_end; Argument[self].Reference; Argument[0].Reference; taint | +| 18 | Summary: <_ as futures_util::io::AsyncReadExt>::read_to_end; Argument[self]; Argument[0].Reference; taint | +| 19 | Summary: <_ as std::io::BufRead>::read_line; Argument[self]; Argument[0].Reference; taint | +| 20 | Summary: <_ as std::io::Read>::read; Argument[self]; Argument[0].Reference; taint | +| 21 | Summary: <_ as std::io::Read>::take; Argument[self]; ReturnValue; taint | +| 22 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read; Argument[self]; Argument[0].Reference; taint | +| 23 | Summary: ::unwrap; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | +| 24 | Summary: ::new; Argument[0].Reference; ReturnValue; value | +| 25 | Summary: ::new; Argument[0]; ReturnValue; value | +| 26 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | +| 27 | Summary: ::connect; Argument[1]; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint | | 28 | Summary: ::new; Argument[0]; ReturnValue; taint | | 29 | Summary: ::bytes; Argument[self]; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint | | 30 | Summary: ::chunk; Argument[self]; ReturnValue.Future.Field[core::result::Result::Ok(0)].Field[core::option::Option::Some(0)]; taint | @@ -46,21 +46,21 @@ edges | test.rs:11:26:11:71 | TryExpr | test.rs:11:9:11:22 | remote_string1 | provenance | | | test.rs:14:9:14:22 | remote_string2 | test.rs:15:10:15:23 | remote_string2 | provenance | | | test.rs:14:26:14:47 | ...::get | test.rs:14:26:14:62 | ...::get(...) [Ok] | provenance | Src:MaD:6 | -| test.rs:14:26:14:62 | ...::get(...) [Ok] | test.rs:14:26:14:71 | ... .unwrap() | provenance | MaD:25 | +| test.rs:14:26:14:62 | ...::get(...) [Ok] | test.rs:14:26:14:71 | ... .unwrap() | provenance | MaD:26 | | test.rs:14:26:14:71 | ... .unwrap() | test.rs:14:26:14:78 | ... .text() [Ok] | provenance | MaD:33 | -| test.rs:14:26:14:78 | ... .text() [Ok] | test.rs:14:26:14:87 | ... .unwrap() | provenance | MaD:25 | +| test.rs:14:26:14:78 | ... .text() [Ok] | test.rs:14:26:14:87 | ... .unwrap() | provenance | MaD:26 | | test.rs:14:26:14:87 | ... .unwrap() | test.rs:14:9:14:22 | remote_string2 | provenance | | | test.rs:17:9:17:22 | remote_string3 | test.rs:18:10:18:23 | remote_string3 | provenance | | | test.rs:17:26:17:47 | ...::get | test.rs:17:26:17:62 | ...::get(...) [Ok] | provenance | Src:MaD:6 | -| test.rs:17:26:17:62 | ...::get(...) [Ok] | test.rs:17:26:17:71 | ... .unwrap() | provenance | MaD:25 | +| test.rs:17:26:17:62 | ...::get(...) [Ok] | test.rs:17:26:17:71 | ... .unwrap() | provenance | MaD:26 | | test.rs:17:26:17:71 | ... .unwrap() | test.rs:17:26:17:98 | ... .text_with_charset(...) [Ok] | provenance | MaD:34 | -| test.rs:17:26:17:98 | ... .text_with_charset(...) [Ok] | test.rs:17:26:17:107 | ... .unwrap() | provenance | MaD:25 | +| test.rs:17:26:17:98 | ... .text_with_charset(...) [Ok] | test.rs:17:26:17:107 | ... .unwrap() | provenance | MaD:26 | | test.rs:17:26:17:107 | ... .unwrap() | test.rs:17:9:17:22 | remote_string3 | provenance | | | test.rs:20:9:20:22 | remote_string4 | test.rs:21:10:21:23 | remote_string4 | provenance | | | test.rs:20:26:20:47 | ...::get | test.rs:20:26:20:62 | ...::get(...) [Ok] | provenance | Src:MaD:6 | -| test.rs:20:26:20:62 | ...::get(...) [Ok] | test.rs:20:26:20:71 | ... .unwrap() | provenance | MaD:25 | +| test.rs:20:26:20:62 | ...::get(...) [Ok] | test.rs:20:26:20:71 | ... .unwrap() | provenance | MaD:26 | | test.rs:20:26:20:71 | ... .unwrap() | test.rs:20:26:20:79 | ... .bytes() [Ok] | provenance | MaD:32 | -| test.rs:20:26:20:79 | ... .bytes() [Ok] | test.rs:20:26:20:88 | ... .unwrap() | provenance | MaD:25 | +| test.rs:20:26:20:79 | ... .bytes() [Ok] | test.rs:20:26:20:88 | ... .unwrap() | provenance | MaD:26 | | test.rs:20:26:20:88 | ... .unwrap() | test.rs:20:9:20:22 | remote_string4 | provenance | | | test.rs:23:9:23:22 | remote_string5 | test.rs:24:10:24:23 | remote_string5 | provenance | | | test.rs:23:26:23:37 | ...::get | test.rs:23:26:23:52 | ...::get(...) [future, Ok] | provenance | Src:MaD:7 | @@ -86,7 +86,7 @@ edges | test.rs:29:24:29:57 | TryExpr | test.rs:29:9:29:20 | mut request1 | provenance | | | test.rs:30:10:30:25 | request1.chunk() [future, Ok, Some] | test.rs:30:10:30:31 | await ... [Ok, Some] | provenance | | | test.rs:30:10:30:31 | await ... [Ok, Some] | test.rs:30:10:30:32 | TryExpr [Some] | provenance | | -| test.rs:30:10:30:32 | TryExpr [Some] | test.rs:30:10:30:41 | ... .unwrap() | provenance | MaD:22 | +| test.rs:30:10:30:32 | TryExpr [Some] | test.rs:30:10:30:41 | ... .unwrap() | provenance | MaD:23 | | test.rs:31:15:31:25 | Some(...) [Some] | test.rs:31:20:31:24 | chunk | provenance | | | test.rs:31:20:31:24 | chunk | test.rs:32:14:32:18 | chunk | provenance | | | test.rs:31:29:31:44 | request1.chunk() [future, Ok, Some] | test.rs:31:29:31:50 | await ... [Ok, Some] | provenance | | @@ -105,7 +105,7 @@ edges | test.rs:67:24:67:58 | TryExpr | test.rs:67:9:67:20 | mut response | provenance | | | test.rs:67:31:67:42 | send_request | test.rs:67:24:67:51 | sender.send_request(...) [future, Ok] | provenance | Src:MaD:2 | | test.rs:68:11:68:18 | response | test.rs:68:10:68:18 | &response | provenance | | -| test.rs:155:13:155:22 | mut stream | test.rs:162:29:162:39 | [post] &mut buffer [&ref] | provenance | MaD:19 | +| test.rs:155:13:155:22 | mut stream | test.rs:162:29:162:39 | [post] &mut buffer [&ref] | provenance | MaD:20 | | test.rs:155:26:155:53 | ...::connect | test.rs:155:26:155:62 | ...::connect(...) [Ok] | provenance | Src:MaD:3 | | test.rs:155:26:155:62 | ...::connect(...) [Ok] | test.rs:155:26:155:63 | TryExpr | provenance | | | test.rs:155:26:155:63 | TryExpr | test.rs:155:13:155:22 | mut stream | provenance | | @@ -117,15 +117,15 @@ edges | test.rs:174:26:174:61 | ...::connect_timeout | test.rs:174:26:174:105 | ...::connect_timeout(...) [Ok] | provenance | Src:MaD:4 | | test.rs:174:26:174:105 | ...::connect_timeout(...) [Ok] | test.rs:174:26:174:106 | TryExpr | provenance | | | test.rs:174:26:174:106 | TryExpr | test.rs:174:13:174:22 | mut stream | provenance | | -| test.rs:182:21:182:30 | mut reader | test.rs:185:44:185:52 | [post] &mut line [&ref] | provenance | MaD:18 | -| test.rs:182:34:182:64 | ...::new(...) | test.rs:182:34:182:74 | ... .take(...) | provenance | MaD:20 | +| test.rs:182:21:182:30 | mut reader | test.rs:185:44:185:52 | [post] &mut line [&ref] | provenance | MaD:19 | +| test.rs:182:34:182:64 | ...::new(...) | test.rs:182:34:182:74 | ... .take(...) | provenance | MaD:21 | | test.rs:182:34:182:74 | ... .take(...) | test.rs:182:21:182:30 | mut reader | provenance | | | test.rs:182:58:182:63 | stream | test.rs:182:34:182:64 | ...::new(...) | provenance | MaD:35 | | test.rs:185:44:185:52 | [post] &mut line [&ref] | test.rs:185:49:185:52 | [post] line | provenance | | | test.rs:185:49:185:52 | [post] line | test.rs:192:35:192:38 | line | provenance | | | test.rs:192:35:192:38 | line | test.rs:192:34:192:38 | &line | provenance | | | test.rs:224:9:224:24 | mut tokio_stream | test.rs:232:35:232:46 | [post] &mut buffer1 [&ref] | provenance | MaD:36 | -| test.rs:224:9:224:24 | mut tokio_stream | test.rs:236:36:236:47 | [post] &mut buffer2 [&ref] | provenance | MaD:21 | +| test.rs:224:9:224:24 | mut tokio_stream | test.rs:236:36:236:47 | [post] &mut buffer2 [&ref] | provenance | MaD:22 | | test.rs:224:9:224:24 | mut tokio_stream | test.rs:252:41:252:51 | [post] &mut buffer [&ref] | provenance | MaD:37 | | test.rs:224:9:224:24 | mut tokio_stream | test.rs:275:45:275:55 | [post] &mut buffer [&ref] | provenance | MaD:38 | | test.rs:224:28:224:57 | ...::connect | test.rs:224:28:224:66 | ...::connect(...) [future, Ok] | provenance | Src:MaD:5 | @@ -157,22 +157,22 @@ edges | test.rs:380:13:380:22 | mut reader | test.rs:386:44:386:49 | reader | provenance | | | test.rs:380:13:380:22 | mut reader | test.rs:399:68:399:73 | reader | provenance | | | test.rs:380:13:380:22 | mut reader | test.rs:403:31:403:36 | reader | provenance | | -| test.rs:380:13:380:22 | mut reader | test.rs:403:43:403:54 | [post] &mut buffer2 [&ref] | provenance | MaD:14 | | test.rs:380:13:380:22 | mut reader | test.rs:403:43:403:54 | [post] &mut buffer2 [&ref] | provenance | MaD:15 | +| test.rs:380:13:380:22 | mut reader | test.rs:403:43:403:54 | [post] &mut buffer2 [&ref] | provenance | MaD:16 | | test.rs:380:13:380:22 | mut reader | test.rs:408:55:408:60 | reader | provenance | | | test.rs:380:26:380:60 | connector.connect(...) [future, Ok] | test.rs:380:26:380:66 | await ... [Ok] | provenance | | | test.rs:380:26:380:66 | await ... [Ok] | test.rs:380:26:380:67 | TryExpr | provenance | | | test.rs:380:26:380:67 | TryExpr | test.rs:380:13:380:22 | mut reader | provenance | | -| test.rs:380:57:380:59 | tcp | test.rs:380:26:380:60 | connector.connect(...) [future, Ok] | provenance | MaD:26 | +| test.rs:380:57:380:59 | tcp | test.rs:380:26:380:60 | connector.connect(...) [future, Ok] | provenance | MaD:27 | | test.rs:381:15:381:20 | reader | test.rs:381:14:381:20 | &reader | provenance | | | test.rs:386:17:386:26 | mut pinned | test.rs:387:19:387:24 | pinned | provenance | | -| test.rs:386:17:386:26 | mut pinned | test.rs:389:56:389:66 | [post] &mut buffer [&ref] | provenance | MaD:27 | +| test.rs:386:17:386:26 | mut pinned | test.rs:389:56:389:66 | [post] &mut buffer [&ref] | provenance | MaD:9 | | test.rs:386:17:386:26 | mut pinned [&ref] | test.rs:387:19:387:24 | pinned [&ref] | provenance | | -| test.rs:386:17:386:26 | mut pinned [&ref] | test.rs:389:56:389:66 | [post] &mut buffer [&ref] | provenance | MaD:27 | +| test.rs:386:17:386:26 | mut pinned [&ref] | test.rs:389:56:389:66 | [post] &mut buffer [&ref] | provenance | MaD:9 | | test.rs:386:30:386:50 | ...::new(...) | test.rs:386:17:386:26 | mut pinned | provenance | | | test.rs:386:30:386:50 | ...::new(...) [&ref] | test.rs:386:17:386:26 | mut pinned [&ref] | provenance | | -| test.rs:386:39:386:49 | &mut reader [&ref] | test.rs:386:30:386:50 | ...::new(...) | provenance | MaD:23 | -| test.rs:386:39:386:49 | &mut reader [&ref] | test.rs:386:30:386:50 | ...::new(...) [&ref] | provenance | MaD:24 | +| test.rs:386:39:386:49 | &mut reader [&ref] | test.rs:386:30:386:50 | ...::new(...) | provenance | MaD:24 | +| test.rs:386:39:386:49 | &mut reader [&ref] | test.rs:386:30:386:50 | ...::new(...) [&ref] | provenance | MaD:25 | | test.rs:386:44:386:49 | reader | test.rs:386:39:386:49 | &mut reader [&ref] | provenance | | | test.rs:387:19:387:24 | pinned | test.rs:387:18:387:24 | &pinned | provenance | | | test.rs:387:19:387:24 | pinned [&ref] | test.rs:387:18:387:24 | &pinned | provenance | | @@ -181,35 +181,35 @@ edges | test.rs:389:61:389:66 | [post] buffer | test.rs:392:23:392:33 | buffer[...] | provenance | | | test.rs:391:23:391:28 | buffer | test.rs:391:22:391:28 | &buffer | provenance | | | test.rs:392:23:392:33 | buffer[...] | test.rs:392:22:392:33 | &... | provenance | | -| test.rs:399:63:399:73 | &mut reader [&ref] | test.rs:399:76:399:87 | [post] &mut buffer1 [&ref] | provenance | MaD:14 | +| test.rs:399:63:399:73 | &mut reader [&ref] | test.rs:399:76:399:87 | [post] &mut buffer1 [&ref] | provenance | MaD:15 | | test.rs:399:68:399:73 | reader | test.rs:399:63:399:73 | &mut reader [&ref] | provenance | | | test.rs:399:76:399:87 | [post] &mut buffer1 [&ref] | test.rs:399:81:399:87 | [post] buffer1 | provenance | | | test.rs:399:81:399:87 | [post] buffer1 | test.rs:400:19:400:40 | buffer1[...] | provenance | | | test.rs:400:19:400:40 | buffer1[...] | test.rs:400:18:400:40 | &... | provenance | | -| test.rs:403:31:403:36 | reader | test.rs:403:43:403:54 | [post] &mut buffer2 [&ref] | provenance | MaD:14 | +| test.rs:403:31:403:36 | reader | test.rs:403:43:403:54 | [post] &mut buffer2 [&ref] | provenance | MaD:15 | | test.rs:403:43:403:54 | [post] &mut buffer2 [&ref] | test.rs:403:48:403:54 | [post] buffer2 | provenance | | | test.rs:403:48:403:54 | [post] buffer2 | test.rs:405:19:405:40 | buffer2[...] | provenance | | | test.rs:405:19:405:40 | buffer2[...] | test.rs:405:18:405:40 | &... | provenance | | | test.rs:408:13:408:23 | mut reader2 | test.rs:409:15:409:21 | reader2 | provenance | | | test.rs:408:13:408:23 | mut reader2 | test.rs:413:44:413:50 | reader2 | provenance | | | test.rs:408:13:408:23 | mut reader2 | test.rs:423:41:423:47 | reader2 | provenance | | -| test.rs:408:13:408:23 | mut reader2 | test.rs:437:26:437:43 | reader2.fill_buf() [future, Ok] | provenance | MaD:9 | +| test.rs:408:13:408:23 | mut reader2 | test.rs:437:26:437:43 | reader2.fill_buf() [future, Ok] | provenance | MaD:10 | | test.rs:408:13:408:23 | mut reader2 | test.rs:444:44:444:50 | reader2 | provenance | | | test.rs:408:13:408:23 | mut reader2 | test.rs:457:68:457:74 | reader2 | provenance | | | test.rs:408:13:408:23 | mut reader2 | test.rs:461:31:461:37 | reader2 | provenance | | -| test.rs:408:13:408:23 | mut reader2 | test.rs:461:44:461:55 | [post] &mut buffer2 [&ref] | provenance | MaD:14 | | test.rs:408:13:408:23 | mut reader2 | test.rs:461:44:461:55 | [post] &mut buffer2 [&ref] | provenance | MaD:15 | +| test.rs:408:13:408:23 | mut reader2 | test.rs:461:44:461:55 | [post] &mut buffer2 [&ref] | provenance | MaD:16 | | test.rs:408:13:408:23 | mut reader2 | test.rs:467:44:467:50 | reader2 | provenance | | -| test.rs:408:13:408:23 | mut reader2 | test.rs:479:26:479:43 | reader2.fill_buf() [future, Ok] | provenance | MaD:9 | +| test.rs:408:13:408:23 | mut reader2 | test.rs:479:26:479:43 | reader2.fill_buf() [future, Ok] | provenance | MaD:10 | | test.rs:408:13:408:23 | mut reader2 | test.rs:486:31:486:37 | reader2 | provenance | | -| test.rs:408:13:408:23 | mut reader2 | test.rs:486:57:486:65 | [post] &mut line [&ref] | provenance | MaD:12 | | test.rs:408:13:408:23 | mut reader2 | test.rs:486:57:486:65 | [post] &mut line [&ref] | provenance | MaD:13 | +| test.rs:408:13:408:23 | mut reader2 | test.rs:486:57:486:65 | [post] &mut line [&ref] | provenance | MaD:14 | | test.rs:408:13:408:23 | mut reader2 | test.rs:493:31:493:37 | reader2 | provenance | | -| test.rs:408:13:408:23 | mut reader2 | test.rs:493:49:493:57 | [post] &mut line [&ref] | provenance | MaD:10 | | test.rs:408:13:408:23 | mut reader2 | test.rs:493:49:493:57 | [post] &mut line [&ref] | provenance | MaD:11 | +| test.rs:408:13:408:23 | mut reader2 | test.rs:493:49:493:57 | [post] &mut line [&ref] | provenance | MaD:12 | | test.rs:408:13:408:23 | mut reader2 | test.rs:500:31:500:37 | reader2 | provenance | | -| test.rs:408:13:408:23 | mut reader2 | test.rs:500:51:500:61 | [post] &mut buffer [&ref] | provenance | MaD:16 | | test.rs:408:13:408:23 | mut reader2 | test.rs:500:51:500:61 | [post] &mut buffer [&ref] | provenance | MaD:17 | +| test.rs:408:13:408:23 | mut reader2 | test.rs:500:51:500:61 | [post] &mut buffer [&ref] | provenance | MaD:18 | | test.rs:408:27:408:61 | ...::new(...) | test.rs:408:13:408:23 | mut reader2 | provenance | | | test.rs:408:55:408:60 | reader | test.rs:408:27:408:61 | ...::new(...) | provenance | MaD:28 | | test.rs:409:15:409:21 | reader2 | test.rs:409:14:409:21 | &reader2 | provenance | | @@ -219,8 +219,8 @@ edges | test.rs:413:17:413:26 | mut pinned [&ref] | test.rs:416:26:416:54 | pinned.poll_fill_buf(...) [Ready, Ok] | provenance | MaD:8 | | test.rs:413:30:413:51 | ...::new(...) | test.rs:413:17:413:26 | mut pinned | provenance | | | test.rs:413:30:413:51 | ...::new(...) [&ref] | test.rs:413:17:413:26 | mut pinned [&ref] | provenance | | -| test.rs:413:39:413:50 | &mut reader2 [&ref] | test.rs:413:30:413:51 | ...::new(...) | provenance | MaD:23 | -| test.rs:413:39:413:50 | &mut reader2 [&ref] | test.rs:413:30:413:51 | ...::new(...) [&ref] | provenance | MaD:24 | +| test.rs:413:39:413:50 | &mut reader2 [&ref] | test.rs:413:30:413:51 | ...::new(...) | provenance | MaD:24 | +| test.rs:413:39:413:50 | &mut reader2 [&ref] | test.rs:413:30:413:51 | ...::new(...) [&ref] | provenance | MaD:25 | | test.rs:413:44:413:50 | reader2 | test.rs:413:39:413:50 | &mut reader2 [&ref] | provenance | | | test.rs:414:19:414:24 | pinned | test.rs:414:18:414:24 | &pinned | provenance | | | test.rs:414:19:414:24 | pinned [&ref] | test.rs:414:18:414:24 | &pinned | provenance | | @@ -235,8 +235,8 @@ edges | test.rs:423:27:423:48 | ...::new(...) | test.rs:423:27:423:71 | ... .poll_fill_buf(...) [Ready, Ok] | provenance | MaD:8 | | test.rs:423:27:423:48 | ...::new(...) [&ref] | test.rs:423:27:423:71 | ... .poll_fill_buf(...) [Ready, Ok] | provenance | MaD:8 | | test.rs:423:27:423:71 | ... .poll_fill_buf(...) [Ready, Ok] | test.rs:423:17:423:23 | buffer2 [Ready, Ok] | provenance | | -| test.rs:423:36:423:47 | &mut reader2 [&ref] | test.rs:423:27:423:48 | ...::new(...) | provenance | MaD:23 | -| test.rs:423:36:423:47 | &mut reader2 [&ref] | test.rs:423:27:423:48 | ...::new(...) [&ref] | provenance | MaD:24 | +| test.rs:423:36:423:47 | &mut reader2 [&ref] | test.rs:423:27:423:48 | ...::new(...) | provenance | MaD:24 | +| test.rs:423:36:423:47 | &mut reader2 [&ref] | test.rs:423:27:423:48 | ...::new(...) [&ref] | provenance | MaD:25 | | test.rs:423:41:423:47 | reader2 | test.rs:423:36:423:47 | &mut reader2 [&ref] | provenance | | | test.rs:424:20:424:26 | buffer2 [Ready, Ok] | test.rs:425:17:425:36 | ...::Ready(...) [Ready, Ok] | provenance | | | test.rs:424:20:424:26 | buffer2 [Ready, Ok] | test.rs:426:27:426:33 | buffer2 [Ready, Ok] | provenance | | @@ -249,20 +249,27 @@ edges | test.rs:437:26:437:49 | await ... [Ok] | test.rs:437:26:437:50 | TryExpr | provenance | | | test.rs:437:26:437:50 | TryExpr | test.rs:437:17:437:22 | buffer | provenance | | | test.rs:444:17:444:26 | mut pinned | test.rs:445:19:445:24 | pinned | provenance | | +| test.rs:444:17:444:26 | mut pinned | test.rs:447:56:447:66 | [post] &mut buffer [&ref] | provenance | MaD:9 | | test.rs:444:17:444:26 | mut pinned [&ref] | test.rs:445:19:445:24 | pinned [&ref] | provenance | | +| test.rs:444:17:444:26 | mut pinned [&ref] | test.rs:447:56:447:66 | [post] &mut buffer [&ref] | provenance | MaD:9 | | test.rs:444:30:444:51 | ...::new(...) | test.rs:444:17:444:26 | mut pinned | provenance | | | test.rs:444:30:444:51 | ...::new(...) [&ref] | test.rs:444:17:444:26 | mut pinned [&ref] | provenance | | -| test.rs:444:39:444:50 | &mut reader2 [&ref] | test.rs:444:30:444:51 | ...::new(...) | provenance | MaD:23 | -| test.rs:444:39:444:50 | &mut reader2 [&ref] | test.rs:444:30:444:51 | ...::new(...) [&ref] | provenance | MaD:24 | +| test.rs:444:39:444:50 | &mut reader2 [&ref] | test.rs:444:30:444:51 | ...::new(...) | provenance | MaD:24 | +| test.rs:444:39:444:50 | &mut reader2 [&ref] | test.rs:444:30:444:51 | ...::new(...) [&ref] | provenance | MaD:25 | | test.rs:444:44:444:50 | reader2 | test.rs:444:39:444:50 | &mut reader2 [&ref] | provenance | | | test.rs:445:19:445:24 | pinned | test.rs:445:18:445:24 | &pinned | provenance | | | test.rs:445:19:445:24 | pinned [&ref] | test.rs:445:18:445:24 | &pinned | provenance | | -| test.rs:457:63:457:74 | &mut reader2 [&ref] | test.rs:457:77:457:88 | [post] &mut buffer1 [&ref] | provenance | MaD:14 | +| test.rs:447:56:447:66 | [post] &mut buffer [&ref] | test.rs:447:61:447:66 | [post] buffer | provenance | | +| test.rs:447:61:447:66 | [post] buffer | test.rs:448:19:448:24 | buffer | provenance | | +| test.rs:447:61:447:66 | [post] buffer | test.rs:450:23:450:33 | buffer[...] | provenance | | +| test.rs:448:19:448:24 | buffer | test.rs:448:18:448:24 | &buffer | provenance | | +| test.rs:450:23:450:33 | buffer[...] | test.rs:450:22:450:33 | &... | provenance | | +| test.rs:457:63:457:74 | &mut reader2 [&ref] | test.rs:457:77:457:88 | [post] &mut buffer1 [&ref] | provenance | MaD:15 | | test.rs:457:68:457:74 | reader2 | test.rs:457:63:457:74 | &mut reader2 [&ref] | provenance | | | test.rs:457:77:457:88 | [post] &mut buffer1 [&ref] | test.rs:457:82:457:88 | [post] buffer1 | provenance | | | test.rs:457:82:457:88 | [post] buffer1 | test.rs:458:19:458:40 | buffer1[...] | provenance | | | test.rs:458:19:458:40 | buffer1[...] | test.rs:458:18:458:40 | &... | provenance | | -| test.rs:461:31:461:37 | reader2 | test.rs:461:44:461:55 | [post] &mut buffer2 [&ref] | provenance | MaD:14 | +| test.rs:461:31:461:37 | reader2 | test.rs:461:44:461:55 | [post] &mut buffer2 [&ref] | provenance | MaD:15 | | test.rs:461:44:461:55 | [post] &mut buffer2 [&ref] | test.rs:461:49:461:55 | [post] buffer2 | provenance | | | test.rs:461:49:461:55 | [post] buffer2 | test.rs:462:19:462:40 | buffer2[...] | provenance | | | test.rs:462:19:462:40 | buffer2[...] | test.rs:462:18:462:40 | &... | provenance | | @@ -272,8 +279,8 @@ edges | test.rs:467:17:467:26 | mut pinned [&ref] | test.rs:470:26:470:54 | pinned.poll_fill_buf(...) [Ready, Ok] | provenance | MaD:8 | | test.rs:467:30:467:51 | ...::new(...) | test.rs:467:17:467:26 | mut pinned | provenance | | | test.rs:467:30:467:51 | ...::new(...) [&ref] | test.rs:467:17:467:26 | mut pinned [&ref] | provenance | | -| test.rs:467:39:467:50 | &mut reader2 [&ref] | test.rs:467:30:467:51 | ...::new(...) | provenance | MaD:23 | -| test.rs:467:39:467:50 | &mut reader2 [&ref] | test.rs:467:30:467:51 | ...::new(...) [&ref] | provenance | MaD:24 | +| test.rs:467:39:467:50 | &mut reader2 [&ref] | test.rs:467:30:467:51 | ...::new(...) | provenance | MaD:24 | +| test.rs:467:39:467:50 | &mut reader2 [&ref] | test.rs:467:30:467:51 | ...::new(...) [&ref] | provenance | MaD:25 | | test.rs:467:44:467:50 | reader2 | test.rs:467:39:467:50 | &mut reader2 [&ref] | provenance | | | test.rs:468:19:468:24 | pinned | test.rs:468:18:468:24 | &pinned | provenance | | | test.rs:468:19:468:24 | pinned [&ref] | test.rs:468:18:468:24 | &pinned | provenance | | @@ -288,15 +295,15 @@ edges | test.rs:479:26:479:43 | reader2.fill_buf() [future, Ok] | test.rs:479:26:479:49 | await ... [Ok] | provenance | | | test.rs:479:26:479:49 | await ... [Ok] | test.rs:479:26:479:50 | TryExpr | provenance | | | test.rs:479:26:479:50 | TryExpr | test.rs:479:17:479:22 | buffer | provenance | | -| test.rs:486:31:486:37 | reader2 | test.rs:486:57:486:65 | [post] &mut line [&ref] | provenance | MaD:12 | +| test.rs:486:31:486:37 | reader2 | test.rs:486:57:486:65 | [post] &mut line [&ref] | provenance | MaD:13 | | test.rs:486:57:486:65 | [post] &mut line [&ref] | test.rs:486:62:486:65 | [post] line | provenance | | | test.rs:486:62:486:65 | [post] line | test.rs:487:19:487:22 | line | provenance | | | test.rs:487:19:487:22 | line | test.rs:487:18:487:22 | &line | provenance | | -| test.rs:493:31:493:37 | reader2 | test.rs:493:49:493:57 | [post] &mut line [&ref] | provenance | MaD:10 | +| test.rs:493:31:493:37 | reader2 | test.rs:493:49:493:57 | [post] &mut line [&ref] | provenance | MaD:11 | | test.rs:493:49:493:57 | [post] &mut line [&ref] | test.rs:493:54:493:57 | [post] line | provenance | | | test.rs:493:54:493:57 | [post] line | test.rs:494:19:494:22 | line | provenance | | | test.rs:494:19:494:22 | line | test.rs:494:18:494:22 | &line | provenance | | -| test.rs:500:31:500:37 | reader2 | test.rs:500:51:500:61 | [post] &mut buffer [&ref] | provenance | MaD:16 | +| test.rs:500:31:500:37 | reader2 | test.rs:500:51:500:61 | [post] &mut buffer [&ref] | provenance | MaD:17 | | test.rs:500:51:500:61 | [post] &mut buffer [&ref] | test.rs:500:56:500:61 | [post] buffer | provenance | | | test.rs:500:56:500:61 | [post] buffer | test.rs:501:19:501:24 | buffer | provenance | | | test.rs:501:19:501:24 | buffer | test.rs:501:18:501:24 | &buffer | provenance | | @@ -510,6 +517,12 @@ nodes | test.rs:445:18:445:24 | &pinned | semmle.label | &pinned | | test.rs:445:19:445:24 | pinned | semmle.label | pinned | | test.rs:445:19:445:24 | pinned [&ref] | semmle.label | pinned [&ref] | +| test.rs:447:56:447:66 | [post] &mut buffer [&ref] | semmle.label | [post] &mut buffer [&ref] | +| test.rs:447:61:447:66 | [post] buffer | semmle.label | [post] buffer | +| test.rs:448:18:448:24 | &buffer | semmle.label | &buffer | +| test.rs:448:19:448:24 | buffer | semmle.label | buffer | +| test.rs:450:22:450:33 | &... | semmle.label | &... | +| test.rs:450:23:450:33 | buffer[...] | semmle.label | buffer[...] | | test.rs:457:63:457:74 | &mut reader2 [&ref] | semmle.label | &mut reader2 [&ref] | | test.rs:457:68:457:74 | reader2 | semmle.label | reader2 | | test.rs:457:77:457:88 | [post] &mut buffer1 [&ref] | semmle.label | [post] &mut buffer1 [&ref] | @@ -596,6 +609,8 @@ testFailures | test.rs:427:26:427:28 | buf | test.rs:373:19:373:36 | ...::connect | test.rs:427:26:427:28 | buf | $@ | test.rs:373:19:373:36 | ...::connect | ...::connect | | test.rs:438:18:438:23 | buffer | test.rs:373:19:373:36 | ...::connect | test.rs:438:18:438:23 | buffer | $@ | test.rs:373:19:373:36 | ...::connect | ...::connect | | test.rs:445:18:445:24 | &pinned | test.rs:373:19:373:36 | ...::connect | test.rs:445:18:445:24 | &pinned | $@ | test.rs:373:19:373:36 | ...::connect | ...::connect | +| test.rs:448:18:448:24 | &buffer | test.rs:373:19:373:36 | ...::connect | test.rs:448:18:448:24 | &buffer | $@ | test.rs:373:19:373:36 | ...::connect | ...::connect | +| test.rs:450:22:450:33 | &... | test.rs:373:19:373:36 | ...::connect | test.rs:450:22:450:33 | &... | $@ | test.rs:373:19:373:36 | ...::connect | ...::connect | | test.rs:458:18:458:40 | &... | test.rs:373:19:373:36 | ...::connect | test.rs:458:18:458:40 | &... | $@ | test.rs:373:19:373:36 | ...::connect | ...::connect | | test.rs:462:18:462:40 | &... | test.rs:373:19:373:36 | ...::connect | test.rs:462:18:462:40 | &... | $@ | test.rs:373:19:373:36 | ...::connect | ...::connect | | test.rs:468:18:468:24 | &pinned | test.rs:373:19:373:36 | ...::connect | test.rs:468:18:468:24 | &pinned | $@ | test.rs:373:19:373:36 | ...::connect | ...::connect | diff --git a/rust/ql/test/library-tests/dataflow/sources/net/test.rs b/rust/ql/test/library-tests/dataflow/sources/net/test.rs index ce100e35f2b..254a27349d9 100644 --- a/rust/ql/test/library-tests/dataflow/sources/net/test.rs +++ b/rust/ql/test/library-tests/dataflow/sources/net/test.rs @@ -445,9 +445,9 @@ mod futures_rustls { sink(&pinned); // $ hasTaintFlow=url let mut cx = Context::from_waker(futures::task::noop_waker_ref()); let bytes_read = pinned.poll_read(&mut cx, &mut buffer); - sink(&buffer); // $ MISSING: hasTaintFlow=url + sink(&buffer); // $ hasTaintFlow=url if let Poll::Ready(Ok(n)) = bytes_read { - sink(&buffer[..n]); // $ MISSING: hasTaintFlow=url + sink(&buffer[..n]); // $ hasTaintFlow=url } } From 531b9948191504fa0004c34260794df06e6bd0e6 Mon Sep 17 00:00:00 2001 From: yoff Date: Mon, 27 Oct 2025 14:27:32 +0100 Subject: [PATCH 029/126] java: add test for aliasing found by triage --- .../ThreadSafe/ThreadSafe.expected | 1 + .../ThreadSafe/examples/Alias.java | 21 +++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 java/ql/test/query-tests/ThreadSafe/examples/Alias.java diff --git a/java/ql/test/query-tests/ThreadSafe/ThreadSafe.expected b/java/ql/test/query-tests/ThreadSafe/ThreadSafe.expected index 3d73caaffe5..d09771f97c1 100644 --- a/java/ql/test/query-tests/ThreadSafe/ThreadSafe.expected +++ b/java/ql/test/query-tests/ThreadSafe/ThreadSafe.expected @@ -1,3 +1,4 @@ +| examples/Alias.java:16:13:16:13 | y | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/Alias.java:16:13:16:13 | y | this expression | | examples/C.java:14:9:14:14 | this.y | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/C.java:14:9:14:14 | this.y | this expression | | examples/C.java:15:9:15:14 | this.y | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/C.java:15:9:15:14 | this.y | this expression | | examples/C.java:16:9:16:14 | this.y | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/C.java:16:9:16:14 | this.y | this expression | diff --git a/java/ql/test/query-tests/ThreadSafe/examples/Alias.java b/java/ql/test/query-tests/ThreadSafe/examples/Alias.java new file mode 100644 index 00000000000..679e2c3366a --- /dev/null +++ b/java/ql/test/query-tests/ThreadSafe/examples/Alias.java @@ -0,0 +1,21 @@ +package examples; + +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; + +@ThreadSafe +public class Alias { + private int y; + + private final ReentrantLock lock = new ReentrantLock(); + + public void notMismatch() { + final ReentrantLock lock = this.lock; + lock.lock(); + try { + y = 42; // $ SPURIOUS: Alert + } finally { + this.lock.unlock(); + } + } +} \ No newline at end of file From 406e48b3bb348c6e414355ab8e01a1cd8a774bfd Mon Sep 17 00:00:00 2001 From: yoff Date: Mon, 27 Oct 2025 14:30:25 +0100 Subject: [PATCH 030/126] java: fix aliasing FP reorganise code, adding `LockField` --- java/ql/lib/semmle/code/java/Concurrency.qll | 49 ++++++++++++------- .../ThreadSafe/ThreadSafe.expected | 1 - .../ThreadSafe/examples/Alias.java | 2 +- 3 files changed, 32 insertions(+), 20 deletions(-) diff --git a/java/ql/lib/semmle/code/java/Concurrency.qll b/java/ql/lib/semmle/code/java/Concurrency.qll index b16aa850c39..da2783bc308 100644 --- a/java/ql/lib/semmle/code/java/Concurrency.qll +++ b/java/ql/lib/semmle/code/java/Concurrency.qll @@ -184,16 +184,6 @@ module Monitors { locallySynchronizedOnClass(e, m.(ClassMonitor).getClassType()) } - /** Holds if `localLock` refers to `lock`. */ - predicate represents(Field lock, Variable localLock) { - lock.getType() instanceof LockType and - ( - localLock = lock - or - localLock.getInitializer() = lock.getAnAccess() - ) - } - /** Gets the control flow node that must dominate `e` when `e` is synchronized on a lock. */ ControlFlowNode getNodeToBeDominated(Expr e) { // If `e` is the LHS of an assignment, use the control flow node for the assignment @@ -204,15 +194,38 @@ module Monitors { result = e.getControlFlowNode() } + /** A field storing a lock. */ + class LockField extends Field { + LockField() { this.getType() instanceof LockType } + + /** Gets a call to a method locking the lock stored in this field. */ + MethodCall getLockCall() { + result.getQualifier() = this.getRepresentative().getAnAccess() and + result = this.getType().(LockType).getLockAccess() + } + + /** Gets a call to a method unlocking the lock stored in this field. */ + MethodCall getUnlockCall() { + result.getQualifier() = this.getRepresentative().getAnAccess() and + result = this.getType().(LockType).getUnlockAccess() + } + + /** + * Gets a variable representing this field. + * It can be the field itself or a local variable initialized to the field. + */ + private Variable getRepresentative() { + result = this + or + result.getInitializer() = this.getAnAccess() + } + } + /** Holds if `e` is synchronized on the `Lock` `lock` by a locking call. */ - predicate locallyLockedOn(Expr e, Field lock) { - lock.getType() instanceof LockType and - exists(Variable localLock, MethodCall lockCall, MethodCall unlockCall | - represents(lock, localLock) and - lockCall.getQualifier() = localLock.getAnAccess() and - lockCall = lock.getType().(LockType).getLockAccess() and - unlockCall.getQualifier() = localLock.getAnAccess() and - unlockCall = lock.getType().(LockType).getUnlockAccess() + predicate locallyLockedOn(Expr e, LockField lock) { + exists(MethodCall lockCall, MethodCall unlockCall | + lockCall = lock.getLockCall() and + unlockCall = lock.getUnlockCall() | dominates(lockCall.getControlFlowNode(), unlockCall.getControlFlowNode()) and dominates(lockCall.getControlFlowNode(), getNodeToBeDominated(e)) and diff --git a/java/ql/test/query-tests/ThreadSafe/ThreadSafe.expected b/java/ql/test/query-tests/ThreadSafe/ThreadSafe.expected index d09771f97c1..3d73caaffe5 100644 --- a/java/ql/test/query-tests/ThreadSafe/ThreadSafe.expected +++ b/java/ql/test/query-tests/ThreadSafe/ThreadSafe.expected @@ -1,4 +1,3 @@ -| examples/Alias.java:16:13:16:13 | y | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/Alias.java:16:13:16:13 | y | this expression | | examples/C.java:14:9:14:14 | this.y | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/C.java:14:9:14:14 | this.y | this expression | | examples/C.java:15:9:15:14 | this.y | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/C.java:15:9:15:14 | this.y | this expression | | examples/C.java:16:9:16:14 | this.y | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/C.java:16:9:16:14 | this.y | this expression | diff --git a/java/ql/test/query-tests/ThreadSafe/examples/Alias.java b/java/ql/test/query-tests/ThreadSafe/examples/Alias.java index 679e2c3366a..802bae2fbb3 100644 --- a/java/ql/test/query-tests/ThreadSafe/examples/Alias.java +++ b/java/ql/test/query-tests/ThreadSafe/examples/Alias.java @@ -13,7 +13,7 @@ public class Alias { final ReentrantLock lock = this.lock; lock.lock(); try { - y = 42; // $ SPURIOUS: Alert + y = 42; } finally { this.lock.unlock(); } From 56811d02acaade17ce96335130776b4061e9b422 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 27 Oct 2025 11:59:40 +0000 Subject: [PATCH 031/126] Rust: Generalize more models. --- rust/ql/lib/codeql/rust/frameworks/mysql-async.model.yml | 8 ++++---- rust/ql/lib/codeql/rust/frameworks/mysql.model.yml | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/rust/ql/lib/codeql/rust/frameworks/mysql-async.model.yml b/rust/ql/lib/codeql/rust/frameworks/mysql-async.model.yml index 4c8858457c1..ef3b01db0eb 100644 --- a/rust/ql/lib/codeql/rust/frameworks/mysql-async.model.yml +++ b/rust/ql/lib/codeql/rust/frameworks/mysql-async.model.yml @@ -9,8 +9,8 @@ extensions: - ["<_ as mysql_async::queryable::Queryable>::query_fold", "Argument[0]", "sql-injection", "manual"] - ["<_ as mysql_async::queryable::Queryable>::query_stream", "Argument[0]", "sql-injection", "manual"] - ["<_ as mysql_async::queryable::Queryable>::query_map", "Argument[0]", "sql-injection", "manual"] - - ["::query_iter", "Argument[0]", "sql-injection", "manual"] - - ["::prep", "Argument[0]", "sql-injection", "manual"] + - ["<_ as mysql_async::queryable::Queryable>::query_iter", "Argument[0]", "sql-injection", "manual"] + - ["<_ as mysql_async::queryable::Queryable>::prep", "Argument[0]", "sql-injection", "manual"] - addsTo: pack: codeql/rust-all extensible: sourceModel @@ -21,8 +21,8 @@ extensions: - ["<_ as mysql_async::queryable::Queryable>::exec_first", "ReturnValue.Future.Field[core::result::Result::Ok(0)].Field[core::option::Option::Some(0)]", "database", "manual"] - ["<_ as mysql_async::queryable::Queryable>::query_fold", "Argument[2].Parameter[1]", "database", "manual"] - ["<_ as mysql_async::queryable::Queryable>::exec_fold", "Argument[3].Parameter[1]", "database", "manual"] - - ["::query_iter", "ReturnValue.Future.Field[core::result::Result::Ok(0)].Element", "database", "manual"] - - ["::exec_iter", "ReturnValue.Future.Field[core::result::Result::Ok(0)].Element", "database", "manual"] + - ["<_ as mysql_async::queryable::Queryable>::query_iter", "ReturnValue.Future.Field[core::result::Result::Ok(0)].Element", "database", "manual"] + - ["<_ as mysql_async::queryable::Queryable>::exec_iter", "ReturnValue.Future.Field[core::result::Result::Ok(0)].Element", "database", "manual"] - ["<_ as mysql_async::queryable::Queryable>::query_map", "Argument[1].Parameter[0]", "database", "manual"] - ["<_ as mysql_async::queryable::Queryable>::exec_map", "Argument[2].Parameter[0]", "database", "manual"] - ["::get", "ReturnValue.Field[core::option::Option::Some(0)]", "database", "manual"] diff --git a/rust/ql/lib/codeql/rust/frameworks/mysql.model.yml b/rust/ql/lib/codeql/rust/frameworks/mysql.model.yml index 7d6fa520eb8..2b9a644733e 100644 --- a/rust/ql/lib/codeql/rust/frameworks/mysql.model.yml +++ b/rust/ql/lib/codeql/rust/frameworks/mysql.model.yml @@ -10,10 +10,10 @@ extensions: - ["<_ as mysql::conn::queryable::Queryable>::query_first_opt", "Argument[0]", "sql-injection", "manual"] - ["<_ as mysql::conn::queryable::Queryable>::query_fold", "Argument[0]", "sql-injection", "manual"] - ["<_ as mysql::conn::queryable::Queryable>::query_fold_opt", "Argument[0]", "sql-injection", "manual"] - - ["::query_iter", "Argument[0]", "sql-injection", "manual"] + - ["<_ as mysql::conn::queryable::Queryable>::query_iter", "Argument[0]", "sql-injection", "manual"] - ["<_ as mysql::conn::queryable::Queryable>::query_map", "Argument[0]", "sql-injection", "manual"] - ["<_ as mysql::conn::queryable::Queryable>::query_map_opt", "Argument[0]", "sql-injection", "manual"] - - ["::prep", "Argument[0]", "sql-injection", "manual"] + - ["<_ as mysql::conn::queryable::Queryable>::prep", "Argument[0]", "sql-injection", "manual"] - addsTo: pack: codeql/rust-all extensible: sourceModel @@ -30,8 +30,8 @@ extensions: - ["<_ as mysql::conn::queryable::Queryable>::exec_fold", "Argument[3].Parameter[1]", "database", "manual"] - ["<_ as mysql::conn::queryable::Queryable>::query_fold_opt", "Argument[2].Parameter[1].Field[core::result::Result::Ok(0)]", "database", "manual"] - ["<_ as mysql::conn::queryable::Queryable>::exec_fold_opt", "Argument[3].Parameter[1].Field[core::result::Result::Ok(0)]", "database", "manual"] - - ["::query_iter", "ReturnValue.Field[core::result::Result::Ok(0)].Element", "database", "manual"] - - ["::exec_iter", "ReturnValue.Field[core::result::Result::Ok(0)].Element", "database", "manual"] + - ["<_ as mysql::conn::queryable::Queryable>::query_iter", "ReturnValue.Field[core::result::Result::Ok(0)].Element", "database", "manual"] + - ["<_ as mysql::conn::queryable::Queryable>::exec_iter", "ReturnValue.Field[core::result::Result::Ok(0)].Element", "database", "manual"] - ["<_ as mysql::conn::queryable::Queryable>::query_map", "Argument[1].Parameter[0]", "database", "manual"] - ["<_ as mysql::conn::queryable::Queryable>::query_map_opt", "Argument[1].Parameter[0].Field[core::result::Result::Ok(0)]", "database", "manual"] - ["<_ as mysql::conn::queryable::Queryable>::exec_map", "Argument[2].Parameter[0]", "database", "manual"] From a468b1d647df074c46a1a5e8a74312f9669ebcbe Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 27 Oct 2025 17:46:01 +0000 Subject: [PATCH 032/126] Rust: Accept regressions spotted by CI. --- .../sources/database/InlineFlow.expected | 96 +++-- .../sources/database/TaintSources.expected | 6 +- .../security/CWE-089/SqlInjection.expected | 337 ++++++++---------- .../security/CWE-089/SqlSinks.expected | 6 + 4 files changed, 200 insertions(+), 245 deletions(-) diff --git a/rust/ql/test/library-tests/dataflow/sources/database/InlineFlow.expected b/rust/ql/test/library-tests/dataflow/sources/database/InlineFlow.expected index db1e69c43fb..2b00c00ea47 100644 --- a/rust/ql/test/library-tests/dataflow/sources/database/InlineFlow.expected +++ b/rust/ql/test/library-tests/dataflow/sources/database/InlineFlow.expected @@ -4,50 +4,43 @@ models | 3 | Source: <_ as mysql::conn::queryable::Queryable>::query_map; Argument[1].Parameter[0]; database | | 4 | Source: <_ as mysql_async::queryable::Queryable>::query_fold; Argument[2].Parameter[1]; database | | 5 | Source: <_ as mysql_async::queryable::Queryable>::query_map; Argument[1].Parameter[0]; database | -| 6 | Source: ::exec_iter; ReturnValue.Field[core::result::Result::Ok(0)].Element; database | -| 7 | Source: ::get; ReturnValue.Field[core::option::Option::Some(0)]; database | -| 8 | Source: ::get_opt; ReturnValue.Field[core::option::Option::Some(0)].Field[core::result::Result::Ok(0)]; database | -| 9 | Source: ::take; ReturnValue.Field[core::option::Option::Some(0)]; database | -| 10 | Source: ::take_opt; ReturnValue.Field[core::option::Option::Some(0)].Field[core::result::Result::Ok(0)]; database | -| 11 | Summary: <_ as core::ops::arith::Add>::add; Argument[0].Reference; ReturnValue; taint | -| 12 | Summary: <_ as core::ops::arith::Add>::add; Argument[0]; ReturnValue; taint | -| 13 | Summary: <_ as mysql::conn::queryable::Queryable>::query_fold; Argument[2].ReturnValue; ReturnValue.Field[core::result::Result::Ok(0)]; value | -| 14 | Summary: <_ as mysql_async::queryable::Queryable>::query_fold; Argument[2].ReturnValue; ReturnValue.Future.Field[core::result::Result::Ok(0)]; value | -| 15 | Summary: ::add; Argument[0]; ReturnValue; taint | -| 16 | Summary: ::unwrap; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | -| 17 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | +| 6 | Source: ::get; ReturnValue.Field[core::option::Option::Some(0)]; database | +| 7 | Source: ::get_opt; ReturnValue.Field[core::option::Option::Some(0)].Field[core::result::Result::Ok(0)]; database | +| 8 | Source: ::take; ReturnValue.Field[core::option::Option::Some(0)]; database | +| 9 | Source: ::take_opt; ReturnValue.Field[core::option::Option::Some(0)].Field[core::result::Result::Ok(0)]; database | +| 10 | Summary: <_ as core::ops::arith::Add>::add; Argument[0].Reference; ReturnValue; taint | +| 11 | Summary: <_ as core::ops::arith::Add>::add; Argument[0]; ReturnValue; taint | +| 12 | Summary: <_ as mysql::conn::queryable::Queryable>::query_fold; Argument[2].ReturnValue; ReturnValue.Field[core::result::Result::Ok(0)]; value | +| 13 | Summary: <_ as mysql_async::queryable::Queryable>::query_fold; Argument[2].ReturnValue; ReturnValue.Future.Field[core::result::Result::Ok(0)]; value | +| 14 | Summary: ::add; Argument[0]; ReturnValue; taint | +| 15 | Summary: ::unwrap; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | +| 16 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | edges | test.rs:18:13:18:14 | v1 | test.rs:19:14:19:15 | v1 | provenance | | -| test.rs:18:24:18:33 | row.get(...) [Some] | test.rs:18:24:18:42 | ... .unwrap() | provenance | MaD:16 | +| test.rs:18:24:18:33 | row.get(...) [Some] | test.rs:18:24:18:42 | ... .unwrap() | provenance | MaD:15 | | test.rs:18:24:18:42 | ... .unwrap() | test.rs:18:13:18:14 | v1 | provenance | | -| test.rs:18:28:18:30 | get | test.rs:18:24:18:33 | row.get(...) [Some] | provenance | Src:MaD:7 | +| test.rs:18:28:18:30 | get | test.rs:18:24:18:33 | row.get(...) [Some] | provenance | Src:MaD:6 | | test.rs:21:13:21:14 | v2 | test.rs:22:14:22:15 | v2 | provenance | | -| test.rs:21:24:21:37 | row.get_opt(...) [Some, Ok] | test.rs:21:24:21:46 | ... .unwrap() [Ok] | provenance | MaD:16 | -| test.rs:21:24:21:46 | ... .unwrap() [Ok] | test.rs:21:24:21:55 | ... .unwrap() | provenance | MaD:17 | +| test.rs:21:24:21:37 | row.get_opt(...) [Some, Ok] | test.rs:21:24:21:46 | ... .unwrap() [Ok] | provenance | MaD:15 | +| test.rs:21:24:21:46 | ... .unwrap() [Ok] | test.rs:21:24:21:55 | ... .unwrap() | provenance | MaD:16 | | test.rs:21:24:21:55 | ... .unwrap() | test.rs:21:13:21:14 | v2 | provenance | | -| test.rs:21:28:21:34 | get_opt | test.rs:21:24:21:37 | row.get_opt(...) [Some, Ok] | provenance | Src:MaD:8 | +| test.rs:21:28:21:34 | get_opt | test.rs:21:24:21:37 | row.get_opt(...) [Some, Ok] | provenance | Src:MaD:7 | | test.rs:24:13:24:14 | v3 | test.rs:25:14:25:15 | v3 | provenance | | -| test.rs:24:24:24:34 | row.take(...) [Some] | test.rs:24:24:24:43 | ... .unwrap() | provenance | MaD:16 | +| test.rs:24:24:24:34 | row.take(...) [Some] | test.rs:24:24:24:43 | ... .unwrap() | provenance | MaD:15 | | test.rs:24:24:24:43 | ... .unwrap() | test.rs:24:13:24:14 | v3 | provenance | | -| test.rs:24:28:24:31 | take | test.rs:24:24:24:34 | row.take(...) [Some] | provenance | Src:MaD:9 | +| test.rs:24:28:24:31 | take | test.rs:24:24:24:34 | row.take(...) [Some] | provenance | Src:MaD:8 | | test.rs:27:13:27:14 | v4 | test.rs:28:14:28:15 | v4 | provenance | | -| test.rs:27:24:27:38 | row.take_opt(...) [Some, Ok] | test.rs:27:24:27:47 | ... .unwrap() [Ok] | provenance | MaD:16 | -| test.rs:27:24:27:47 | ... .unwrap() [Ok] | test.rs:27:24:27:56 | ... .unwrap() | provenance | MaD:17 | +| test.rs:27:24:27:38 | row.take_opt(...) [Some, Ok] | test.rs:27:24:27:47 | ... .unwrap() [Ok] | provenance | MaD:15 | +| test.rs:27:24:27:47 | ... .unwrap() [Ok] | test.rs:27:24:27:56 | ... .unwrap() | provenance | MaD:16 | | test.rs:27:24:27:56 | ... .unwrap() | test.rs:27:13:27:14 | v4 | provenance | | -| test.rs:27:28:27:35 | take_opt | test.rs:27:24:27:38 | row.take_opt(...) [Some, Ok] | provenance | Src:MaD:10 | +| test.rs:27:28:27:35 | take_opt | test.rs:27:24:27:38 | row.take_opt(...) [Some, Ok] | provenance | Src:MaD:9 | | test.rs:37:13:37:14 | v6 | test.rs:38:14:38:15 | v6 | provenance | | | test.rs:37:23:37:63 | conn.query_first(...) [Ok, Some] | test.rs:37:23:37:64 | TryExpr [Some] | provenance | | -| test.rs:37:23:37:64 | TryExpr [Some] | test.rs:37:23:37:73 | ... .unwrap() | provenance | MaD:16 | +| test.rs:37:23:37:64 | TryExpr [Some] | test.rs:37:23:37:73 | ... .unwrap() | provenance | MaD:15 | | test.rs:37:23:37:73 | ... .unwrap() | test.rs:37:13:37:14 | v6 | provenance | | | test.rs:37:28:37:38 | query_first | test.rs:37:23:37:63 | conn.query_first(...) [Ok, Some] | provenance | Src:MaD:1 | -| test.rs:40:13:40:18 | mut t1 [element] | test.rs:42:20:42:21 | t1 [element] | provenance | | -| test.rs:40:22:40:71 | conn.exec_iter(...) [Ok, element] | test.rs:40:22:40:72 | TryExpr [element] | provenance | | -| test.rs:40:22:40:72 | TryExpr [element] | test.rs:40:13:40:18 | mut t1 [element] | provenance | | -| test.rs:40:27:40:35 | exec_iter | test.rs:40:22:40:71 | conn.exec_iter(...) [Ok, element] | provenance | Src:MaD:6 | -| test.rs:41:14:41:61 | ... .get(...) [Some] | test.rs:41:14:41:70 | ... .unwrap() | provenance | MaD:16 | -| test.rs:41:42:41:44 | get | test.rs:41:14:41:61 | ... .get(...) [Some] | provenance | Src:MaD:7 | -| test.rs:42:13:42:15 | row | test.rs:44:22:44:22 | v | provenance | | -| test.rs:42:20:42:21 | t1 [element] | test.rs:42:13:42:15 | row | provenance | | +| test.rs:41:14:41:61 | ... .get(...) [Some] | test.rs:41:14:41:70 | ... .unwrap() | provenance | MaD:15 | +| test.rs:41:42:41:44 | get | test.rs:41:14:41:61 | ... .get(...) [Some] | provenance | Src:MaD:6 | | test.rs:48:22:48:30 | query_map | test.rs:50:14:50:24 | ...: i64 | provenance | Src:MaD:3 | | test.rs:50:14:50:24 | ...: i64 | test.rs:51:22:51:27 | values | provenance | | | test.rs:64:13:64:17 | total | test.rs:68:14:68:18 | total | provenance | | @@ -57,29 +50,29 @@ edges | test.rs:64:76:64:83 | ...: i64 | test.rs:64:86:67:9 | { ... } | provenance | | | test.rs:64:76:64:83 | ...: i64 | test.rs:65:18:65:20 | row | provenance | | | test.rs:64:76:64:83 | ...: i64 | test.rs:66:19:66:21 | row | provenance | | -| test.rs:64:86:67:9 | { ... } | test.rs:64:21:67:10 | conn.query_fold(...) [Ok] | provenance | MaD:13 | +| test.rs:64:86:67:9 | { ... } | test.rs:64:21:67:10 | conn.query_fold(...) [Ok] | provenance | MaD:12 | | test.rs:66:13:66:21 | ... + ... | test.rs:64:86:67:9 | { ... } | provenance | | +| test.rs:66:19:66:21 | row | test.rs:66:13:66:21 | ... + ... | provenance | MaD:10 | | test.rs:66:19:66:21 | row | test.rs:66:13:66:21 | ... + ... | provenance | MaD:11 | -| test.rs:66:19:66:21 | row | test.rs:66:13:66:21 | ... + ... | provenance | MaD:12 | -| test.rs:66:19:66:21 | row | test.rs:66:13:66:21 | ... + ... | provenance | MaD:15 | +| test.rs:66:19:66:21 | row | test.rs:66:13:66:21 | ... + ... | provenance | MaD:14 | | test.rs:105:13:105:14 | v1 | test.rs:106:14:106:15 | v1 | provenance | | -| test.rs:105:24:105:33 | row.get(...) [Some] | test.rs:105:24:105:42 | ... .unwrap() | provenance | MaD:16 | +| test.rs:105:24:105:33 | row.get(...) [Some] | test.rs:105:24:105:42 | ... .unwrap() | provenance | MaD:15 | | test.rs:105:24:105:42 | ... .unwrap() | test.rs:105:13:105:14 | v1 | provenance | | -| test.rs:105:28:105:30 | get | test.rs:105:24:105:33 | row.get(...) [Some] | provenance | Src:MaD:7 | +| test.rs:105:28:105:30 | get | test.rs:105:24:105:33 | row.get(...) [Some] | provenance | Src:MaD:6 | | test.rs:108:13:108:14 | v2 | test.rs:109:14:109:15 | v2 | provenance | | -| test.rs:108:24:108:37 | row.get_opt(...) [Some, Ok] | test.rs:108:24:108:46 | ... .unwrap() [Ok] | provenance | MaD:16 | -| test.rs:108:24:108:46 | ... .unwrap() [Ok] | test.rs:108:24:108:55 | ... .unwrap() | provenance | MaD:17 | +| test.rs:108:24:108:37 | row.get_opt(...) [Some, Ok] | test.rs:108:24:108:46 | ... .unwrap() [Ok] | provenance | MaD:15 | +| test.rs:108:24:108:46 | ... .unwrap() [Ok] | test.rs:108:24:108:55 | ... .unwrap() | provenance | MaD:16 | | test.rs:108:24:108:55 | ... .unwrap() | test.rs:108:13:108:14 | v2 | provenance | | -| test.rs:108:28:108:34 | get_opt | test.rs:108:24:108:37 | row.get_opt(...) [Some, Ok] | provenance | Src:MaD:8 | +| test.rs:108:28:108:34 | get_opt | test.rs:108:24:108:37 | row.get_opt(...) [Some, Ok] | provenance | Src:MaD:7 | | test.rs:111:13:111:14 | v3 | test.rs:112:14:112:15 | v3 | provenance | | -| test.rs:111:24:111:34 | row.take(...) [Some] | test.rs:111:24:111:43 | ... .unwrap() | provenance | MaD:16 | +| test.rs:111:24:111:34 | row.take(...) [Some] | test.rs:111:24:111:43 | ... .unwrap() | provenance | MaD:15 | | test.rs:111:24:111:43 | ... .unwrap() | test.rs:111:13:111:14 | v3 | provenance | | -| test.rs:111:28:111:31 | take | test.rs:111:24:111:34 | row.take(...) [Some] | provenance | Src:MaD:9 | +| test.rs:111:28:111:31 | take | test.rs:111:24:111:34 | row.take(...) [Some] | provenance | Src:MaD:8 | | test.rs:114:13:114:14 | v4 | test.rs:115:14:115:15 | v4 | provenance | | -| test.rs:114:24:114:38 | row.take_opt(...) [Some, Ok] | test.rs:114:24:114:47 | ... .unwrap() [Ok] | provenance | MaD:16 | -| test.rs:114:24:114:47 | ... .unwrap() [Ok] | test.rs:114:24:114:56 | ... .unwrap() | provenance | MaD:17 | +| test.rs:114:24:114:38 | row.take_opt(...) [Some, Ok] | test.rs:114:24:114:47 | ... .unwrap() [Ok] | provenance | MaD:15 | +| test.rs:114:24:114:47 | ... .unwrap() [Ok] | test.rs:114:24:114:56 | ... .unwrap() | provenance | MaD:16 | | test.rs:114:24:114:56 | ... .unwrap() | test.rs:114:13:114:14 | v4 | provenance | | -| test.rs:114:28:114:35 | take_opt | test.rs:114:24:114:38 | row.take_opt(...) [Some, Ok] | provenance | Src:MaD:10 | +| test.rs:114:28:114:35 | take_opt | test.rs:114:24:114:38 | row.take_opt(...) [Some, Ok] | provenance | Src:MaD:9 | | test.rs:135:22:135:30 | query_map | test.rs:137:14:137:24 | ...: i64 | provenance | Src:MaD:5 | | test.rs:137:14:137:24 | ...: i64 | test.rs:138:22:138:27 | values | provenance | | | test.rs:151:13:151:17 | total | test.rs:155:14:155:18 | total | provenance | | @@ -90,11 +83,11 @@ edges | test.rs:151:76:151:83 | ...: i64 | test.rs:151:86:154:9 | { ... } | provenance | | | test.rs:151:76:151:83 | ...: i64 | test.rs:152:18:152:20 | row | provenance | | | test.rs:151:76:151:83 | ...: i64 | test.rs:153:19:153:21 | row | provenance | | -| test.rs:151:86:154:9 | { ... } | test.rs:151:21:154:10 | conn.query_fold(...) [future, Ok] | provenance | MaD:14 | +| test.rs:151:86:154:9 | { ... } | test.rs:151:21:154:10 | conn.query_fold(...) [future, Ok] | provenance | MaD:13 | | test.rs:153:13:153:21 | ... + ... | test.rs:151:86:154:9 | { ... } | provenance | | +| test.rs:153:19:153:21 | row | test.rs:153:13:153:21 | ... + ... | provenance | MaD:10 | | test.rs:153:19:153:21 | row | test.rs:153:13:153:21 | ... + ... | provenance | MaD:11 | -| test.rs:153:19:153:21 | row | test.rs:153:13:153:21 | ... + ... | provenance | MaD:12 | -| test.rs:153:19:153:21 | row | test.rs:153:13:153:21 | ... + ... | provenance | MaD:15 | +| test.rs:153:19:153:21 | row | test.rs:153:13:153:21 | ... + ... | provenance | MaD:14 | nodes | test.rs:18:13:18:14 | v1 | semmle.label | v1 | | test.rs:18:24:18:33 | row.get(...) [Some] | semmle.label | row.get(...) [Some] | @@ -124,16 +117,9 @@ nodes | test.rs:37:23:37:73 | ... .unwrap() | semmle.label | ... .unwrap() | | test.rs:37:28:37:38 | query_first | semmle.label | query_first | | test.rs:38:14:38:15 | v6 | semmle.label | v6 | -| test.rs:40:13:40:18 | mut t1 [element] | semmle.label | mut t1 [element] | -| test.rs:40:22:40:71 | conn.exec_iter(...) [Ok, element] | semmle.label | conn.exec_iter(...) [Ok, element] | -| test.rs:40:22:40:72 | TryExpr [element] | semmle.label | TryExpr [element] | -| test.rs:40:27:40:35 | exec_iter | semmle.label | exec_iter | | test.rs:41:14:41:61 | ... .get(...) [Some] | semmle.label | ... .get(...) [Some] | | test.rs:41:14:41:70 | ... .unwrap() | semmle.label | ... .unwrap() | | test.rs:41:42:41:44 | get | semmle.label | get | -| test.rs:42:13:42:15 | row | semmle.label | row | -| test.rs:42:20:42:21 | t1 [element] | semmle.label | t1 [element] | -| test.rs:44:22:44:22 | v | semmle.label | v | | test.rs:48:22:48:30 | query_map | semmle.label | query_map | | test.rs:50:14:50:24 | ...: i64 | semmle.label | ...: i64 | | test.rs:51:22:51:27 | values | semmle.label | values | @@ -185,6 +171,7 @@ nodes | test.rs:155:14:155:18 | total | semmle.label | total | subpaths testFailures +| test.rs:44:26:44:42 | //... | Missing result: hasTaintFlow | #select | test.rs:19:14:19:15 | v1 | test.rs:18:28:18:30 | get | test.rs:19:14:19:15 | v1 | $@ | test.rs:18:28:18:30 | get | get | | test.rs:22:14:22:15 | v2 | test.rs:21:28:21:34 | get_opt | test.rs:22:14:22:15 | v2 | $@ | test.rs:21:28:21:34 | get_opt | get_opt | @@ -192,7 +179,6 @@ testFailures | test.rs:28:14:28:15 | v4 | test.rs:27:28:27:35 | take_opt | test.rs:28:14:28:15 | v4 | $@ | test.rs:27:28:27:35 | take_opt | take_opt | | test.rs:38:14:38:15 | v6 | test.rs:37:28:37:38 | query_first | test.rs:38:14:38:15 | v6 | $@ | test.rs:37:28:37:38 | query_first | query_first | | test.rs:41:14:41:70 | ... .unwrap() | test.rs:41:42:41:44 | get | test.rs:41:14:41:70 | ... .unwrap() | $@ | test.rs:41:42:41:44 | get | get | -| test.rs:44:22:44:22 | v | test.rs:40:27:40:35 | exec_iter | test.rs:44:22:44:22 | v | $@ | test.rs:40:27:40:35 | exec_iter | exec_iter | | test.rs:51:22:51:27 | values | test.rs:48:22:48:30 | query_map | test.rs:51:22:51:27 | values | $@ | test.rs:48:22:48:30 | query_map | query_map | | test.rs:65:18:65:20 | row | test.rs:64:26:64:35 | query_fold | test.rs:65:18:65:20 | row | $@ | test.rs:64:26:64:35 | query_fold | query_fold | | test.rs:68:14:68:18 | total | test.rs:64:26:64:35 | query_fold | test.rs:68:14:68:18 | total | $@ | test.rs:64:26:64:35 | query_fold | query_fold | diff --git a/rust/ql/test/library-tests/dataflow/sources/database/TaintSources.expected b/rust/ql/test/library-tests/dataflow/sources/database/TaintSources.expected index 9132dfaa2b0..96c4a62f569 100644 --- a/rust/ql/test/library-tests/dataflow/sources/database/TaintSources.expected +++ b/rust/ql/test/library-tests/dataflow/sources/database/TaintSources.expected @@ -1,3 +1,4 @@ +#select | test.rs:15:47:15:51 | query | Flow source 'DatabaseSource' of type database (DEFAULT). | | test.rs:18:28:18:30 | get | Flow source 'DatabaseSource' of type database (DEFAULT). | | test.rs:21:28:21:34 | get_opt | Flow source 'DatabaseSource' of type database (DEFAULT). | @@ -5,7 +6,6 @@ | test.rs:27:28:27:35 | take_opt | Flow source 'DatabaseSource' of type database (DEFAULT). | | test.rs:30:26:30:31 | as_ref | Flow source 'DatabaseSource' of type database (DEFAULT). | | test.rs:37:28:37:38 | query_first | Flow source 'DatabaseSource' of type database (DEFAULT). | -| test.rs:40:27:40:35 | exec_iter | Flow source 'DatabaseSource' of type database (DEFAULT). | | test.rs:41:42:41:44 | get | Flow source 'DatabaseSource' of type database (DEFAULT). | | test.rs:48:22:48:30 | query_map | Flow source 'DatabaseSource' of type database (DEFAULT). | | test.rs:55:22:55:30 | query_map | Flow source 'DatabaseSource' of type database (DEFAULT). | @@ -18,8 +18,10 @@ | test.rs:114:28:114:35 | take_opt | Flow source 'DatabaseSource' of type database (DEFAULT). | | test.rs:117:26:117:31 | as_ref | Flow source 'DatabaseSource' of type database (DEFAULT). | | test.rs:124:28:124:38 | query_first | Flow source 'DatabaseSource' of type database (DEFAULT). | -| test.rs:127:27:127:35 | exec_iter | Flow source 'DatabaseSource' of type database (DEFAULT). | | test.rs:135:22:135:30 | query_map | Flow source 'DatabaseSource' of type database (DEFAULT). | | test.rs:142:22:142:30 | query_map | Flow source 'DatabaseSource' of type database (DEFAULT). | | test.rs:151:26:151:35 | query_fold | Flow source 'DatabaseSource' of type database (DEFAULT). | | test.rs:157:22:157:31 | query_fold | Flow source 'DatabaseSource' of type database (DEFAULT). | +testFailures +| test.rs:40:75:40:112 | //... | Missing result: Alert[rust/summary/taint-sources] | +| test.rs:127:81:127:118 | //... | Missing result: Alert[rust/summary/taint-sources] | diff --git a/rust/ql/test/query-tests/security/CWE-089/SqlInjection.expected b/rust/ql/test/query-tests/security/CWE-089/SqlInjection.expected index ecd8cfa7937..5c9992256e9 100644 --- a/rust/ql/test/query-tests/security/CWE-089/SqlInjection.expected +++ b/rust/ql/test/query-tests/security/CWE-089/SqlInjection.expected @@ -6,20 +6,16 @@ | mysql.rs:29:49:29:63 | query_first_opt | mysql.rs:12:33:12:54 | ...::get | mysql.rs:29:49:29:63 | query_first_opt | This query depends on a $@. | mysql.rs:12:33:12:54 | ...::get | user-provided value | | mysql.rs:30:22:30:31 | query_fold | mysql.rs:12:33:12:54 | ...::get | mysql.rs:30:22:30:31 | query_fold | This query depends on a $@. | mysql.rs:12:33:12:54 | ...::get | user-provided value | | mysql.rs:31:22:31:35 | query_fold_opt | mysql.rs:12:33:12:54 | ...::get | mysql.rs:31:22:31:35 | query_fold_opt | This query depends on a $@. | mysql.rs:12:33:12:54 | ...::get | user-provided value | -| mysql.rs:36:22:36:31 | query_iter | mysql.rs:12:33:12:54 | ...::get | mysql.rs:36:22:36:31 | query_iter | This query depends on a $@. | mysql.rs:12:33:12:54 | ...::get | user-provided value | | mysql.rs:37:22:37:30 | query_map | mysql.rs:12:33:12:54 | ...::get | mysql.rs:37:22:37:30 | query_map | This query depends on a $@. | mysql.rs:12:33:12:54 | ...::get | user-provided value | | mysql.rs:38:22:38:34 | query_map_opt | mysql.rs:12:33:12:54 | ...::get | mysql.rs:38:22:38:34 | query_map_opt | This query depends on a $@. | mysql.rs:12:33:12:54 | ...::get | user-provided value | | mysql.rs:42:33:42:37 | query | mysql.rs:12:33:12:54 | ...::get | mysql.rs:42:33:42:37 | query | This query depends on a $@. | mysql.rs:12:33:12:54 | ...::get | user-provided value | -| mysql.rs:75:26:75:29 | prep | mysql.rs:12:33:12:54 | ...::get | mysql.rs:75:26:75:29 | prep | This query depends on a $@. | mysql.rs:12:33:12:54 | ...::get | user-provided value | | mysql.rs:80:15:80:24 | query_drop | mysql.rs:12:33:12:54 | ...::get | mysql.rs:80:15:80:24 | query_drop | This query depends on a $@. | mysql.rs:12:33:12:54 | ...::get | user-provided value | | mysql.rs:110:32:110:36 | query | mysql.rs:97:33:97:54 | ...::get | mysql.rs:110:32:110:36 | query | This query depends on a $@. | mysql.rs:97:33:97:54 | ...::get | user-provided value | | mysql.rs:111:14:111:23 | query_drop | mysql.rs:97:33:97:54 | ...::get | mysql.rs:111:14:111:23 | query_drop | This query depends on a $@. | mysql.rs:97:33:97:54 | ...::get | user-provided value | | mysql.rs:112:35:112:45 | query_first | mysql.rs:97:33:97:54 | ...::get | mysql.rs:112:35:112:45 | query_first | This query depends on a $@. | mysql.rs:97:33:97:54 | ...::get | user-provided value | | mysql.rs:114:14:114:23 | query_fold | mysql.rs:97:33:97:54 | ...::get | mysql.rs:114:14:114:23 | query_fold | This query depends on a $@. | mysql.rs:97:33:97:54 | ...::get | user-provided value | -| mysql.rs:116:22:116:31 | query_iter | mysql.rs:97:33:97:54 | ...::get | mysql.rs:116:22:116:31 | query_iter | This query depends on a $@. | mysql.rs:97:33:97:54 | ...::get | user-provided value | | mysql.rs:118:14:118:25 | query_stream | mysql.rs:97:33:97:54 | ...::get | mysql.rs:118:14:118:25 | query_stream | This query depends on a $@. | mysql.rs:97:33:97:54 | ...::get | user-provided value | | mysql.rs:121:14:121:22 | query_map | mysql.rs:97:33:97:54 | ...::get | mysql.rs:121:14:121:22 | query_map | This query depends on a $@. | mysql.rs:97:33:97:54 | ...::get | user-provided value | -| mysql.rs:149:26:149:29 | prep | mysql.rs:97:33:97:54 | ...::get | mysql.rs:149:26:149:29 | prep | This query depends on a $@. | mysql.rs:97:33:97:54 | ...::get | user-provided value | | mysql.rs:154:15:154:24 | query_drop | mysql.rs:97:33:97:54 | ...::get | mysql.rs:154:15:154:24 | query_drop | This query depends on a $@. | mysql.rs:97:33:97:54 | ...::get | user-provided value | | sqlx.rs:77:13:77:23 | ...::query | sqlx.rs:48:25:48:46 | ...::get | sqlx.rs:77:13:77:23 | ...::query | This query depends on a $@. | sqlx.rs:48:25:48:46 | ...::get | user-provided value | | sqlx.rs:78:13:78:23 | ...::query | sqlx.rs:47:22:47:35 | ...::args | sqlx.rs:78:13:78:23 | ...::query | This query depends on a $@. | sqlx.rs:47:22:47:35 | ...::args | user-provided value | @@ -35,255 +31,235 @@ | sqlx.rs:188:17:188:27 | ...::query | sqlx.rs:173:25:173:46 | ...::get | sqlx.rs:188:17:188:27 | ...::query | This query depends on a $@. | sqlx.rs:173:25:173:46 | ...::get | user-provided value | edges | mysql.rs:12:13:12:29 | mut remote_string | mysql.rs:18:71:18:83 | remote_string | provenance | | -| mysql.rs:12:33:12:54 | ...::get | mysql.rs:12:33:12:77 | ...::get(...) [Ok] | provenance | Src:MaD:23 | -| mysql.rs:12:33:12:77 | ...::get(...) [Ok] | mysql.rs:12:33:13:21 | ... .unwrap() | provenance | MaD:31 | -| mysql.rs:12:33:13:21 | ... .unwrap() | mysql.rs:12:33:14:19 | ... .text() [Ok] | provenance | MaD:35 | -| mysql.rs:12:33:14:19 | ... .text() [Ok] | mysql.rs:12:33:15:40 | ... .unwrap_or(...) | provenance | MaD:32 | +| mysql.rs:12:33:12:54 | ...::get | mysql.rs:12:33:12:77 | ...::get(...) [Ok] | provenance | Src:MaD:19 | +| mysql.rs:12:33:12:77 | ...::get(...) [Ok] | mysql.rs:12:33:13:21 | ... .unwrap() | provenance | MaD:27 | +| mysql.rs:12:33:13:21 | ... .unwrap() | mysql.rs:12:33:14:19 | ... .text() [Ok] | provenance | MaD:31 | +| mysql.rs:12:33:14:19 | ... .text() [Ok] | mysql.rs:12:33:15:40 | ... .unwrap_or(...) | provenance | MaD:28 | | mysql.rs:12:33:15:40 | ... .unwrap_or(...) | mysql.rs:12:13:12:29 | mut remote_string | provenance | | | mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:25:38:25:49 | unsafe_query | provenance | | -| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:25:38:25:58 | unsafe_query.as_str() | provenance | MaD:29 | +| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:25:38:25:58 | unsafe_query.as_str() | provenance | MaD:25 | | mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:26:64:26:75 | unsafe_query | provenance | | -| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:26:64:26:84 | unsafe_query.as_str() | provenance | MaD:29 | +| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:26:64:26:84 | unsafe_query.as_str() | provenance | MaD:25 | | mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:27:25:27:36 | unsafe_query | provenance | | -| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:27:25:27:45 | unsafe_query.as_str() | provenance | MaD:29 | +| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:27:25:27:45 | unsafe_query.as_str() | provenance | MaD:25 | | mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:28:39:28:50 | unsafe_query | provenance | | -| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:28:39:28:59 | unsafe_query.as_str() | provenance | MaD:29 | +| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:28:39:28:59 | unsafe_query.as_str() | provenance | MaD:25 | | mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:29:65:29:76 | unsafe_query | provenance | | -| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:29:65:29:85 | unsafe_query.as_str() | provenance | MaD:29 | +| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:29:65:29:85 | unsafe_query.as_str() | provenance | MaD:25 | | mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:30:33:30:44 | unsafe_query | provenance | | -| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:30:33:30:53 | unsafe_query.as_str() | provenance | MaD:29 | +| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:30:33:30:53 | unsafe_query.as_str() | provenance | MaD:25 | | mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:32:13:32:24 | unsafe_query | provenance | | -| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:32:13:32:33 | unsafe_query.as_str() | provenance | MaD:29 | -| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:36:33:36:44 | unsafe_query | provenance | | -| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:36:33:36:53 | unsafe_query.as_str() | provenance | MaD:29 | +| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:32:13:32:33 | unsafe_query.as_str() | provenance | MaD:25 | | mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:37:32:37:43 | unsafe_query | provenance | | -| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:37:32:37:52 | unsafe_query.as_str() | provenance | MaD:29 | +| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:37:32:37:52 | unsafe_query.as_str() | provenance | MaD:25 | | mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:39:13:39:24 | unsafe_query | provenance | | -| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:39:13:39:33 | unsafe_query.as_str() | provenance | MaD:29 | +| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:39:13:39:33 | unsafe_query.as_str() | provenance | MaD:25 | | mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:42:39:42:50 | unsafe_query | provenance | | -| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:42:39:42:59 | unsafe_query.as_str() | provenance | MaD:29 | -| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:75:31:75:42 | unsafe_query | provenance | | -| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:75:31:75:51 | unsafe_query.as_str() | provenance | MaD:29 | +| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:42:39:42:59 | unsafe_query.as_str() | provenance | MaD:25 | | mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:80:26:80:37 | unsafe_query | provenance | | -| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:80:26:80:46 | unsafe_query.as_str() | provenance | MaD:29 | +| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:80:26:80:46 | unsafe_query.as_str() | provenance | MaD:25 | | mysql.rs:18:13:18:83 | ... + ... | mysql.rs:17:13:17:24 | unsafe_query | provenance | | -| mysql.rs:18:13:18:83 | ... + ... | mysql.rs:18:13:18:89 | ... + ... | provenance | MaD:27 | -| mysql.rs:18:13:18:83 | ... + ... | mysql.rs:18:13:18:89 | ... + ... | provenance | MaD:28 | +| mysql.rs:18:13:18:83 | ... + ... | mysql.rs:18:13:18:89 | ... + ... | provenance | MaD:23 | +| mysql.rs:18:13:18:83 | ... + ... | mysql.rs:18:13:18:89 | ... + ... | provenance | MaD:24 | | mysql.rs:18:13:18:89 | ... + ... | mysql.rs:17:13:17:24 | unsafe_query | provenance | | -| mysql.rs:18:70:18:83 | &remote_string [&ref] | mysql.rs:18:13:18:83 | ... + ... | provenance | MaD:26 | +| mysql.rs:18:70:18:83 | &remote_string [&ref] | mysql.rs:18:13:18:83 | ... + ... | provenance | MaD:22 | | mysql.rs:18:71:18:83 | remote_string | mysql.rs:18:70:18:83 | &remote_string [&ref] | provenance | | -| mysql.rs:25:38:25:49 | unsafe_query | mysql.rs:25:38:25:58 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | +| mysql.rs:25:38:25:49 | unsafe_query | mysql.rs:25:38:25:58 | unsafe_query.as_str() [&ref] | provenance | MaD:25 | | mysql.rs:25:38:25:58 | unsafe_query.as_str() | mysql.rs:25:32:25:36 | query | provenance | MaD:1 Sink:MaD:1 | | mysql.rs:25:38:25:58 | unsafe_query.as_str() [&ref] | mysql.rs:25:32:25:36 | query | provenance | MaD:1 Sink:MaD:1 | -| mysql.rs:26:64:26:75 | unsafe_query | mysql.rs:26:64:26:84 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | +| mysql.rs:26:64:26:75 | unsafe_query | mysql.rs:26:64:26:84 | unsafe_query.as_str() [&ref] | provenance | MaD:25 | | mysql.rs:26:64:26:84 | unsafe_query.as_str() | mysql.rs:26:54:26:62 | query_opt | provenance | MaD:9 Sink:MaD:9 | | mysql.rs:26:64:26:84 | unsafe_query.as_str() [&ref] | mysql.rs:26:54:26:62 | query_opt | provenance | MaD:9 Sink:MaD:9 | -| mysql.rs:27:25:27:36 | unsafe_query | mysql.rs:27:25:27:45 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | +| mysql.rs:27:25:27:36 | unsafe_query | mysql.rs:27:25:27:45 | unsafe_query.as_str() [&ref] | provenance | MaD:25 | | mysql.rs:27:25:27:45 | unsafe_query.as_str() | mysql.rs:27:14:27:23 | query_drop | provenance | MaD:2 Sink:MaD:2 | | mysql.rs:27:25:27:45 | unsafe_query.as_str() [&ref] | mysql.rs:27:14:27:23 | query_drop | provenance | MaD:2 Sink:MaD:2 | -| mysql.rs:28:39:28:50 | unsafe_query | mysql.rs:28:39:28:59 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | +| mysql.rs:28:39:28:50 | unsafe_query | mysql.rs:28:39:28:59 | unsafe_query.as_str() [&ref] | provenance | MaD:25 | | mysql.rs:28:39:28:59 | unsafe_query.as_str() | mysql.rs:28:27:28:37 | query_first | provenance | MaD:3 Sink:MaD:3 | | mysql.rs:28:39:28:59 | unsafe_query.as_str() [&ref] | mysql.rs:28:27:28:37 | query_first | provenance | MaD:3 Sink:MaD:3 | -| mysql.rs:29:65:29:76 | unsafe_query | mysql.rs:29:65:29:85 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | +| mysql.rs:29:65:29:76 | unsafe_query | mysql.rs:29:65:29:85 | unsafe_query.as_str() [&ref] | provenance | MaD:25 | | mysql.rs:29:65:29:85 | unsafe_query.as_str() | mysql.rs:29:49:29:63 | query_first_opt | provenance | MaD:4 Sink:MaD:4 | | mysql.rs:29:65:29:85 | unsafe_query.as_str() [&ref] | mysql.rs:29:49:29:63 | query_first_opt | provenance | MaD:4 Sink:MaD:4 | -| mysql.rs:30:33:30:44 | unsafe_query | mysql.rs:30:33:30:53 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | +| mysql.rs:30:33:30:44 | unsafe_query | mysql.rs:30:33:30:53 | unsafe_query.as_str() [&ref] | provenance | MaD:25 | | mysql.rs:30:33:30:53 | unsafe_query.as_str() | mysql.rs:30:22:30:31 | query_fold | provenance | MaD:5 Sink:MaD:5 | | mysql.rs:30:33:30:53 | unsafe_query.as_str() [&ref] | mysql.rs:30:22:30:31 | query_fold | provenance | MaD:5 Sink:MaD:5 | -| mysql.rs:32:13:32:24 | unsafe_query | mysql.rs:32:13:32:33 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | +| mysql.rs:32:13:32:24 | unsafe_query | mysql.rs:32:13:32:33 | unsafe_query.as_str() [&ref] | provenance | MaD:25 | | mysql.rs:32:13:32:33 | unsafe_query.as_str() | mysql.rs:31:22:31:35 | query_fold_opt | provenance | MaD:6 Sink:MaD:6 | | mysql.rs:32:13:32:33 | unsafe_query.as_str() [&ref] | mysql.rs:31:22:31:35 | query_fold_opt | provenance | MaD:6 Sink:MaD:6 | -| mysql.rs:36:33:36:44 | unsafe_query | mysql.rs:36:33:36:53 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | -| mysql.rs:36:33:36:53 | unsafe_query.as_str() | mysql.rs:36:22:36:31 | query_iter | provenance | MaD:17 Sink:MaD:17 | -| mysql.rs:36:33:36:53 | unsafe_query.as_str() [&ref] | mysql.rs:36:22:36:31 | query_iter | provenance | MaD:17 Sink:MaD:17 | -| mysql.rs:37:32:37:43 | unsafe_query | mysql.rs:37:32:37:52 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | +| mysql.rs:37:32:37:43 | unsafe_query | mysql.rs:37:32:37:52 | unsafe_query.as_str() [&ref] | provenance | MaD:25 | | mysql.rs:37:32:37:52 | unsafe_query.as_str() | mysql.rs:37:22:37:30 | query_map | provenance | MaD:7 Sink:MaD:7 | | mysql.rs:37:32:37:52 | unsafe_query.as_str() [&ref] | mysql.rs:37:22:37:30 | query_map | provenance | MaD:7 Sink:MaD:7 | -| mysql.rs:39:13:39:24 | unsafe_query | mysql.rs:39:13:39:33 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | +| mysql.rs:39:13:39:24 | unsafe_query | mysql.rs:39:13:39:33 | unsafe_query.as_str() [&ref] | provenance | MaD:25 | | mysql.rs:39:13:39:33 | unsafe_query.as_str() | mysql.rs:38:22:38:34 | query_map_opt | provenance | MaD:8 Sink:MaD:8 | | mysql.rs:39:13:39:33 | unsafe_query.as_str() [&ref] | mysql.rs:38:22:38:34 | query_map_opt | provenance | MaD:8 Sink:MaD:8 | -| mysql.rs:42:39:42:50 | unsafe_query | mysql.rs:42:39:42:59 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | +| mysql.rs:42:39:42:50 | unsafe_query | mysql.rs:42:39:42:59 | unsafe_query.as_str() [&ref] | provenance | MaD:25 | | mysql.rs:42:39:42:59 | unsafe_query.as_str() | mysql.rs:42:33:42:37 | query | provenance | MaD:1 Sink:MaD:1 | | mysql.rs:42:39:42:59 | unsafe_query.as_str() [&ref] | mysql.rs:42:33:42:37 | query | provenance | MaD:1 Sink:MaD:1 | -| mysql.rs:75:31:75:42 | unsafe_query | mysql.rs:75:31:75:51 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | -| mysql.rs:75:31:75:51 | unsafe_query.as_str() | mysql.rs:75:26:75:29 | prep | provenance | MaD:16 Sink:MaD:16 | -| mysql.rs:75:31:75:51 | unsafe_query.as_str() [&ref] | mysql.rs:75:26:75:29 | prep | provenance | MaD:16 Sink:MaD:16 | -| mysql.rs:80:26:80:37 | unsafe_query | mysql.rs:80:26:80:46 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | +| mysql.rs:80:26:80:37 | unsafe_query | mysql.rs:80:26:80:46 | unsafe_query.as_str() [&ref] | provenance | MaD:25 | | mysql.rs:80:26:80:46 | unsafe_query.as_str() | mysql.rs:80:15:80:24 | query_drop | provenance | MaD:2 Sink:MaD:2 | | mysql.rs:80:26:80:46 | unsafe_query.as_str() [&ref] | mysql.rs:80:15:80:24 | query_drop | provenance | MaD:2 Sink:MaD:2 | | mysql.rs:97:13:97:29 | mut remote_string | mysql.rs:103:71:103:83 | remote_string | provenance | | -| mysql.rs:97:33:97:54 | ...::get | mysql.rs:97:33:97:77 | ...::get(...) [Ok] | provenance | Src:MaD:23 | -| mysql.rs:97:33:97:77 | ...::get(...) [Ok] | mysql.rs:97:33:98:21 | ... .unwrap() | provenance | MaD:31 | -| mysql.rs:97:33:98:21 | ... .unwrap() | mysql.rs:97:33:99:19 | ... .text() [Ok] | provenance | MaD:35 | -| mysql.rs:97:33:99:19 | ... .text() [Ok] | mysql.rs:97:33:100:40 | ... .unwrap_or(...) | provenance | MaD:32 | +| mysql.rs:97:33:97:54 | ...::get | mysql.rs:97:33:97:77 | ...::get(...) [Ok] | provenance | Src:MaD:19 | +| mysql.rs:97:33:97:77 | ...::get(...) [Ok] | mysql.rs:97:33:98:21 | ... .unwrap() | provenance | MaD:27 | +| mysql.rs:97:33:98:21 | ... .unwrap() | mysql.rs:97:33:99:19 | ... .text() [Ok] | provenance | MaD:31 | +| mysql.rs:97:33:99:19 | ... .text() [Ok] | mysql.rs:97:33:100:40 | ... .unwrap_or(...) | provenance | MaD:28 | | mysql.rs:97:33:100:40 | ... .unwrap_or(...) | mysql.rs:97:13:97:29 | mut remote_string | provenance | | | mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:110:38:110:49 | unsafe_query | provenance | | -| mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:110:38:110:58 | unsafe_query.as_str() | provenance | MaD:29 | +| mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:110:38:110:58 | unsafe_query.as_str() | provenance | MaD:25 | | mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:111:25:111:36 | unsafe_query | provenance | | -| mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:111:25:111:45 | unsafe_query.as_str() | provenance | MaD:29 | +| mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:111:25:111:45 | unsafe_query.as_str() | provenance | MaD:25 | | mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:112:47:112:58 | unsafe_query | provenance | | -| mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:112:47:112:67 | unsafe_query.as_str() | provenance | MaD:29 | +| mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:112:47:112:67 | unsafe_query.as_str() | provenance | MaD:25 | | mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:114:25:114:36 | unsafe_query | provenance | | -| mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:114:25:114:45 | unsafe_query.as_str() | provenance | MaD:29 | -| mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:116:33:116:44 | unsafe_query | provenance | | -| mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:116:33:116:53 | unsafe_query.as_str() | provenance | MaD:29 | +| mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:114:25:114:45 | unsafe_query.as_str() | provenance | MaD:25 | | mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:118:40:118:51 | unsafe_query | provenance | | -| mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:118:40:118:60 | unsafe_query.as_str() | provenance | MaD:29 | +| mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:118:40:118:60 | unsafe_query.as_str() | provenance | MaD:25 | | mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:121:24:121:35 | unsafe_query | provenance | | -| mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:121:24:121:44 | unsafe_query.as_str() | provenance | MaD:29 | -| mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:149:31:149:42 | unsafe_query | provenance | | -| mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:149:31:149:51 | unsafe_query.as_str() | provenance | MaD:29 | +| mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:121:24:121:44 | unsafe_query.as_str() | provenance | MaD:25 | | mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:154:26:154:37 | unsafe_query | provenance | | -| mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:154:26:154:46 | unsafe_query.as_str() | provenance | MaD:29 | +| mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:154:26:154:46 | unsafe_query.as_str() | provenance | MaD:25 | | mysql.rs:103:13:103:83 | ... + ... | mysql.rs:102:13:102:24 | unsafe_query | provenance | | -| mysql.rs:103:13:103:83 | ... + ... | mysql.rs:103:13:103:89 | ... + ... | provenance | MaD:27 | -| mysql.rs:103:13:103:83 | ... + ... | mysql.rs:103:13:103:89 | ... + ... | provenance | MaD:28 | +| mysql.rs:103:13:103:83 | ... + ... | mysql.rs:103:13:103:89 | ... + ... | provenance | MaD:23 | +| mysql.rs:103:13:103:83 | ... + ... | mysql.rs:103:13:103:89 | ... + ... | provenance | MaD:24 | | mysql.rs:103:13:103:89 | ... + ... | mysql.rs:102:13:102:24 | unsafe_query | provenance | | -| mysql.rs:103:70:103:83 | &remote_string [&ref] | mysql.rs:103:13:103:83 | ... + ... | provenance | MaD:26 | +| mysql.rs:103:70:103:83 | &remote_string [&ref] | mysql.rs:103:13:103:83 | ... + ... | provenance | MaD:22 | | mysql.rs:103:71:103:83 | remote_string | mysql.rs:103:70:103:83 | &remote_string [&ref] | provenance | | -| mysql.rs:110:38:110:49 | unsafe_query | mysql.rs:110:38:110:58 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | +| mysql.rs:110:38:110:49 | unsafe_query | mysql.rs:110:38:110:58 | unsafe_query.as_str() [&ref] | provenance | MaD:25 | | mysql.rs:110:38:110:58 | unsafe_query.as_str() | mysql.rs:110:32:110:36 | query | provenance | MaD:10 Sink:MaD:10 | | mysql.rs:110:38:110:58 | unsafe_query.as_str() [&ref] | mysql.rs:110:32:110:36 | query | provenance | MaD:10 Sink:MaD:10 | -| mysql.rs:111:25:111:36 | unsafe_query | mysql.rs:111:25:111:45 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | +| mysql.rs:111:25:111:36 | unsafe_query | mysql.rs:111:25:111:45 | unsafe_query.as_str() [&ref] | provenance | MaD:25 | | mysql.rs:111:25:111:45 | unsafe_query.as_str() | mysql.rs:111:14:111:23 | query_drop | provenance | MaD:11 Sink:MaD:11 | | mysql.rs:111:25:111:45 | unsafe_query.as_str() [&ref] | mysql.rs:111:14:111:23 | query_drop | provenance | MaD:11 Sink:MaD:11 | -| mysql.rs:112:47:112:58 | unsafe_query | mysql.rs:112:47:112:67 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | +| mysql.rs:112:47:112:58 | unsafe_query | mysql.rs:112:47:112:67 | unsafe_query.as_str() [&ref] | provenance | MaD:25 | | mysql.rs:112:47:112:67 | unsafe_query.as_str() | mysql.rs:112:35:112:45 | query_first | provenance | MaD:12 Sink:MaD:12 | | mysql.rs:112:47:112:67 | unsafe_query.as_str() [&ref] | mysql.rs:112:35:112:45 | query_first | provenance | MaD:12 Sink:MaD:12 | -| mysql.rs:114:25:114:36 | unsafe_query | mysql.rs:114:25:114:45 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | +| mysql.rs:114:25:114:36 | unsafe_query | mysql.rs:114:25:114:45 | unsafe_query.as_str() [&ref] | provenance | MaD:25 | | mysql.rs:114:25:114:45 | unsafe_query.as_str() | mysql.rs:114:14:114:23 | query_fold | provenance | MaD:13 Sink:MaD:13 | | mysql.rs:114:25:114:45 | unsafe_query.as_str() [&ref] | mysql.rs:114:14:114:23 | query_fold | provenance | MaD:13 Sink:MaD:13 | -| mysql.rs:116:33:116:44 | unsafe_query | mysql.rs:116:33:116:53 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | -| mysql.rs:116:33:116:53 | unsafe_query.as_str() | mysql.rs:116:22:116:31 | query_iter | provenance | MaD:19 Sink:MaD:19 | -| mysql.rs:116:33:116:53 | unsafe_query.as_str() [&ref] | mysql.rs:116:22:116:31 | query_iter | provenance | MaD:19 Sink:MaD:19 | -| mysql.rs:118:40:118:51 | unsafe_query | mysql.rs:118:40:118:60 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | +| mysql.rs:118:40:118:51 | unsafe_query | mysql.rs:118:40:118:60 | unsafe_query.as_str() [&ref] | provenance | MaD:25 | | mysql.rs:118:40:118:60 | unsafe_query.as_str() | mysql.rs:118:14:118:25 | query_stream | provenance | MaD:15 Sink:MaD:15 | | mysql.rs:118:40:118:60 | unsafe_query.as_str() [&ref] | mysql.rs:118:14:118:25 | query_stream | provenance | MaD:15 Sink:MaD:15 | -| mysql.rs:121:24:121:35 | unsafe_query | mysql.rs:121:24:121:44 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | +| mysql.rs:121:24:121:35 | unsafe_query | mysql.rs:121:24:121:44 | unsafe_query.as_str() [&ref] | provenance | MaD:25 | | mysql.rs:121:24:121:44 | unsafe_query.as_str() | mysql.rs:121:14:121:22 | query_map | provenance | MaD:14 Sink:MaD:14 | | mysql.rs:121:24:121:44 | unsafe_query.as_str() [&ref] | mysql.rs:121:14:121:22 | query_map | provenance | MaD:14 Sink:MaD:14 | -| mysql.rs:149:31:149:42 | unsafe_query | mysql.rs:149:31:149:51 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | -| mysql.rs:149:31:149:51 | unsafe_query.as_str() | mysql.rs:149:26:149:29 | prep | provenance | MaD:18 Sink:MaD:18 | -| mysql.rs:149:31:149:51 | unsafe_query.as_str() [&ref] | mysql.rs:149:26:149:29 | prep | provenance | MaD:18 Sink:MaD:18 | -| mysql.rs:154:26:154:37 | unsafe_query | mysql.rs:154:26:154:46 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | +| mysql.rs:154:26:154:37 | unsafe_query | mysql.rs:154:26:154:46 | unsafe_query.as_str() [&ref] | provenance | MaD:25 | | mysql.rs:154:26:154:46 | unsafe_query.as_str() | mysql.rs:154:15:154:24 | query_drop | provenance | MaD:11 Sink:MaD:11 | | mysql.rs:154:26:154:46 | unsafe_query.as_str() [&ref] | mysql.rs:154:15:154:24 | query_drop | provenance | MaD:11 Sink:MaD:11 | | sqlx.rs:47:9:47:18 | arg_string | sqlx.rs:53:27:53:36 | arg_string | provenance | | -| sqlx.rs:47:22:47:35 | ...::args | sqlx.rs:47:22:47:37 | ...::args(...) [element] | provenance | Src:MaD:24 | -| sqlx.rs:47:22:47:37 | ...::args(...) [element] | sqlx.rs:47:22:47:44 | ... .nth(...) [Some] | provenance | MaD:25 | -| sqlx.rs:47:22:47:44 | ... .nth(...) [Some] | sqlx.rs:47:22:47:77 | ... .unwrap_or(...) | provenance | MaD:30 | +| sqlx.rs:47:22:47:35 | ...::args | sqlx.rs:47:22:47:37 | ...::args(...) [element] | provenance | Src:MaD:20 | +| sqlx.rs:47:22:47:37 | ...::args(...) [element] | sqlx.rs:47:22:47:44 | ... .nth(...) [Some] | provenance | MaD:21 | +| sqlx.rs:47:22:47:44 | ... .nth(...) [Some] | sqlx.rs:47:22:47:77 | ... .unwrap_or(...) | provenance | MaD:26 | | sqlx.rs:47:22:47:77 | ... .unwrap_or(...) | sqlx.rs:47:9:47:18 | arg_string | provenance | | -| sqlx.rs:48:9:48:21 | remote_string | sqlx.rs:49:25:49:52 | remote_string.parse() [Ok] | provenance | MaD:34 | -| sqlx.rs:48:9:48:21 | remote_string | sqlx.rs:49:25:49:52 | remote_string.parse() [Ok] | provenance | MaD:34 | +| sqlx.rs:48:9:48:21 | remote_string | sqlx.rs:49:25:49:52 | remote_string.parse() [Ok] | provenance | MaD:30 | +| sqlx.rs:48:9:48:21 | remote_string | sqlx.rs:49:25:49:52 | remote_string.parse() [Ok] | provenance | MaD:30 | | sqlx.rs:48:9:48:21 | remote_string | sqlx.rs:54:27:54:39 | remote_string | provenance | | | sqlx.rs:48:9:48:21 | remote_string | sqlx.rs:55:84:55:96 | remote_string | provenance | | | sqlx.rs:48:9:48:21 | remote_string | sqlx.rs:59:17:59:72 | MacroExpr | provenance | | -| sqlx.rs:48:25:48:46 | ...::get | sqlx.rs:48:25:48:69 | ...::get(...) [Ok] | provenance | Src:MaD:23 | -| sqlx.rs:48:25:48:69 | ...::get(...) [Ok] | sqlx.rs:48:25:48:78 | ... .unwrap() | provenance | MaD:31 | -| sqlx.rs:48:25:48:78 | ... .unwrap() | sqlx.rs:48:25:48:85 | ... .text() [Ok] | provenance | MaD:35 | -| sqlx.rs:48:25:48:85 | ... .text() [Ok] | sqlx.rs:48:25:48:118 | ... .unwrap_or(...) | provenance | MaD:32 | +| sqlx.rs:48:25:48:46 | ...::get | sqlx.rs:48:25:48:69 | ...::get(...) [Ok] | provenance | Src:MaD:19 | +| sqlx.rs:48:25:48:69 | ...::get(...) [Ok] | sqlx.rs:48:25:48:78 | ... .unwrap() | provenance | MaD:27 | +| sqlx.rs:48:25:48:78 | ... .unwrap() | sqlx.rs:48:25:48:85 | ... .text() [Ok] | provenance | MaD:31 | +| sqlx.rs:48:25:48:85 | ... .text() [Ok] | sqlx.rs:48:25:48:118 | ... .unwrap_or(...) | provenance | MaD:28 | | sqlx.rs:48:25:48:118 | ... .unwrap_or(...) | sqlx.rs:48:9:48:21 | remote_string | provenance | | | sqlx.rs:49:9:49:21 | remote_number | sqlx.rs:52:32:52:87 | MacroExpr | provenance | | -| sqlx.rs:49:25:49:52 | remote_string.parse() [Ok] | sqlx.rs:49:25:49:65 | ... .unwrap_or(...) | provenance | MaD:32 | +| sqlx.rs:49:25:49:52 | remote_string.parse() [Ok] | sqlx.rs:49:25:49:65 | ... .unwrap_or(...) | provenance | MaD:28 | | sqlx.rs:49:25:49:65 | ... .unwrap_or(...) | sqlx.rs:49:9:49:21 | remote_number | provenance | | | sqlx.rs:52:9:52:20 | safe_query_3 | sqlx.rs:77:25:77:36 | safe_query_3 | provenance | | -| sqlx.rs:52:9:52:20 | safe_query_3 | sqlx.rs:77:25:77:45 | safe_query_3.as_str() | provenance | MaD:29 | +| sqlx.rs:52:9:52:20 | safe_query_3 | sqlx.rs:77:25:77:45 | safe_query_3.as_str() | provenance | MaD:25 | | sqlx.rs:52:32:52:87 | ...::format(...) | sqlx.rs:52:32:52:87 | { ... } | provenance | | | sqlx.rs:52:32:52:87 | ...::must_use(...) | sqlx.rs:52:9:52:20 | safe_query_3 | provenance | | -| sqlx.rs:52:32:52:87 | MacroExpr | sqlx.rs:52:32:52:87 | ...::format(...) | provenance | MaD:36 | -| sqlx.rs:52:32:52:87 | { ... } | sqlx.rs:52:32:52:87 | ...::must_use(...) | provenance | MaD:37 | -| sqlx.rs:53:9:53:22 | unsafe_query_1 [&ref] | sqlx.rs:78:25:78:47 | unsafe_query_1.as_str() [&ref] | provenance | MaD:29 | +| sqlx.rs:52:32:52:87 | MacroExpr | sqlx.rs:52:32:52:87 | ...::format(...) | provenance | MaD:32 | +| sqlx.rs:52:32:52:87 | { ... } | sqlx.rs:52:32:52:87 | ...::must_use(...) | provenance | MaD:33 | +| sqlx.rs:53:9:53:22 | unsafe_query_1 [&ref] | sqlx.rs:78:25:78:47 | unsafe_query_1.as_str() [&ref] | provenance | MaD:25 | | sqlx.rs:53:26:53:36 | &arg_string [&ref] | sqlx.rs:53:9:53:22 | unsafe_query_1 [&ref] | provenance | | | sqlx.rs:53:27:53:36 | arg_string | sqlx.rs:53:26:53:36 | &arg_string [&ref] | provenance | | -| sqlx.rs:54:9:54:22 | unsafe_query_2 [&ref] | sqlx.rs:80:29:80:51 | unsafe_query_2.as_str() [&ref] | provenance | MaD:33 | | sqlx.rs:54:9:54:22 | unsafe_query_2 [&ref] | sqlx.rs:80:29:80:51 | unsafe_query_2.as_str() [&ref] | provenance | MaD:29 | -| sqlx.rs:54:9:54:22 | unsafe_query_2 [&ref] | sqlx.rs:80:29:80:51 | unsafe_query_2.as_str() [&ref] | provenance | MaD:33 | +| sqlx.rs:54:9:54:22 | unsafe_query_2 [&ref] | sqlx.rs:80:29:80:51 | unsafe_query_2.as_str() [&ref] | provenance | MaD:25 | +| sqlx.rs:54:9:54:22 | unsafe_query_2 [&ref] | sqlx.rs:80:29:80:51 | unsafe_query_2.as_str() [&ref] | provenance | MaD:29 | | sqlx.rs:54:26:54:39 | &remote_string [&ref] | sqlx.rs:54:9:54:22 | unsafe_query_2 [&ref] | provenance | | | sqlx.rs:54:27:54:39 | remote_string | sqlx.rs:54:26:54:39 | &remote_string [&ref] | provenance | | | sqlx.rs:55:9:55:22 | unsafe_query_3 | sqlx.rs:81:29:81:42 | unsafe_query_3 | provenance | | -| sqlx.rs:55:9:55:22 | unsafe_query_3 | sqlx.rs:81:29:81:51 | unsafe_query_3.as_str() | provenance | MaD:29 | +| sqlx.rs:55:9:55:22 | unsafe_query_3 | sqlx.rs:81:29:81:51 | unsafe_query_3.as_str() | provenance | MaD:25 | | sqlx.rs:55:26:55:96 | ... + ... | sqlx.rs:55:9:55:22 | unsafe_query_3 | provenance | | -| sqlx.rs:55:26:55:96 | ... + ... | sqlx.rs:55:26:55:102 | ... + ... | provenance | MaD:27 | -| sqlx.rs:55:26:55:96 | ... + ... | sqlx.rs:55:26:55:102 | ... + ... | provenance | MaD:28 | +| sqlx.rs:55:26:55:96 | ... + ... | sqlx.rs:55:26:55:102 | ... + ... | provenance | MaD:23 | +| sqlx.rs:55:26:55:96 | ... + ... | sqlx.rs:55:26:55:102 | ... + ... | provenance | MaD:24 | | sqlx.rs:55:26:55:102 | ... + ... | sqlx.rs:55:9:55:22 | unsafe_query_3 | provenance | | -| sqlx.rs:55:83:55:96 | &remote_string [&ref] | sqlx.rs:55:26:55:96 | ... + ... | provenance | MaD:26 | +| sqlx.rs:55:83:55:96 | &remote_string [&ref] | sqlx.rs:55:26:55:96 | ... + ... | provenance | MaD:22 | | sqlx.rs:55:84:55:96 | remote_string | sqlx.rs:55:83:55:96 | &remote_string [&ref] | provenance | | | sqlx.rs:56:9:56:22 | unsafe_query_4 | sqlx.rs:82:29:82:42 | unsafe_query_4 | provenance | | -| sqlx.rs:56:9:56:22 | unsafe_query_4 | sqlx.rs:82:29:82:51 | unsafe_query_4.as_str() | provenance | MaD:29 | +| sqlx.rs:56:9:56:22 | unsafe_query_4 | sqlx.rs:82:29:82:51 | unsafe_query_4.as_str() | provenance | MaD:25 | | sqlx.rs:59:17:59:72 | ...::format(...) | sqlx.rs:59:17:59:72 | { ... } | provenance | | | sqlx.rs:59:17:59:72 | ...::must_use(...) | sqlx.rs:56:9:56:22 | unsafe_query_4 | provenance | | -| sqlx.rs:59:17:59:72 | MacroExpr | sqlx.rs:59:17:59:72 | ...::format(...) | provenance | MaD:36 | -| sqlx.rs:59:17:59:72 | { ... } | sqlx.rs:59:17:59:72 | ...::must_use(...) | provenance | MaD:37 | -| sqlx.rs:77:25:77:36 | safe_query_3 | sqlx.rs:77:25:77:45 | safe_query_3.as_str() [&ref] | provenance | MaD:29 | -| sqlx.rs:77:25:77:45 | safe_query_3.as_str() | sqlx.rs:77:13:77:23 | ...::query | provenance | MaD:20 Sink:MaD:20 | -| sqlx.rs:77:25:77:45 | safe_query_3.as_str() [&ref] | sqlx.rs:77:13:77:23 | ...::query | provenance | MaD:20 Sink:MaD:20 | -| sqlx.rs:78:25:78:47 | unsafe_query_1.as_str() [&ref] | sqlx.rs:78:13:78:23 | ...::query | provenance | MaD:20 Sink:MaD:20 | -| sqlx.rs:80:29:80:51 | unsafe_query_2.as_str() [&ref] | sqlx.rs:80:17:80:27 | ...::query | provenance | MaD:20 Sink:MaD:20 | -| sqlx.rs:81:29:81:42 | unsafe_query_3 | sqlx.rs:81:29:81:51 | unsafe_query_3.as_str() [&ref] | provenance | MaD:29 | -| sqlx.rs:81:29:81:51 | unsafe_query_3.as_str() | sqlx.rs:81:17:81:27 | ...::query | provenance | MaD:20 Sink:MaD:20 | -| sqlx.rs:81:29:81:51 | unsafe_query_3.as_str() [&ref] | sqlx.rs:81:17:81:27 | ...::query | provenance | MaD:20 Sink:MaD:20 | -| sqlx.rs:82:29:82:42 | unsafe_query_4 | sqlx.rs:82:29:82:51 | unsafe_query_4.as_str() [&ref] | provenance | MaD:29 | -| sqlx.rs:82:29:82:51 | unsafe_query_4.as_str() | sqlx.rs:82:17:82:27 | ...::query | provenance | MaD:20 Sink:MaD:20 | -| sqlx.rs:82:29:82:51 | unsafe_query_4.as_str() [&ref] | sqlx.rs:82:17:82:27 | ...::query | provenance | MaD:20 Sink:MaD:20 | +| sqlx.rs:59:17:59:72 | MacroExpr | sqlx.rs:59:17:59:72 | ...::format(...) | provenance | MaD:32 | +| sqlx.rs:59:17:59:72 | { ... } | sqlx.rs:59:17:59:72 | ...::must_use(...) | provenance | MaD:33 | +| sqlx.rs:77:25:77:36 | safe_query_3 | sqlx.rs:77:25:77:45 | safe_query_3.as_str() [&ref] | provenance | MaD:25 | +| sqlx.rs:77:25:77:45 | safe_query_3.as_str() | sqlx.rs:77:13:77:23 | ...::query | provenance | MaD:16 Sink:MaD:16 | +| sqlx.rs:77:25:77:45 | safe_query_3.as_str() [&ref] | sqlx.rs:77:13:77:23 | ...::query | provenance | MaD:16 Sink:MaD:16 | +| sqlx.rs:78:25:78:47 | unsafe_query_1.as_str() [&ref] | sqlx.rs:78:13:78:23 | ...::query | provenance | MaD:16 Sink:MaD:16 | +| sqlx.rs:80:29:80:51 | unsafe_query_2.as_str() [&ref] | sqlx.rs:80:17:80:27 | ...::query | provenance | MaD:16 Sink:MaD:16 | +| sqlx.rs:81:29:81:42 | unsafe_query_3 | sqlx.rs:81:29:81:51 | unsafe_query_3.as_str() [&ref] | provenance | MaD:25 | +| sqlx.rs:81:29:81:51 | unsafe_query_3.as_str() | sqlx.rs:81:17:81:27 | ...::query | provenance | MaD:16 Sink:MaD:16 | +| sqlx.rs:81:29:81:51 | unsafe_query_3.as_str() [&ref] | sqlx.rs:81:17:81:27 | ...::query | provenance | MaD:16 Sink:MaD:16 | +| sqlx.rs:82:29:82:42 | unsafe_query_4 | sqlx.rs:82:29:82:51 | unsafe_query_4.as_str() [&ref] | provenance | MaD:25 | +| sqlx.rs:82:29:82:51 | unsafe_query_4.as_str() | sqlx.rs:82:17:82:27 | ...::query | provenance | MaD:16 Sink:MaD:16 | +| sqlx.rs:82:29:82:51 | unsafe_query_4.as_str() [&ref] | sqlx.rs:82:17:82:27 | ...::query | provenance | MaD:16 Sink:MaD:16 | | sqlx.rs:100:9:100:21 | remote_string | sqlx.rs:102:84:102:96 | remote_string | provenance | | -| sqlx.rs:100:25:100:46 | ...::get | sqlx.rs:100:25:100:69 | ...::get(...) [Ok] | provenance | Src:MaD:23 | -| sqlx.rs:100:25:100:69 | ...::get(...) [Ok] | sqlx.rs:100:25:100:78 | ... .unwrap() | provenance | MaD:31 | -| sqlx.rs:100:25:100:78 | ... .unwrap() | sqlx.rs:100:25:100:85 | ... .text() [Ok] | provenance | MaD:35 | -| sqlx.rs:100:25:100:85 | ... .text() [Ok] | sqlx.rs:100:25:100:118 | ... .unwrap_or(...) | provenance | MaD:32 | +| sqlx.rs:100:25:100:46 | ...::get | sqlx.rs:100:25:100:69 | ...::get(...) [Ok] | provenance | Src:MaD:19 | +| sqlx.rs:100:25:100:69 | ...::get(...) [Ok] | sqlx.rs:100:25:100:78 | ... .unwrap() | provenance | MaD:27 | +| sqlx.rs:100:25:100:78 | ... .unwrap() | sqlx.rs:100:25:100:85 | ... .text() [Ok] | provenance | MaD:31 | +| sqlx.rs:100:25:100:85 | ... .text() [Ok] | sqlx.rs:100:25:100:118 | ... .unwrap_or(...) | provenance | MaD:28 | | sqlx.rs:100:25:100:118 | ... .unwrap_or(...) | sqlx.rs:100:9:100:21 | remote_string | provenance | | | sqlx.rs:102:9:102:22 | unsafe_query_1 | sqlx.rs:113:31:113:44 | unsafe_query_1 | provenance | | -| sqlx.rs:102:9:102:22 | unsafe_query_1 | sqlx.rs:113:31:113:53 | unsafe_query_1.as_str() | provenance | MaD:29 | +| sqlx.rs:102:9:102:22 | unsafe_query_1 | sqlx.rs:113:31:113:53 | unsafe_query_1.as_str() | provenance | MaD:25 | | sqlx.rs:102:9:102:22 | unsafe_query_1 | sqlx.rs:120:29:120:42 | unsafe_query_1 | provenance | | -| sqlx.rs:102:9:102:22 | unsafe_query_1 | sqlx.rs:120:29:120:51 | unsafe_query_1.as_str() | provenance | MaD:29 | +| sqlx.rs:102:9:102:22 | unsafe_query_1 | sqlx.rs:120:29:120:51 | unsafe_query_1.as_str() | provenance | MaD:25 | | sqlx.rs:102:9:102:22 | unsafe_query_1 | sqlx.rs:127:29:127:42 | unsafe_query_1 | provenance | | -| sqlx.rs:102:9:102:22 | unsafe_query_1 | sqlx.rs:127:29:127:51 | unsafe_query_1.as_str() | provenance | MaD:29 | +| sqlx.rs:102:9:102:22 | unsafe_query_1 | sqlx.rs:127:29:127:51 | unsafe_query_1.as_str() | provenance | MaD:25 | | sqlx.rs:102:9:102:22 | unsafe_query_1 | sqlx.rs:136:55:136:68 | unsafe_query_1 | provenance | | -| sqlx.rs:102:9:102:22 | unsafe_query_1 | sqlx.rs:136:55:136:77 | unsafe_query_1.as_str() | provenance | MaD:29 | +| sqlx.rs:102:9:102:22 | unsafe_query_1 | sqlx.rs:136:55:136:77 | unsafe_query_1.as_str() | provenance | MaD:25 | | sqlx.rs:102:9:102:22 | unsafe_query_1 | sqlx.rs:145:55:145:68 | unsafe_query_1 | provenance | | -| sqlx.rs:102:9:102:22 | unsafe_query_1 | sqlx.rs:145:55:145:77 | unsafe_query_1.as_str() | provenance | MaD:29 | +| sqlx.rs:102:9:102:22 | unsafe_query_1 | sqlx.rs:145:55:145:77 | unsafe_query_1.as_str() | provenance | MaD:25 | | sqlx.rs:102:9:102:22 | unsafe_query_1 | sqlx.rs:153:29:153:42 | unsafe_query_1 | provenance | | -| sqlx.rs:102:9:102:22 | unsafe_query_1 | sqlx.rs:153:29:153:51 | unsafe_query_1.as_str() | provenance | MaD:29 | +| sqlx.rs:102:9:102:22 | unsafe_query_1 | sqlx.rs:153:29:153:51 | unsafe_query_1.as_str() | provenance | MaD:25 | | sqlx.rs:102:26:102:96 | ... + ... | sqlx.rs:102:9:102:22 | unsafe_query_1 | provenance | | -| sqlx.rs:102:26:102:96 | ... + ... | sqlx.rs:102:26:102:102 | ... + ... | provenance | MaD:27 | -| sqlx.rs:102:26:102:96 | ... + ... | sqlx.rs:102:26:102:102 | ... + ... | provenance | MaD:28 | +| sqlx.rs:102:26:102:96 | ... + ... | sqlx.rs:102:26:102:102 | ... + ... | provenance | MaD:23 | +| sqlx.rs:102:26:102:96 | ... + ... | sqlx.rs:102:26:102:102 | ... + ... | provenance | MaD:24 | | sqlx.rs:102:26:102:102 | ... + ... | sqlx.rs:102:9:102:22 | unsafe_query_1 | provenance | | -| sqlx.rs:102:83:102:96 | &remote_string [&ref] | sqlx.rs:102:26:102:96 | ... + ... | provenance | MaD:26 | +| sqlx.rs:102:83:102:96 | &remote_string [&ref] | sqlx.rs:102:26:102:96 | ... + ... | provenance | MaD:22 | | sqlx.rs:102:84:102:96 | remote_string | sqlx.rs:102:83:102:96 | &remote_string [&ref] | provenance | | -| sqlx.rs:113:31:113:44 | unsafe_query_1 | sqlx.rs:113:31:113:53 | unsafe_query_1.as_str() [&ref] | provenance | MaD:29 | -| sqlx.rs:113:31:113:53 | unsafe_query_1.as_str() | sqlx.rs:113:17:113:29 | ...::raw_sql | provenance | MaD:22 Sink:MaD:22 | -| sqlx.rs:113:31:113:53 | unsafe_query_1.as_str() [&ref] | sqlx.rs:113:17:113:29 | ...::raw_sql | provenance | MaD:22 Sink:MaD:22 | -| sqlx.rs:120:29:120:42 | unsafe_query_1 | sqlx.rs:120:29:120:51 | unsafe_query_1.as_str() [&ref] | provenance | MaD:29 | -| sqlx.rs:120:29:120:51 | unsafe_query_1.as_str() | sqlx.rs:120:17:120:27 | ...::query | provenance | MaD:20 Sink:MaD:20 | -| sqlx.rs:120:29:120:51 | unsafe_query_1.as_str() [&ref] | sqlx.rs:120:17:120:27 | ...::query | provenance | MaD:20 Sink:MaD:20 | -| sqlx.rs:127:29:127:42 | unsafe_query_1 | sqlx.rs:127:29:127:51 | unsafe_query_1.as_str() [&ref] | provenance | MaD:29 | -| sqlx.rs:127:29:127:51 | unsafe_query_1.as_str() | sqlx.rs:127:17:127:27 | ...::query | provenance | MaD:20 Sink:MaD:20 | -| sqlx.rs:127:29:127:51 | unsafe_query_1.as_str() [&ref] | sqlx.rs:127:17:127:27 | ...::query | provenance | MaD:20 Sink:MaD:20 | -| sqlx.rs:136:55:136:68 | unsafe_query_1 | sqlx.rs:136:55:136:77 | unsafe_query_1.as_str() [&ref] | provenance | MaD:29 | -| sqlx.rs:136:55:136:77 | unsafe_query_1.as_str() | sqlx.rs:136:40:136:53 | ...::query_as | provenance | MaD:21 Sink:MaD:21 | -| sqlx.rs:136:55:136:77 | unsafe_query_1.as_str() [&ref] | sqlx.rs:136:40:136:53 | ...::query_as | provenance | MaD:21 Sink:MaD:21 | -| sqlx.rs:145:55:145:68 | unsafe_query_1 | sqlx.rs:145:55:145:77 | unsafe_query_1.as_str() [&ref] | provenance | MaD:29 | -| sqlx.rs:145:55:145:77 | unsafe_query_1.as_str() | sqlx.rs:145:40:145:53 | ...::query_as | provenance | MaD:21 Sink:MaD:21 | -| sqlx.rs:145:55:145:77 | unsafe_query_1.as_str() [&ref] | sqlx.rs:145:40:145:53 | ...::query_as | provenance | MaD:21 Sink:MaD:21 | -| sqlx.rs:153:29:153:42 | unsafe_query_1 | sqlx.rs:153:29:153:51 | unsafe_query_1.as_str() [&ref] | provenance | MaD:29 | -| sqlx.rs:153:29:153:51 | unsafe_query_1.as_str() | sqlx.rs:153:17:153:27 | ...::query | provenance | MaD:20 Sink:MaD:20 | -| sqlx.rs:153:29:153:51 | unsafe_query_1.as_str() [&ref] | sqlx.rs:153:17:153:27 | ...::query | provenance | MaD:20 Sink:MaD:20 | +| sqlx.rs:113:31:113:44 | unsafe_query_1 | sqlx.rs:113:31:113:53 | unsafe_query_1.as_str() [&ref] | provenance | MaD:25 | +| sqlx.rs:113:31:113:53 | unsafe_query_1.as_str() | sqlx.rs:113:17:113:29 | ...::raw_sql | provenance | MaD:18 Sink:MaD:18 | +| sqlx.rs:113:31:113:53 | unsafe_query_1.as_str() [&ref] | sqlx.rs:113:17:113:29 | ...::raw_sql | provenance | MaD:18 Sink:MaD:18 | +| sqlx.rs:120:29:120:42 | unsafe_query_1 | sqlx.rs:120:29:120:51 | unsafe_query_1.as_str() [&ref] | provenance | MaD:25 | +| sqlx.rs:120:29:120:51 | unsafe_query_1.as_str() | sqlx.rs:120:17:120:27 | ...::query | provenance | MaD:16 Sink:MaD:16 | +| sqlx.rs:120:29:120:51 | unsafe_query_1.as_str() [&ref] | sqlx.rs:120:17:120:27 | ...::query | provenance | MaD:16 Sink:MaD:16 | +| sqlx.rs:127:29:127:42 | unsafe_query_1 | sqlx.rs:127:29:127:51 | unsafe_query_1.as_str() [&ref] | provenance | MaD:25 | +| sqlx.rs:127:29:127:51 | unsafe_query_1.as_str() | sqlx.rs:127:17:127:27 | ...::query | provenance | MaD:16 Sink:MaD:16 | +| sqlx.rs:127:29:127:51 | unsafe_query_1.as_str() [&ref] | sqlx.rs:127:17:127:27 | ...::query | provenance | MaD:16 Sink:MaD:16 | +| sqlx.rs:136:55:136:68 | unsafe_query_1 | sqlx.rs:136:55:136:77 | unsafe_query_1.as_str() [&ref] | provenance | MaD:25 | +| sqlx.rs:136:55:136:77 | unsafe_query_1.as_str() | sqlx.rs:136:40:136:53 | ...::query_as | provenance | MaD:17 Sink:MaD:17 | +| sqlx.rs:136:55:136:77 | unsafe_query_1.as_str() [&ref] | sqlx.rs:136:40:136:53 | ...::query_as | provenance | MaD:17 Sink:MaD:17 | +| sqlx.rs:145:55:145:68 | unsafe_query_1 | sqlx.rs:145:55:145:77 | unsafe_query_1.as_str() [&ref] | provenance | MaD:25 | +| sqlx.rs:145:55:145:77 | unsafe_query_1.as_str() | sqlx.rs:145:40:145:53 | ...::query_as | provenance | MaD:17 Sink:MaD:17 | +| sqlx.rs:145:55:145:77 | unsafe_query_1.as_str() [&ref] | sqlx.rs:145:40:145:53 | ...::query_as | provenance | MaD:17 Sink:MaD:17 | +| sqlx.rs:153:29:153:42 | unsafe_query_1 | sqlx.rs:153:29:153:51 | unsafe_query_1.as_str() [&ref] | provenance | MaD:25 | +| sqlx.rs:153:29:153:51 | unsafe_query_1.as_str() | sqlx.rs:153:17:153:27 | ...::query | provenance | MaD:16 Sink:MaD:16 | +| sqlx.rs:153:29:153:51 | unsafe_query_1.as_str() [&ref] | sqlx.rs:153:17:153:27 | ...::query | provenance | MaD:16 Sink:MaD:16 | | sqlx.rs:173:9:173:21 | remote_string | sqlx.rs:175:84:175:96 | remote_string | provenance | | -| sqlx.rs:173:25:173:46 | ...::get | sqlx.rs:173:25:173:69 | ...::get(...) [Ok] | provenance | Src:MaD:23 | -| sqlx.rs:173:25:173:69 | ...::get(...) [Ok] | sqlx.rs:173:25:173:78 | ... .unwrap() | provenance | MaD:31 | -| sqlx.rs:173:25:173:78 | ... .unwrap() | sqlx.rs:173:25:173:85 | ... .text() [Ok] | provenance | MaD:35 | -| sqlx.rs:173:25:173:85 | ... .text() [Ok] | sqlx.rs:173:25:173:118 | ... .unwrap_or(...) | provenance | MaD:32 | +| sqlx.rs:173:25:173:46 | ...::get | sqlx.rs:173:25:173:69 | ...::get(...) [Ok] | provenance | Src:MaD:19 | +| sqlx.rs:173:25:173:69 | ...::get(...) [Ok] | sqlx.rs:173:25:173:78 | ... .unwrap() | provenance | MaD:27 | +| sqlx.rs:173:25:173:78 | ... .unwrap() | sqlx.rs:173:25:173:85 | ... .text() [Ok] | provenance | MaD:31 | +| sqlx.rs:173:25:173:85 | ... .text() [Ok] | sqlx.rs:173:25:173:118 | ... .unwrap_or(...) | provenance | MaD:28 | | sqlx.rs:173:25:173:118 | ... .unwrap_or(...) | sqlx.rs:173:9:173:21 | remote_string | provenance | | | sqlx.rs:175:9:175:22 | unsafe_query_1 | sqlx.rs:188:29:188:42 | unsafe_query_1 | provenance | | -| sqlx.rs:175:9:175:22 | unsafe_query_1 | sqlx.rs:188:29:188:51 | unsafe_query_1.as_str() | provenance | MaD:29 | +| sqlx.rs:175:9:175:22 | unsafe_query_1 | sqlx.rs:188:29:188:51 | unsafe_query_1.as_str() | provenance | MaD:25 | | sqlx.rs:175:26:175:96 | ... + ... | sqlx.rs:175:9:175:22 | unsafe_query_1 | provenance | | -| sqlx.rs:175:26:175:96 | ... + ... | sqlx.rs:175:26:175:102 | ... + ... | provenance | MaD:27 | -| sqlx.rs:175:26:175:96 | ... + ... | sqlx.rs:175:26:175:102 | ... + ... | provenance | MaD:28 | +| sqlx.rs:175:26:175:96 | ... + ... | sqlx.rs:175:26:175:102 | ... + ... | provenance | MaD:23 | +| sqlx.rs:175:26:175:96 | ... + ... | sqlx.rs:175:26:175:102 | ... + ... | provenance | MaD:24 | | sqlx.rs:175:26:175:102 | ... + ... | sqlx.rs:175:9:175:22 | unsafe_query_1 | provenance | | -| sqlx.rs:175:83:175:96 | &remote_string [&ref] | sqlx.rs:175:26:175:96 | ... + ... | provenance | MaD:26 | +| sqlx.rs:175:83:175:96 | &remote_string [&ref] | sqlx.rs:175:26:175:96 | ... + ... | provenance | MaD:22 | | sqlx.rs:175:84:175:96 | remote_string | sqlx.rs:175:83:175:96 | &remote_string [&ref] | provenance | | -| sqlx.rs:188:29:188:42 | unsafe_query_1 | sqlx.rs:188:29:188:51 | unsafe_query_1.as_str() [&ref] | provenance | MaD:29 | -| sqlx.rs:188:29:188:51 | unsafe_query_1.as_str() | sqlx.rs:188:17:188:27 | ...::query | provenance | MaD:20 Sink:MaD:20 | -| sqlx.rs:188:29:188:51 | unsafe_query_1.as_str() [&ref] | sqlx.rs:188:17:188:27 | ...::query | provenance | MaD:20 Sink:MaD:20 | +| sqlx.rs:188:29:188:42 | unsafe_query_1 | sqlx.rs:188:29:188:51 | unsafe_query_1.as_str() [&ref] | provenance | MaD:25 | +| sqlx.rs:188:29:188:51 | unsafe_query_1.as_str() | sqlx.rs:188:17:188:27 | ...::query | provenance | MaD:16 Sink:MaD:16 | +| sqlx.rs:188:29:188:51 | unsafe_query_1.as_str() [&ref] | sqlx.rs:188:17:188:27 | ...::query | provenance | MaD:16 Sink:MaD:16 | models | 1 | Sink: <_ as mysql::conn::queryable::Queryable>::query; Argument[0]; sql-injection | | 2 | Sink: <_ as mysql::conn::queryable::Queryable>::query_drop; Argument[0]; sql-injection | @@ -300,28 +276,24 @@ models | 13 | Sink: <_ as mysql_async::queryable::Queryable>::query_fold; Argument[0]; sql-injection | | 14 | Sink: <_ as mysql_async::queryable::Queryable>::query_map; Argument[0]; sql-injection | | 15 | Sink: <_ as mysql_async::queryable::Queryable>::query_stream; Argument[0]; sql-injection | -| 16 | Sink: ::prep; Argument[0]; sql-injection | -| 17 | Sink: ::query_iter; Argument[0]; sql-injection | -| 18 | Sink: ::prep; Argument[0]; sql-injection | -| 19 | Sink: ::query_iter; Argument[0]; sql-injection | -| 20 | Sink: sqlx_core::query::query; Argument[0]; sql-injection | -| 21 | Sink: sqlx_core::query_as::query_as; Argument[0]; sql-injection | -| 22 | Sink: sqlx_core::raw_sql::raw_sql; Argument[0]; sql-injection | -| 23 | Source: reqwest::blocking::get; ReturnValue.Field[core::result::Result::Ok(0)]; remote | -| 24 | Source: std::env::args; ReturnValue.Element; commandargs | -| 25 | Summary: <_ as core::iter::traits::iterator::Iterator>::nth; Argument[self].Element; ReturnValue.Field[core::option::Option::Some(0)]; value | -| 26 | Summary: <_ as core::ops::arith::Add>::add; Argument[0].Reference; ReturnValue; taint | -| 27 | Summary: <_ as core::ops::arith::Add>::add; Argument[self]; ReturnValue; taint | -| 28 | Summary: ::add; Argument[self]; ReturnValue; value | -| 29 | Summary: ::as_str; Argument[self]; ReturnValue; value | -| 30 | Summary: ::unwrap_or; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | -| 31 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | -| 32 | Summary: ::unwrap_or; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | -| 33 | Summary: ::as_str; Argument[self]; ReturnValue; value | -| 34 | Summary: ::parse; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | -| 35 | Summary: ::text; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | -| 36 | Summary: alloc::fmt::format; Argument[0]; ReturnValue; taint | -| 37 | Summary: core::hint::must_use; Argument[0]; ReturnValue; value | +| 16 | Sink: sqlx_core::query::query; Argument[0]; sql-injection | +| 17 | Sink: sqlx_core::query_as::query_as; Argument[0]; sql-injection | +| 18 | Sink: sqlx_core::raw_sql::raw_sql; Argument[0]; sql-injection | +| 19 | Source: reqwest::blocking::get; ReturnValue.Field[core::result::Result::Ok(0)]; remote | +| 20 | Source: std::env::args; ReturnValue.Element; commandargs | +| 21 | Summary: <_ as core::iter::traits::iterator::Iterator>::nth; Argument[self].Element; ReturnValue.Field[core::option::Option::Some(0)]; value | +| 22 | Summary: <_ as core::ops::arith::Add>::add; Argument[0].Reference; ReturnValue; taint | +| 23 | Summary: <_ as core::ops::arith::Add>::add; Argument[self]; ReturnValue; taint | +| 24 | Summary: ::add; Argument[self]; ReturnValue; value | +| 25 | Summary: ::as_str; Argument[self]; ReturnValue; value | +| 26 | Summary: ::unwrap_or; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | +| 27 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | +| 28 | Summary: ::unwrap_or; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | +| 29 | Summary: ::as_str; Argument[self]; ReturnValue; value | +| 30 | Summary: ::parse; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | +| 31 | Summary: ::text; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | +| 32 | Summary: alloc::fmt::format; Argument[0]; ReturnValue; taint | +| 33 | Summary: core::hint::must_use; Argument[0]; ReturnValue; value | nodes | mysql.rs:12:13:12:29 | mut remote_string | semmle.label | mut remote_string | | mysql.rs:12:33:12:54 | ...::get | semmle.label | ...::get | @@ -362,10 +334,6 @@ nodes | mysql.rs:32:13:32:24 | unsafe_query | semmle.label | unsafe_query | | mysql.rs:32:13:32:33 | unsafe_query.as_str() | semmle.label | unsafe_query.as_str() | | mysql.rs:32:13:32:33 | unsafe_query.as_str() [&ref] | semmle.label | unsafe_query.as_str() [&ref] | -| mysql.rs:36:22:36:31 | query_iter | semmle.label | query_iter | -| mysql.rs:36:33:36:44 | unsafe_query | semmle.label | unsafe_query | -| mysql.rs:36:33:36:53 | unsafe_query.as_str() | semmle.label | unsafe_query.as_str() | -| mysql.rs:36:33:36:53 | unsafe_query.as_str() [&ref] | semmle.label | unsafe_query.as_str() [&ref] | | mysql.rs:37:22:37:30 | query_map | semmle.label | query_map | | mysql.rs:37:32:37:43 | unsafe_query | semmle.label | unsafe_query | | mysql.rs:37:32:37:52 | unsafe_query.as_str() | semmle.label | unsafe_query.as_str() | @@ -378,10 +346,6 @@ nodes | mysql.rs:42:39:42:50 | unsafe_query | semmle.label | unsafe_query | | mysql.rs:42:39:42:59 | unsafe_query.as_str() | semmle.label | unsafe_query.as_str() | | mysql.rs:42:39:42:59 | unsafe_query.as_str() [&ref] | semmle.label | unsafe_query.as_str() [&ref] | -| mysql.rs:75:26:75:29 | prep | semmle.label | prep | -| mysql.rs:75:31:75:42 | unsafe_query | semmle.label | unsafe_query | -| mysql.rs:75:31:75:51 | unsafe_query.as_str() | semmle.label | unsafe_query.as_str() | -| mysql.rs:75:31:75:51 | unsafe_query.as_str() [&ref] | semmle.label | unsafe_query.as_str() [&ref] | | mysql.rs:80:15:80:24 | query_drop | semmle.label | query_drop | | mysql.rs:80:26:80:37 | unsafe_query | semmle.label | unsafe_query | | mysql.rs:80:26:80:46 | unsafe_query.as_str() | semmle.label | unsafe_query.as_str() | @@ -413,10 +377,6 @@ nodes | mysql.rs:114:25:114:36 | unsafe_query | semmle.label | unsafe_query | | mysql.rs:114:25:114:45 | unsafe_query.as_str() | semmle.label | unsafe_query.as_str() | | mysql.rs:114:25:114:45 | unsafe_query.as_str() [&ref] | semmle.label | unsafe_query.as_str() [&ref] | -| mysql.rs:116:22:116:31 | query_iter | semmle.label | query_iter | -| mysql.rs:116:33:116:44 | unsafe_query | semmle.label | unsafe_query | -| mysql.rs:116:33:116:53 | unsafe_query.as_str() | semmle.label | unsafe_query.as_str() | -| mysql.rs:116:33:116:53 | unsafe_query.as_str() [&ref] | semmle.label | unsafe_query.as_str() [&ref] | | mysql.rs:118:14:118:25 | query_stream | semmle.label | query_stream | | mysql.rs:118:40:118:51 | unsafe_query | semmle.label | unsafe_query | | mysql.rs:118:40:118:60 | unsafe_query.as_str() | semmle.label | unsafe_query.as_str() | @@ -425,10 +385,6 @@ nodes | mysql.rs:121:24:121:35 | unsafe_query | semmle.label | unsafe_query | | mysql.rs:121:24:121:44 | unsafe_query.as_str() | semmle.label | unsafe_query.as_str() | | mysql.rs:121:24:121:44 | unsafe_query.as_str() [&ref] | semmle.label | unsafe_query.as_str() [&ref] | -| mysql.rs:149:26:149:29 | prep | semmle.label | prep | -| mysql.rs:149:31:149:42 | unsafe_query | semmle.label | unsafe_query | -| mysql.rs:149:31:149:51 | unsafe_query.as_str() | semmle.label | unsafe_query.as_str() | -| mysql.rs:149:31:149:51 | unsafe_query.as_str() [&ref] | semmle.label | unsafe_query.as_str() [&ref] | | mysql.rs:154:15:154:24 | query_drop | semmle.label | query_drop | | mysql.rs:154:26:154:37 | unsafe_query | semmle.label | unsafe_query | | mysql.rs:154:26:154:46 | unsafe_query.as_str() | semmle.label | unsafe_query.as_str() | @@ -535,3 +491,8 @@ nodes | sqlx.rs:188:29:188:51 | unsafe_query_1.as_str() | semmle.label | unsafe_query_1.as_str() | | sqlx.rs:188:29:188:51 | unsafe_query_1.as_str() [&ref] | semmle.label | unsafe_query_1.as_str() [&ref] | subpaths +testFailures +| mysql.rs:36:58:36:105 | //... | Missing result: Alert[rust/sql-injection]=remote10 | +| mysql.rs:75:56:75:103 | //... | Missing result: Alert[rust/sql-injection]=remote10 | +| mysql.rs:116:64:116:111 | //... | Missing result: Alert[rust/sql-injection]=remote11 | +| mysql.rs:149:62:149:109 | //... | Missing result: Alert[rust/sql-injection]=remote11 | diff --git a/rust/ql/test/query-tests/security/CWE-089/SqlSinks.expected b/rust/ql/test/query-tests/security/CWE-089/SqlSinks.expected index e69de29bb2d..dcc291ea4eb 100644 --- a/rust/ql/test/query-tests/security/CWE-089/SqlSinks.expected +++ b/rust/ql/test/query-tests/security/CWE-089/SqlSinks.expected @@ -0,0 +1,6 @@ +| mysql.rs:36:58:36:105 | //... | Missing result: sql-sink | +| mysql.rs:45:57:45:69 | //... | Missing result: sql-sink | +| mysql.rs:75:56:75:103 | //... | Missing result: sql-sink | +| mysql.rs:116:64:116:111 | //... | Missing result: sql-sink | +| mysql.rs:125:63:125:75 | //... | Missing result: sql-sink | +| mysql.rs:149:62:149:109 | //... | Missing result: sql-sink | From 0c92b33b8ff1dd6873d40a4500b5423977da2d49 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 27 Oct 2025 17:47:00 +0000 Subject: [PATCH 033/126] Revert "Rust: Generalize more models." This reverts commit 56811d02acaade17ce96335130776b4061e9b422. --- rust/ql/lib/codeql/rust/frameworks/mysql-async.model.yml | 8 ++++---- rust/ql/lib/codeql/rust/frameworks/mysql.model.yml | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/rust/ql/lib/codeql/rust/frameworks/mysql-async.model.yml b/rust/ql/lib/codeql/rust/frameworks/mysql-async.model.yml index ef3b01db0eb..4c8858457c1 100644 --- a/rust/ql/lib/codeql/rust/frameworks/mysql-async.model.yml +++ b/rust/ql/lib/codeql/rust/frameworks/mysql-async.model.yml @@ -9,8 +9,8 @@ extensions: - ["<_ as mysql_async::queryable::Queryable>::query_fold", "Argument[0]", "sql-injection", "manual"] - ["<_ as mysql_async::queryable::Queryable>::query_stream", "Argument[0]", "sql-injection", "manual"] - ["<_ as mysql_async::queryable::Queryable>::query_map", "Argument[0]", "sql-injection", "manual"] - - ["<_ as mysql_async::queryable::Queryable>::query_iter", "Argument[0]", "sql-injection", "manual"] - - ["<_ as mysql_async::queryable::Queryable>::prep", "Argument[0]", "sql-injection", "manual"] + - ["::query_iter", "Argument[0]", "sql-injection", "manual"] + - ["::prep", "Argument[0]", "sql-injection", "manual"] - addsTo: pack: codeql/rust-all extensible: sourceModel @@ -21,8 +21,8 @@ extensions: - ["<_ as mysql_async::queryable::Queryable>::exec_first", "ReturnValue.Future.Field[core::result::Result::Ok(0)].Field[core::option::Option::Some(0)]", "database", "manual"] - ["<_ as mysql_async::queryable::Queryable>::query_fold", "Argument[2].Parameter[1]", "database", "manual"] - ["<_ as mysql_async::queryable::Queryable>::exec_fold", "Argument[3].Parameter[1]", "database", "manual"] - - ["<_ as mysql_async::queryable::Queryable>::query_iter", "ReturnValue.Future.Field[core::result::Result::Ok(0)].Element", "database", "manual"] - - ["<_ as mysql_async::queryable::Queryable>::exec_iter", "ReturnValue.Future.Field[core::result::Result::Ok(0)].Element", "database", "manual"] + - ["::query_iter", "ReturnValue.Future.Field[core::result::Result::Ok(0)].Element", "database", "manual"] + - ["::exec_iter", "ReturnValue.Future.Field[core::result::Result::Ok(0)].Element", "database", "manual"] - ["<_ as mysql_async::queryable::Queryable>::query_map", "Argument[1].Parameter[0]", "database", "manual"] - ["<_ as mysql_async::queryable::Queryable>::exec_map", "Argument[2].Parameter[0]", "database", "manual"] - ["::get", "ReturnValue.Field[core::option::Option::Some(0)]", "database", "manual"] diff --git a/rust/ql/lib/codeql/rust/frameworks/mysql.model.yml b/rust/ql/lib/codeql/rust/frameworks/mysql.model.yml index 2b9a644733e..7d6fa520eb8 100644 --- a/rust/ql/lib/codeql/rust/frameworks/mysql.model.yml +++ b/rust/ql/lib/codeql/rust/frameworks/mysql.model.yml @@ -10,10 +10,10 @@ extensions: - ["<_ as mysql::conn::queryable::Queryable>::query_first_opt", "Argument[0]", "sql-injection", "manual"] - ["<_ as mysql::conn::queryable::Queryable>::query_fold", "Argument[0]", "sql-injection", "manual"] - ["<_ as mysql::conn::queryable::Queryable>::query_fold_opt", "Argument[0]", "sql-injection", "manual"] - - ["<_ as mysql::conn::queryable::Queryable>::query_iter", "Argument[0]", "sql-injection", "manual"] + - ["::query_iter", "Argument[0]", "sql-injection", "manual"] - ["<_ as mysql::conn::queryable::Queryable>::query_map", "Argument[0]", "sql-injection", "manual"] - ["<_ as mysql::conn::queryable::Queryable>::query_map_opt", "Argument[0]", "sql-injection", "manual"] - - ["<_ as mysql::conn::queryable::Queryable>::prep", "Argument[0]", "sql-injection", "manual"] + - ["::prep", "Argument[0]", "sql-injection", "manual"] - addsTo: pack: codeql/rust-all extensible: sourceModel @@ -30,8 +30,8 @@ extensions: - ["<_ as mysql::conn::queryable::Queryable>::exec_fold", "Argument[3].Parameter[1]", "database", "manual"] - ["<_ as mysql::conn::queryable::Queryable>::query_fold_opt", "Argument[2].Parameter[1].Field[core::result::Result::Ok(0)]", "database", "manual"] - ["<_ as mysql::conn::queryable::Queryable>::exec_fold_opt", "Argument[3].Parameter[1].Field[core::result::Result::Ok(0)]", "database", "manual"] - - ["<_ as mysql::conn::queryable::Queryable>::query_iter", "ReturnValue.Field[core::result::Result::Ok(0)].Element", "database", "manual"] - - ["<_ as mysql::conn::queryable::Queryable>::exec_iter", "ReturnValue.Field[core::result::Result::Ok(0)].Element", "database", "manual"] + - ["::query_iter", "ReturnValue.Field[core::result::Result::Ok(0)].Element", "database", "manual"] + - ["::exec_iter", "ReturnValue.Field[core::result::Result::Ok(0)].Element", "database", "manual"] - ["<_ as mysql::conn::queryable::Queryable>::query_map", "Argument[1].Parameter[0]", "database", "manual"] - ["<_ as mysql::conn::queryable::Queryable>::query_map_opt", "Argument[1].Parameter[0].Field[core::result::Result::Ok(0)]", "database", "manual"] - ["<_ as mysql::conn::queryable::Queryable>::exec_map", "Argument[2].Parameter[0]", "database", "manual"] From 03204b78813c68acda6d4c00cef5f743bffe4a1b Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 27 Oct 2025 17:53:40 +0000 Subject: [PATCH 034/126] Rust: Accept tests repaired. --- .../sources/database/InlineFlow.expected | 96 ++--- .../sources/database/TaintSources.expected | 6 +- .../security/CWE-089/SqlInjection.expected | 337 ++++++++++-------- .../security/CWE-089/SqlSinks.expected | 6 - 4 files changed, 245 insertions(+), 200 deletions(-) diff --git a/rust/ql/test/library-tests/dataflow/sources/database/InlineFlow.expected b/rust/ql/test/library-tests/dataflow/sources/database/InlineFlow.expected index 2b00c00ea47..db1e69c43fb 100644 --- a/rust/ql/test/library-tests/dataflow/sources/database/InlineFlow.expected +++ b/rust/ql/test/library-tests/dataflow/sources/database/InlineFlow.expected @@ -4,43 +4,50 @@ models | 3 | Source: <_ as mysql::conn::queryable::Queryable>::query_map; Argument[1].Parameter[0]; database | | 4 | Source: <_ as mysql_async::queryable::Queryable>::query_fold; Argument[2].Parameter[1]; database | | 5 | Source: <_ as mysql_async::queryable::Queryable>::query_map; Argument[1].Parameter[0]; database | -| 6 | Source: ::get; ReturnValue.Field[core::option::Option::Some(0)]; database | -| 7 | Source: ::get_opt; ReturnValue.Field[core::option::Option::Some(0)].Field[core::result::Result::Ok(0)]; database | -| 8 | Source: ::take; ReturnValue.Field[core::option::Option::Some(0)]; database | -| 9 | Source: ::take_opt; ReturnValue.Field[core::option::Option::Some(0)].Field[core::result::Result::Ok(0)]; database | -| 10 | Summary: <_ as core::ops::arith::Add>::add; Argument[0].Reference; ReturnValue; taint | -| 11 | Summary: <_ as core::ops::arith::Add>::add; Argument[0]; ReturnValue; taint | -| 12 | Summary: <_ as mysql::conn::queryable::Queryable>::query_fold; Argument[2].ReturnValue; ReturnValue.Field[core::result::Result::Ok(0)]; value | -| 13 | Summary: <_ as mysql_async::queryable::Queryable>::query_fold; Argument[2].ReturnValue; ReturnValue.Future.Field[core::result::Result::Ok(0)]; value | -| 14 | Summary: ::add; Argument[0]; ReturnValue; taint | -| 15 | Summary: ::unwrap; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | -| 16 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | +| 6 | Source: ::exec_iter; ReturnValue.Field[core::result::Result::Ok(0)].Element; database | +| 7 | Source: ::get; ReturnValue.Field[core::option::Option::Some(0)]; database | +| 8 | Source: ::get_opt; ReturnValue.Field[core::option::Option::Some(0)].Field[core::result::Result::Ok(0)]; database | +| 9 | Source: ::take; ReturnValue.Field[core::option::Option::Some(0)]; database | +| 10 | Source: ::take_opt; ReturnValue.Field[core::option::Option::Some(0)].Field[core::result::Result::Ok(0)]; database | +| 11 | Summary: <_ as core::ops::arith::Add>::add; Argument[0].Reference; ReturnValue; taint | +| 12 | Summary: <_ as core::ops::arith::Add>::add; Argument[0]; ReturnValue; taint | +| 13 | Summary: <_ as mysql::conn::queryable::Queryable>::query_fold; Argument[2].ReturnValue; ReturnValue.Field[core::result::Result::Ok(0)]; value | +| 14 | Summary: <_ as mysql_async::queryable::Queryable>::query_fold; Argument[2].ReturnValue; ReturnValue.Future.Field[core::result::Result::Ok(0)]; value | +| 15 | Summary: ::add; Argument[0]; ReturnValue; taint | +| 16 | Summary: ::unwrap; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | +| 17 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | edges | test.rs:18:13:18:14 | v1 | test.rs:19:14:19:15 | v1 | provenance | | -| test.rs:18:24:18:33 | row.get(...) [Some] | test.rs:18:24:18:42 | ... .unwrap() | provenance | MaD:15 | +| test.rs:18:24:18:33 | row.get(...) [Some] | test.rs:18:24:18:42 | ... .unwrap() | provenance | MaD:16 | | test.rs:18:24:18:42 | ... .unwrap() | test.rs:18:13:18:14 | v1 | provenance | | -| test.rs:18:28:18:30 | get | test.rs:18:24:18:33 | row.get(...) [Some] | provenance | Src:MaD:6 | +| test.rs:18:28:18:30 | get | test.rs:18:24:18:33 | row.get(...) [Some] | provenance | Src:MaD:7 | | test.rs:21:13:21:14 | v2 | test.rs:22:14:22:15 | v2 | provenance | | -| test.rs:21:24:21:37 | row.get_opt(...) [Some, Ok] | test.rs:21:24:21:46 | ... .unwrap() [Ok] | provenance | MaD:15 | -| test.rs:21:24:21:46 | ... .unwrap() [Ok] | test.rs:21:24:21:55 | ... .unwrap() | provenance | MaD:16 | +| test.rs:21:24:21:37 | row.get_opt(...) [Some, Ok] | test.rs:21:24:21:46 | ... .unwrap() [Ok] | provenance | MaD:16 | +| test.rs:21:24:21:46 | ... .unwrap() [Ok] | test.rs:21:24:21:55 | ... .unwrap() | provenance | MaD:17 | | test.rs:21:24:21:55 | ... .unwrap() | test.rs:21:13:21:14 | v2 | provenance | | -| test.rs:21:28:21:34 | get_opt | test.rs:21:24:21:37 | row.get_opt(...) [Some, Ok] | provenance | Src:MaD:7 | +| test.rs:21:28:21:34 | get_opt | test.rs:21:24:21:37 | row.get_opt(...) [Some, Ok] | provenance | Src:MaD:8 | | test.rs:24:13:24:14 | v3 | test.rs:25:14:25:15 | v3 | provenance | | -| test.rs:24:24:24:34 | row.take(...) [Some] | test.rs:24:24:24:43 | ... .unwrap() | provenance | MaD:15 | +| test.rs:24:24:24:34 | row.take(...) [Some] | test.rs:24:24:24:43 | ... .unwrap() | provenance | MaD:16 | | test.rs:24:24:24:43 | ... .unwrap() | test.rs:24:13:24:14 | v3 | provenance | | -| test.rs:24:28:24:31 | take | test.rs:24:24:24:34 | row.take(...) [Some] | provenance | Src:MaD:8 | +| test.rs:24:28:24:31 | take | test.rs:24:24:24:34 | row.take(...) [Some] | provenance | Src:MaD:9 | | test.rs:27:13:27:14 | v4 | test.rs:28:14:28:15 | v4 | provenance | | -| test.rs:27:24:27:38 | row.take_opt(...) [Some, Ok] | test.rs:27:24:27:47 | ... .unwrap() [Ok] | provenance | MaD:15 | -| test.rs:27:24:27:47 | ... .unwrap() [Ok] | test.rs:27:24:27:56 | ... .unwrap() | provenance | MaD:16 | +| test.rs:27:24:27:38 | row.take_opt(...) [Some, Ok] | test.rs:27:24:27:47 | ... .unwrap() [Ok] | provenance | MaD:16 | +| test.rs:27:24:27:47 | ... .unwrap() [Ok] | test.rs:27:24:27:56 | ... .unwrap() | provenance | MaD:17 | | test.rs:27:24:27:56 | ... .unwrap() | test.rs:27:13:27:14 | v4 | provenance | | -| test.rs:27:28:27:35 | take_opt | test.rs:27:24:27:38 | row.take_opt(...) [Some, Ok] | provenance | Src:MaD:9 | +| test.rs:27:28:27:35 | take_opt | test.rs:27:24:27:38 | row.take_opt(...) [Some, Ok] | provenance | Src:MaD:10 | | test.rs:37:13:37:14 | v6 | test.rs:38:14:38:15 | v6 | provenance | | | test.rs:37:23:37:63 | conn.query_first(...) [Ok, Some] | test.rs:37:23:37:64 | TryExpr [Some] | provenance | | -| test.rs:37:23:37:64 | TryExpr [Some] | test.rs:37:23:37:73 | ... .unwrap() | provenance | MaD:15 | +| test.rs:37:23:37:64 | TryExpr [Some] | test.rs:37:23:37:73 | ... .unwrap() | provenance | MaD:16 | | test.rs:37:23:37:73 | ... .unwrap() | test.rs:37:13:37:14 | v6 | provenance | | | test.rs:37:28:37:38 | query_first | test.rs:37:23:37:63 | conn.query_first(...) [Ok, Some] | provenance | Src:MaD:1 | -| test.rs:41:14:41:61 | ... .get(...) [Some] | test.rs:41:14:41:70 | ... .unwrap() | provenance | MaD:15 | -| test.rs:41:42:41:44 | get | test.rs:41:14:41:61 | ... .get(...) [Some] | provenance | Src:MaD:6 | +| test.rs:40:13:40:18 | mut t1 [element] | test.rs:42:20:42:21 | t1 [element] | provenance | | +| test.rs:40:22:40:71 | conn.exec_iter(...) [Ok, element] | test.rs:40:22:40:72 | TryExpr [element] | provenance | | +| test.rs:40:22:40:72 | TryExpr [element] | test.rs:40:13:40:18 | mut t1 [element] | provenance | | +| test.rs:40:27:40:35 | exec_iter | test.rs:40:22:40:71 | conn.exec_iter(...) [Ok, element] | provenance | Src:MaD:6 | +| test.rs:41:14:41:61 | ... .get(...) [Some] | test.rs:41:14:41:70 | ... .unwrap() | provenance | MaD:16 | +| test.rs:41:42:41:44 | get | test.rs:41:14:41:61 | ... .get(...) [Some] | provenance | Src:MaD:7 | +| test.rs:42:13:42:15 | row | test.rs:44:22:44:22 | v | provenance | | +| test.rs:42:20:42:21 | t1 [element] | test.rs:42:13:42:15 | row | provenance | | | test.rs:48:22:48:30 | query_map | test.rs:50:14:50:24 | ...: i64 | provenance | Src:MaD:3 | | test.rs:50:14:50:24 | ...: i64 | test.rs:51:22:51:27 | values | provenance | | | test.rs:64:13:64:17 | total | test.rs:68:14:68:18 | total | provenance | | @@ -50,29 +57,29 @@ edges | test.rs:64:76:64:83 | ...: i64 | test.rs:64:86:67:9 | { ... } | provenance | | | test.rs:64:76:64:83 | ...: i64 | test.rs:65:18:65:20 | row | provenance | | | test.rs:64:76:64:83 | ...: i64 | test.rs:66:19:66:21 | row | provenance | | -| test.rs:64:86:67:9 | { ... } | test.rs:64:21:67:10 | conn.query_fold(...) [Ok] | provenance | MaD:12 | +| test.rs:64:86:67:9 | { ... } | test.rs:64:21:67:10 | conn.query_fold(...) [Ok] | provenance | MaD:13 | | test.rs:66:13:66:21 | ... + ... | test.rs:64:86:67:9 | { ... } | provenance | | -| test.rs:66:19:66:21 | row | test.rs:66:13:66:21 | ... + ... | provenance | MaD:10 | | test.rs:66:19:66:21 | row | test.rs:66:13:66:21 | ... + ... | provenance | MaD:11 | -| test.rs:66:19:66:21 | row | test.rs:66:13:66:21 | ... + ... | provenance | MaD:14 | +| test.rs:66:19:66:21 | row | test.rs:66:13:66:21 | ... + ... | provenance | MaD:12 | +| test.rs:66:19:66:21 | row | test.rs:66:13:66:21 | ... + ... | provenance | MaD:15 | | test.rs:105:13:105:14 | v1 | test.rs:106:14:106:15 | v1 | provenance | | -| test.rs:105:24:105:33 | row.get(...) [Some] | test.rs:105:24:105:42 | ... .unwrap() | provenance | MaD:15 | +| test.rs:105:24:105:33 | row.get(...) [Some] | test.rs:105:24:105:42 | ... .unwrap() | provenance | MaD:16 | | test.rs:105:24:105:42 | ... .unwrap() | test.rs:105:13:105:14 | v1 | provenance | | -| test.rs:105:28:105:30 | get | test.rs:105:24:105:33 | row.get(...) [Some] | provenance | Src:MaD:6 | +| test.rs:105:28:105:30 | get | test.rs:105:24:105:33 | row.get(...) [Some] | provenance | Src:MaD:7 | | test.rs:108:13:108:14 | v2 | test.rs:109:14:109:15 | v2 | provenance | | -| test.rs:108:24:108:37 | row.get_opt(...) [Some, Ok] | test.rs:108:24:108:46 | ... .unwrap() [Ok] | provenance | MaD:15 | -| test.rs:108:24:108:46 | ... .unwrap() [Ok] | test.rs:108:24:108:55 | ... .unwrap() | provenance | MaD:16 | +| test.rs:108:24:108:37 | row.get_opt(...) [Some, Ok] | test.rs:108:24:108:46 | ... .unwrap() [Ok] | provenance | MaD:16 | +| test.rs:108:24:108:46 | ... .unwrap() [Ok] | test.rs:108:24:108:55 | ... .unwrap() | provenance | MaD:17 | | test.rs:108:24:108:55 | ... .unwrap() | test.rs:108:13:108:14 | v2 | provenance | | -| test.rs:108:28:108:34 | get_opt | test.rs:108:24:108:37 | row.get_opt(...) [Some, Ok] | provenance | Src:MaD:7 | +| test.rs:108:28:108:34 | get_opt | test.rs:108:24:108:37 | row.get_opt(...) [Some, Ok] | provenance | Src:MaD:8 | | test.rs:111:13:111:14 | v3 | test.rs:112:14:112:15 | v3 | provenance | | -| test.rs:111:24:111:34 | row.take(...) [Some] | test.rs:111:24:111:43 | ... .unwrap() | provenance | MaD:15 | +| test.rs:111:24:111:34 | row.take(...) [Some] | test.rs:111:24:111:43 | ... .unwrap() | provenance | MaD:16 | | test.rs:111:24:111:43 | ... .unwrap() | test.rs:111:13:111:14 | v3 | provenance | | -| test.rs:111:28:111:31 | take | test.rs:111:24:111:34 | row.take(...) [Some] | provenance | Src:MaD:8 | +| test.rs:111:28:111:31 | take | test.rs:111:24:111:34 | row.take(...) [Some] | provenance | Src:MaD:9 | | test.rs:114:13:114:14 | v4 | test.rs:115:14:115:15 | v4 | provenance | | -| test.rs:114:24:114:38 | row.take_opt(...) [Some, Ok] | test.rs:114:24:114:47 | ... .unwrap() [Ok] | provenance | MaD:15 | -| test.rs:114:24:114:47 | ... .unwrap() [Ok] | test.rs:114:24:114:56 | ... .unwrap() | provenance | MaD:16 | +| test.rs:114:24:114:38 | row.take_opt(...) [Some, Ok] | test.rs:114:24:114:47 | ... .unwrap() [Ok] | provenance | MaD:16 | +| test.rs:114:24:114:47 | ... .unwrap() [Ok] | test.rs:114:24:114:56 | ... .unwrap() | provenance | MaD:17 | | test.rs:114:24:114:56 | ... .unwrap() | test.rs:114:13:114:14 | v4 | provenance | | -| test.rs:114:28:114:35 | take_opt | test.rs:114:24:114:38 | row.take_opt(...) [Some, Ok] | provenance | Src:MaD:9 | +| test.rs:114:28:114:35 | take_opt | test.rs:114:24:114:38 | row.take_opt(...) [Some, Ok] | provenance | Src:MaD:10 | | test.rs:135:22:135:30 | query_map | test.rs:137:14:137:24 | ...: i64 | provenance | Src:MaD:5 | | test.rs:137:14:137:24 | ...: i64 | test.rs:138:22:138:27 | values | provenance | | | test.rs:151:13:151:17 | total | test.rs:155:14:155:18 | total | provenance | | @@ -83,11 +90,11 @@ edges | test.rs:151:76:151:83 | ...: i64 | test.rs:151:86:154:9 | { ... } | provenance | | | test.rs:151:76:151:83 | ...: i64 | test.rs:152:18:152:20 | row | provenance | | | test.rs:151:76:151:83 | ...: i64 | test.rs:153:19:153:21 | row | provenance | | -| test.rs:151:86:154:9 | { ... } | test.rs:151:21:154:10 | conn.query_fold(...) [future, Ok] | provenance | MaD:13 | +| test.rs:151:86:154:9 | { ... } | test.rs:151:21:154:10 | conn.query_fold(...) [future, Ok] | provenance | MaD:14 | | test.rs:153:13:153:21 | ... + ... | test.rs:151:86:154:9 | { ... } | provenance | | -| test.rs:153:19:153:21 | row | test.rs:153:13:153:21 | ... + ... | provenance | MaD:10 | | test.rs:153:19:153:21 | row | test.rs:153:13:153:21 | ... + ... | provenance | MaD:11 | -| test.rs:153:19:153:21 | row | test.rs:153:13:153:21 | ... + ... | provenance | MaD:14 | +| test.rs:153:19:153:21 | row | test.rs:153:13:153:21 | ... + ... | provenance | MaD:12 | +| test.rs:153:19:153:21 | row | test.rs:153:13:153:21 | ... + ... | provenance | MaD:15 | nodes | test.rs:18:13:18:14 | v1 | semmle.label | v1 | | test.rs:18:24:18:33 | row.get(...) [Some] | semmle.label | row.get(...) [Some] | @@ -117,9 +124,16 @@ nodes | test.rs:37:23:37:73 | ... .unwrap() | semmle.label | ... .unwrap() | | test.rs:37:28:37:38 | query_first | semmle.label | query_first | | test.rs:38:14:38:15 | v6 | semmle.label | v6 | +| test.rs:40:13:40:18 | mut t1 [element] | semmle.label | mut t1 [element] | +| test.rs:40:22:40:71 | conn.exec_iter(...) [Ok, element] | semmle.label | conn.exec_iter(...) [Ok, element] | +| test.rs:40:22:40:72 | TryExpr [element] | semmle.label | TryExpr [element] | +| test.rs:40:27:40:35 | exec_iter | semmle.label | exec_iter | | test.rs:41:14:41:61 | ... .get(...) [Some] | semmle.label | ... .get(...) [Some] | | test.rs:41:14:41:70 | ... .unwrap() | semmle.label | ... .unwrap() | | test.rs:41:42:41:44 | get | semmle.label | get | +| test.rs:42:13:42:15 | row | semmle.label | row | +| test.rs:42:20:42:21 | t1 [element] | semmle.label | t1 [element] | +| test.rs:44:22:44:22 | v | semmle.label | v | | test.rs:48:22:48:30 | query_map | semmle.label | query_map | | test.rs:50:14:50:24 | ...: i64 | semmle.label | ...: i64 | | test.rs:51:22:51:27 | values | semmle.label | values | @@ -171,7 +185,6 @@ nodes | test.rs:155:14:155:18 | total | semmle.label | total | subpaths testFailures -| test.rs:44:26:44:42 | //... | Missing result: hasTaintFlow | #select | test.rs:19:14:19:15 | v1 | test.rs:18:28:18:30 | get | test.rs:19:14:19:15 | v1 | $@ | test.rs:18:28:18:30 | get | get | | test.rs:22:14:22:15 | v2 | test.rs:21:28:21:34 | get_opt | test.rs:22:14:22:15 | v2 | $@ | test.rs:21:28:21:34 | get_opt | get_opt | @@ -179,6 +192,7 @@ testFailures | test.rs:28:14:28:15 | v4 | test.rs:27:28:27:35 | take_opt | test.rs:28:14:28:15 | v4 | $@ | test.rs:27:28:27:35 | take_opt | take_opt | | test.rs:38:14:38:15 | v6 | test.rs:37:28:37:38 | query_first | test.rs:38:14:38:15 | v6 | $@ | test.rs:37:28:37:38 | query_first | query_first | | test.rs:41:14:41:70 | ... .unwrap() | test.rs:41:42:41:44 | get | test.rs:41:14:41:70 | ... .unwrap() | $@ | test.rs:41:42:41:44 | get | get | +| test.rs:44:22:44:22 | v | test.rs:40:27:40:35 | exec_iter | test.rs:44:22:44:22 | v | $@ | test.rs:40:27:40:35 | exec_iter | exec_iter | | test.rs:51:22:51:27 | values | test.rs:48:22:48:30 | query_map | test.rs:51:22:51:27 | values | $@ | test.rs:48:22:48:30 | query_map | query_map | | test.rs:65:18:65:20 | row | test.rs:64:26:64:35 | query_fold | test.rs:65:18:65:20 | row | $@ | test.rs:64:26:64:35 | query_fold | query_fold | | test.rs:68:14:68:18 | total | test.rs:64:26:64:35 | query_fold | test.rs:68:14:68:18 | total | $@ | test.rs:64:26:64:35 | query_fold | query_fold | diff --git a/rust/ql/test/library-tests/dataflow/sources/database/TaintSources.expected b/rust/ql/test/library-tests/dataflow/sources/database/TaintSources.expected index 96c4a62f569..9132dfaa2b0 100644 --- a/rust/ql/test/library-tests/dataflow/sources/database/TaintSources.expected +++ b/rust/ql/test/library-tests/dataflow/sources/database/TaintSources.expected @@ -1,4 +1,3 @@ -#select | test.rs:15:47:15:51 | query | Flow source 'DatabaseSource' of type database (DEFAULT). | | test.rs:18:28:18:30 | get | Flow source 'DatabaseSource' of type database (DEFAULT). | | test.rs:21:28:21:34 | get_opt | Flow source 'DatabaseSource' of type database (DEFAULT). | @@ -6,6 +5,7 @@ | test.rs:27:28:27:35 | take_opt | Flow source 'DatabaseSource' of type database (DEFAULT). | | test.rs:30:26:30:31 | as_ref | Flow source 'DatabaseSource' of type database (DEFAULT). | | test.rs:37:28:37:38 | query_first | Flow source 'DatabaseSource' of type database (DEFAULT). | +| test.rs:40:27:40:35 | exec_iter | Flow source 'DatabaseSource' of type database (DEFAULT). | | test.rs:41:42:41:44 | get | Flow source 'DatabaseSource' of type database (DEFAULT). | | test.rs:48:22:48:30 | query_map | Flow source 'DatabaseSource' of type database (DEFAULT). | | test.rs:55:22:55:30 | query_map | Flow source 'DatabaseSource' of type database (DEFAULT). | @@ -18,10 +18,8 @@ | test.rs:114:28:114:35 | take_opt | Flow source 'DatabaseSource' of type database (DEFAULT). | | test.rs:117:26:117:31 | as_ref | Flow source 'DatabaseSource' of type database (DEFAULT). | | test.rs:124:28:124:38 | query_first | Flow source 'DatabaseSource' of type database (DEFAULT). | +| test.rs:127:27:127:35 | exec_iter | Flow source 'DatabaseSource' of type database (DEFAULT). | | test.rs:135:22:135:30 | query_map | Flow source 'DatabaseSource' of type database (DEFAULT). | | test.rs:142:22:142:30 | query_map | Flow source 'DatabaseSource' of type database (DEFAULT). | | test.rs:151:26:151:35 | query_fold | Flow source 'DatabaseSource' of type database (DEFAULT). | | test.rs:157:22:157:31 | query_fold | Flow source 'DatabaseSource' of type database (DEFAULT). | -testFailures -| test.rs:40:75:40:112 | //... | Missing result: Alert[rust/summary/taint-sources] | -| test.rs:127:81:127:118 | //... | Missing result: Alert[rust/summary/taint-sources] | diff --git a/rust/ql/test/query-tests/security/CWE-089/SqlInjection.expected b/rust/ql/test/query-tests/security/CWE-089/SqlInjection.expected index 5c9992256e9..ecd8cfa7937 100644 --- a/rust/ql/test/query-tests/security/CWE-089/SqlInjection.expected +++ b/rust/ql/test/query-tests/security/CWE-089/SqlInjection.expected @@ -6,16 +6,20 @@ | mysql.rs:29:49:29:63 | query_first_opt | mysql.rs:12:33:12:54 | ...::get | mysql.rs:29:49:29:63 | query_first_opt | This query depends on a $@. | mysql.rs:12:33:12:54 | ...::get | user-provided value | | mysql.rs:30:22:30:31 | query_fold | mysql.rs:12:33:12:54 | ...::get | mysql.rs:30:22:30:31 | query_fold | This query depends on a $@. | mysql.rs:12:33:12:54 | ...::get | user-provided value | | mysql.rs:31:22:31:35 | query_fold_opt | mysql.rs:12:33:12:54 | ...::get | mysql.rs:31:22:31:35 | query_fold_opt | This query depends on a $@. | mysql.rs:12:33:12:54 | ...::get | user-provided value | +| mysql.rs:36:22:36:31 | query_iter | mysql.rs:12:33:12:54 | ...::get | mysql.rs:36:22:36:31 | query_iter | This query depends on a $@. | mysql.rs:12:33:12:54 | ...::get | user-provided value | | mysql.rs:37:22:37:30 | query_map | mysql.rs:12:33:12:54 | ...::get | mysql.rs:37:22:37:30 | query_map | This query depends on a $@. | mysql.rs:12:33:12:54 | ...::get | user-provided value | | mysql.rs:38:22:38:34 | query_map_opt | mysql.rs:12:33:12:54 | ...::get | mysql.rs:38:22:38:34 | query_map_opt | This query depends on a $@. | mysql.rs:12:33:12:54 | ...::get | user-provided value | | mysql.rs:42:33:42:37 | query | mysql.rs:12:33:12:54 | ...::get | mysql.rs:42:33:42:37 | query | This query depends on a $@. | mysql.rs:12:33:12:54 | ...::get | user-provided value | +| mysql.rs:75:26:75:29 | prep | mysql.rs:12:33:12:54 | ...::get | mysql.rs:75:26:75:29 | prep | This query depends on a $@. | mysql.rs:12:33:12:54 | ...::get | user-provided value | | mysql.rs:80:15:80:24 | query_drop | mysql.rs:12:33:12:54 | ...::get | mysql.rs:80:15:80:24 | query_drop | This query depends on a $@. | mysql.rs:12:33:12:54 | ...::get | user-provided value | | mysql.rs:110:32:110:36 | query | mysql.rs:97:33:97:54 | ...::get | mysql.rs:110:32:110:36 | query | This query depends on a $@. | mysql.rs:97:33:97:54 | ...::get | user-provided value | | mysql.rs:111:14:111:23 | query_drop | mysql.rs:97:33:97:54 | ...::get | mysql.rs:111:14:111:23 | query_drop | This query depends on a $@. | mysql.rs:97:33:97:54 | ...::get | user-provided value | | mysql.rs:112:35:112:45 | query_first | mysql.rs:97:33:97:54 | ...::get | mysql.rs:112:35:112:45 | query_first | This query depends on a $@. | mysql.rs:97:33:97:54 | ...::get | user-provided value | | mysql.rs:114:14:114:23 | query_fold | mysql.rs:97:33:97:54 | ...::get | mysql.rs:114:14:114:23 | query_fold | This query depends on a $@. | mysql.rs:97:33:97:54 | ...::get | user-provided value | +| mysql.rs:116:22:116:31 | query_iter | mysql.rs:97:33:97:54 | ...::get | mysql.rs:116:22:116:31 | query_iter | This query depends on a $@. | mysql.rs:97:33:97:54 | ...::get | user-provided value | | mysql.rs:118:14:118:25 | query_stream | mysql.rs:97:33:97:54 | ...::get | mysql.rs:118:14:118:25 | query_stream | This query depends on a $@. | mysql.rs:97:33:97:54 | ...::get | user-provided value | | mysql.rs:121:14:121:22 | query_map | mysql.rs:97:33:97:54 | ...::get | mysql.rs:121:14:121:22 | query_map | This query depends on a $@. | mysql.rs:97:33:97:54 | ...::get | user-provided value | +| mysql.rs:149:26:149:29 | prep | mysql.rs:97:33:97:54 | ...::get | mysql.rs:149:26:149:29 | prep | This query depends on a $@. | mysql.rs:97:33:97:54 | ...::get | user-provided value | | mysql.rs:154:15:154:24 | query_drop | mysql.rs:97:33:97:54 | ...::get | mysql.rs:154:15:154:24 | query_drop | This query depends on a $@. | mysql.rs:97:33:97:54 | ...::get | user-provided value | | sqlx.rs:77:13:77:23 | ...::query | sqlx.rs:48:25:48:46 | ...::get | sqlx.rs:77:13:77:23 | ...::query | This query depends on a $@. | sqlx.rs:48:25:48:46 | ...::get | user-provided value | | sqlx.rs:78:13:78:23 | ...::query | sqlx.rs:47:22:47:35 | ...::args | sqlx.rs:78:13:78:23 | ...::query | This query depends on a $@. | sqlx.rs:47:22:47:35 | ...::args | user-provided value | @@ -31,235 +35,255 @@ | sqlx.rs:188:17:188:27 | ...::query | sqlx.rs:173:25:173:46 | ...::get | sqlx.rs:188:17:188:27 | ...::query | This query depends on a $@. | sqlx.rs:173:25:173:46 | ...::get | user-provided value | edges | mysql.rs:12:13:12:29 | mut remote_string | mysql.rs:18:71:18:83 | remote_string | provenance | | -| mysql.rs:12:33:12:54 | ...::get | mysql.rs:12:33:12:77 | ...::get(...) [Ok] | provenance | Src:MaD:19 | -| mysql.rs:12:33:12:77 | ...::get(...) [Ok] | mysql.rs:12:33:13:21 | ... .unwrap() | provenance | MaD:27 | -| mysql.rs:12:33:13:21 | ... .unwrap() | mysql.rs:12:33:14:19 | ... .text() [Ok] | provenance | MaD:31 | -| mysql.rs:12:33:14:19 | ... .text() [Ok] | mysql.rs:12:33:15:40 | ... .unwrap_or(...) | provenance | MaD:28 | +| mysql.rs:12:33:12:54 | ...::get | mysql.rs:12:33:12:77 | ...::get(...) [Ok] | provenance | Src:MaD:23 | +| mysql.rs:12:33:12:77 | ...::get(...) [Ok] | mysql.rs:12:33:13:21 | ... .unwrap() | provenance | MaD:31 | +| mysql.rs:12:33:13:21 | ... .unwrap() | mysql.rs:12:33:14:19 | ... .text() [Ok] | provenance | MaD:35 | +| mysql.rs:12:33:14:19 | ... .text() [Ok] | mysql.rs:12:33:15:40 | ... .unwrap_or(...) | provenance | MaD:32 | | mysql.rs:12:33:15:40 | ... .unwrap_or(...) | mysql.rs:12:13:12:29 | mut remote_string | provenance | | | mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:25:38:25:49 | unsafe_query | provenance | | -| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:25:38:25:58 | unsafe_query.as_str() | provenance | MaD:25 | +| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:25:38:25:58 | unsafe_query.as_str() | provenance | MaD:29 | | mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:26:64:26:75 | unsafe_query | provenance | | -| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:26:64:26:84 | unsafe_query.as_str() | provenance | MaD:25 | +| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:26:64:26:84 | unsafe_query.as_str() | provenance | MaD:29 | | mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:27:25:27:36 | unsafe_query | provenance | | -| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:27:25:27:45 | unsafe_query.as_str() | provenance | MaD:25 | +| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:27:25:27:45 | unsafe_query.as_str() | provenance | MaD:29 | | mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:28:39:28:50 | unsafe_query | provenance | | -| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:28:39:28:59 | unsafe_query.as_str() | provenance | MaD:25 | +| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:28:39:28:59 | unsafe_query.as_str() | provenance | MaD:29 | | mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:29:65:29:76 | unsafe_query | provenance | | -| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:29:65:29:85 | unsafe_query.as_str() | provenance | MaD:25 | +| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:29:65:29:85 | unsafe_query.as_str() | provenance | MaD:29 | | mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:30:33:30:44 | unsafe_query | provenance | | -| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:30:33:30:53 | unsafe_query.as_str() | provenance | MaD:25 | +| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:30:33:30:53 | unsafe_query.as_str() | provenance | MaD:29 | | mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:32:13:32:24 | unsafe_query | provenance | | -| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:32:13:32:33 | unsafe_query.as_str() | provenance | MaD:25 | +| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:32:13:32:33 | unsafe_query.as_str() | provenance | MaD:29 | +| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:36:33:36:44 | unsafe_query | provenance | | +| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:36:33:36:53 | unsafe_query.as_str() | provenance | MaD:29 | | mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:37:32:37:43 | unsafe_query | provenance | | -| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:37:32:37:52 | unsafe_query.as_str() | provenance | MaD:25 | +| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:37:32:37:52 | unsafe_query.as_str() | provenance | MaD:29 | | mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:39:13:39:24 | unsafe_query | provenance | | -| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:39:13:39:33 | unsafe_query.as_str() | provenance | MaD:25 | +| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:39:13:39:33 | unsafe_query.as_str() | provenance | MaD:29 | | mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:42:39:42:50 | unsafe_query | provenance | | -| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:42:39:42:59 | unsafe_query.as_str() | provenance | MaD:25 | +| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:42:39:42:59 | unsafe_query.as_str() | provenance | MaD:29 | +| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:75:31:75:42 | unsafe_query | provenance | | +| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:75:31:75:51 | unsafe_query.as_str() | provenance | MaD:29 | | mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:80:26:80:37 | unsafe_query | provenance | | -| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:80:26:80:46 | unsafe_query.as_str() | provenance | MaD:25 | +| mysql.rs:17:13:17:24 | unsafe_query | mysql.rs:80:26:80:46 | unsafe_query.as_str() | provenance | MaD:29 | | mysql.rs:18:13:18:83 | ... + ... | mysql.rs:17:13:17:24 | unsafe_query | provenance | | -| mysql.rs:18:13:18:83 | ... + ... | mysql.rs:18:13:18:89 | ... + ... | provenance | MaD:23 | -| mysql.rs:18:13:18:83 | ... + ... | mysql.rs:18:13:18:89 | ... + ... | provenance | MaD:24 | +| mysql.rs:18:13:18:83 | ... + ... | mysql.rs:18:13:18:89 | ... + ... | provenance | MaD:27 | +| mysql.rs:18:13:18:83 | ... + ... | mysql.rs:18:13:18:89 | ... + ... | provenance | MaD:28 | | mysql.rs:18:13:18:89 | ... + ... | mysql.rs:17:13:17:24 | unsafe_query | provenance | | -| mysql.rs:18:70:18:83 | &remote_string [&ref] | mysql.rs:18:13:18:83 | ... + ... | provenance | MaD:22 | +| mysql.rs:18:70:18:83 | &remote_string [&ref] | mysql.rs:18:13:18:83 | ... + ... | provenance | MaD:26 | | mysql.rs:18:71:18:83 | remote_string | mysql.rs:18:70:18:83 | &remote_string [&ref] | provenance | | -| mysql.rs:25:38:25:49 | unsafe_query | mysql.rs:25:38:25:58 | unsafe_query.as_str() [&ref] | provenance | MaD:25 | +| mysql.rs:25:38:25:49 | unsafe_query | mysql.rs:25:38:25:58 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | | mysql.rs:25:38:25:58 | unsafe_query.as_str() | mysql.rs:25:32:25:36 | query | provenance | MaD:1 Sink:MaD:1 | | mysql.rs:25:38:25:58 | unsafe_query.as_str() [&ref] | mysql.rs:25:32:25:36 | query | provenance | MaD:1 Sink:MaD:1 | -| mysql.rs:26:64:26:75 | unsafe_query | mysql.rs:26:64:26:84 | unsafe_query.as_str() [&ref] | provenance | MaD:25 | +| mysql.rs:26:64:26:75 | unsafe_query | mysql.rs:26:64:26:84 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | | mysql.rs:26:64:26:84 | unsafe_query.as_str() | mysql.rs:26:54:26:62 | query_opt | provenance | MaD:9 Sink:MaD:9 | | mysql.rs:26:64:26:84 | unsafe_query.as_str() [&ref] | mysql.rs:26:54:26:62 | query_opt | provenance | MaD:9 Sink:MaD:9 | -| mysql.rs:27:25:27:36 | unsafe_query | mysql.rs:27:25:27:45 | unsafe_query.as_str() [&ref] | provenance | MaD:25 | +| mysql.rs:27:25:27:36 | unsafe_query | mysql.rs:27:25:27:45 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | | mysql.rs:27:25:27:45 | unsafe_query.as_str() | mysql.rs:27:14:27:23 | query_drop | provenance | MaD:2 Sink:MaD:2 | | mysql.rs:27:25:27:45 | unsafe_query.as_str() [&ref] | mysql.rs:27:14:27:23 | query_drop | provenance | MaD:2 Sink:MaD:2 | -| mysql.rs:28:39:28:50 | unsafe_query | mysql.rs:28:39:28:59 | unsafe_query.as_str() [&ref] | provenance | MaD:25 | +| mysql.rs:28:39:28:50 | unsafe_query | mysql.rs:28:39:28:59 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | | mysql.rs:28:39:28:59 | unsafe_query.as_str() | mysql.rs:28:27:28:37 | query_first | provenance | MaD:3 Sink:MaD:3 | | mysql.rs:28:39:28:59 | unsafe_query.as_str() [&ref] | mysql.rs:28:27:28:37 | query_first | provenance | MaD:3 Sink:MaD:3 | -| mysql.rs:29:65:29:76 | unsafe_query | mysql.rs:29:65:29:85 | unsafe_query.as_str() [&ref] | provenance | MaD:25 | +| mysql.rs:29:65:29:76 | unsafe_query | mysql.rs:29:65:29:85 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | | mysql.rs:29:65:29:85 | unsafe_query.as_str() | mysql.rs:29:49:29:63 | query_first_opt | provenance | MaD:4 Sink:MaD:4 | | mysql.rs:29:65:29:85 | unsafe_query.as_str() [&ref] | mysql.rs:29:49:29:63 | query_first_opt | provenance | MaD:4 Sink:MaD:4 | -| mysql.rs:30:33:30:44 | unsafe_query | mysql.rs:30:33:30:53 | unsafe_query.as_str() [&ref] | provenance | MaD:25 | +| mysql.rs:30:33:30:44 | unsafe_query | mysql.rs:30:33:30:53 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | | mysql.rs:30:33:30:53 | unsafe_query.as_str() | mysql.rs:30:22:30:31 | query_fold | provenance | MaD:5 Sink:MaD:5 | | mysql.rs:30:33:30:53 | unsafe_query.as_str() [&ref] | mysql.rs:30:22:30:31 | query_fold | provenance | MaD:5 Sink:MaD:5 | -| mysql.rs:32:13:32:24 | unsafe_query | mysql.rs:32:13:32:33 | unsafe_query.as_str() [&ref] | provenance | MaD:25 | +| mysql.rs:32:13:32:24 | unsafe_query | mysql.rs:32:13:32:33 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | | mysql.rs:32:13:32:33 | unsafe_query.as_str() | mysql.rs:31:22:31:35 | query_fold_opt | provenance | MaD:6 Sink:MaD:6 | | mysql.rs:32:13:32:33 | unsafe_query.as_str() [&ref] | mysql.rs:31:22:31:35 | query_fold_opt | provenance | MaD:6 Sink:MaD:6 | -| mysql.rs:37:32:37:43 | unsafe_query | mysql.rs:37:32:37:52 | unsafe_query.as_str() [&ref] | provenance | MaD:25 | +| mysql.rs:36:33:36:44 | unsafe_query | mysql.rs:36:33:36:53 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | +| mysql.rs:36:33:36:53 | unsafe_query.as_str() | mysql.rs:36:22:36:31 | query_iter | provenance | MaD:17 Sink:MaD:17 | +| mysql.rs:36:33:36:53 | unsafe_query.as_str() [&ref] | mysql.rs:36:22:36:31 | query_iter | provenance | MaD:17 Sink:MaD:17 | +| mysql.rs:37:32:37:43 | unsafe_query | mysql.rs:37:32:37:52 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | | mysql.rs:37:32:37:52 | unsafe_query.as_str() | mysql.rs:37:22:37:30 | query_map | provenance | MaD:7 Sink:MaD:7 | | mysql.rs:37:32:37:52 | unsafe_query.as_str() [&ref] | mysql.rs:37:22:37:30 | query_map | provenance | MaD:7 Sink:MaD:7 | -| mysql.rs:39:13:39:24 | unsafe_query | mysql.rs:39:13:39:33 | unsafe_query.as_str() [&ref] | provenance | MaD:25 | +| mysql.rs:39:13:39:24 | unsafe_query | mysql.rs:39:13:39:33 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | | mysql.rs:39:13:39:33 | unsafe_query.as_str() | mysql.rs:38:22:38:34 | query_map_opt | provenance | MaD:8 Sink:MaD:8 | | mysql.rs:39:13:39:33 | unsafe_query.as_str() [&ref] | mysql.rs:38:22:38:34 | query_map_opt | provenance | MaD:8 Sink:MaD:8 | -| mysql.rs:42:39:42:50 | unsafe_query | mysql.rs:42:39:42:59 | unsafe_query.as_str() [&ref] | provenance | MaD:25 | +| mysql.rs:42:39:42:50 | unsafe_query | mysql.rs:42:39:42:59 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | | mysql.rs:42:39:42:59 | unsafe_query.as_str() | mysql.rs:42:33:42:37 | query | provenance | MaD:1 Sink:MaD:1 | | mysql.rs:42:39:42:59 | unsafe_query.as_str() [&ref] | mysql.rs:42:33:42:37 | query | provenance | MaD:1 Sink:MaD:1 | -| mysql.rs:80:26:80:37 | unsafe_query | mysql.rs:80:26:80:46 | unsafe_query.as_str() [&ref] | provenance | MaD:25 | +| mysql.rs:75:31:75:42 | unsafe_query | mysql.rs:75:31:75:51 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | +| mysql.rs:75:31:75:51 | unsafe_query.as_str() | mysql.rs:75:26:75:29 | prep | provenance | MaD:16 Sink:MaD:16 | +| mysql.rs:75:31:75:51 | unsafe_query.as_str() [&ref] | mysql.rs:75:26:75:29 | prep | provenance | MaD:16 Sink:MaD:16 | +| mysql.rs:80:26:80:37 | unsafe_query | mysql.rs:80:26:80:46 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | | mysql.rs:80:26:80:46 | unsafe_query.as_str() | mysql.rs:80:15:80:24 | query_drop | provenance | MaD:2 Sink:MaD:2 | | mysql.rs:80:26:80:46 | unsafe_query.as_str() [&ref] | mysql.rs:80:15:80:24 | query_drop | provenance | MaD:2 Sink:MaD:2 | | mysql.rs:97:13:97:29 | mut remote_string | mysql.rs:103:71:103:83 | remote_string | provenance | | -| mysql.rs:97:33:97:54 | ...::get | mysql.rs:97:33:97:77 | ...::get(...) [Ok] | provenance | Src:MaD:19 | -| mysql.rs:97:33:97:77 | ...::get(...) [Ok] | mysql.rs:97:33:98:21 | ... .unwrap() | provenance | MaD:27 | -| mysql.rs:97:33:98:21 | ... .unwrap() | mysql.rs:97:33:99:19 | ... .text() [Ok] | provenance | MaD:31 | -| mysql.rs:97:33:99:19 | ... .text() [Ok] | mysql.rs:97:33:100:40 | ... .unwrap_or(...) | provenance | MaD:28 | +| mysql.rs:97:33:97:54 | ...::get | mysql.rs:97:33:97:77 | ...::get(...) [Ok] | provenance | Src:MaD:23 | +| mysql.rs:97:33:97:77 | ...::get(...) [Ok] | mysql.rs:97:33:98:21 | ... .unwrap() | provenance | MaD:31 | +| mysql.rs:97:33:98:21 | ... .unwrap() | mysql.rs:97:33:99:19 | ... .text() [Ok] | provenance | MaD:35 | +| mysql.rs:97:33:99:19 | ... .text() [Ok] | mysql.rs:97:33:100:40 | ... .unwrap_or(...) | provenance | MaD:32 | | mysql.rs:97:33:100:40 | ... .unwrap_or(...) | mysql.rs:97:13:97:29 | mut remote_string | provenance | | | mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:110:38:110:49 | unsafe_query | provenance | | -| mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:110:38:110:58 | unsafe_query.as_str() | provenance | MaD:25 | +| mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:110:38:110:58 | unsafe_query.as_str() | provenance | MaD:29 | | mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:111:25:111:36 | unsafe_query | provenance | | -| mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:111:25:111:45 | unsafe_query.as_str() | provenance | MaD:25 | +| mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:111:25:111:45 | unsafe_query.as_str() | provenance | MaD:29 | | mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:112:47:112:58 | unsafe_query | provenance | | -| mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:112:47:112:67 | unsafe_query.as_str() | provenance | MaD:25 | +| mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:112:47:112:67 | unsafe_query.as_str() | provenance | MaD:29 | | mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:114:25:114:36 | unsafe_query | provenance | | -| mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:114:25:114:45 | unsafe_query.as_str() | provenance | MaD:25 | +| mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:114:25:114:45 | unsafe_query.as_str() | provenance | MaD:29 | +| mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:116:33:116:44 | unsafe_query | provenance | | +| mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:116:33:116:53 | unsafe_query.as_str() | provenance | MaD:29 | | mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:118:40:118:51 | unsafe_query | provenance | | -| mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:118:40:118:60 | unsafe_query.as_str() | provenance | MaD:25 | +| mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:118:40:118:60 | unsafe_query.as_str() | provenance | MaD:29 | | mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:121:24:121:35 | unsafe_query | provenance | | -| mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:121:24:121:44 | unsafe_query.as_str() | provenance | MaD:25 | +| mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:121:24:121:44 | unsafe_query.as_str() | provenance | MaD:29 | +| mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:149:31:149:42 | unsafe_query | provenance | | +| mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:149:31:149:51 | unsafe_query.as_str() | provenance | MaD:29 | | mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:154:26:154:37 | unsafe_query | provenance | | -| mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:154:26:154:46 | unsafe_query.as_str() | provenance | MaD:25 | +| mysql.rs:102:13:102:24 | unsafe_query | mysql.rs:154:26:154:46 | unsafe_query.as_str() | provenance | MaD:29 | | mysql.rs:103:13:103:83 | ... + ... | mysql.rs:102:13:102:24 | unsafe_query | provenance | | -| mysql.rs:103:13:103:83 | ... + ... | mysql.rs:103:13:103:89 | ... + ... | provenance | MaD:23 | -| mysql.rs:103:13:103:83 | ... + ... | mysql.rs:103:13:103:89 | ... + ... | provenance | MaD:24 | +| mysql.rs:103:13:103:83 | ... + ... | mysql.rs:103:13:103:89 | ... + ... | provenance | MaD:27 | +| mysql.rs:103:13:103:83 | ... + ... | mysql.rs:103:13:103:89 | ... + ... | provenance | MaD:28 | | mysql.rs:103:13:103:89 | ... + ... | mysql.rs:102:13:102:24 | unsafe_query | provenance | | -| mysql.rs:103:70:103:83 | &remote_string [&ref] | mysql.rs:103:13:103:83 | ... + ... | provenance | MaD:22 | +| mysql.rs:103:70:103:83 | &remote_string [&ref] | mysql.rs:103:13:103:83 | ... + ... | provenance | MaD:26 | | mysql.rs:103:71:103:83 | remote_string | mysql.rs:103:70:103:83 | &remote_string [&ref] | provenance | | -| mysql.rs:110:38:110:49 | unsafe_query | mysql.rs:110:38:110:58 | unsafe_query.as_str() [&ref] | provenance | MaD:25 | +| mysql.rs:110:38:110:49 | unsafe_query | mysql.rs:110:38:110:58 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | | mysql.rs:110:38:110:58 | unsafe_query.as_str() | mysql.rs:110:32:110:36 | query | provenance | MaD:10 Sink:MaD:10 | | mysql.rs:110:38:110:58 | unsafe_query.as_str() [&ref] | mysql.rs:110:32:110:36 | query | provenance | MaD:10 Sink:MaD:10 | -| mysql.rs:111:25:111:36 | unsafe_query | mysql.rs:111:25:111:45 | unsafe_query.as_str() [&ref] | provenance | MaD:25 | +| mysql.rs:111:25:111:36 | unsafe_query | mysql.rs:111:25:111:45 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | | mysql.rs:111:25:111:45 | unsafe_query.as_str() | mysql.rs:111:14:111:23 | query_drop | provenance | MaD:11 Sink:MaD:11 | | mysql.rs:111:25:111:45 | unsafe_query.as_str() [&ref] | mysql.rs:111:14:111:23 | query_drop | provenance | MaD:11 Sink:MaD:11 | -| mysql.rs:112:47:112:58 | unsafe_query | mysql.rs:112:47:112:67 | unsafe_query.as_str() [&ref] | provenance | MaD:25 | +| mysql.rs:112:47:112:58 | unsafe_query | mysql.rs:112:47:112:67 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | | mysql.rs:112:47:112:67 | unsafe_query.as_str() | mysql.rs:112:35:112:45 | query_first | provenance | MaD:12 Sink:MaD:12 | | mysql.rs:112:47:112:67 | unsafe_query.as_str() [&ref] | mysql.rs:112:35:112:45 | query_first | provenance | MaD:12 Sink:MaD:12 | -| mysql.rs:114:25:114:36 | unsafe_query | mysql.rs:114:25:114:45 | unsafe_query.as_str() [&ref] | provenance | MaD:25 | +| mysql.rs:114:25:114:36 | unsafe_query | mysql.rs:114:25:114:45 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | | mysql.rs:114:25:114:45 | unsafe_query.as_str() | mysql.rs:114:14:114:23 | query_fold | provenance | MaD:13 Sink:MaD:13 | | mysql.rs:114:25:114:45 | unsafe_query.as_str() [&ref] | mysql.rs:114:14:114:23 | query_fold | provenance | MaD:13 Sink:MaD:13 | -| mysql.rs:118:40:118:51 | unsafe_query | mysql.rs:118:40:118:60 | unsafe_query.as_str() [&ref] | provenance | MaD:25 | +| mysql.rs:116:33:116:44 | unsafe_query | mysql.rs:116:33:116:53 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | +| mysql.rs:116:33:116:53 | unsafe_query.as_str() | mysql.rs:116:22:116:31 | query_iter | provenance | MaD:19 Sink:MaD:19 | +| mysql.rs:116:33:116:53 | unsafe_query.as_str() [&ref] | mysql.rs:116:22:116:31 | query_iter | provenance | MaD:19 Sink:MaD:19 | +| mysql.rs:118:40:118:51 | unsafe_query | mysql.rs:118:40:118:60 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | | mysql.rs:118:40:118:60 | unsafe_query.as_str() | mysql.rs:118:14:118:25 | query_stream | provenance | MaD:15 Sink:MaD:15 | | mysql.rs:118:40:118:60 | unsafe_query.as_str() [&ref] | mysql.rs:118:14:118:25 | query_stream | provenance | MaD:15 Sink:MaD:15 | -| mysql.rs:121:24:121:35 | unsafe_query | mysql.rs:121:24:121:44 | unsafe_query.as_str() [&ref] | provenance | MaD:25 | +| mysql.rs:121:24:121:35 | unsafe_query | mysql.rs:121:24:121:44 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | | mysql.rs:121:24:121:44 | unsafe_query.as_str() | mysql.rs:121:14:121:22 | query_map | provenance | MaD:14 Sink:MaD:14 | | mysql.rs:121:24:121:44 | unsafe_query.as_str() [&ref] | mysql.rs:121:14:121:22 | query_map | provenance | MaD:14 Sink:MaD:14 | -| mysql.rs:154:26:154:37 | unsafe_query | mysql.rs:154:26:154:46 | unsafe_query.as_str() [&ref] | provenance | MaD:25 | +| mysql.rs:149:31:149:42 | unsafe_query | mysql.rs:149:31:149:51 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | +| mysql.rs:149:31:149:51 | unsafe_query.as_str() | mysql.rs:149:26:149:29 | prep | provenance | MaD:18 Sink:MaD:18 | +| mysql.rs:149:31:149:51 | unsafe_query.as_str() [&ref] | mysql.rs:149:26:149:29 | prep | provenance | MaD:18 Sink:MaD:18 | +| mysql.rs:154:26:154:37 | unsafe_query | mysql.rs:154:26:154:46 | unsafe_query.as_str() [&ref] | provenance | MaD:29 | | mysql.rs:154:26:154:46 | unsafe_query.as_str() | mysql.rs:154:15:154:24 | query_drop | provenance | MaD:11 Sink:MaD:11 | | mysql.rs:154:26:154:46 | unsafe_query.as_str() [&ref] | mysql.rs:154:15:154:24 | query_drop | provenance | MaD:11 Sink:MaD:11 | | sqlx.rs:47:9:47:18 | arg_string | sqlx.rs:53:27:53:36 | arg_string | provenance | | -| sqlx.rs:47:22:47:35 | ...::args | sqlx.rs:47:22:47:37 | ...::args(...) [element] | provenance | Src:MaD:20 | -| sqlx.rs:47:22:47:37 | ...::args(...) [element] | sqlx.rs:47:22:47:44 | ... .nth(...) [Some] | provenance | MaD:21 | -| sqlx.rs:47:22:47:44 | ... .nth(...) [Some] | sqlx.rs:47:22:47:77 | ... .unwrap_or(...) | provenance | MaD:26 | +| sqlx.rs:47:22:47:35 | ...::args | sqlx.rs:47:22:47:37 | ...::args(...) [element] | provenance | Src:MaD:24 | +| sqlx.rs:47:22:47:37 | ...::args(...) [element] | sqlx.rs:47:22:47:44 | ... .nth(...) [Some] | provenance | MaD:25 | +| sqlx.rs:47:22:47:44 | ... .nth(...) [Some] | sqlx.rs:47:22:47:77 | ... .unwrap_or(...) | provenance | MaD:30 | | sqlx.rs:47:22:47:77 | ... .unwrap_or(...) | sqlx.rs:47:9:47:18 | arg_string | provenance | | -| sqlx.rs:48:9:48:21 | remote_string | sqlx.rs:49:25:49:52 | remote_string.parse() [Ok] | provenance | MaD:30 | -| sqlx.rs:48:9:48:21 | remote_string | sqlx.rs:49:25:49:52 | remote_string.parse() [Ok] | provenance | MaD:30 | +| sqlx.rs:48:9:48:21 | remote_string | sqlx.rs:49:25:49:52 | remote_string.parse() [Ok] | provenance | MaD:34 | +| sqlx.rs:48:9:48:21 | remote_string | sqlx.rs:49:25:49:52 | remote_string.parse() [Ok] | provenance | MaD:34 | | sqlx.rs:48:9:48:21 | remote_string | sqlx.rs:54:27:54:39 | remote_string | provenance | | | sqlx.rs:48:9:48:21 | remote_string | sqlx.rs:55:84:55:96 | remote_string | provenance | | | sqlx.rs:48:9:48:21 | remote_string | sqlx.rs:59:17:59:72 | MacroExpr | provenance | | -| sqlx.rs:48:25:48:46 | ...::get | sqlx.rs:48:25:48:69 | ...::get(...) [Ok] | provenance | Src:MaD:19 | -| sqlx.rs:48:25:48:69 | ...::get(...) [Ok] | sqlx.rs:48:25:48:78 | ... .unwrap() | provenance | MaD:27 | -| sqlx.rs:48:25:48:78 | ... .unwrap() | sqlx.rs:48:25:48:85 | ... .text() [Ok] | provenance | MaD:31 | -| sqlx.rs:48:25:48:85 | ... .text() [Ok] | sqlx.rs:48:25:48:118 | ... .unwrap_or(...) | provenance | MaD:28 | +| sqlx.rs:48:25:48:46 | ...::get | sqlx.rs:48:25:48:69 | ...::get(...) [Ok] | provenance | Src:MaD:23 | +| sqlx.rs:48:25:48:69 | ...::get(...) [Ok] | sqlx.rs:48:25:48:78 | ... .unwrap() | provenance | MaD:31 | +| sqlx.rs:48:25:48:78 | ... .unwrap() | sqlx.rs:48:25:48:85 | ... .text() [Ok] | provenance | MaD:35 | +| sqlx.rs:48:25:48:85 | ... .text() [Ok] | sqlx.rs:48:25:48:118 | ... .unwrap_or(...) | provenance | MaD:32 | | sqlx.rs:48:25:48:118 | ... .unwrap_or(...) | sqlx.rs:48:9:48:21 | remote_string | provenance | | | sqlx.rs:49:9:49:21 | remote_number | sqlx.rs:52:32:52:87 | MacroExpr | provenance | | -| sqlx.rs:49:25:49:52 | remote_string.parse() [Ok] | sqlx.rs:49:25:49:65 | ... .unwrap_or(...) | provenance | MaD:28 | +| sqlx.rs:49:25:49:52 | remote_string.parse() [Ok] | sqlx.rs:49:25:49:65 | ... .unwrap_or(...) | provenance | MaD:32 | | sqlx.rs:49:25:49:65 | ... .unwrap_or(...) | sqlx.rs:49:9:49:21 | remote_number | provenance | | | sqlx.rs:52:9:52:20 | safe_query_3 | sqlx.rs:77:25:77:36 | safe_query_3 | provenance | | -| sqlx.rs:52:9:52:20 | safe_query_3 | sqlx.rs:77:25:77:45 | safe_query_3.as_str() | provenance | MaD:25 | +| sqlx.rs:52:9:52:20 | safe_query_3 | sqlx.rs:77:25:77:45 | safe_query_3.as_str() | provenance | MaD:29 | | sqlx.rs:52:32:52:87 | ...::format(...) | sqlx.rs:52:32:52:87 | { ... } | provenance | | | sqlx.rs:52:32:52:87 | ...::must_use(...) | sqlx.rs:52:9:52:20 | safe_query_3 | provenance | | -| sqlx.rs:52:32:52:87 | MacroExpr | sqlx.rs:52:32:52:87 | ...::format(...) | provenance | MaD:32 | -| sqlx.rs:52:32:52:87 | { ... } | sqlx.rs:52:32:52:87 | ...::must_use(...) | provenance | MaD:33 | -| sqlx.rs:53:9:53:22 | unsafe_query_1 [&ref] | sqlx.rs:78:25:78:47 | unsafe_query_1.as_str() [&ref] | provenance | MaD:25 | +| sqlx.rs:52:32:52:87 | MacroExpr | sqlx.rs:52:32:52:87 | ...::format(...) | provenance | MaD:36 | +| sqlx.rs:52:32:52:87 | { ... } | sqlx.rs:52:32:52:87 | ...::must_use(...) | provenance | MaD:37 | +| sqlx.rs:53:9:53:22 | unsafe_query_1 [&ref] | sqlx.rs:78:25:78:47 | unsafe_query_1.as_str() [&ref] | provenance | MaD:29 | | sqlx.rs:53:26:53:36 | &arg_string [&ref] | sqlx.rs:53:9:53:22 | unsafe_query_1 [&ref] | provenance | | | sqlx.rs:53:27:53:36 | arg_string | sqlx.rs:53:26:53:36 | &arg_string [&ref] | provenance | | +| sqlx.rs:54:9:54:22 | unsafe_query_2 [&ref] | sqlx.rs:80:29:80:51 | unsafe_query_2.as_str() [&ref] | provenance | MaD:33 | | sqlx.rs:54:9:54:22 | unsafe_query_2 [&ref] | sqlx.rs:80:29:80:51 | unsafe_query_2.as_str() [&ref] | provenance | MaD:29 | -| sqlx.rs:54:9:54:22 | unsafe_query_2 [&ref] | sqlx.rs:80:29:80:51 | unsafe_query_2.as_str() [&ref] | provenance | MaD:25 | -| sqlx.rs:54:9:54:22 | unsafe_query_2 [&ref] | sqlx.rs:80:29:80:51 | unsafe_query_2.as_str() [&ref] | provenance | MaD:29 | +| sqlx.rs:54:9:54:22 | unsafe_query_2 [&ref] | sqlx.rs:80:29:80:51 | unsafe_query_2.as_str() [&ref] | provenance | MaD:33 | | sqlx.rs:54:26:54:39 | &remote_string [&ref] | sqlx.rs:54:9:54:22 | unsafe_query_2 [&ref] | provenance | | | sqlx.rs:54:27:54:39 | remote_string | sqlx.rs:54:26:54:39 | &remote_string [&ref] | provenance | | | sqlx.rs:55:9:55:22 | unsafe_query_3 | sqlx.rs:81:29:81:42 | unsafe_query_3 | provenance | | -| sqlx.rs:55:9:55:22 | unsafe_query_3 | sqlx.rs:81:29:81:51 | unsafe_query_3.as_str() | provenance | MaD:25 | +| sqlx.rs:55:9:55:22 | unsafe_query_3 | sqlx.rs:81:29:81:51 | unsafe_query_3.as_str() | provenance | MaD:29 | | sqlx.rs:55:26:55:96 | ... + ... | sqlx.rs:55:9:55:22 | unsafe_query_3 | provenance | | -| sqlx.rs:55:26:55:96 | ... + ... | sqlx.rs:55:26:55:102 | ... + ... | provenance | MaD:23 | -| sqlx.rs:55:26:55:96 | ... + ... | sqlx.rs:55:26:55:102 | ... + ... | provenance | MaD:24 | +| sqlx.rs:55:26:55:96 | ... + ... | sqlx.rs:55:26:55:102 | ... + ... | provenance | MaD:27 | +| sqlx.rs:55:26:55:96 | ... + ... | sqlx.rs:55:26:55:102 | ... + ... | provenance | MaD:28 | | sqlx.rs:55:26:55:102 | ... + ... | sqlx.rs:55:9:55:22 | unsafe_query_3 | provenance | | -| sqlx.rs:55:83:55:96 | &remote_string [&ref] | sqlx.rs:55:26:55:96 | ... + ... | provenance | MaD:22 | +| sqlx.rs:55:83:55:96 | &remote_string [&ref] | sqlx.rs:55:26:55:96 | ... + ... | provenance | MaD:26 | | sqlx.rs:55:84:55:96 | remote_string | sqlx.rs:55:83:55:96 | &remote_string [&ref] | provenance | | | sqlx.rs:56:9:56:22 | unsafe_query_4 | sqlx.rs:82:29:82:42 | unsafe_query_4 | provenance | | -| sqlx.rs:56:9:56:22 | unsafe_query_4 | sqlx.rs:82:29:82:51 | unsafe_query_4.as_str() | provenance | MaD:25 | +| sqlx.rs:56:9:56:22 | unsafe_query_4 | sqlx.rs:82:29:82:51 | unsafe_query_4.as_str() | provenance | MaD:29 | | sqlx.rs:59:17:59:72 | ...::format(...) | sqlx.rs:59:17:59:72 | { ... } | provenance | | | sqlx.rs:59:17:59:72 | ...::must_use(...) | sqlx.rs:56:9:56:22 | unsafe_query_4 | provenance | | -| sqlx.rs:59:17:59:72 | MacroExpr | sqlx.rs:59:17:59:72 | ...::format(...) | provenance | MaD:32 | -| sqlx.rs:59:17:59:72 | { ... } | sqlx.rs:59:17:59:72 | ...::must_use(...) | provenance | MaD:33 | -| sqlx.rs:77:25:77:36 | safe_query_3 | sqlx.rs:77:25:77:45 | safe_query_3.as_str() [&ref] | provenance | MaD:25 | -| sqlx.rs:77:25:77:45 | safe_query_3.as_str() | sqlx.rs:77:13:77:23 | ...::query | provenance | MaD:16 Sink:MaD:16 | -| sqlx.rs:77:25:77:45 | safe_query_3.as_str() [&ref] | sqlx.rs:77:13:77:23 | ...::query | provenance | MaD:16 Sink:MaD:16 | -| sqlx.rs:78:25:78:47 | unsafe_query_1.as_str() [&ref] | sqlx.rs:78:13:78:23 | ...::query | provenance | MaD:16 Sink:MaD:16 | -| sqlx.rs:80:29:80:51 | unsafe_query_2.as_str() [&ref] | sqlx.rs:80:17:80:27 | ...::query | provenance | MaD:16 Sink:MaD:16 | -| sqlx.rs:81:29:81:42 | unsafe_query_3 | sqlx.rs:81:29:81:51 | unsafe_query_3.as_str() [&ref] | provenance | MaD:25 | -| sqlx.rs:81:29:81:51 | unsafe_query_3.as_str() | sqlx.rs:81:17:81:27 | ...::query | provenance | MaD:16 Sink:MaD:16 | -| sqlx.rs:81:29:81:51 | unsafe_query_3.as_str() [&ref] | sqlx.rs:81:17:81:27 | ...::query | provenance | MaD:16 Sink:MaD:16 | -| sqlx.rs:82:29:82:42 | unsafe_query_4 | sqlx.rs:82:29:82:51 | unsafe_query_4.as_str() [&ref] | provenance | MaD:25 | -| sqlx.rs:82:29:82:51 | unsafe_query_4.as_str() | sqlx.rs:82:17:82:27 | ...::query | provenance | MaD:16 Sink:MaD:16 | -| sqlx.rs:82:29:82:51 | unsafe_query_4.as_str() [&ref] | sqlx.rs:82:17:82:27 | ...::query | provenance | MaD:16 Sink:MaD:16 | +| sqlx.rs:59:17:59:72 | MacroExpr | sqlx.rs:59:17:59:72 | ...::format(...) | provenance | MaD:36 | +| sqlx.rs:59:17:59:72 | { ... } | sqlx.rs:59:17:59:72 | ...::must_use(...) | provenance | MaD:37 | +| sqlx.rs:77:25:77:36 | safe_query_3 | sqlx.rs:77:25:77:45 | safe_query_3.as_str() [&ref] | provenance | MaD:29 | +| sqlx.rs:77:25:77:45 | safe_query_3.as_str() | sqlx.rs:77:13:77:23 | ...::query | provenance | MaD:20 Sink:MaD:20 | +| sqlx.rs:77:25:77:45 | safe_query_3.as_str() [&ref] | sqlx.rs:77:13:77:23 | ...::query | provenance | MaD:20 Sink:MaD:20 | +| sqlx.rs:78:25:78:47 | unsafe_query_1.as_str() [&ref] | sqlx.rs:78:13:78:23 | ...::query | provenance | MaD:20 Sink:MaD:20 | +| sqlx.rs:80:29:80:51 | unsafe_query_2.as_str() [&ref] | sqlx.rs:80:17:80:27 | ...::query | provenance | MaD:20 Sink:MaD:20 | +| sqlx.rs:81:29:81:42 | unsafe_query_3 | sqlx.rs:81:29:81:51 | unsafe_query_3.as_str() [&ref] | provenance | MaD:29 | +| sqlx.rs:81:29:81:51 | unsafe_query_3.as_str() | sqlx.rs:81:17:81:27 | ...::query | provenance | MaD:20 Sink:MaD:20 | +| sqlx.rs:81:29:81:51 | unsafe_query_3.as_str() [&ref] | sqlx.rs:81:17:81:27 | ...::query | provenance | MaD:20 Sink:MaD:20 | +| sqlx.rs:82:29:82:42 | unsafe_query_4 | sqlx.rs:82:29:82:51 | unsafe_query_4.as_str() [&ref] | provenance | MaD:29 | +| sqlx.rs:82:29:82:51 | unsafe_query_4.as_str() | sqlx.rs:82:17:82:27 | ...::query | provenance | MaD:20 Sink:MaD:20 | +| sqlx.rs:82:29:82:51 | unsafe_query_4.as_str() [&ref] | sqlx.rs:82:17:82:27 | ...::query | provenance | MaD:20 Sink:MaD:20 | | sqlx.rs:100:9:100:21 | remote_string | sqlx.rs:102:84:102:96 | remote_string | provenance | | -| sqlx.rs:100:25:100:46 | ...::get | sqlx.rs:100:25:100:69 | ...::get(...) [Ok] | provenance | Src:MaD:19 | -| sqlx.rs:100:25:100:69 | ...::get(...) [Ok] | sqlx.rs:100:25:100:78 | ... .unwrap() | provenance | MaD:27 | -| sqlx.rs:100:25:100:78 | ... .unwrap() | sqlx.rs:100:25:100:85 | ... .text() [Ok] | provenance | MaD:31 | -| sqlx.rs:100:25:100:85 | ... .text() [Ok] | sqlx.rs:100:25:100:118 | ... .unwrap_or(...) | provenance | MaD:28 | +| sqlx.rs:100:25:100:46 | ...::get | sqlx.rs:100:25:100:69 | ...::get(...) [Ok] | provenance | Src:MaD:23 | +| sqlx.rs:100:25:100:69 | ...::get(...) [Ok] | sqlx.rs:100:25:100:78 | ... .unwrap() | provenance | MaD:31 | +| sqlx.rs:100:25:100:78 | ... .unwrap() | sqlx.rs:100:25:100:85 | ... .text() [Ok] | provenance | MaD:35 | +| sqlx.rs:100:25:100:85 | ... .text() [Ok] | sqlx.rs:100:25:100:118 | ... .unwrap_or(...) | provenance | MaD:32 | | sqlx.rs:100:25:100:118 | ... .unwrap_or(...) | sqlx.rs:100:9:100:21 | remote_string | provenance | | | sqlx.rs:102:9:102:22 | unsafe_query_1 | sqlx.rs:113:31:113:44 | unsafe_query_1 | provenance | | -| sqlx.rs:102:9:102:22 | unsafe_query_1 | sqlx.rs:113:31:113:53 | unsafe_query_1.as_str() | provenance | MaD:25 | +| sqlx.rs:102:9:102:22 | unsafe_query_1 | sqlx.rs:113:31:113:53 | unsafe_query_1.as_str() | provenance | MaD:29 | | sqlx.rs:102:9:102:22 | unsafe_query_1 | sqlx.rs:120:29:120:42 | unsafe_query_1 | provenance | | -| sqlx.rs:102:9:102:22 | unsafe_query_1 | sqlx.rs:120:29:120:51 | unsafe_query_1.as_str() | provenance | MaD:25 | +| sqlx.rs:102:9:102:22 | unsafe_query_1 | sqlx.rs:120:29:120:51 | unsafe_query_1.as_str() | provenance | MaD:29 | | sqlx.rs:102:9:102:22 | unsafe_query_1 | sqlx.rs:127:29:127:42 | unsafe_query_1 | provenance | | -| sqlx.rs:102:9:102:22 | unsafe_query_1 | sqlx.rs:127:29:127:51 | unsafe_query_1.as_str() | provenance | MaD:25 | +| sqlx.rs:102:9:102:22 | unsafe_query_1 | sqlx.rs:127:29:127:51 | unsafe_query_1.as_str() | provenance | MaD:29 | | sqlx.rs:102:9:102:22 | unsafe_query_1 | sqlx.rs:136:55:136:68 | unsafe_query_1 | provenance | | -| sqlx.rs:102:9:102:22 | unsafe_query_1 | sqlx.rs:136:55:136:77 | unsafe_query_1.as_str() | provenance | MaD:25 | +| sqlx.rs:102:9:102:22 | unsafe_query_1 | sqlx.rs:136:55:136:77 | unsafe_query_1.as_str() | provenance | MaD:29 | | sqlx.rs:102:9:102:22 | unsafe_query_1 | sqlx.rs:145:55:145:68 | unsafe_query_1 | provenance | | -| sqlx.rs:102:9:102:22 | unsafe_query_1 | sqlx.rs:145:55:145:77 | unsafe_query_1.as_str() | provenance | MaD:25 | +| sqlx.rs:102:9:102:22 | unsafe_query_1 | sqlx.rs:145:55:145:77 | unsafe_query_1.as_str() | provenance | MaD:29 | | sqlx.rs:102:9:102:22 | unsafe_query_1 | sqlx.rs:153:29:153:42 | unsafe_query_1 | provenance | | -| sqlx.rs:102:9:102:22 | unsafe_query_1 | sqlx.rs:153:29:153:51 | unsafe_query_1.as_str() | provenance | MaD:25 | +| sqlx.rs:102:9:102:22 | unsafe_query_1 | sqlx.rs:153:29:153:51 | unsafe_query_1.as_str() | provenance | MaD:29 | | sqlx.rs:102:26:102:96 | ... + ... | sqlx.rs:102:9:102:22 | unsafe_query_1 | provenance | | -| sqlx.rs:102:26:102:96 | ... + ... | sqlx.rs:102:26:102:102 | ... + ... | provenance | MaD:23 | -| sqlx.rs:102:26:102:96 | ... + ... | sqlx.rs:102:26:102:102 | ... + ... | provenance | MaD:24 | +| sqlx.rs:102:26:102:96 | ... + ... | sqlx.rs:102:26:102:102 | ... + ... | provenance | MaD:27 | +| sqlx.rs:102:26:102:96 | ... + ... | sqlx.rs:102:26:102:102 | ... + ... | provenance | MaD:28 | | sqlx.rs:102:26:102:102 | ... + ... | sqlx.rs:102:9:102:22 | unsafe_query_1 | provenance | | -| sqlx.rs:102:83:102:96 | &remote_string [&ref] | sqlx.rs:102:26:102:96 | ... + ... | provenance | MaD:22 | +| sqlx.rs:102:83:102:96 | &remote_string [&ref] | sqlx.rs:102:26:102:96 | ... + ... | provenance | MaD:26 | | sqlx.rs:102:84:102:96 | remote_string | sqlx.rs:102:83:102:96 | &remote_string [&ref] | provenance | | -| sqlx.rs:113:31:113:44 | unsafe_query_1 | sqlx.rs:113:31:113:53 | unsafe_query_1.as_str() [&ref] | provenance | MaD:25 | -| sqlx.rs:113:31:113:53 | unsafe_query_1.as_str() | sqlx.rs:113:17:113:29 | ...::raw_sql | provenance | MaD:18 Sink:MaD:18 | -| sqlx.rs:113:31:113:53 | unsafe_query_1.as_str() [&ref] | sqlx.rs:113:17:113:29 | ...::raw_sql | provenance | MaD:18 Sink:MaD:18 | -| sqlx.rs:120:29:120:42 | unsafe_query_1 | sqlx.rs:120:29:120:51 | unsafe_query_1.as_str() [&ref] | provenance | MaD:25 | -| sqlx.rs:120:29:120:51 | unsafe_query_1.as_str() | sqlx.rs:120:17:120:27 | ...::query | provenance | MaD:16 Sink:MaD:16 | -| sqlx.rs:120:29:120:51 | unsafe_query_1.as_str() [&ref] | sqlx.rs:120:17:120:27 | ...::query | provenance | MaD:16 Sink:MaD:16 | -| sqlx.rs:127:29:127:42 | unsafe_query_1 | sqlx.rs:127:29:127:51 | unsafe_query_1.as_str() [&ref] | provenance | MaD:25 | -| sqlx.rs:127:29:127:51 | unsafe_query_1.as_str() | sqlx.rs:127:17:127:27 | ...::query | provenance | MaD:16 Sink:MaD:16 | -| sqlx.rs:127:29:127:51 | unsafe_query_1.as_str() [&ref] | sqlx.rs:127:17:127:27 | ...::query | provenance | MaD:16 Sink:MaD:16 | -| sqlx.rs:136:55:136:68 | unsafe_query_1 | sqlx.rs:136:55:136:77 | unsafe_query_1.as_str() [&ref] | provenance | MaD:25 | -| sqlx.rs:136:55:136:77 | unsafe_query_1.as_str() | sqlx.rs:136:40:136:53 | ...::query_as | provenance | MaD:17 Sink:MaD:17 | -| sqlx.rs:136:55:136:77 | unsafe_query_1.as_str() [&ref] | sqlx.rs:136:40:136:53 | ...::query_as | provenance | MaD:17 Sink:MaD:17 | -| sqlx.rs:145:55:145:68 | unsafe_query_1 | sqlx.rs:145:55:145:77 | unsafe_query_1.as_str() [&ref] | provenance | MaD:25 | -| sqlx.rs:145:55:145:77 | unsafe_query_1.as_str() | sqlx.rs:145:40:145:53 | ...::query_as | provenance | MaD:17 Sink:MaD:17 | -| sqlx.rs:145:55:145:77 | unsafe_query_1.as_str() [&ref] | sqlx.rs:145:40:145:53 | ...::query_as | provenance | MaD:17 Sink:MaD:17 | -| sqlx.rs:153:29:153:42 | unsafe_query_1 | sqlx.rs:153:29:153:51 | unsafe_query_1.as_str() [&ref] | provenance | MaD:25 | -| sqlx.rs:153:29:153:51 | unsafe_query_1.as_str() | sqlx.rs:153:17:153:27 | ...::query | provenance | MaD:16 Sink:MaD:16 | -| sqlx.rs:153:29:153:51 | unsafe_query_1.as_str() [&ref] | sqlx.rs:153:17:153:27 | ...::query | provenance | MaD:16 Sink:MaD:16 | +| sqlx.rs:113:31:113:44 | unsafe_query_1 | sqlx.rs:113:31:113:53 | unsafe_query_1.as_str() [&ref] | provenance | MaD:29 | +| sqlx.rs:113:31:113:53 | unsafe_query_1.as_str() | sqlx.rs:113:17:113:29 | ...::raw_sql | provenance | MaD:22 Sink:MaD:22 | +| sqlx.rs:113:31:113:53 | unsafe_query_1.as_str() [&ref] | sqlx.rs:113:17:113:29 | ...::raw_sql | provenance | MaD:22 Sink:MaD:22 | +| sqlx.rs:120:29:120:42 | unsafe_query_1 | sqlx.rs:120:29:120:51 | unsafe_query_1.as_str() [&ref] | provenance | MaD:29 | +| sqlx.rs:120:29:120:51 | unsafe_query_1.as_str() | sqlx.rs:120:17:120:27 | ...::query | provenance | MaD:20 Sink:MaD:20 | +| sqlx.rs:120:29:120:51 | unsafe_query_1.as_str() [&ref] | sqlx.rs:120:17:120:27 | ...::query | provenance | MaD:20 Sink:MaD:20 | +| sqlx.rs:127:29:127:42 | unsafe_query_1 | sqlx.rs:127:29:127:51 | unsafe_query_1.as_str() [&ref] | provenance | MaD:29 | +| sqlx.rs:127:29:127:51 | unsafe_query_1.as_str() | sqlx.rs:127:17:127:27 | ...::query | provenance | MaD:20 Sink:MaD:20 | +| sqlx.rs:127:29:127:51 | unsafe_query_1.as_str() [&ref] | sqlx.rs:127:17:127:27 | ...::query | provenance | MaD:20 Sink:MaD:20 | +| sqlx.rs:136:55:136:68 | unsafe_query_1 | sqlx.rs:136:55:136:77 | unsafe_query_1.as_str() [&ref] | provenance | MaD:29 | +| sqlx.rs:136:55:136:77 | unsafe_query_1.as_str() | sqlx.rs:136:40:136:53 | ...::query_as | provenance | MaD:21 Sink:MaD:21 | +| sqlx.rs:136:55:136:77 | unsafe_query_1.as_str() [&ref] | sqlx.rs:136:40:136:53 | ...::query_as | provenance | MaD:21 Sink:MaD:21 | +| sqlx.rs:145:55:145:68 | unsafe_query_1 | sqlx.rs:145:55:145:77 | unsafe_query_1.as_str() [&ref] | provenance | MaD:29 | +| sqlx.rs:145:55:145:77 | unsafe_query_1.as_str() | sqlx.rs:145:40:145:53 | ...::query_as | provenance | MaD:21 Sink:MaD:21 | +| sqlx.rs:145:55:145:77 | unsafe_query_1.as_str() [&ref] | sqlx.rs:145:40:145:53 | ...::query_as | provenance | MaD:21 Sink:MaD:21 | +| sqlx.rs:153:29:153:42 | unsafe_query_1 | sqlx.rs:153:29:153:51 | unsafe_query_1.as_str() [&ref] | provenance | MaD:29 | +| sqlx.rs:153:29:153:51 | unsafe_query_1.as_str() | sqlx.rs:153:17:153:27 | ...::query | provenance | MaD:20 Sink:MaD:20 | +| sqlx.rs:153:29:153:51 | unsafe_query_1.as_str() [&ref] | sqlx.rs:153:17:153:27 | ...::query | provenance | MaD:20 Sink:MaD:20 | | sqlx.rs:173:9:173:21 | remote_string | sqlx.rs:175:84:175:96 | remote_string | provenance | | -| sqlx.rs:173:25:173:46 | ...::get | sqlx.rs:173:25:173:69 | ...::get(...) [Ok] | provenance | Src:MaD:19 | -| sqlx.rs:173:25:173:69 | ...::get(...) [Ok] | sqlx.rs:173:25:173:78 | ... .unwrap() | provenance | MaD:27 | -| sqlx.rs:173:25:173:78 | ... .unwrap() | sqlx.rs:173:25:173:85 | ... .text() [Ok] | provenance | MaD:31 | -| sqlx.rs:173:25:173:85 | ... .text() [Ok] | sqlx.rs:173:25:173:118 | ... .unwrap_or(...) | provenance | MaD:28 | +| sqlx.rs:173:25:173:46 | ...::get | sqlx.rs:173:25:173:69 | ...::get(...) [Ok] | provenance | Src:MaD:23 | +| sqlx.rs:173:25:173:69 | ...::get(...) [Ok] | sqlx.rs:173:25:173:78 | ... .unwrap() | provenance | MaD:31 | +| sqlx.rs:173:25:173:78 | ... .unwrap() | sqlx.rs:173:25:173:85 | ... .text() [Ok] | provenance | MaD:35 | +| sqlx.rs:173:25:173:85 | ... .text() [Ok] | sqlx.rs:173:25:173:118 | ... .unwrap_or(...) | provenance | MaD:32 | | sqlx.rs:173:25:173:118 | ... .unwrap_or(...) | sqlx.rs:173:9:173:21 | remote_string | provenance | | | sqlx.rs:175:9:175:22 | unsafe_query_1 | sqlx.rs:188:29:188:42 | unsafe_query_1 | provenance | | -| sqlx.rs:175:9:175:22 | unsafe_query_1 | sqlx.rs:188:29:188:51 | unsafe_query_1.as_str() | provenance | MaD:25 | +| sqlx.rs:175:9:175:22 | unsafe_query_1 | sqlx.rs:188:29:188:51 | unsafe_query_1.as_str() | provenance | MaD:29 | | sqlx.rs:175:26:175:96 | ... + ... | sqlx.rs:175:9:175:22 | unsafe_query_1 | provenance | | -| sqlx.rs:175:26:175:96 | ... + ... | sqlx.rs:175:26:175:102 | ... + ... | provenance | MaD:23 | -| sqlx.rs:175:26:175:96 | ... + ... | sqlx.rs:175:26:175:102 | ... + ... | provenance | MaD:24 | +| sqlx.rs:175:26:175:96 | ... + ... | sqlx.rs:175:26:175:102 | ... + ... | provenance | MaD:27 | +| sqlx.rs:175:26:175:96 | ... + ... | sqlx.rs:175:26:175:102 | ... + ... | provenance | MaD:28 | | sqlx.rs:175:26:175:102 | ... + ... | sqlx.rs:175:9:175:22 | unsafe_query_1 | provenance | | -| sqlx.rs:175:83:175:96 | &remote_string [&ref] | sqlx.rs:175:26:175:96 | ... + ... | provenance | MaD:22 | +| sqlx.rs:175:83:175:96 | &remote_string [&ref] | sqlx.rs:175:26:175:96 | ... + ... | provenance | MaD:26 | | sqlx.rs:175:84:175:96 | remote_string | sqlx.rs:175:83:175:96 | &remote_string [&ref] | provenance | | -| sqlx.rs:188:29:188:42 | unsafe_query_1 | sqlx.rs:188:29:188:51 | unsafe_query_1.as_str() [&ref] | provenance | MaD:25 | -| sqlx.rs:188:29:188:51 | unsafe_query_1.as_str() | sqlx.rs:188:17:188:27 | ...::query | provenance | MaD:16 Sink:MaD:16 | -| sqlx.rs:188:29:188:51 | unsafe_query_1.as_str() [&ref] | sqlx.rs:188:17:188:27 | ...::query | provenance | MaD:16 Sink:MaD:16 | +| sqlx.rs:188:29:188:42 | unsafe_query_1 | sqlx.rs:188:29:188:51 | unsafe_query_1.as_str() [&ref] | provenance | MaD:29 | +| sqlx.rs:188:29:188:51 | unsafe_query_1.as_str() | sqlx.rs:188:17:188:27 | ...::query | provenance | MaD:20 Sink:MaD:20 | +| sqlx.rs:188:29:188:51 | unsafe_query_1.as_str() [&ref] | sqlx.rs:188:17:188:27 | ...::query | provenance | MaD:20 Sink:MaD:20 | models | 1 | Sink: <_ as mysql::conn::queryable::Queryable>::query; Argument[0]; sql-injection | | 2 | Sink: <_ as mysql::conn::queryable::Queryable>::query_drop; Argument[0]; sql-injection | @@ -276,24 +300,28 @@ models | 13 | Sink: <_ as mysql_async::queryable::Queryable>::query_fold; Argument[0]; sql-injection | | 14 | Sink: <_ as mysql_async::queryable::Queryable>::query_map; Argument[0]; sql-injection | | 15 | Sink: <_ as mysql_async::queryable::Queryable>::query_stream; Argument[0]; sql-injection | -| 16 | Sink: sqlx_core::query::query; Argument[0]; sql-injection | -| 17 | Sink: sqlx_core::query_as::query_as; Argument[0]; sql-injection | -| 18 | Sink: sqlx_core::raw_sql::raw_sql; Argument[0]; sql-injection | -| 19 | Source: reqwest::blocking::get; ReturnValue.Field[core::result::Result::Ok(0)]; remote | -| 20 | Source: std::env::args; ReturnValue.Element; commandargs | -| 21 | Summary: <_ as core::iter::traits::iterator::Iterator>::nth; Argument[self].Element; ReturnValue.Field[core::option::Option::Some(0)]; value | -| 22 | Summary: <_ as core::ops::arith::Add>::add; Argument[0].Reference; ReturnValue; taint | -| 23 | Summary: <_ as core::ops::arith::Add>::add; Argument[self]; ReturnValue; taint | -| 24 | Summary: ::add; Argument[self]; ReturnValue; value | -| 25 | Summary: ::as_str; Argument[self]; ReturnValue; value | -| 26 | Summary: ::unwrap_or; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | -| 27 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | -| 28 | Summary: ::unwrap_or; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | -| 29 | Summary: ::as_str; Argument[self]; ReturnValue; value | -| 30 | Summary: ::parse; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | -| 31 | Summary: ::text; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | -| 32 | Summary: alloc::fmt::format; Argument[0]; ReturnValue; taint | -| 33 | Summary: core::hint::must_use; Argument[0]; ReturnValue; value | +| 16 | Sink: ::prep; Argument[0]; sql-injection | +| 17 | Sink: ::query_iter; Argument[0]; sql-injection | +| 18 | Sink: ::prep; Argument[0]; sql-injection | +| 19 | Sink: ::query_iter; Argument[0]; sql-injection | +| 20 | Sink: sqlx_core::query::query; Argument[0]; sql-injection | +| 21 | Sink: sqlx_core::query_as::query_as; Argument[0]; sql-injection | +| 22 | Sink: sqlx_core::raw_sql::raw_sql; Argument[0]; sql-injection | +| 23 | Source: reqwest::blocking::get; ReturnValue.Field[core::result::Result::Ok(0)]; remote | +| 24 | Source: std::env::args; ReturnValue.Element; commandargs | +| 25 | Summary: <_ as core::iter::traits::iterator::Iterator>::nth; Argument[self].Element; ReturnValue.Field[core::option::Option::Some(0)]; value | +| 26 | Summary: <_ as core::ops::arith::Add>::add; Argument[0].Reference; ReturnValue; taint | +| 27 | Summary: <_ as core::ops::arith::Add>::add; Argument[self]; ReturnValue; taint | +| 28 | Summary: ::add; Argument[self]; ReturnValue; value | +| 29 | Summary: ::as_str; Argument[self]; ReturnValue; value | +| 30 | Summary: ::unwrap_or; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | +| 31 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | +| 32 | Summary: ::unwrap_or; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | +| 33 | Summary: ::as_str; Argument[self]; ReturnValue; value | +| 34 | Summary: ::parse; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | +| 35 | Summary: ::text; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | +| 36 | Summary: alloc::fmt::format; Argument[0]; ReturnValue; taint | +| 37 | Summary: core::hint::must_use; Argument[0]; ReturnValue; value | nodes | mysql.rs:12:13:12:29 | mut remote_string | semmle.label | mut remote_string | | mysql.rs:12:33:12:54 | ...::get | semmle.label | ...::get | @@ -334,6 +362,10 @@ nodes | mysql.rs:32:13:32:24 | unsafe_query | semmle.label | unsafe_query | | mysql.rs:32:13:32:33 | unsafe_query.as_str() | semmle.label | unsafe_query.as_str() | | mysql.rs:32:13:32:33 | unsafe_query.as_str() [&ref] | semmle.label | unsafe_query.as_str() [&ref] | +| mysql.rs:36:22:36:31 | query_iter | semmle.label | query_iter | +| mysql.rs:36:33:36:44 | unsafe_query | semmle.label | unsafe_query | +| mysql.rs:36:33:36:53 | unsafe_query.as_str() | semmle.label | unsafe_query.as_str() | +| mysql.rs:36:33:36:53 | unsafe_query.as_str() [&ref] | semmle.label | unsafe_query.as_str() [&ref] | | mysql.rs:37:22:37:30 | query_map | semmle.label | query_map | | mysql.rs:37:32:37:43 | unsafe_query | semmle.label | unsafe_query | | mysql.rs:37:32:37:52 | unsafe_query.as_str() | semmle.label | unsafe_query.as_str() | @@ -346,6 +378,10 @@ nodes | mysql.rs:42:39:42:50 | unsafe_query | semmle.label | unsafe_query | | mysql.rs:42:39:42:59 | unsafe_query.as_str() | semmle.label | unsafe_query.as_str() | | mysql.rs:42:39:42:59 | unsafe_query.as_str() [&ref] | semmle.label | unsafe_query.as_str() [&ref] | +| mysql.rs:75:26:75:29 | prep | semmle.label | prep | +| mysql.rs:75:31:75:42 | unsafe_query | semmle.label | unsafe_query | +| mysql.rs:75:31:75:51 | unsafe_query.as_str() | semmle.label | unsafe_query.as_str() | +| mysql.rs:75:31:75:51 | unsafe_query.as_str() [&ref] | semmle.label | unsafe_query.as_str() [&ref] | | mysql.rs:80:15:80:24 | query_drop | semmle.label | query_drop | | mysql.rs:80:26:80:37 | unsafe_query | semmle.label | unsafe_query | | mysql.rs:80:26:80:46 | unsafe_query.as_str() | semmle.label | unsafe_query.as_str() | @@ -377,6 +413,10 @@ nodes | mysql.rs:114:25:114:36 | unsafe_query | semmle.label | unsafe_query | | mysql.rs:114:25:114:45 | unsafe_query.as_str() | semmle.label | unsafe_query.as_str() | | mysql.rs:114:25:114:45 | unsafe_query.as_str() [&ref] | semmle.label | unsafe_query.as_str() [&ref] | +| mysql.rs:116:22:116:31 | query_iter | semmle.label | query_iter | +| mysql.rs:116:33:116:44 | unsafe_query | semmle.label | unsafe_query | +| mysql.rs:116:33:116:53 | unsafe_query.as_str() | semmle.label | unsafe_query.as_str() | +| mysql.rs:116:33:116:53 | unsafe_query.as_str() [&ref] | semmle.label | unsafe_query.as_str() [&ref] | | mysql.rs:118:14:118:25 | query_stream | semmle.label | query_stream | | mysql.rs:118:40:118:51 | unsafe_query | semmle.label | unsafe_query | | mysql.rs:118:40:118:60 | unsafe_query.as_str() | semmle.label | unsafe_query.as_str() | @@ -385,6 +425,10 @@ nodes | mysql.rs:121:24:121:35 | unsafe_query | semmle.label | unsafe_query | | mysql.rs:121:24:121:44 | unsafe_query.as_str() | semmle.label | unsafe_query.as_str() | | mysql.rs:121:24:121:44 | unsafe_query.as_str() [&ref] | semmle.label | unsafe_query.as_str() [&ref] | +| mysql.rs:149:26:149:29 | prep | semmle.label | prep | +| mysql.rs:149:31:149:42 | unsafe_query | semmle.label | unsafe_query | +| mysql.rs:149:31:149:51 | unsafe_query.as_str() | semmle.label | unsafe_query.as_str() | +| mysql.rs:149:31:149:51 | unsafe_query.as_str() [&ref] | semmle.label | unsafe_query.as_str() [&ref] | | mysql.rs:154:15:154:24 | query_drop | semmle.label | query_drop | | mysql.rs:154:26:154:37 | unsafe_query | semmle.label | unsafe_query | | mysql.rs:154:26:154:46 | unsafe_query.as_str() | semmle.label | unsafe_query.as_str() | @@ -491,8 +535,3 @@ nodes | sqlx.rs:188:29:188:51 | unsafe_query_1.as_str() | semmle.label | unsafe_query_1.as_str() | | sqlx.rs:188:29:188:51 | unsafe_query_1.as_str() [&ref] | semmle.label | unsafe_query_1.as_str() [&ref] | subpaths -testFailures -| mysql.rs:36:58:36:105 | //... | Missing result: Alert[rust/sql-injection]=remote10 | -| mysql.rs:75:56:75:103 | //... | Missing result: Alert[rust/sql-injection]=remote10 | -| mysql.rs:116:64:116:111 | //... | Missing result: Alert[rust/sql-injection]=remote11 | -| mysql.rs:149:62:149:109 | //... | Missing result: Alert[rust/sql-injection]=remote11 | diff --git a/rust/ql/test/query-tests/security/CWE-089/SqlSinks.expected b/rust/ql/test/query-tests/security/CWE-089/SqlSinks.expected index dcc291ea4eb..e69de29bb2d 100644 --- a/rust/ql/test/query-tests/security/CWE-089/SqlSinks.expected +++ b/rust/ql/test/query-tests/security/CWE-089/SqlSinks.expected @@ -1,6 +0,0 @@ -| mysql.rs:36:58:36:105 | //... | Missing result: sql-sink | -| mysql.rs:45:57:45:69 | //... | Missing result: sql-sink | -| mysql.rs:75:56:75:103 | //... | Missing result: sql-sink | -| mysql.rs:116:64:116:111 | //... | Missing result: sql-sink | -| mysql.rs:125:63:125:75 | //... | Missing result: sql-sink | -| mysql.rs:149:62:149:109 | //... | Missing result: sql-sink | From b76f27d10bdae488f670e78b724515e07e77ec74 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 27 Oct 2025 18:47:17 +0000 Subject: [PATCH 035/126] Rust: Remove redundant model. --- rust/ql/lib/codeql/rust/frameworks/stdlib/core.model.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/rust/ql/lib/codeql/rust/frameworks/stdlib/core.model.yml b/rust/ql/lib/codeql/rust/frameworks/stdlib/core.model.yml index 17019618601..9a29741bd37 100644 --- a/rust/ql/lib/codeql/rust/frameworks/stdlib/core.model.yml +++ b/rust/ql/lib/codeql/rust/frameworks/stdlib/core.model.yml @@ -18,7 +18,6 @@ extensions: - ["::into_iter", "Argument[self].Element", "ReturnValue.Element", "value", "manual"] - ["<_ as core::iter::traits::iterator::Iterator>::for_each", "Argument[self].Element", "Argument[0].Parameter[0]", "value", "manual"] - ["<_ as core::iter::traits::iterator::Iterator>::nth", "Argument[self].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "manual"] - - ["<_ as core::iter::traits::iterator::Iterator>::next", "Argument[self]", "ReturnValue.Future.Field[core::option::Option::Some(0)]", "taint", "manual"] - ["<_ as core::iter::traits::iterator::Iterator>::next", "Argument[self].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "manual"] - ["<_ as core::iter::traits::iterator::Iterator>::next", "Argument[self].Element", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::result::Result::Ok(0)]", "value", "manual"] - ["<_ as core::iter::traits::iterator::Iterator>::collect", "Argument[self].Element", "ReturnValue.Element", "value", "manual"] From 3fa825904299473ad952208c604ce31c0ba4a562 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 8 Oct 2025 13:21:04 +0200 Subject: [PATCH 036/126] Actions/OutputClobberingQuery actions/ql/src/experimental/Security/CWE-074/OutputClobberingHigh.ql uses source as endpoint --- .../ql/lib/codeql/actions/security/OutputClobberingQuery.qll | 2 -- 1 file changed, 2 deletions(-) diff --git a/actions/ql/lib/codeql/actions/security/OutputClobberingQuery.qll b/actions/ql/lib/codeql/actions/security/OutputClobberingQuery.qll index 4454a5496a2..22b4879df12 100644 --- a/actions/ql/lib/codeql/actions/security/OutputClobberingQuery.qll +++ b/actions/ql/lib/codeql/actions/security/OutputClobberingQuery.qll @@ -212,8 +212,6 @@ private module OutputClobberingConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } - - Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } /** Tracks flow of unsafe user input that is used to construct and evaluate an environment variable. */ From 890ca8e7d128fda92f88826fa8bb045bd749aadf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 8 Oct 2025 13:22:57 +0200 Subject: [PATCH 037/126] Actions/RequestForgeryQuery actions/ql/src/experimental/Security/CWE-918/RequestForgery.ql uses source as endpoint --- actions/ql/lib/codeql/actions/security/RequestForgeryQuery.qll | 2 -- 1 file changed, 2 deletions(-) diff --git a/actions/ql/lib/codeql/actions/security/RequestForgeryQuery.qll b/actions/ql/lib/codeql/actions/security/RequestForgeryQuery.qll index d96a12e2608..fb89ebdc8ba 100644 --- a/actions/ql/lib/codeql/actions/security/RequestForgeryQuery.qll +++ b/actions/ql/lib/codeql/actions/security/RequestForgeryQuery.qll @@ -18,8 +18,6 @@ private module RequestForgeryConfig implements DataFlow::ConfigSig { predicate isSink(DataFlow::Node sink) { sink instanceof RequestForgerySink } predicate observeDiffInformedIncrementalMode() { any() } - - Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } /** Tracks flow of unsafe user input that is used to construct and evaluate a system command. */ From bb103073031e165936fe9d289b70091d425ffdad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 8 Oct 2025 13:24:12 +0200 Subject: [PATCH 038/126] Actions/SecretExfiltrationQuery actions/ql/src/experimental/Security/CWE-200/SecretExfiltration.ql uses source as endpoint --- .../ql/lib/codeql/actions/security/SecretExfiltrationQuery.qll | 2 -- 1 file changed, 2 deletions(-) diff --git a/actions/ql/lib/codeql/actions/security/SecretExfiltrationQuery.qll b/actions/ql/lib/codeql/actions/security/SecretExfiltrationQuery.qll index 15cd726c4bb..b3d59210053 100644 --- a/actions/ql/lib/codeql/actions/security/SecretExfiltrationQuery.qll +++ b/actions/ql/lib/codeql/actions/security/SecretExfiltrationQuery.qll @@ -17,8 +17,6 @@ private module SecretExfiltrationConfig implements DataFlow::ConfigSig { predicate isSink(DataFlow::Node sink) { sink instanceof SecretExfiltrationSink } predicate observeDiffInformedIncrementalMode() { any() } - - Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } /** Tracks flow of unsafe user input that is used in a context where it may lead to a secret exfiltration. */ From d36b721513998333872792fe3a251af06ea2f0b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 8 Oct 2025 13:26:05 +0200 Subject: [PATCH 039/126] Actions/CompositeActionsSinks Same file uses source as endpoint --- actions/ql/src/Models/CompositeActionsSinks.ql | 2 -- 1 file changed, 2 deletions(-) diff --git a/actions/ql/src/Models/CompositeActionsSinks.ql b/actions/ql/src/Models/CompositeActionsSinks.ql index 65d3fdce9dc..82f0754f03e 100644 --- a/actions/ql/src/Models/CompositeActionsSinks.ql +++ b/actions/ql/src/Models/CompositeActionsSinks.ql @@ -26,8 +26,6 @@ private module MyConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } - - Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } module MyFlow = TaintTracking::Global; From 78f2cee51c218641ec6be3d3983a9b5f5e06d07c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 8 Oct 2025 13:27:01 +0200 Subject: [PATCH 040/126] Actions/CompositeActionsSources Same file uses source as endpoint --- actions/ql/src/Models/CompositeActionsSources.ql | 2 -- 1 file changed, 2 deletions(-) diff --git a/actions/ql/src/Models/CompositeActionsSources.ql b/actions/ql/src/Models/CompositeActionsSources.ql index 2f3e98b3401..c9974cd7361 100644 --- a/actions/ql/src/Models/CompositeActionsSources.ql +++ b/actions/ql/src/Models/CompositeActionsSources.ql @@ -36,8 +36,6 @@ private module MyConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } - - Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } module MyFlow = TaintTracking::Global; From 9c24ce065003c70a19c6d27d0d4a60564c560002 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 8 Oct 2025 13:27:58 +0200 Subject: [PATCH 041/126] Actions/CompositeActionsSummaries Same file uses source as endpoint --- actions/ql/src/Models/CompositeActionsSummaries.ql | 2 -- 1 file changed, 2 deletions(-) diff --git a/actions/ql/src/Models/CompositeActionsSummaries.ql b/actions/ql/src/Models/CompositeActionsSummaries.ql index 1979c381f5d..814498f639e 100644 --- a/actions/ql/src/Models/CompositeActionsSummaries.ql +++ b/actions/ql/src/Models/CompositeActionsSummaries.ql @@ -27,8 +27,6 @@ private module MyConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } - - Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } module MyFlow = TaintTracking::Global; From a972ef7e314f9f8607d9afa2c17bdb16b4b4e6f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 8 Oct 2025 13:29:46 +0200 Subject: [PATCH 042/126] Actions/ReusableWorkflowsSinks Same file uses source as endpoint --- actions/ql/src/Models/ReusableWorkflowsSinks.ql | 2 -- 1 file changed, 2 deletions(-) diff --git a/actions/ql/src/Models/ReusableWorkflowsSinks.ql b/actions/ql/src/Models/ReusableWorkflowsSinks.ql index 2b08f2445d9..8d02debbdb4 100644 --- a/actions/ql/src/Models/ReusableWorkflowsSinks.ql +++ b/actions/ql/src/Models/ReusableWorkflowsSinks.ql @@ -26,8 +26,6 @@ private module MyConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } - - Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } module MyFlow = TaintTracking::Global; From 1243c6362d23e9add3a892688d0f03844f5977a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 8 Oct 2025 13:34:43 +0200 Subject: [PATCH 043/126] Actions/ReusableWorkflowsSources --- actions/ql/src/Models/ReusableWorkflowsSources.ql | 2 -- 1 file changed, 2 deletions(-) diff --git a/actions/ql/src/Models/ReusableWorkflowsSources.ql b/actions/ql/src/Models/ReusableWorkflowsSources.ql index 831191e4bfb..a7112bf3758 100644 --- a/actions/ql/src/Models/ReusableWorkflowsSources.ql +++ b/actions/ql/src/Models/ReusableWorkflowsSources.ql @@ -36,8 +36,6 @@ private module MyConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } - - Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } module MyFlow = TaintTracking::Global; From 5a1a887fd2d9e962fb03e5bbaea6b9b1be5fa71d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 8 Oct 2025 13:35:15 +0200 Subject: [PATCH 044/126] Actions/ReusableWorkflowsSummaries --- actions/ql/src/Models/ReusableWorkflowsSummaries.ql | 2 -- 1 file changed, 2 deletions(-) diff --git a/actions/ql/src/Models/ReusableWorkflowsSummaries.ql b/actions/ql/src/Models/ReusableWorkflowsSummaries.ql index fd2d4b396a0..a05bec744f8 100644 --- a/actions/ql/src/Models/ReusableWorkflowsSummaries.ql +++ b/actions/ql/src/Models/ReusableWorkflowsSummaries.ql @@ -27,8 +27,6 @@ private module MyConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } - - Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } module MyFlow = TaintTracking::Global; From ad31f1ab6de248613ba1f734241594f8bd386067 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 8 Oct 2025 13:36:15 +0200 Subject: [PATCH 045/126] C++/WordexpTainted Same file usees source and sink as endpoints --- cpp/ql/src/experimental/Security/CWE/CWE-078/WordexpTainted.ql | 2 -- 1 file changed, 2 deletions(-) diff --git a/cpp/ql/src/experimental/Security/CWE/CWE-078/WordexpTainted.ql b/cpp/ql/src/experimental/Security/CWE/CWE-078/WordexpTainted.ql index 1d032a63ba3..cfe04ba23bf 100644 --- a/cpp/ql/src/experimental/Security/CWE/CWE-078/WordexpTainted.ql +++ b/cpp/ql/src/experimental/Security/CWE/CWE-078/WordexpTainted.ql @@ -50,8 +50,6 @@ module WordexpTaintConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } - - Location getASelectedSourceLocation(DataFlow::Node source) { none() } } module WordexpTaint = TaintTracking::Global; From ba22f0d7d2865db5738efa19c65f03a792f50c2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 8 Oct 2025 13:36:52 +0200 Subject: [PATCH 046/126] C#/DontInstallRootCert --- csharp/ql/src/Security Features/CWE-327/DontInstallRootCert.ql | 2 -- 1 file changed, 2 deletions(-) diff --git a/csharp/ql/src/Security Features/CWE-327/DontInstallRootCert.ql b/csharp/ql/src/Security Features/CWE-327/DontInstallRootCert.ql index d2d22671677..b48ddbf0f35 100644 --- a/csharp/ql/src/Security Features/CWE-327/DontInstallRootCert.ql +++ b/csharp/ql/src/Security Features/CWE-327/DontInstallRootCert.ql @@ -39,8 +39,6 @@ module AddCertToRootStoreConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } - - Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } module AddCertToRootStore = DataFlow::Global; From 7722f31cb8b3862d72467247caf694362f53ca36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 8 Oct 2025 13:43:24 +0200 Subject: [PATCH 047/126] Go/DivideByZero --- go/ql/src/experimental/CWE-369/DivideByZero.ql | 2 -- 1 file changed, 2 deletions(-) diff --git a/go/ql/src/experimental/CWE-369/DivideByZero.ql b/go/ql/src/experimental/CWE-369/DivideByZero.ql index 8afd165832b..99cd120dbf8 100644 --- a/go/ql/src/experimental/CWE-369/DivideByZero.ql +++ b/go/ql/src/experimental/CWE-369/DivideByZero.ql @@ -47,8 +47,6 @@ module Config implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } - - Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } /** From 59a8e9b78ccc1422b7204abff99620885e29c0cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 8 Oct 2025 14:04:17 +0200 Subject: [PATCH 048/126] Go/InsufficientKeySize --- go/ql/src/Security/CWE-326/InsufficientKeySize.ql | 2 -- 1 file changed, 2 deletions(-) diff --git a/go/ql/src/Security/CWE-326/InsufficientKeySize.ql b/go/ql/src/Security/CWE-326/InsufficientKeySize.ql index 5d0ee7ac6ab..6fa421baaeb 100644 --- a/go/ql/src/Security/CWE-326/InsufficientKeySize.ql +++ b/go/ql/src/Security/CWE-326/InsufficientKeySize.ql @@ -27,8 +27,6 @@ module Config implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } - - Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } /** From 913550f4084389b8eec315c358c63c0cf4b2e9d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 8 Oct 2025 14:27:49 +0200 Subject: [PATCH 049/126] Java/ArbitraryApkInstallationQuery java/ql/src/Security/CWE/CWE-094/ArbitraryApkInstallation.ql --- .../semmle/code/java/security/ArbitraryApkInstallationQuery.qll | 2 -- 1 file changed, 2 deletions(-) diff --git a/java/ql/lib/semmle/code/java/security/ArbitraryApkInstallationQuery.qll b/java/ql/lib/semmle/code/java/security/ArbitraryApkInstallationQuery.qll index 8c833bb79d6..e907a9ffeaa 100644 --- a/java/ql/lib/semmle/code/java/security/ArbitraryApkInstallationQuery.qll +++ b/java/ql/lib/semmle/code/java/security/ArbitraryApkInstallationQuery.qll @@ -25,8 +25,6 @@ module ApkInstallationConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } - - Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } module ApkInstallationFlow = DataFlow::Global; From a228936c6386ab5544aeec2b410c649f2590117e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 8 Oct 2025 14:56:11 +0200 Subject: [PATCH 050/126] Java/ArithmeticTainted java/ql/src/Security/CWE/CWE-190/ArithmeticTainted.ql --- .../lib/semmle/code/java/security/ArithmeticTaintedQuery.qll | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/java/ql/lib/semmle/code/java/security/ArithmeticTaintedQuery.qll b/java/ql/lib/semmle/code/java/security/ArithmeticTaintedQuery.qll index fbb8509f48f..c3d4e7876d5 100644 --- a/java/ql/lib/semmle/code/java/security/ArithmeticTaintedQuery.qll +++ b/java/ql/lib/semmle/code/java/security/ArithmeticTaintedQuery.qll @@ -19,6 +19,8 @@ module ArithmeticOverflowConfig implements DataFlow::ConfigSig { } Location getASelectedSinkLocation(DataFlow::Node sink) { + result = sink.getLocation() + or exists(ArithExpr exp | result = exp.getLocation() | overflowSink(exp, sink.asExpr())) } } @@ -43,6 +45,8 @@ module ArithmeticUnderflowConfig implements DataFlow::ConfigSig { } Location getASelectedSinkLocation(DataFlow::Node sink) { + result = sink.getLocation() + or exists(ArithExpr exp | result = exp.getLocation() | underflowSink(exp, sink.asExpr())) } } From 1129230e1021724a79c919b23af08933abf6e34a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 8 Oct 2025 14:57:34 +0200 Subject: [PATCH 051/126] Java/ArithmeticUncontrolledQuery java/ql/src/Security/CWE/CWE-190/ArithmeticUncontrolled.ql --- .../semmle/code/java/security/ArithmeticUncontrolledQuery.qll | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/java/ql/lib/semmle/code/java/security/ArithmeticUncontrolledQuery.qll b/java/ql/lib/semmle/code/java/security/ArithmeticUncontrolledQuery.qll index 6b7b337ad65..ac79aef3f37 100644 --- a/java/ql/lib/semmle/code/java/security/ArithmeticUncontrolledQuery.qll +++ b/java/ql/lib/semmle/code/java/security/ArithmeticUncontrolledQuery.qll @@ -25,6 +25,8 @@ module ArithmeticUncontrolledOverflowConfig implements DataFlow::ConfigSig { } Location getASelectedSinkLocation(DataFlow::Node sink) { + result = sink.getLocation() + or exists(ArithExpr exp | result = exp.getLocation() | overflowSink(exp, sink.asExpr())) } } @@ -46,6 +48,8 @@ module ArithmeticUncontrolledUnderflowConfig implements DataFlow::ConfigSig { } Location getASelectedSinkLocation(DataFlow::Node sink) { + result = sink.getLocation() + or exists(ArithExpr exp | result = exp.getLocation() | underflowSink(exp, sink.asExpr())) } } From b023880a0a1d12f40551c4cd4e73318b9b001364 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 8 Oct 2025 14:59:49 +0200 Subject: [PATCH 052/126] Java/BrokenCryptoAlgorithmQuery java/ql/src/Security/CWE/CWE-327/BrokenCryptoAlgorithm.ql --- .../semmle/code/java/security/BrokenCryptoAlgorithmQuery.qll | 2 ++ 1 file changed, 2 insertions(+) diff --git a/java/ql/lib/semmle/code/java/security/BrokenCryptoAlgorithmQuery.qll b/java/ql/lib/semmle/code/java/security/BrokenCryptoAlgorithmQuery.qll index 0c1f14c902b..9bcf9dc2eaf 100644 --- a/java/ql/lib/semmle/code/java/security/BrokenCryptoAlgorithmQuery.qll +++ b/java/ql/lib/semmle/code/java/security/BrokenCryptoAlgorithmQuery.qll @@ -36,6 +36,8 @@ module InsecureCryptoConfig implements DataFlow::ConfigSig { predicate observeDiffInformedIncrementalMode() { any() } Location getASelectedSinkLocation(DataFlow::Node sink) { + result = sink.getLocation() + or exists(CryptoAlgoSpec c | sink.asExpr() = c.getAlgoSpec() | result = c.getLocation()) } } From 4482e831d71233d769678752203854d534bcebad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Thu, 9 Oct 2025 09:56:44 +0200 Subject: [PATCH 053/126] Java/CommandLineQuery https://github.com/github/codeql/blob/85a4dd0325104ecd613c9e3e7c25190d41906605/java/ql/src/Security/CWE/CWE-078/ExecTainted.ql https://github.com/github/codeql/blob/857b51be5895bf437ea25b5ce2581527d5af69fb/java/ql/src/Security/CWE/CWE-078/ExecUnescaped.ql https://github.com/github/codeql/blob/b6e56f26c7509a041ce92bdda13db0a09da886e3/java/ql/src/experimental/Security/CWE/CWE-078/ExecTainted.ql --- java/ql/lib/semmle/code/java/security/CommandLineQuery.qll | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/java/ql/lib/semmle/code/java/security/CommandLineQuery.qll b/java/ql/lib/semmle/code/java/security/CommandLineQuery.qll index a1c75f93802..82d24eb718e 100644 --- a/java/ql/lib/semmle/code/java/security/CommandLineQuery.qll +++ b/java/ql/lib/semmle/code/java/security/CommandLineQuery.qll @@ -63,9 +63,11 @@ module InputToArgumentToExecFlowConfig implements DataFlow::ConfigSig { // only to prevent overlapping results between two queries. predicate observeDiffInformedIncrementalMode() { any() } - // All queries use the argument as the primary location and do not use the - // sink as an associated location. + // ExecTainted.ql queries use the argument as the primary location; + // ExecUnescaped.ql does not (used to prevent overlapping results). Location getASelectedSinkLocation(DataFlow::Node sink) { + result = sink.getLocation() + or exists(Expr argument | argumentToExec(argument, sink) | result = argument.getLocation()) } } From dc1dff98b0f2cefd93b53240575a42ab81bd71d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Thu, 9 Oct 2025 10:15:54 +0200 Subject: [PATCH 054/126] Java/ConditionalBypass java/ql/src/Security/CWE/CWE-807/ConditionalBypass.ql --- .../ql/lib/semmle/code/java/security/ConditionalBypassQuery.qll | 2 ++ 1 file changed, 2 insertions(+) diff --git a/java/ql/lib/semmle/code/java/security/ConditionalBypassQuery.qll b/java/ql/lib/semmle/code/java/security/ConditionalBypassQuery.qll index 31457036937..087ca674cda 100644 --- a/java/ql/lib/semmle/code/java/security/ConditionalBypassQuery.qll +++ b/java/ql/lib/semmle/code/java/security/ConditionalBypassQuery.qll @@ -51,6 +51,8 @@ module ConditionalBypassFlowConfig implements DataFlow::ConfigSig { predicate observeDiffInformedIncrementalMode() { any() } Location getASelectedSinkLocation(DataFlow::Node sink) { + result = sink.getLocation() + or exists(MethodCall m, Expr e | result = [m, e].getLocation() | conditionControlsMethod(m, e) and sink.asExpr() = e From 9eeeec336e445c9ef08a470ded1c6bd7da6af6f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Thu, 9 Oct 2025 10:42:45 +0200 Subject: [PATCH 055/126] Java/ImproperValidationOfArrayConstructionCodeSpecifiedQuery java/ql/src/Security/CWE/CWE-129/ImproperValidationOfArrayConstructionCodeSpecified.ql --- .../ImproperValidationOfArrayConstructionCodeSpecifiedQuery.qll | 2 ++ 1 file changed, 2 insertions(+) diff --git a/java/ql/lib/semmle/code/java/security/ImproperValidationOfArrayConstructionCodeSpecifiedQuery.qll b/java/ql/lib/semmle/code/java/security/ImproperValidationOfArrayConstructionCodeSpecifiedQuery.qll index e952971c389..487d9e3924e 100644 --- a/java/ql/lib/semmle/code/java/security/ImproperValidationOfArrayConstructionCodeSpecifiedQuery.qll +++ b/java/ql/lib/semmle/code/java/security/ImproperValidationOfArrayConstructionCodeSpecifiedQuery.qll @@ -21,6 +21,8 @@ module BoundedFlowSourceConfig implements DataFlow::ConfigSig { predicate observeDiffInformedIncrementalMode() { any() } Location getASelectedSinkLocation(DataFlow::Node sink) { + result = sink.getLocation() + or exists(ArrayCreationExpr arrayCreation, CheckableArrayAccess arrayAccess | result = [arrayCreation, arrayAccess.getIndexExpr()].getLocation() and arrayAccess.canThrowOutOfBoundsDueToEmptyArray(sink.asExpr(), arrayCreation) From eebff9c282be8d3a39fb84a19605cc5ec15d6696 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Thu, 9 Oct 2025 10:44:22 +0200 Subject: [PATCH 056/126] Java/ImproperValidationOfArrayConstructionFlow java/ql/src/Security/CWE/CWE-129/ImproperValidationOfArrayConstruction.ql --- .../security/ImproperValidationOfArrayConstructionQuery.qll | 2 ++ 1 file changed, 2 insertions(+) diff --git a/java/ql/lib/semmle/code/java/security/ImproperValidationOfArrayConstructionQuery.qll b/java/ql/lib/semmle/code/java/security/ImproperValidationOfArrayConstructionQuery.qll index 913d50b3159..d37a8d882b3 100644 --- a/java/ql/lib/semmle/code/java/security/ImproperValidationOfArrayConstructionQuery.qll +++ b/java/ql/lib/semmle/code/java/security/ImproperValidationOfArrayConstructionQuery.qll @@ -18,6 +18,8 @@ module ImproperValidationOfArrayConstructionConfig implements DataFlow::ConfigSi predicate observeDiffInformedIncrementalMode() { any() } Location getASelectedSinkLocation(DataFlow::Node sink) { + result = sink.getLocation() + or exists(ArrayCreationExpr arrayCreation, CheckableArrayAccess arrayAccess | result = [arrayCreation, arrayAccess.getIndexExpr()].getLocation() and arrayAccess.canThrowOutOfBoundsDueToEmptyArray(sink.asExpr(), arrayCreation) From 247ae1d23c07147576b0d792741a8bc1c375cfd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Thu, 9 Oct 2025 14:00:05 +0200 Subject: [PATCH 057/126] Java/MaybeBrokenCryptoAlgorithmQuery java/ql/src/Security/CWE/CWE-327/MaybeBrokenCryptoAlgorithm.ql --- .../code/java/security/MaybeBrokenCryptoAlgorithmQuery.qll | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/java/ql/lib/semmle/code/java/security/MaybeBrokenCryptoAlgorithmQuery.qll b/java/ql/lib/semmle/code/java/security/MaybeBrokenCryptoAlgorithmQuery.qll index 57622b367f3..22c7320a55a 100644 --- a/java/ql/lib/semmle/code/java/security/MaybeBrokenCryptoAlgorithmQuery.qll +++ b/java/ql/lib/semmle/code/java/security/MaybeBrokenCryptoAlgorithmQuery.qll @@ -81,7 +81,9 @@ module InsecureCryptoConfig implements DataFlow::ConfigSig { predicate observeDiffInformedIncrementalMode() { any() } Location getASelectedSinkLocation(DataFlow::Node sink) { - exists(CryptoAlgoSpec c | result = c.getLocation() | sink.asExpr() = c.getAlgoSpec()) + exists(CryptoAlgoSpec c | result = sink.getLocation() or result = c.getLocation() | + sink.asExpr() = c.getAlgoSpec() + ) } } From 72a97773b1904757a7ae46ffa8090df7b926dd1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Thu, 9 Oct 2025 14:01:26 +0200 Subject: [PATCH 058/126] Java/NumericCastTaintedQuery java/ql/src/Security/CWE/CWE-681/NumericCastTainted.ql --- .../semmle/code/java/security/NumericCastTaintedQuery.qll | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/java/ql/lib/semmle/code/java/security/NumericCastTaintedQuery.qll b/java/ql/lib/semmle/code/java/security/NumericCastTaintedQuery.qll index bfe22c69e64..841ff4f8515 100644 --- a/java/ql/lib/semmle/code/java/security/NumericCastTaintedQuery.qll +++ b/java/ql/lib/semmle/code/java/security/NumericCastTaintedQuery.qll @@ -106,8 +106,9 @@ module NumericCastFlowConfig implements DataFlow::ConfigSig { predicate observeDiffInformedIncrementalMode() { any() } Location getASelectedSinkLocation(DataFlow::Node sink) { - exists(NumericNarrowingCastExpr cast | - cast.getExpr() = sink.asExpr() and + exists(NumericNarrowingCastExpr cast | cast.getExpr() = sink.asExpr() | + result = sink.getLocation() + or result = cast.getLocation() ) } From 697f428eae3fd331084b173567e0f10c2be87892 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Thu, 9 Oct 2025 14:05:43 +0200 Subject: [PATCH 059/126] Java/TaintedEnvironmentVariableQuery java/ql/src/Security/CWE/CWE-078/ExecTaintedEnvironment.ql --- .../code/java/security/TaintedEnvironmentVariableQuery.qll | 2 -- 1 file changed, 2 deletions(-) diff --git a/java/ql/lib/semmle/code/java/security/TaintedEnvironmentVariableQuery.qll b/java/ql/lib/semmle/code/java/security/TaintedEnvironmentVariableQuery.qll index d972b59986a..2bc9dba92f0 100644 --- a/java/ql/lib/semmle/code/java/security/TaintedEnvironmentVariableQuery.qll +++ b/java/ql/lib/semmle/code/java/security/TaintedEnvironmentVariableQuery.qll @@ -40,8 +40,6 @@ module ExecTaintedEnvironmentConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } - - Location getASelectedSourceLocation(DataFlow::Node source) { none() } } /** From 2a889f4f98f19374bf5b12d525d5730da3b1564a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Thu, 9 Oct 2025 14:14:10 +0200 Subject: [PATCH 060/126] Java/TaintedPermissionsCheckQuery java/ql/src/Security/CWE/CWE-807/TaintedPermissionsCheck.ql --- .../code/java/security/TaintedPermissionsCheckQuery.qll | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/java/ql/lib/semmle/code/java/security/TaintedPermissionsCheckQuery.qll b/java/ql/lib/semmle/code/java/security/TaintedPermissionsCheckQuery.qll index bbec7d4f4e6..7113c7036e4 100644 --- a/java/ql/lib/semmle/code/java/security/TaintedPermissionsCheckQuery.qll +++ b/java/ql/lib/semmle/code/java/security/TaintedPermissionsCheckQuery.qll @@ -63,8 +63,9 @@ module TaintedPermissionsCheckFlowConfig implements DataFlow::ConfigSig { predicate observeDiffInformedIncrementalMode() { any() } Location getASelectedSinkLocation(DataFlow::Node sink) { - exists(PermissionsConstruction p | - sink.asExpr() = p.getInput() and + exists(PermissionsConstruction p | sink.asExpr() = p.getInput() | + result = sink.getLocation() + or result = p.getLocation() ) } From 4439322e8881a7602c8a94d8ca144a3102d0f704 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Thu, 9 Oct 2025 14:15:17 +0200 Subject: [PATCH 061/126] Java/TempDirLocalInformationDisclosureQuery java/ql/src/Security/CWE/CWE-200/TempDirLocalInformationDisclosure.ql --- .../java/security/TempDirLocalInformationDisclosureQuery.qll | 2 -- 1 file changed, 2 deletions(-) diff --git a/java/ql/lib/semmle/code/java/security/TempDirLocalInformationDisclosureQuery.qll b/java/ql/lib/semmle/code/java/security/TempDirLocalInformationDisclosureQuery.qll index 098362f2bd5..0ae1d7e4df0 100644 --- a/java/ql/lib/semmle/code/java/security/TempDirLocalInformationDisclosureQuery.qll +++ b/java/ql/lib/semmle/code/java/security/TempDirLocalInformationDisclosureQuery.qll @@ -147,8 +147,6 @@ module TempDirSystemGetPropertyToCreateConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } - - Location getASelectedSinkLocation(DataFlow::Node sink) { none() } } /** From 518c0818a4a98d5b19a8e453b995c7f0a3e9ee4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Thu, 9 Oct 2025 14:38:37 +0200 Subject: [PATCH 062/126] Java/UnsafeDeserializationQuery java/ql/src/Security/CWE/CWE-502/UnsafeDeserialization.ql --- .../semmle/code/java/security/UnsafeDeserializationQuery.qll | 2 ++ 1 file changed, 2 insertions(+) diff --git a/java/ql/lib/semmle/code/java/security/UnsafeDeserializationQuery.qll b/java/ql/lib/semmle/code/java/security/UnsafeDeserializationQuery.qll index f5968898adc..e0a66626be4 100644 --- a/java/ql/lib/semmle/code/java/security/UnsafeDeserializationQuery.qll +++ b/java/ql/lib/semmle/code/java/security/UnsafeDeserializationQuery.qll @@ -313,6 +313,8 @@ private module UnsafeDeserializationConfig implements DataFlow::ConfigSig { predicate observeDiffInformedIncrementalMode() { any() } Location getASelectedSinkLocation(DataFlow::Node sink) { + result = sink.getLocation() + or result = sink.(UnsafeDeserializationSink).getMethodCall().getLocation() } } From f24a6f64ab6245d173f8b21aad81d5cba039ea4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Thu, 9 Oct 2025 14:41:30 +0200 Subject: [PATCH 063/126] Java/WebviewDebugEnabledQuery java/ql/src/Security/CWE/CWE-489/WebviewDebuggingEnabled.ql --- .../code/java/security/WebviewDebuggingEnabledQuery.qll | 6 ------ 1 file changed, 6 deletions(-) diff --git a/java/ql/lib/semmle/code/java/security/WebviewDebuggingEnabledQuery.qll b/java/ql/lib/semmle/code/java/security/WebviewDebuggingEnabledQuery.qll index 080a7bb482f..90e47521bf0 100644 --- a/java/ql/lib/semmle/code/java/security/WebviewDebuggingEnabledQuery.qll +++ b/java/ql/lib/semmle/code/java/security/WebviewDebuggingEnabledQuery.qll @@ -46,12 +46,6 @@ module WebviewDebugEnabledConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } - - Location getASelectedSourceLocation(DataFlow::Node source) { - // This module is only used in `WebviewDebuggingEnabled.ql`, which doesn't - // select the source in any "$@" column. - none() - } } /** From 2a30ea923abfd4e6fd2856cf7eb09d3358af6a22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Fri, 10 Oct 2025 17:30:59 +0200 Subject: [PATCH 064/126] JS/CommandInjectionQuery javascript/ql/src/experimental/heuristics/ql/src/Security/CWE-078/CommandInjection.ql javascript/ql/src/Security/CWE-078/CommandInjection.ql --- .../javascript/security/dataflow/CommandInjectionQuery.qll | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/security/dataflow/CommandInjectionQuery.qll b/javascript/ql/lib/semmle/javascript/security/dataflow/CommandInjectionQuery.qll index 7c013e1f4ac..228f2b8c72c 100644 --- a/javascript/ql/lib/semmle/javascript/security/dataflow/CommandInjectionQuery.qll +++ b/javascript/ql/lib/semmle/javascript/security/dataflow/CommandInjectionQuery.qll @@ -34,8 +34,9 @@ module CommandInjectionConfig implements DataFlow::ConfigSig { predicate observeDiffInformedIncrementalMode() { any() } Location getASelectedSinkLocation(DataFlow::Node sink) { - exists(DataFlow::Node node | - isSinkWithHighlight(sink, node) and + exists(DataFlow::Node node | isSinkWithHighlight(sink, node) | + result = sink.getLocation() + or result = node.getLocation() ) } From 71cf0426072d8520d17b50dd549460d79d846b6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Tue, 14 Oct 2025 13:14:50 +0200 Subject: [PATCH 065/126] JS/IndirectCommandInjectionQuery javascript/ql/src/Security/CWE-078/IndirectCommandInjection.ql --- .../security/dataflow/IndirectCommandInjectionQuery.qll | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/security/dataflow/IndirectCommandInjectionQuery.qll b/javascript/ql/lib/semmle/javascript/security/dataflow/IndirectCommandInjectionQuery.qll index 87d85911a1b..6dbba8261fb 100644 --- a/javascript/ql/lib/semmle/javascript/security/dataflow/IndirectCommandInjectionQuery.qll +++ b/javascript/ql/lib/semmle/javascript/security/dataflow/IndirectCommandInjectionQuery.qll @@ -30,8 +30,9 @@ module IndirectCommandInjectionConfig implements DataFlow::ConfigSig { predicate observeDiffInformedIncrementalMode() { any() } Location getASelectedSinkLocation(DataFlow::Node sink) { - exists(DataFlow::Node node | - isSinkWithHighlight(sink, node) and + exists(DataFlow::Node node | isSinkWithHighlight(sink, node) | + result = sink.getLocation() + or result = node.getLocation() ) } From 94343254e345b3966df6744641fc93a6efae1f2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Tue, 14 Oct 2025 13:28:30 +0200 Subject: [PATCH 066/126] JS/ShellCommandInjectionFromEnvironmentQuery javascript/ql/src/Security/CWE-078/ShellCommandInjectionFromEnvironment.ql --- .../dataflow/ShellCommandInjectionFromEnvironmentQuery.qll | 2 ++ 1 file changed, 2 insertions(+) diff --git a/javascript/ql/lib/semmle/javascript/security/dataflow/ShellCommandInjectionFromEnvironmentQuery.qll b/javascript/ql/lib/semmle/javascript/security/dataflow/ShellCommandInjectionFromEnvironmentQuery.qll index 1d396da5b20..34cee84aaae 100644 --- a/javascript/ql/lib/semmle/javascript/security/dataflow/ShellCommandInjectionFromEnvironmentQuery.qll +++ b/javascript/ql/lib/semmle/javascript/security/dataflow/ShellCommandInjectionFromEnvironmentQuery.qll @@ -31,6 +31,8 @@ module ShellCommandInjectionFromEnvironmentConfig implements DataFlow::ConfigSig predicate observeDiffInformedIncrementalMode() { any() } Location getASelectedSinkLocation(DataFlow::Node sink) { + result = sink.getLocation() + or exists(DataFlow::Node node | isSinkWithHighlight(sink, node) and result = node.getLocation() From bcdbe0b50ad5c65f44c1146d7917444616839538 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Tue, 14 Oct 2025 13:51:58 +0200 Subject: [PATCH 067/126] JS/PolynomialReDoSQuery javascript/ql/src/Performance/PolynomialReDoS.ql --- .../semmle/javascript/security/regexp/PolynomialReDoSQuery.qll | 2 ++ 1 file changed, 2 insertions(+) diff --git a/javascript/ql/lib/semmle/javascript/security/regexp/PolynomialReDoSQuery.qll b/javascript/ql/lib/semmle/javascript/security/regexp/PolynomialReDoSQuery.qll index e68fd5af415..d1baf9c4523 100644 --- a/javascript/ql/lib/semmle/javascript/security/regexp/PolynomialReDoSQuery.qll +++ b/javascript/ql/lib/semmle/javascript/security/regexp/PolynomialReDoSQuery.qll @@ -29,6 +29,8 @@ module PolynomialReDoSConfig implements DataFlow::ConfigSig { predicate observeDiffInformedIncrementalMode() { any() } Location getASelectedSinkLocation(DataFlow::Node sink) { + result = sink.(Sink).getLocation() + or result = sink.(Sink).getHighlight().getLocation() or result = sink.(Sink).getRegExp().getLocation() From bb80d832767a1b6c85489a8aa4b9eb38e6871086 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Tue, 14 Oct 2025 13:53:11 +0200 Subject: [PATCH 068/126] JS/SSRF javascript/ql/src/experimental/Security/CWE-918/SSRF.ql --- javascript/ql/src/experimental/Security/CWE-918/SSRF.qll | 4 ---- 1 file changed, 4 deletions(-) diff --git a/javascript/ql/src/experimental/Security/CWE-918/SSRF.qll b/javascript/ql/src/experimental/Security/CWE-918/SSRF.qll index 03bc9f99038..380f594c21e 100644 --- a/javascript/ql/src/experimental/Security/CWE-918/SSRF.qll +++ b/javascript/ql/src/experimental/Security/CWE-918/SSRF.qll @@ -29,10 +29,6 @@ module SsrfConfig implements DataFlow::ConfigSig { predicate isBarrierOut(DataFlow::Node node) { strictSanitizingPrefixEdge(node, _) } - Location getASelectedSourceLocation(DataFlow::Node source) { - none() // Does not select the source - } - predicate observeDiffInformedIncrementalMode() { any() } } From baccdcc07f890fe140c693ab28c55d9f4a633fad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Tue, 14 Oct 2025 14:00:02 +0200 Subject: [PATCH 069/126] Python/PolynomialReDoSQuery python/ql/src/Security/CWE-730/PolynomialReDoS.ql --- .../semmle/python/security/dataflow/PolynomialReDoSQuery.qll | 2 ++ 1 file changed, 2 insertions(+) diff --git a/python/ql/lib/semmle/python/security/dataflow/PolynomialReDoSQuery.qll b/python/ql/lib/semmle/python/security/dataflow/PolynomialReDoSQuery.qll index 89aa4961e6e..11ccf27d7eb 100644 --- a/python/ql/lib/semmle/python/security/dataflow/PolynomialReDoSQuery.qll +++ b/python/ql/lib/semmle/python/security/dataflow/PolynomialReDoSQuery.qll @@ -21,6 +21,8 @@ private module PolynomialReDoSConfig implements DataFlow::ConfigSig { predicate observeDiffInformedIncrementalMode() { any() } Location getASelectedSinkLocation(DataFlow::Node sink) { + result = sink.(Sink).getLocation() + or result = sink.(Sink).getHighlight().getLocation() or result = sink.(Sink).getABacktrackingTerm().getLocation() From 37fff48dcd3b18cf475a7ca78e74099011d982ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Tue, 14 Oct 2025 14:02:17 +0200 Subject: [PATCH 070/126] Python/ServerSideRequestForgeryQuery python/ql/src/Security/CWE-918/PartialServerSideRequestForgery.ql --- .../python/security/dataflow/ServerSideRequestForgeryQuery.qll | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/python/ql/lib/semmle/python/security/dataflow/ServerSideRequestForgeryQuery.qll b/python/ql/lib/semmle/python/security/dataflow/ServerSideRequestForgeryQuery.qll index b466d34b227..e60afa470ec 100644 --- a/python/ql/lib/semmle/python/security/dataflow/ServerSideRequestForgeryQuery.qll +++ b/python/ql/lib/semmle/python/security/dataflow/ServerSideRequestForgeryQuery.qll @@ -68,7 +68,8 @@ private module PartialServerSideRequestForgeryConfig implements DataFlow::Config predicate observeDiffInformedIncrementalMode() { any() } Location getASelectedSinkLocation(DataFlow::Node sink) { - // Note: this query does not select the sink itself + result = sink.(Sink).getLocation() + or result = sink.(Sink).getRequest().getLocation() } } From 6d5731686236d4cf070ed2f7821d01714654c0b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Tue, 14 Oct 2025 14:04:05 +0200 Subject: [PATCH 071/126] Python/UnsafeUnpackQuery python/ql/src/experimental/Security/CWE-022bis/UnsafeUnpack.ql --- python/ql/src/experimental/Security/UnsafeUnpackQuery.qll | 2 -- 1 file changed, 2 deletions(-) diff --git a/python/ql/src/experimental/Security/UnsafeUnpackQuery.qll b/python/ql/src/experimental/Security/UnsafeUnpackQuery.qll index 79e50fbd36e..64da6b8d799 100644 --- a/python/ql/src/experimental/Security/UnsafeUnpackQuery.qll +++ b/python/ql/src/experimental/Security/UnsafeUnpackQuery.qll @@ -210,8 +210,6 @@ module UnsafeUnpackConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } - - Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } /** Global taint-tracking for detecting "UnsafeUnpacking" vulnerabilities. */ From 4bc9ede2e8e03c3a5557093a45de5e13f2853b5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Tue, 14 Oct 2025 14:05:02 +0200 Subject: [PATCH 072/126] Python/UnsafeUsageOfClientSideEncryptionVersion --- .../CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql | 2 -- 1 file changed, 2 deletions(-) diff --git a/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql b/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql index a93787c9d79..a0fadbff3f3 100644 --- a/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql +++ b/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql @@ -147,8 +147,6 @@ private module AzureBlobClientConfig implements DataFlow::StateConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } - - Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } module AzureBlobClientFlow = DataFlow::GlobalWithState; From 998de144ea691d0a393cb71f6f277a7fad8eaa12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Tue, 14 Oct 2025 14:08:35 +0200 Subject: [PATCH 073/126] Python/CorsBypass --- python/ql/src/experimental/Security/CWE-346/CorsBypass.ql | 2 -- 1 file changed, 2 deletions(-) diff --git a/python/ql/src/experimental/Security/CWE-346/CorsBypass.ql b/python/ql/src/experimental/Security/CWE-346/CorsBypass.ql index 4bb8440c02c..01e661cb0bb 100644 --- a/python/ql/src/experimental/Security/CWE-346/CorsBypass.ql +++ b/python/ql/src/experimental/Security/CWE-346/CorsBypass.ql @@ -81,8 +81,6 @@ module CorsBypassConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } - - Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } module CorsFlow = TaintTracking::Global; From 1ff24cbee85fd268476d9967d31c7f2bdb0b3014 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Tue, 14 Oct 2025 14:09:52 +0200 Subject: [PATCH 074/126] Python/LdapInsecureAuth python/ql/src/experimental/Security/CWE-522/LdapInsecureAuth.ql --- .../experimental/semmle/python/security/LdapInsecureAuth.qll | 2 -- 1 file changed, 2 deletions(-) diff --git a/python/ql/src/experimental/semmle/python/security/LdapInsecureAuth.qll b/python/ql/src/experimental/semmle/python/security/LdapInsecureAuth.qll index 431f9f9ab73..630543e6f79 100644 --- a/python/ql/src/experimental/semmle/python/security/LdapInsecureAuth.qll +++ b/python/ql/src/experimental/semmle/python/security/LdapInsecureAuth.qll @@ -103,8 +103,6 @@ private module LdapInsecureAuthConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } - - Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } /** Global taint-tracking for detecting "LDAP insecure authentications" vulnerabilities. */ From 6519bd990911f4b2af64bb78b1c2d22b698f5061 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Tue, 14 Oct 2025 14:15:08 +0200 Subject: [PATCH 075/126] Ruby/PolynomialReDoSQuery ruby/ql/src/queries/security/cwe-1333/PolynomialReDoS.ql --- .../ql/lib/codeql/ruby/security/regexp/PolynomialReDoSQuery.qll | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ruby/ql/lib/codeql/ruby/security/regexp/PolynomialReDoSQuery.qll b/ruby/ql/lib/codeql/ruby/security/regexp/PolynomialReDoSQuery.qll index 81179717e01..7ff62771462 100644 --- a/ruby/ql/lib/codeql/ruby/security/regexp/PolynomialReDoSQuery.qll +++ b/ruby/ql/lib/codeql/ruby/security/regexp/PolynomialReDoSQuery.qll @@ -24,6 +24,8 @@ private module PolynomialReDoSConfig implements DataFlow::ConfigSig { predicate observeDiffInformedIncrementalMode() { none() } Location getASelectedSinkLocation(DataFlow::Node sink) { + result = sink.(Sink).getLocation() + or result = sink.(Sink).getHighlight().getLocation() or result = sink.(Sink).getRegExp().getRootTerm().getLocation() From 50f2540db191a3853b8573d20737c8cefbe577d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Tue, 14 Oct 2025 14:19:21 +0200 Subject: [PATCH 076/126] Ruby/ManuallyCheckHttpVerb --- .../manually-check-http-verb/ManuallyCheckHttpVerb.ql | 2 -- 1 file changed, 2 deletions(-) diff --git a/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql b/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql index 80113ee7823..4af2425b1a8 100644 --- a/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql +++ b/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql @@ -88,8 +88,6 @@ private module HttpVerbConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } - - Location getASelectedSourceLocation(DataFlow::Node source) { none() } } private module HttpVerbFlow = TaintTracking::Global; From 495be51ae755274ab86e6330f0b48a4303ec9f7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Tue, 14 Oct 2025 14:19:55 +0200 Subject: [PATCH 077/126] Ruby/WeakParams --- ruby/ql/src/experimental/weak-params/WeakParams.ql | 2 -- 1 file changed, 2 deletions(-) diff --git a/ruby/ql/src/experimental/weak-params/WeakParams.ql b/ruby/ql/src/experimental/weak-params/WeakParams.ql index 2abc151a920..faec728a2dd 100644 --- a/ruby/ql/src/experimental/weak-params/WeakParams.ql +++ b/ruby/ql/src/experimental/weak-params/WeakParams.ql @@ -48,8 +48,6 @@ private module WeakParamsConfig implements DataFlow::ConfigSig { predicate isSink(DataFlow::Node node) { node = any(PersistentWriteAccess a).getValue() } predicate observeDiffInformedIncrementalMode() { any() } - - Location getASelectedSourceLocation(DataFlow::Node source) { none() } } private module WeakParamsFlow = TaintTracking::Global; From 6ede0a795040aafbceba817505fc1c4e7279e56b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Tue, 14 Oct 2025 14:24:40 +0200 Subject: [PATCH 078/126] Ruby/WeakFilePermissions --- ruby/ql/src/queries/security/cwe-732/WeakFilePermissions.ql | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ruby/ql/src/queries/security/cwe-732/WeakFilePermissions.ql b/ruby/ql/src/queries/security/cwe-732/WeakFilePermissions.ql index dbc5db91d99..eef9f9e8f8d 100644 --- a/ruby/ql/src/queries/security/cwe-732/WeakFilePermissions.ql +++ b/ruby/ql/src/queries/security/cwe-732/WeakFilePermissions.ql @@ -60,8 +60,9 @@ private module PermissivePermissionsConfig implements DataFlow::ConfigSig { predicate observeDiffInformedIncrementalMode() { any() } Location getASelectedSinkLocation(DataFlow::Node sink) { - exists(FileSystemPermissionModification mod | - sinkDef(sink, mod) and + exists(FileSystemPermissionModification mod | sinkDef(sink, mod) | + result = sink.getLocation() + or result = mod.getLocation() ) } From 462d8c5dc464f531797a487da066e6855e108b26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Tue, 14 Oct 2025 14:47:36 +0200 Subject: [PATCH 079/126] Shared: update qldoc --- shared/dataflow/codeql/dataflow/DataFlow.qll | 24 +++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/shared/dataflow/codeql/dataflow/DataFlow.qll b/shared/dataflow/codeql/dataflow/DataFlow.qll index 49f84d45b2a..7f9c0194374 100644 --- a/shared/dataflow/codeql/dataflow/DataFlow.qll +++ b/shared/dataflow/codeql/dataflow/DataFlow.qll @@ -466,8 +466,10 @@ module Configs Lang> { * `observeDiffInformedIncrementalMode`). By default, this is the location * of the source itself, but this predicate should include any locations * that are reported as the primary-location of the query or as an - * additional location ("$@" interpolation). For a query that doesn't - * report the source at all, this predicate can be `none()`. + * additional location ("$@" interpolation). Queries with `@kind path-problem` + * that override this predicate should also return the location of the source + * itself. For a query that doesn't report the source at all, this predicate + * should be `none()`. */ default Location getASelectedSourceLocation(Node source) { result = source.getLocation() } @@ -477,8 +479,10 @@ module Configs Lang> { * `observeDiffInformedIncrementalMode`). By default, this is the location * of the sink itself, but this predicate should include any locations * that are reported as the primary-location of the query or as an - * additional location ("$@" interpolation). For a query that doesn't - * report the sink at all, this predicate can be `none()`. + * additional location ("$@" interpolation). Queries with `@kind path-problem` + * that override this predicate should also return the location of the sink + * itself. For a query that doesn't report the sink at all, this predicate + * should be `none()`. */ default Location getASelectedSinkLocation(Node sink) { result = sink.getLocation() } } @@ -615,8 +619,10 @@ module Configs Lang> { * `observeDiffInformedIncrementalMode`). By default, this is the location * of the source itself, but this predicate should include any locations * that are reported as the primary-location of the query or as an - * additional location ("$@" interpolation). For a query that doesn't - * report the source at all, this predicate can be `none()`. + * additional location ("$@" interpolation). Queries with `@kind path-problem` + * that override this predicate should also return the location of the source + * itself. For a query that doesn't report the source at all, this predicate + * should be `none()`. */ default Location getASelectedSourceLocation(Node source) { result = source.getLocation() } @@ -626,8 +632,10 @@ module Configs Lang> { * `observeDiffInformedIncrementalMode`). By default, this is the location * of the sink itself, but this predicate should include any locations * that are reported as the primary-location of the query or as an - * additional location ("$@" interpolation). For a query that doesn't - * report the sink at all, this predicate can be `none()`. + * additional location ("$@" interpolation). Queries with `@kind path-problem` + * that override this predicate should also return the location of the sink + * itself. For a query that doesn't report the sink at all, this predicate + * should be `none()`. */ default Location getASelectedSinkLocation(Node sink) { result = sink.getLocation() } } From 2332cea330ce40e49a2128527ebee06ded4e9bc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Tue, 14 Oct 2025 14:51:42 +0200 Subject: [PATCH 080/126] Swift/CleartextStorageDatabaseQuery swift/ql/src/queries/Security/CWE-311/CleartextStorageDatabase.ql --- .../swift/security/CleartextStorageDatabaseQuery.qll | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/swift/ql/lib/codeql/swift/security/CleartextStorageDatabaseQuery.qll b/swift/ql/lib/codeql/swift/security/CleartextStorageDatabaseQuery.qll index 989d928a8c7..21bcb89efe4 100644 --- a/swift/ql/lib/codeql/swift/security/CleartextStorageDatabaseQuery.qll +++ b/swift/ql/lib/codeql/swift/security/CleartextStorageDatabaseQuery.qll @@ -52,12 +52,9 @@ module CleartextStorageDatabaseConfig implements DataFlow::ConfigSig { predicate observeDiffInformedIncrementalMode() { any() } Location getASelectedSinkLocation(DataFlow::Node sink) { - exists(DataFlow::Node cleanSink | result = cleanSink.getLocation() | - cleanSink = sink.(DataFlow::PostUpdateNode).getPreUpdateNode() - or - not sink instanceof DataFlow::PostUpdateNode and - cleanSink = sink - ) + result = sink.(CleartextStorageDatabaseSink).getLocation() + or + result = sink.(DataFlow::PostUpdateNode).getPreUpdateNode().getLocation() } } From c190fae737e6f0c8501dd41ad43fe72d5f102cf4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Tue, 14 Oct 2025 14:55:28 +0200 Subject: [PATCH 081/126] Swift/CleartextStoragePreferencesQuery swift/ql/src/queries/Security/CWE-312/CleartextStoragePreferences.ql --- .../swift/security/CleartextStoragePreferencesQuery.qll | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/swift/ql/lib/codeql/swift/security/CleartextStoragePreferencesQuery.qll b/swift/ql/lib/codeql/swift/security/CleartextStoragePreferencesQuery.qll index c3665589482..a0d3414f249 100644 --- a/swift/ql/lib/codeql/swift/security/CleartextStoragePreferencesQuery.qll +++ b/swift/ql/lib/codeql/swift/security/CleartextStoragePreferencesQuery.qll @@ -34,12 +34,9 @@ module CleartextStoragePreferencesConfig implements DataFlow::ConfigSig { predicate observeDiffInformedIncrementalMode() { any() } Location getASelectedSinkLocation(DataFlow::Node sink) { - exists(DataFlow::Node cleanSink | result = cleanSink.getLocation() | - cleanSink = sink.(DataFlow::PostUpdateNode).getPreUpdateNode() - or - not sink instanceof DataFlow::PostUpdateNode and - cleanSink = sink - ) + result = sink.(CleartextStoragePreferencesSink).getLocation() + or + result = sink.(DataFlow::PostUpdateNode).getPreUpdateNode().getLocation() } } From 6c52d4ba914854022afb27ed7ed282e3b113cbba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Tue, 14 Oct 2025 14:56:45 +0200 Subject: [PATCH 082/126] Swift/ConstantPasswordQuery swift/ql/src/queries/Security/CWE-259/ConstantPassword.ql --- swift/ql/lib/codeql/swift/security/ConstantPasswordQuery.qll | 2 -- 1 file changed, 2 deletions(-) diff --git a/swift/ql/lib/codeql/swift/security/ConstantPasswordQuery.qll b/swift/ql/lib/codeql/swift/security/ConstantPasswordQuery.qll index c0d4d7cd896..91d46b764df 100644 --- a/swift/ql/lib/codeql/swift/security/ConstantPasswordQuery.qll +++ b/swift/ql/lib/codeql/swift/security/ConstantPasswordQuery.qll @@ -40,8 +40,6 @@ module ConstantPasswordConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } - - Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } module ConstantPasswordFlow = TaintTracking::Global; From 7ba7c435f2a2ea2bebbc3ed7e25362e64a081b2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Tue, 14 Oct 2025 14:58:37 +0200 Subject: [PATCH 083/126] Swift/InsufficientHashIterationsQuery swift/ql/src/queries/Security/CWE-916/InsufficientHashIterations.ql --- .../codeql/swift/security/InsufficientHashIterationsQuery.qll | 2 -- 1 file changed, 2 deletions(-) diff --git a/swift/ql/lib/codeql/swift/security/InsufficientHashIterationsQuery.qll b/swift/ql/lib/codeql/swift/security/InsufficientHashIterationsQuery.qll index f1f21dabe03..0a7fea3d3c5 100644 --- a/swift/ql/lib/codeql/swift/security/InsufficientHashIterationsQuery.qll +++ b/swift/ql/lib/codeql/swift/security/InsufficientHashIterationsQuery.qll @@ -36,8 +36,6 @@ module InsufficientHashIterationsConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } - - Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } module InsufficientHashIterationsFlow = TaintTracking::Global; From 5a6f731ab7f3ebd9b64e9b8bb9ec7827ec20747b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Tue, 14 Oct 2025 14:59:10 +0200 Subject: [PATCH 084/126] Swift/StaticInitializationVectorQuery swift/ql/src/queries/Security/CWE-1204/StaticInitializationVector.ql --- .../codeql/swift/security/StaticInitializationVectorQuery.qll | 2 -- 1 file changed, 2 deletions(-) diff --git a/swift/ql/lib/codeql/swift/security/StaticInitializationVectorQuery.qll b/swift/ql/lib/codeql/swift/security/StaticInitializationVectorQuery.qll index fb6e21cac52..3c4359e02db 100644 --- a/swift/ql/lib/codeql/swift/security/StaticInitializationVectorQuery.qll +++ b/swift/ql/lib/codeql/swift/security/StaticInitializationVectorQuery.qll @@ -42,8 +42,6 @@ module StaticInitializationVectorConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } - - Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } module StaticInitializationVectorFlow = TaintTracking::Global; From cd86e7d6f5b44240f514101884140cd1e55e95c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Tue, 14 Oct 2025 15:04:00 +0200 Subject: [PATCH 085/126] Swift/StringLengthConflationQuery swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql --- .../lib/codeql/swift/security/StringLengthConflationQuery.qll | 2 -- 1 file changed, 2 deletions(-) diff --git a/swift/ql/lib/codeql/swift/security/StringLengthConflationQuery.qll b/swift/ql/lib/codeql/swift/security/StringLengthConflationQuery.qll index 5ddcd2333e2..eb17306f22f 100644 --- a/swift/ql/lib/codeql/swift/security/StringLengthConflationQuery.qll +++ b/swift/ql/lib/codeql/swift/security/StringLengthConflationQuery.qll @@ -41,8 +41,6 @@ module StringLengthConflationConfig implements DataFlow::StateConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } - - Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } /** From 895bd93062e95614da38a75ed773773e205e03bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Tue, 14 Oct 2025 15:04:58 +0200 Subject: [PATCH 086/126] Swift/UnsafeJsEvalQuery swift/ql/src/queries/Security/CWE-094/UnsafeJsEval.ql --- swift/ql/lib/codeql/swift/security/UnsafeJsEvalQuery.qll | 2 -- 1 file changed, 2 deletions(-) diff --git a/swift/ql/lib/codeql/swift/security/UnsafeJsEvalQuery.qll b/swift/ql/lib/codeql/swift/security/UnsafeJsEvalQuery.qll index e82db8f4e7b..92b061b2af4 100644 --- a/swift/ql/lib/codeql/swift/security/UnsafeJsEvalQuery.qll +++ b/swift/ql/lib/codeql/swift/security/UnsafeJsEvalQuery.qll @@ -24,8 +24,6 @@ module UnsafeJsEvalConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } - - Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } /** From 8a750b3125de037323663c32cb0c3651cc06f04b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Tue, 14 Oct 2025 15:06:21 +0200 Subject: [PATCH 087/126] Swift/UnsafeUnpackQuery swift/ql/src/experimental/Security/CWE-022/UnsafeUnpack.ql --- swift/ql/lib/codeql/swift/security/UnsafeUnpackQuery.qll | 2 -- 1 file changed, 2 deletions(-) diff --git a/swift/ql/lib/codeql/swift/security/UnsafeUnpackQuery.qll b/swift/ql/lib/codeql/swift/security/UnsafeUnpackQuery.qll index a8485ff9947..e79bce5ba14 100644 --- a/swift/ql/lib/codeql/swift/security/UnsafeUnpackQuery.qll +++ b/swift/ql/lib/codeql/swift/security/UnsafeUnpackQuery.qll @@ -26,8 +26,6 @@ module UnsafeUnpackConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } - - Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } /** From 1f53ffbdd7b12042931983c7be08a1eda580c33c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 15 Oct 2025 12:42:24 +0200 Subject: [PATCH 088/126] Actions/ArtifactPoisoningQuery actions/ql/src/Security/CWE-829/ArtifactPoisoningCritical.ql actions/ql/src/Security/CWE-829/ArtifactPoisoningMedium.ql --- .../ql/lib/codeql/actions/security/ArtifactPoisoningQuery.qll | 2 -- 1 file changed, 2 deletions(-) diff --git a/actions/ql/lib/codeql/actions/security/ArtifactPoisoningQuery.qll b/actions/ql/lib/codeql/actions/security/ArtifactPoisoningQuery.qll index 9f3ed33db96..af3b9d62367 100644 --- a/actions/ql/lib/codeql/actions/security/ArtifactPoisoningQuery.qll +++ b/actions/ql/lib/codeql/actions/security/ArtifactPoisoningQuery.qll @@ -333,8 +333,6 @@ private module ArtifactPoisoningConfig implements DataFlow::ConfigSig { predicate observeDiffInformedIncrementalMode() { any() } - Location getASelectedSourceLocation(DataFlow::Node source) { none() } - Location getASelectedSinkLocation(DataFlow::Node sink) { result = sink.getLocation() or From edc72d29d772c1fcbd7a821254a3b6995f899af1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 15 Oct 2025 12:50:11 +0200 Subject: [PATCH 089/126] Actions/EnvPathInjectionQuery actions/ql/src/Security/CWE-077/EnvPathInjectionMedium.ql actions/ql/src/Security/CWE-077/EnvPathInjectionCritical.ql --- .../ql/lib/codeql/actions/security/EnvPathInjectionQuery.qll | 2 -- 1 file changed, 2 deletions(-) diff --git a/actions/ql/lib/codeql/actions/security/EnvPathInjectionQuery.qll b/actions/ql/lib/codeql/actions/security/EnvPathInjectionQuery.qll index 46c1c4d3200..e97bbbb2b80 100644 --- a/actions/ql/lib/codeql/actions/security/EnvPathInjectionQuery.qll +++ b/actions/ql/lib/codeql/actions/security/EnvPathInjectionQuery.qll @@ -130,8 +130,6 @@ private module EnvPathInjectionConfig implements DataFlow::ConfigSig { predicate observeDiffInformedIncrementalMode() { any() } - Location getASelectedSourceLocation(DataFlow::Node source) { none() } - Location getASelectedSinkLocation(DataFlow::Node sink) { result = sink.getLocation() or From c40223319cdc197bc3fe2ed3a4156052de5b6f08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 15 Oct 2025 12:52:07 +0200 Subject: [PATCH 090/126] Actions/EnvVarInjectionQuery actions/ql/src/Security/CWE-077/EnvVarInjectionMedium.ql actions/ql/src/Security/CWE-077/EnvVarInjectionCritical.ql --- actions/ql/lib/codeql/actions/security/EnvVarInjectionQuery.qll | 2 -- 1 file changed, 2 deletions(-) diff --git a/actions/ql/lib/codeql/actions/security/EnvVarInjectionQuery.qll b/actions/ql/lib/codeql/actions/security/EnvVarInjectionQuery.qll index ea8a800ef3f..40810477d92 100644 --- a/actions/ql/lib/codeql/actions/security/EnvVarInjectionQuery.qll +++ b/actions/ql/lib/codeql/actions/security/EnvVarInjectionQuery.qll @@ -184,8 +184,6 @@ private module EnvVarInjectionConfig implements DataFlow::ConfigSig { predicate observeDiffInformedIncrementalMode() { any() } - Location getASelectedSourceLocation(DataFlow::Node source) { none() } - Location getASelectedSinkLocation(DataFlow::Node sink) { result = sink.getLocation() or From 62fde8f6e773f801a38f27398eb3f0a8c0784820 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 15 Oct 2025 13:02:36 +0200 Subject: [PATCH 091/126] Actions/ArgumentInjectionQuery actions/ql/src/experimental/Security/CWE-088/ArgumentInjectionCritical.ql actions/ql/src/experimental/Security/CWE-088/ArgumentInjectionMedium.ql --- .../ql/lib/codeql/actions/security/ArgumentInjectionQuery.qll | 2 -- 1 file changed, 2 deletions(-) diff --git a/actions/ql/lib/codeql/actions/security/ArgumentInjectionQuery.qll b/actions/ql/lib/codeql/actions/security/ArgumentInjectionQuery.qll index 1795e9493cb..7d3334adcf3 100644 --- a/actions/ql/lib/codeql/actions/security/ArgumentInjectionQuery.qll +++ b/actions/ql/lib/codeql/actions/security/ArgumentInjectionQuery.qll @@ -100,8 +100,6 @@ private module ArgumentInjectionConfig implements DataFlow::ConfigSig { predicate observeDiffInformedIncrementalMode() { any() } - Location getASelectedSourceLocation(DataFlow::Node source) { none() } - Location getASelectedSinkLocation(DataFlow::Node sink) { result = sink.getLocation() or From 974d174757808eaaa7a2784b6c12f70d03019907 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 15 Oct 2025 13:05:51 +0200 Subject: [PATCH 092/126] Actions/CodeInjectionQuery actions/ql/src/Security/CWE-094/CodeInjectionMedium.ql actions/ql/src/Security/CWE-094/CodeInjectionCritical.ql --- actions/ql/lib/codeql/actions/security/CodeInjectionQuery.qll | 2 -- 1 file changed, 2 deletions(-) diff --git a/actions/ql/lib/codeql/actions/security/CodeInjectionQuery.qll b/actions/ql/lib/codeql/actions/security/CodeInjectionQuery.qll index c58e3949a02..0f77acc2444 100644 --- a/actions/ql/lib/codeql/actions/security/CodeInjectionQuery.qll +++ b/actions/ql/lib/codeql/actions/security/CodeInjectionQuery.qll @@ -80,8 +80,6 @@ private module CodeInjectionConfig implements DataFlow::ConfigSig { predicate observeDiffInformedIncrementalMode() { any() } - Location getASelectedSourceLocation(DataFlow::Node source) { none() } - Location getASelectedSinkLocation(DataFlow::Node sink) { result = sink.getLocation() or From 464f6cb096dbcbaf44ad6811fd941d40249cb48e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 15 Oct 2025 13:17:29 +0200 Subject: [PATCH 093/126] C++/ConstantSizeArrayOffByOne --- .../Security/CWE/CWE-193/ConstantSizeArrayOffByOne.ql | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cpp/ql/src/experimental/Security/CWE/CWE-193/ConstantSizeArrayOffByOne.ql b/cpp/ql/src/experimental/Security/CWE/CWE-193/ConstantSizeArrayOffByOne.ql index b7b2de6000a..58f5dc2ade4 100644 --- a/cpp/ql/src/experimental/Security/CWE/CWE-193/ConstantSizeArrayOffByOne.ql +++ b/cpp/ql/src/experimental/Security/CWE/CWE-193/ConstantSizeArrayOffByOne.ql @@ -187,12 +187,14 @@ module ArrayAddressToDerefConfig implements DataFlow::StateConfigSig { predicate observeDiffInformedIncrementalMode() { any() } Location getASelectedSourceLocation(DataFlow::Node source) { - exists(Variable v | result = v.getLocation() | isSourceImpl(source, v)) + exists(Variable v | result = v.getLocation() or result = source.getLocation() | + isSourceImpl(source, v) + ) } Location getASelectedSinkLocation(DataFlow::Node sink) { exists(PointerArithmeticInstruction pai, Instruction deref | - result = [pai, deref].getLocation() and + result = [[pai, deref].getLocation(), sink.getLocation()] and isInvalidPointerDerefSink2(sink, deref, _) and isSink(sink, ArrayAddressToDerefConfig::TOverflowArithmetic(pai)) ) From 65d79ff6fc624b0653d8797eb0a5ec6a04a5a272 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 15 Oct 2025 13:20:18 +0200 Subject: [PATCH 094/126] C++/ExecTainted --- cpp/ql/src/Security/CWE/CWE-078/ExecTainted.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/src/Security/CWE/CWE-078/ExecTainted.ql b/cpp/ql/src/Security/CWE/CWE-078/ExecTainted.ql index 9119f5271fe..0e5f0f36f10 100644 --- a/cpp/ql/src/Security/CWE/CWE-078/ExecTainted.ql +++ b/cpp/ql/src/Security/CWE/CWE-078/ExecTainted.ql @@ -155,7 +155,7 @@ module ExecTaintConfig implements DataFlow::StateConfigSig { Location getASelectedSinkLocation(DataFlow::Node sink) { exists(DataFlow::Node concatResult, Expr command, ExecState state | - result = [concatResult.getLocation(), command.getLocation()] and + result = [concatResult.getLocation(), command.getLocation(), sink.getLocation()] and isSink(sink, state) and isSinkImpl(sink, command, _) and concatResult = state.getOutgoingNode() From a4ac0392a6bc9cb77754b42e70e577723ec74e39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 15 Oct 2025 13:30:09 +0200 Subject: [PATCH 095/126] C++/OverflowDestination --- cpp/ql/src/Critical/OverflowDestination.ql | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/cpp/ql/src/Critical/OverflowDestination.ql b/cpp/ql/src/Critical/OverflowDestination.ql index df14cafd152..f3f25dfa822 100644 --- a/cpp/ql/src/Critical/OverflowDestination.ql +++ b/cpp/ql/src/Critical/OverflowDestination.ql @@ -85,10 +85,8 @@ module OverflowDestinationConfig implements DataFlow::ConfigSig { predicate observeDiffInformedIncrementalMode() { any() } - Location getASelectedSourceLocation(DataFlow::Node source) { none() } - Location getASelectedSinkLocation(DataFlow::Node sink) { - exists(FunctionCall fc | result = fc.getLocation() | + exists(FunctionCall fc | result = [fc.getLocation(), sink.getLocation()] | sourceSized(fc, sink.asIndirectConvertedExpr()) ) } From 2756e8255fe246ec4939fdaac3cd6ab56b80cec1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 15 Oct 2025 13:30:40 +0200 Subject: [PATCH 096/126] C++/UnboundedWrite --- cpp/ql/src/Security/CWE/CWE-120/UnboundedWrite.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/src/Security/CWE/CWE-120/UnboundedWrite.ql b/cpp/ql/src/Security/CWE/CWE-120/UnboundedWrite.ql index ff9bc59b716..4d33ede9315 100644 --- a/cpp/ql/src/Security/CWE/CWE-120/UnboundedWrite.ql +++ b/cpp/ql/src/Security/CWE/CWE-120/UnboundedWrite.ql @@ -128,7 +128,7 @@ module Config implements DataFlow::ConfigSig { predicate observeDiffInformedIncrementalMode() { any() } Location getASelectedSinkLocation(DataFlow::Node sink) { - exists(BufferWrite bw | result = bw.getLocation() | isSink(sink, bw, _)) + exists(BufferWrite bw | result = [bw.getLocation(), sink.getLocation()] | isSink(sink, bw, _)) } } From f7a1a4cf755a0213e9b423ad3d1ce0baefd14056 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 15 Oct 2025 13:37:06 +0200 Subject: [PATCH 097/126] C++/NonConstantFormat --- cpp/ql/src/Likely Bugs/Format/NonConstantFormat.ql | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/cpp/ql/src/Likely Bugs/Format/NonConstantFormat.ql b/cpp/ql/src/Likely Bugs/Format/NonConstantFormat.ql index 34817ff9229..ed39b8da5cd 100644 --- a/cpp/ql/src/Likely Bugs/Format/NonConstantFormat.ql +++ b/cpp/ql/src/Likely Bugs/Format/NonConstantFormat.ql @@ -171,12 +171,10 @@ module NonConstFlowConfig implements DataFlow::ConfigSig { predicate observeDiffInformedIncrementalMode() { any() } - Location getASelectedSourceLocation(DataFlow::Node source) { none() } - Location getASelectedSinkLocation(DataFlow::Node sink) { - result = sink.getLocation() - or - exists(FormattingFunctionCall call, Expr formatString | result = call.getLocation() | + exists(FormattingFunctionCall call, Expr formatString | + result = [call.getLocation(), sink.getLocation()] + | isSinkImpl(sink, formatString) and call.getArgument(call.getFormatParameterIndex()) = formatString ) From 0ed27f4e81ebc8d1d3d57eae32f3cee33712715b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 15 Oct 2025 13:39:20 +0200 Subject: [PATCH 098/126] C++/CleartextSqliteDatabase --- cpp/ql/src/Security/CWE/CWE-313/CleartextSqliteDatabase.ql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cpp/ql/src/Security/CWE/CWE-313/CleartextSqliteDatabase.ql b/cpp/ql/src/Security/CWE/CWE-313/CleartextSqliteDatabase.ql index a6f567600f9..7cd146e2cac 100644 --- a/cpp/ql/src/Security/CWE/CWE-313/CleartextSqliteDatabase.ql +++ b/cpp/ql/src/Security/CWE/CWE-313/CleartextSqliteDatabase.ql @@ -127,13 +127,13 @@ module FromSensitiveConfig implements DataFlow::ConfigSig { predicate observeDiffInformedIncrementalMode() { any() } Location getASelectedSourceLocation(DataFlow::Node source) { - exists(SensitiveExpr sensitive | result = sensitive.getLocation() | + exists(SensitiveExpr sensitive | result = [sensitive.getLocation(), source.getLocation()] | isSourceImpl(source, sensitive) ) } Location getASelectedSinkLocation(DataFlow::Node sink) { - exists(SqliteFunctionCall sqliteCall | result = sqliteCall.getLocation() | + exists(SqliteFunctionCall sqliteCall | result = [sqliteCall.getLocation(), sink.getLocation()] | isSinkImpl(sink, sqliteCall, _) ) } From 17b261a506e1b58bee23c1fc2e3cdebf8507b94b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 15 Oct 2025 13:52:37 +0200 Subject: [PATCH 099/126] C++/AuthenticationBypass --- cpp/ql/src/Security/CWE/CWE-290/AuthenticationBypass.ql | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cpp/ql/src/Security/CWE/CWE-290/AuthenticationBypass.ql b/cpp/ql/src/Security/CWE/CWE-290/AuthenticationBypass.ql index 74386b30bba..8ee429b8c52 100644 --- a/cpp/ql/src/Security/CWE/CWE-290/AuthenticationBypass.ql +++ b/cpp/ql/src/Security/CWE/CWE-290/AuthenticationBypass.ql @@ -76,7 +76,9 @@ module Config implements DataFlow::ConfigSig { predicate observeDiffInformedIncrementalMode() { any() } Location getASelectedSinkLocation(DataFlow::Node sink) { - exists(Expr condition | result = condition.getLocation() | isSink(sink, condition)) + exists(Expr condition | result = [condition.getLocation(), sink.getLocation()] | + isSink(sink, condition) + ) } } From d89aa0f19daf60e06a8c44c8ba7243c900831e7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 15 Oct 2025 14:03:40 +0200 Subject: [PATCH 100/126] C++/CleartextBufferWrite --- cpp/ql/src/Security/CWE/CWE-311/CleartextBufferWrite.ql | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cpp/ql/src/Security/CWE/CWE-311/CleartextBufferWrite.ql b/cpp/ql/src/Security/CWE/CWE-311/CleartextBufferWrite.ql index c671ad5af7f..c03c433a532 100644 --- a/cpp/ql/src/Security/CWE/CWE-311/CleartextBufferWrite.ql +++ b/cpp/ql/src/Security/CWE/CWE-311/CleartextBufferWrite.ql @@ -51,7 +51,9 @@ module ToBufferConfig implements DataFlow::ConfigSig { predicate observeDiffInformedIncrementalMode() { any() } Location getASelectedSinkLocation(DataFlow::Node sink) { - exists(SensitiveBufferWrite w | result = w.getLocation() | isSinkImpl(sink, w)) + exists(SensitiveBufferWrite w | result = [w.getLocation(), sink.getLocation()] | + isSinkImpl(sink, w) + ) } } From b0180409f41f58e0a528ff4046b82987a7f1e0a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 15 Oct 2025 14:04:32 +0200 Subject: [PATCH 101/126] C++/CleartextFileWrite --- cpp/ql/src/Security/CWE/CWE-311/CleartextFileWrite.ql | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cpp/ql/src/Security/CWE/CWE-311/CleartextFileWrite.ql b/cpp/ql/src/Security/CWE/CWE-311/CleartextFileWrite.ql index 6aff19ceb4a..17f4b7ae0fd 100644 --- a/cpp/ql/src/Security/CWE/CWE-311/CleartextFileWrite.ql +++ b/cpp/ql/src/Security/CWE/CWE-311/CleartextFileWrite.ql @@ -35,11 +35,13 @@ module FromSensitiveConfig implements DataFlow::ConfigSig { predicate observeDiffInformedIncrementalMode() { any() } Location getASelectedSourceLocation(DataFlow::Node sourceNode) { - exists(SensitiveExpr source | result = source.getLocation() | isSourceImpl(sourceNode, source)) + exists(SensitiveExpr source | result = [source.getLocation(), sourceNode.getLocation()] | + isSourceImpl(sourceNode, source) + ) } Location getASelectedSinkLocation(DataFlow::Node sink) { - exists(FileWrite w | result = w.getLocation() | isSinkImpl(sink, w, _)) + exists(FileWrite w | result = [w.getLocation(), sink.getLocation()] | isSinkImpl(sink, w, _)) } } From bbe2bf2b7fa0a1a7133f6b2174a530a00a487b20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 15 Oct 2025 14:05:15 +0200 Subject: [PATCH 102/126] C++/CleartextTransmission --- cpp/ql/src/Security/CWE/CWE-311/CleartextTransmission.ql | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cpp/ql/src/Security/CWE/CWE-311/CleartextTransmission.ql b/cpp/ql/src/Security/CWE/CWE-311/CleartextTransmission.ql index 10bb10d6a2b..01d078cf545 100644 --- a/cpp/ql/src/Security/CWE/CWE-311/CleartextTransmission.ql +++ b/cpp/ql/src/Security/CWE/CWE-311/CleartextTransmission.ql @@ -249,7 +249,9 @@ module FromSensitiveConfig implements DataFlow::ConfigSig { predicate observeDiffInformedIncrementalMode() { any() } Location getASelectedSinkLocation(DataFlow::Node sink) { - exists(NetworkSendRecv networkSendRecv | result = networkSendRecv.getLocation() | + exists(NetworkSendRecv networkSendRecv | + result = [networkSendRecv.getLocation(), sink.getLocation()] + | isSinkSendRecv(sink, networkSendRecv) ) } From 1321cbb021627fe4b71d7eb1c48cd8eaf94dd971 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 15 Oct 2025 14:10:12 +0200 Subject: [PATCH 103/126] C++/DecompressionBombs --- .../src/experimental/Security/CWE/CWE-409/DecompressionBombs.ql | 2 -- 1 file changed, 2 deletions(-) diff --git a/cpp/ql/src/experimental/Security/CWE/CWE-409/DecompressionBombs.ql b/cpp/ql/src/experimental/Security/CWE/CWE-409/DecompressionBombs.ql index fbeb4cde5fd..ec4ba042cb7 100644 --- a/cpp/ql/src/experimental/Security/CWE/CWE-409/DecompressionBombs.ql +++ b/cpp/ql/src/experimental/Security/CWE/CWE-409/DecompressionBombs.ql @@ -31,8 +31,6 @@ module DecompressionTaintConfig implements DataFlow::ConfigSig { predicate observeDiffInformedIncrementalMode() { any() } - Location getASelectedSourceLocation(DataFlow::Node source) { none() } - Location getASelectedSinkLocation(DataFlow::Node sink) { exists(FunctionCall fc | result = [sink.getLocation(), fc.getLocation()] | isSink(fc, sink)) } From f3d51e01513c643cefa4e5e9c6c8e291dfd8d98a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 15 Oct 2025 14:15:43 +0200 Subject: [PATCH 104/126] C++/ArithmeticUncontrolled --- cpp/ql/src/Security/CWE/CWE-190/ArithmeticUncontrolled.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/src/Security/CWE/CWE-190/ArithmeticUncontrolled.ql b/cpp/ql/src/Security/CWE/CWE-190/ArithmeticUncontrolled.ql index 64705f078c6..55158ccbf72 100644 --- a/cpp/ql/src/Security/CWE/CWE-190/ArithmeticUncontrolled.ql +++ b/cpp/ql/src/Security/CWE/CWE-190/ArithmeticUncontrolled.ql @@ -124,7 +124,7 @@ module UncontrolledArithConfig implements DataFlow::ConfigSig { predicate observeDiffInformedIncrementalMode() { any() } Location getASelectedSourceLocation(DataFlow::Node source) { - result = getExpr(source).getLocation() + result = [getExpr(source).getLocation(), source.getLocation()] } } From a65d4d59975bd653adcd004d4ae108ef54d44dfb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 15 Oct 2025 14:20:24 +0200 Subject: [PATCH 105/126] C++/TaintedAllocationSize --- cpp/ql/src/Security/CWE/CWE-190/TaintedAllocationSize.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/src/Security/CWE/CWE-190/TaintedAllocationSize.ql b/cpp/ql/src/Security/CWE/CWE-190/TaintedAllocationSize.ql index 0149f483cc1..cf3542ebae5 100644 --- a/cpp/ql/src/Security/CWE/CWE-190/TaintedAllocationSize.ql +++ b/cpp/ql/src/Security/CWE/CWE-190/TaintedAllocationSize.ql @@ -95,7 +95,7 @@ module TaintedAllocationSizeConfig implements DataFlow::ConfigSig { predicate observeDiffInformedIncrementalMode() { any() } Location getASelectedSinkLocation(DataFlow::Node sink) { - exists(Expr alloc | result = alloc.getLocation() | allocSink(alloc, sink)) + exists(Expr alloc | result = [alloc.getLocation(), sink.getLocation()] | allocSink(alloc, sink)) } } From ec63547925ea5173ca55df7c891317ea8faa7db9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 15 Oct 2025 14:35:13 +0200 Subject: [PATCH 106/126] C++/UseOfHttp --- cpp/ql/src/Security/CWE/CWE-319/UseOfHttp.ql | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/cpp/ql/src/Security/CWE/CWE-319/UseOfHttp.ql b/cpp/ql/src/Security/CWE/CWE-319/UseOfHttp.ql index d12340035bd..f6db506f47c 100644 --- a/cpp/ql/src/Security/CWE/CWE-319/UseOfHttp.ql +++ b/cpp/ql/src/Security/CWE/CWE-319/UseOfHttp.ql @@ -91,10 +91,8 @@ module HttpStringToUrlOpenConfig implements DataFlow::ConfigSig { predicate observeDiffInformedIncrementalMode() { any() } Location getASelectedSourceLocation(DataFlow::Node source) { - result = source.asIndirectExpr().getLocation() + result = [source.asIndirectExpr().getLocation(), source.getLocation()] } - - Location getASelectedSinkLocation(DataFlow::Node sink) { none() } } module HttpStringToUrlOpen = TaintTracking::Global; From d41268fc843732e5469dd3af2897796d11f73f03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 15 Oct 2025 14:37:52 +0200 Subject: [PATCH 107/126] Go/UnhandledCloseWritableHandle --- go/ql/src/InconsistentCode/UnhandledCloseWritableHandle.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go/ql/src/InconsistentCode/UnhandledCloseWritableHandle.ql b/go/ql/src/InconsistentCode/UnhandledCloseWritableHandle.ql index 48e4f98fdb2..25b1c8ae8fc 100644 --- a/go/ql/src/InconsistentCode/UnhandledCloseWritableHandle.ql +++ b/go/ql/src/InconsistentCode/UnhandledCloseWritableHandle.ql @@ -132,7 +132,7 @@ module UnhandledFileCloseConfig implements DataFlow::ConfigSig { predicate observeDiffInformedIncrementalMode() { any() } Location getASelectedSourceLocation(DataFlow::Node source) { - exists(DataFlow::CallNode openCall | result = openCall.getLocation() | + exists(DataFlow::CallNode openCall | result = [openCall.getLocation(), source.getLocation()] | isWritableFileHandle(source, openCall) ) } From 0f0bd0f455cf6ea8361b026c5a05e5c3a1010fcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 15 Oct 2025 14:41:36 +0200 Subject: [PATCH 108/126] Go/SSRF go/ql/src/experimental/CWE-918/SSRF.ql --- go/ql/src/experimental/CWE-918/SSRF.qll | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/go/ql/src/experimental/CWE-918/SSRF.qll b/go/ql/src/experimental/CWE-918/SSRF.qll index f0d3cc935a1..998ce83ba74 100644 --- a/go/ql/src/experimental/CWE-918/SSRF.qll +++ b/go/ql/src/experimental/CWE-918/SSRF.qll @@ -33,9 +33,9 @@ module ServerSideRequestForgery { predicate observeDiffInformedIncrementalMode() { any() } - Location getASelectedSourceLocation(DataFlow::Node source) { none() } - Location getASelectedSinkLocation(DataFlow::Node sink) { + result = sink.(Sink).getLocation() + or result = sink.(Sink).getARequest().getLocation() } } From 4952cb27fbb7a5818baf6e6976023f5e0176851c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 15 Oct 2025 14:54:05 +0200 Subject: [PATCH 109/126] Rust/AccessAfterLifetime --- rust/ql/src/queries/security/CWE-825/AccessAfterLifetime.ql | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/rust/ql/src/queries/security/CWE-825/AccessAfterLifetime.ql b/rust/ql/src/queries/security/CWE-825/AccessAfterLifetime.ql index fce64dcf0ff..65c6d861638 100644 --- a/rust/ql/src/queries/security/CWE-825/AccessAfterLifetime.ql +++ b/rust/ql/src/queries/security/CWE-825/AccessAfterLifetime.ql @@ -32,7 +32,9 @@ module AccessAfterLifetimeConfig implements DataFlow::ConfigSig { predicate observeDiffInformedIncrementalMode() { any() } Location getASelectedSourceLocation(DataFlow::Node source) { - exists(Variable target, DataFlow::Node sink | result = target.getLocation() | + exists(Variable target, DataFlow::Node sink | + result = [target.getLocation(), source.getLocation()] + | isSink(sink) and narrowDereferenceAfterLifetime(source, sink, target) ) From 8e0c453c37262447878f407121d4f0d1c01b5fe9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 15 Oct 2025 15:07:34 +0200 Subject: [PATCH 110/126] Rust/InsecureCookie --- rust/ql/src/queries/security/CWE-614/InsecureCookie.ql | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/rust/ql/src/queries/security/CWE-614/InsecureCookie.ql b/rust/ql/src/queries/security/CWE-614/InsecureCookie.ql index e2d7288db45..3fb4924470f 100644 --- a/rust/ql/src/queries/security/CWE-614/InsecureCookie.ql +++ b/rust/ql/src/queries/security/CWE-614/InsecureCookie.ql @@ -74,7 +74,9 @@ module PartitionedCookieConfig implements DataFlow::ConfigSig { node instanceof Barrier } - predicate observeDiffInformedIncrementalMode() { any() } + predicate observeDiffInformedIncrementalMode() { + none() // only used negatively + } } module InsecureCookieFlow = TaintTracking::Global; From 96e153676919539aa42ab7477309600506f31965 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 15 Oct 2025 16:29:39 +0200 Subject: [PATCH 111/126] C++/SqlTainted --- cpp/ql/src/Security/CWE/CWE-089/SqlTainted.ql | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cpp/ql/src/Security/CWE/CWE-089/SqlTainted.ql b/cpp/ql/src/Security/CWE/CWE-089/SqlTainted.ql index 5a823b8672c..5d08afbe304 100644 --- a/cpp/ql/src/Security/CWE/CWE-089/SqlTainted.ql +++ b/cpp/ql/src/Security/CWE/CWE-089/SqlTainted.ql @@ -58,7 +58,9 @@ module SqlTaintedConfig implements DataFlow::ConfigSig { predicate observeDiffInformedIncrementalMode() { any() } Location getASelectedSinkLocation(DataFlow::Node sink) { - exists(Expr taintedArg | result = taintedArg.getLocation() | taintedArg = asSinkExpr(sink)) + exists(Expr taintedArg | result = [taintedArg.getLocation(), sink.getLocation()] | + taintedArg = asSinkExpr(sink) + ) } } From a0975e7e196691c313b268371dd9989d9474bee3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Thu, 16 Oct 2025 14:19:05 +0200 Subject: [PATCH 112/126] Constrain location overrides to actual sources/sinks --- .../Security/CWE/CWE-190/ArithmeticUncontrolled.ql | 1 + cpp/ql/src/Security/CWE/CWE-319/UseOfHttp.ql | 1 + .../code/java/security/ArithmeticTaintedQuery.qll | 12 ++++++------ .../java/security/ArithmeticUncontrolledQuery.qll | 12 ++++++------ .../java/security/BrokenCryptoAlgorithmQuery.qll | 8 +++++--- .../semmle/code/java/security/CommandLineQuery.qll | 8 +++++--- .../code/java/security/ConditionalBypassQuery.qll | 4 +--- ...lidationOfArrayConstructionCodeSpecifiedQuery.qll | 7 ++++--- .../ImproperValidationOfArrayConstructionQuery.qll | 7 ++++--- .../java/security/UnsafeDeserializationQuery.qll | 2 +- .../ShellCommandInjectionFromEnvironmentQuery.qll | 4 +--- .../swift/security/CleartextStorageDatabaseQuery.qll | 6 +++++- .../security/CleartextStoragePreferencesQuery.qll | 6 +++++- 13 files changed, 45 insertions(+), 33 deletions(-) diff --git a/cpp/ql/src/Security/CWE/CWE-190/ArithmeticUncontrolled.ql b/cpp/ql/src/Security/CWE/CWE-190/ArithmeticUncontrolled.ql index 55158ccbf72..3126573ac5a 100644 --- a/cpp/ql/src/Security/CWE/CWE-190/ArithmeticUncontrolled.ql +++ b/cpp/ql/src/Security/CWE/CWE-190/ArithmeticUncontrolled.ql @@ -124,6 +124,7 @@ module UncontrolledArithConfig implements DataFlow::ConfigSig { predicate observeDiffInformedIncrementalMode() { any() } Location getASelectedSourceLocation(DataFlow::Node source) { + isSource(source) and result = [getExpr(source).getLocation(), source.getLocation()] } } diff --git a/cpp/ql/src/Security/CWE/CWE-319/UseOfHttp.ql b/cpp/ql/src/Security/CWE/CWE-319/UseOfHttp.ql index f6db506f47c..682d8387433 100644 --- a/cpp/ql/src/Security/CWE/CWE-319/UseOfHttp.ql +++ b/cpp/ql/src/Security/CWE/CWE-319/UseOfHttp.ql @@ -91,6 +91,7 @@ module HttpStringToUrlOpenConfig implements DataFlow::ConfigSig { predicate observeDiffInformedIncrementalMode() { any() } Location getASelectedSourceLocation(DataFlow::Node source) { + isSource(source) and result = [source.asIndirectExpr().getLocation(), source.getLocation()] } } diff --git a/java/ql/lib/semmle/code/java/security/ArithmeticTaintedQuery.qll b/java/ql/lib/semmle/code/java/security/ArithmeticTaintedQuery.qll index c3d4e7876d5..65e73f84149 100644 --- a/java/ql/lib/semmle/code/java/security/ArithmeticTaintedQuery.qll +++ b/java/ql/lib/semmle/code/java/security/ArithmeticTaintedQuery.qll @@ -19,9 +19,9 @@ module ArithmeticOverflowConfig implements DataFlow::ConfigSig { } Location getASelectedSinkLocation(DataFlow::Node sink) { - result = sink.getLocation() - or - exists(ArithExpr exp | result = exp.getLocation() | overflowSink(exp, sink.asExpr())) + exists(ArithExpr exp | result = [exp.getLocation(), sink.getLocation()] | + overflowSink(exp, sink.asExpr()) + ) } } @@ -45,9 +45,9 @@ module ArithmeticUnderflowConfig implements DataFlow::ConfigSig { } Location getASelectedSinkLocation(DataFlow::Node sink) { - result = sink.getLocation() - or - exists(ArithExpr exp | result = exp.getLocation() | underflowSink(exp, sink.asExpr())) + exists(ArithExpr exp | result = [exp.getLocation(), sink.getLocation()] | + underflowSink(exp, sink.asExpr()) + ) } } diff --git a/java/ql/lib/semmle/code/java/security/ArithmeticUncontrolledQuery.qll b/java/ql/lib/semmle/code/java/security/ArithmeticUncontrolledQuery.qll index ac79aef3f37..3c1ceaddc2f 100644 --- a/java/ql/lib/semmle/code/java/security/ArithmeticUncontrolledQuery.qll +++ b/java/ql/lib/semmle/code/java/security/ArithmeticUncontrolledQuery.qll @@ -25,9 +25,9 @@ module ArithmeticUncontrolledOverflowConfig implements DataFlow::ConfigSig { } Location getASelectedSinkLocation(DataFlow::Node sink) { - result = sink.getLocation() - or - exists(ArithExpr exp | result = exp.getLocation() | overflowSink(exp, sink.asExpr())) + exists(ArithExpr exp | result = [exp.getLocation(), sink.getLocation()] | + overflowSink(exp, sink.asExpr()) + ) } } @@ -48,9 +48,9 @@ module ArithmeticUncontrolledUnderflowConfig implements DataFlow::ConfigSig { } Location getASelectedSinkLocation(DataFlow::Node sink) { - result = sink.getLocation() - or - exists(ArithExpr exp | result = exp.getLocation() | underflowSink(exp, sink.asExpr())) + exists(ArithExpr exp | result = [exp.getLocation(), sink.getLocation()] | + underflowSink(exp, sink.asExpr()) + ) } } diff --git a/java/ql/lib/semmle/code/java/security/BrokenCryptoAlgorithmQuery.qll b/java/ql/lib/semmle/code/java/security/BrokenCryptoAlgorithmQuery.qll index 9bcf9dc2eaf..60f1e179397 100644 --- a/java/ql/lib/semmle/code/java/security/BrokenCryptoAlgorithmQuery.qll +++ b/java/ql/lib/semmle/code/java/security/BrokenCryptoAlgorithmQuery.qll @@ -36,9 +36,11 @@ module InsecureCryptoConfig implements DataFlow::ConfigSig { predicate observeDiffInformedIncrementalMode() { any() } Location getASelectedSinkLocation(DataFlow::Node sink) { - result = sink.getLocation() - or - exists(CryptoAlgoSpec c | sink.asExpr() = c.getAlgoSpec() | result = c.getLocation()) + exists(CryptoAlgoSpec c | sink.asExpr() = c.getAlgoSpec() | + result = c.getLocation() + or + result = sink.getLocation() + ) } } diff --git a/java/ql/lib/semmle/code/java/security/CommandLineQuery.qll b/java/ql/lib/semmle/code/java/security/CommandLineQuery.qll index 82d24eb718e..b6b9d02e289 100644 --- a/java/ql/lib/semmle/code/java/security/CommandLineQuery.qll +++ b/java/ql/lib/semmle/code/java/security/CommandLineQuery.qll @@ -66,9 +66,11 @@ module InputToArgumentToExecFlowConfig implements DataFlow::ConfigSig { // ExecTainted.ql queries use the argument as the primary location; // ExecUnescaped.ql does not (used to prevent overlapping results). Location getASelectedSinkLocation(DataFlow::Node sink) { - result = sink.getLocation() - or - exists(Expr argument | argumentToExec(argument, sink) | result = argument.getLocation()) + exists(Expr argument | argumentToExec(argument, sink) | + result = argument.getLocation() + or + result = sink.getLocation() + ) } } diff --git a/java/ql/lib/semmle/code/java/security/ConditionalBypassQuery.qll b/java/ql/lib/semmle/code/java/security/ConditionalBypassQuery.qll index 087ca674cda..babf129f19e 100644 --- a/java/ql/lib/semmle/code/java/security/ConditionalBypassQuery.qll +++ b/java/ql/lib/semmle/code/java/security/ConditionalBypassQuery.qll @@ -51,9 +51,7 @@ module ConditionalBypassFlowConfig implements DataFlow::ConfigSig { predicate observeDiffInformedIncrementalMode() { any() } Location getASelectedSinkLocation(DataFlow::Node sink) { - result = sink.getLocation() - or - exists(MethodCall m, Expr e | result = [m, e].getLocation() | + exists(MethodCall m, Expr e | result = [[m, e].getLocation(), sink.getLocation()] | conditionControlsMethod(m, e) and sink.asExpr() = e ) diff --git a/java/ql/lib/semmle/code/java/security/ImproperValidationOfArrayConstructionCodeSpecifiedQuery.qll b/java/ql/lib/semmle/code/java/security/ImproperValidationOfArrayConstructionCodeSpecifiedQuery.qll index 487d9e3924e..97a6d159bc9 100644 --- a/java/ql/lib/semmle/code/java/security/ImproperValidationOfArrayConstructionCodeSpecifiedQuery.qll +++ b/java/ql/lib/semmle/code/java/security/ImproperValidationOfArrayConstructionCodeSpecifiedQuery.qll @@ -21,10 +21,11 @@ module BoundedFlowSourceConfig implements DataFlow::ConfigSig { predicate observeDiffInformedIncrementalMode() { any() } Location getASelectedSinkLocation(DataFlow::Node sink) { - result = sink.getLocation() - or exists(ArrayCreationExpr arrayCreation, CheckableArrayAccess arrayAccess | - result = [arrayCreation, arrayAccess.getIndexExpr()].getLocation() and + result = [arrayCreation, arrayAccess.getIndexExpr()].getLocation() + or + result = sink.getLocation() + | arrayAccess.canThrowOutOfBoundsDueToEmptyArray(sink.asExpr(), arrayCreation) ) } diff --git a/java/ql/lib/semmle/code/java/security/ImproperValidationOfArrayConstructionQuery.qll b/java/ql/lib/semmle/code/java/security/ImproperValidationOfArrayConstructionQuery.qll index d37a8d882b3..74b8af7e588 100644 --- a/java/ql/lib/semmle/code/java/security/ImproperValidationOfArrayConstructionQuery.qll +++ b/java/ql/lib/semmle/code/java/security/ImproperValidationOfArrayConstructionQuery.qll @@ -18,10 +18,11 @@ module ImproperValidationOfArrayConstructionConfig implements DataFlow::ConfigSi predicate observeDiffInformedIncrementalMode() { any() } Location getASelectedSinkLocation(DataFlow::Node sink) { - result = sink.getLocation() - or exists(ArrayCreationExpr arrayCreation, CheckableArrayAccess arrayAccess | - result = [arrayCreation, arrayAccess.getIndexExpr()].getLocation() and + result = [arrayCreation, arrayAccess.getIndexExpr()].getLocation() + or + result = sink.getLocation() + | arrayAccess.canThrowOutOfBoundsDueToEmptyArray(sink.asExpr(), arrayCreation) ) } diff --git a/java/ql/lib/semmle/code/java/security/UnsafeDeserializationQuery.qll b/java/ql/lib/semmle/code/java/security/UnsafeDeserializationQuery.qll index e0a66626be4..dc771a46606 100644 --- a/java/ql/lib/semmle/code/java/security/UnsafeDeserializationQuery.qll +++ b/java/ql/lib/semmle/code/java/security/UnsafeDeserializationQuery.qll @@ -313,7 +313,7 @@ private module UnsafeDeserializationConfig implements DataFlow::ConfigSig { predicate observeDiffInformedIncrementalMode() { any() } Location getASelectedSinkLocation(DataFlow::Node sink) { - result = sink.getLocation() + result = sink.(UnsafeDeserializationSink).getLocation() or result = sink.(UnsafeDeserializationSink).getMethodCall().getLocation() } diff --git a/javascript/ql/lib/semmle/javascript/security/dataflow/ShellCommandInjectionFromEnvironmentQuery.qll b/javascript/ql/lib/semmle/javascript/security/dataflow/ShellCommandInjectionFromEnvironmentQuery.qll index 34cee84aaae..e1dcdd339d9 100644 --- a/javascript/ql/lib/semmle/javascript/security/dataflow/ShellCommandInjectionFromEnvironmentQuery.qll +++ b/javascript/ql/lib/semmle/javascript/security/dataflow/ShellCommandInjectionFromEnvironmentQuery.qll @@ -31,11 +31,9 @@ module ShellCommandInjectionFromEnvironmentConfig implements DataFlow::ConfigSig predicate observeDiffInformedIncrementalMode() { any() } Location getASelectedSinkLocation(DataFlow::Node sink) { - result = sink.getLocation() - or exists(DataFlow::Node node | isSinkWithHighlight(sink, node) and - result = node.getLocation() + result = [node.getLocation(), sink.getLocation()] ) } } diff --git a/swift/ql/lib/codeql/swift/security/CleartextStorageDatabaseQuery.qll b/swift/ql/lib/codeql/swift/security/CleartextStorageDatabaseQuery.qll index 21bcb89efe4..50a421a05dc 100644 --- a/swift/ql/lib/codeql/swift/security/CleartextStorageDatabaseQuery.qll +++ b/swift/ql/lib/codeql/swift/security/CleartextStorageDatabaseQuery.qll @@ -54,7 +54,11 @@ module CleartextStorageDatabaseConfig implements DataFlow::ConfigSig { Location getASelectedSinkLocation(DataFlow::Node sink) { result = sink.(CleartextStorageDatabaseSink).getLocation() or - result = sink.(DataFlow::PostUpdateNode).getPreUpdateNode().getLocation() + result = + sink.(CleartextStorageDatabaseSink) + .(DataFlow::PostUpdateNode) + .getPreUpdateNode() + .getLocation() } } diff --git a/swift/ql/lib/codeql/swift/security/CleartextStoragePreferencesQuery.qll b/swift/ql/lib/codeql/swift/security/CleartextStoragePreferencesQuery.qll index a0d3414f249..578fe0b36e0 100644 --- a/swift/ql/lib/codeql/swift/security/CleartextStoragePreferencesQuery.qll +++ b/swift/ql/lib/codeql/swift/security/CleartextStoragePreferencesQuery.qll @@ -36,7 +36,11 @@ module CleartextStoragePreferencesConfig implements DataFlow::ConfigSig { Location getASelectedSinkLocation(DataFlow::Node sink) { result = sink.(CleartextStoragePreferencesSink).getLocation() or - result = sink.(DataFlow::PostUpdateNode).getPreUpdateNode().getLocation() + result = + sink.(CleartextStoragePreferencesSink) + .(DataFlow::PostUpdateNode) + .getPreUpdateNode() + .getLocation() } } From abcc1712d599aebe204b8628ad0cca6315c02694 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 28 Oct 2025 09:26:11 +0000 Subject: [PATCH 113/126] Rust: Remove more redundant models. --- rust/ql/lib/codeql/rust/frameworks/stdlib/net.model.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/rust/ql/lib/codeql/rust/frameworks/stdlib/net.model.yml b/rust/ql/lib/codeql/rust/frameworks/stdlib/net.model.yml index f7f4475c045..8aa03133354 100644 --- a/rust/ql/lib/codeql/rust/frameworks/stdlib/net.model.yml +++ b/rust/ql/lib/codeql/rust/frameworks/stdlib/net.model.yml @@ -10,7 +10,3 @@ extensions: extensible: summaryModel data: - ["::try_clone", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "taint", "manual"] - - ["<_ as std::io::Read>::read", "Argument[self]", "Argument[0].Reference", "taint", "manual"] - - ["<_ as std::io::Read>::read_to_string", "Argument[self]", "Argument[0].Reference", "taint", "manual"] - - ["<_ as std::io::Read>::read_to_end", "Argument[self]", "Argument[0].Reference", "taint", "manual"] - - ["<_ as std::io::Read>::read_exact", "Argument[self]", "Argument[0].Reference", "taint", "manual"] From 409f7fb7437adee4610250cca56da19043ab5cb7 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 28 Oct 2025 11:48:45 +0100 Subject: [PATCH 114/126] Address review comments --- .../codeql/rust/internal/TypeInference.qll | 2 +- .../typeinference/BlanketImplementation.qll | 4 +-- .../typeinference/internal/TypeInference.qll | 28 ++++++++++++------- 3 files changed, 21 insertions(+), 13 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index b8c543ee95b..338135a63c8 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -1230,7 +1230,7 @@ private module MethodResolution { ReceiverIsNotInstantiationOfBlanketLikeSelfParam::argIsNotInstantiationOf(MkMethodCallCand(this, derefChain, borrow), impl, _) or - ReceiverSatisfiesBlanketLikeConstraint::satisfiesNotBlanketConstraint(MkMethodCallCand(this, + ReceiverSatisfiesBlanketLikeConstraint::dissatisfiesBlanketConstraint(MkMethodCallCand(this, derefChain, borrow), impl) } diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/BlanketImplementation.qll b/rust/ql/lib/codeql/rust/internal/typeinference/BlanketImplementation.qll index 2a615418bc2..b88424caa34 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/BlanketImplementation.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/BlanketImplementation.qll @@ -138,11 +138,11 @@ module SatisfiesBlanketConstraint< * constraint of `impl`. */ pragma[nomagic] - predicate satisfiesNotBlanketConstraint(ArgumentType at, ImplItemNode impl) { + predicate dissatisfiesBlanketConstraint(ArgumentType at, ImplItemNode impl) { exists(ArgumentTypeAndBlanketOffset ato, Trait traitBound | ato = MkArgumentTypeAndBlanketOffset(at, _) and SatisfiesBlanketConstraintInput::relevantConstraint(ato, impl, traitBound) and - SatisfiesBlanketConstraint::satisfiesNotConstraint(ato, TTrait(traitBound)) + SatisfiesBlanketConstraint::dissatisfiesConstraint(ato, TTrait(traitBound)) ) } } diff --git a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll index 78b140f91e5..94f227c3a9a 100644 --- a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll +++ b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll @@ -705,10 +705,13 @@ module Make1 Input1> { /** * Holds if `app` is _not_ a possible instantiation of `constraint`. * - * This is a monotonic approximation of `not isInstantiationOf(app, abs, constraint)`; - * if, for example, `app` has two different types `t1` and `t2` at the same type path, - * and `t1` satisfies `constraint` while `t2` does not, then both `isInstantiationOf` - * and `isNotInstantiationOf` will hold. + * This is an approximation of `not isInstantiationOf(app, abs, constraint)`, but + * defined without a negative occurrence of `isInstantiationOf`. + * + * Due to the approximation, both `isInstantiationOf` and `isNotInstantiationOf` + * can hold for the same values. For example, if `app` has two different types `t1` + * and `t2` at the same type path, and `t1` satisfies `constraint` while `t2` does + * not, then both `isInstantiationOf` and `isNotInstantiationOf` will hold. * * Dually, if `app` does not have a type at a required type path, then neither * `isInstantiationOf` nor `isNotInstantiationOf` will hold. @@ -1008,6 +1011,8 @@ module Make1 Input1> { /** * Holds if `tt` does not satisfy `constraint`. + * + * This predicate is an approximation of `not hasConstraintMention(tt, constraint)`. */ pragma[nomagic] private predicate hasNotConstraintMention(HasTypeTree tt, Type constraint) { @@ -1085,16 +1090,19 @@ module Make1 Input1> { /** * Holds if the type tree at `tt` does _not_ satisfy the constraint `constraint`. * - * This is a monotonic approximation of `not satisfiesConstraintType(tt, constraint, _, _)`; - * if, for example, `tt` has two different types `t1` and `t2`, and `t1` satisfies - * `constraint` while `t2` does not, then both `satisfiesConstraintType` and - * `satisfiesNotConstraint` will hold. + * This is an approximation of `not satisfiesConstraintType(tt, constraint, _, _)`, + * but defined without a negative occurrence of `satisfiesConstraintType`. + * + * Due to the approximation, both `satisfiesConstraintType` and `dissatisfiesConstraint` + * can hold for the same values. For example, if `tt` has two different types `t1` + * and `t2`, and `t1` satisfies `constraint` while `t2` does not, then both + * `satisfiesConstraintType` and `dissatisfiesConstraint` will hold. * * Dually, if `tt` does not have a type, then neither `satisfiesConstraintType` nor - * `satisfiesNotConstraint` will hold. + * `dissatisfiesConstraint` will hold. */ pragma[nomagic] - predicate satisfiesNotConstraint(HasTypeTree tt, Type constraint) { + predicate dissatisfiesConstraint(HasTypeTree tt, Type constraint) { hasNotConstraintMention(tt, constraint) and exists(Type t | hasTypeConstraint(tt, t, constraint) and From 104ba0e2910c9571706747e5ababc1bfc4a4b8ba Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Mon, 27 Oct 2025 13:18:09 +0100 Subject: [PATCH 115/126] Rust: Fix bad join Before ``` Pipeline standard for TypeInference::MethodCallMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#e8abf748@ada3a07w was evaluated in 801 iterations totaling 31ms (delta sizes total: 182871). 50151 ~1% {4} r1 = SCAN TypeInference::MethodCallMatching::AccessConstraint::MkRelevantAccess#7a01048b#prev_delta OUTPUT In.0, In.2, In.3, In.4 39574 ~0% {5} | JOIN WITH `TypeInference::MethodCallMatchingInput::Access.getInferredNonSelfType/2#dispred#b181cb0a#prev` ON FIRST 2 OUTPUT Lhs.3, Rhs.3, _, Lhs.2, Rhs.2 {3} | REWRITE WITH Tmp.2 := "", Out.2 := InverseAppend(In.3,Tmp.2,In.4) KEEPING 3 36996 ~0% {3} | SCAN OUTPUT In.0, In.2, In.1 36102333 ~0% {4} r2 = SCAN TypeInference::MethodCallMatching::AccessConstraint::MkRelevantAccess#7a01048b#prev OUTPUT In.0, In.2, In.3, In.4 90175 ~1% {5} | JOIN WITH `TypeInference::MethodCallMatchingInput::Access.getInferredNonSelfType/2#dispred#b181cb0a#prev_delta` ON FIRST 2 OUTPUT Lhs.3, Rhs.3, _, Lhs.2, Rhs.2 {3} | REWRITE WITH Tmp.2 := "", Out.2 := InverseAppend(In.3,Tmp.2,In.4) KEEPING 3 65014 ~1% {3} | SCAN OUTPUT In.0, In.2, In.1 50151 ~1% {5} r3 = SCAN TypeInference::MethodCallMatching::AccessConstraint::MkRelevantAccess#7a01048b#prev_delta OUTPUT In.2, In.0, In.1, In.3, In.4 24208 ~1% {4} | JOIN WITH `FunctionType::FunctionPosition.isSelf/0#dispred#9e84d302` ON FIRST 1 OUTPUT Lhs.1, Lhs.2, Lhs.3, Lhs.4 95022 ~0% {9} | JOIN WITH `TypeInference::MethodCallMatchingInput::Access.getInferredSelfType/3#dispred#45b2f893#prev` ON FIRST 1 OUTPUT Lhs.2, Lhs.3, Rhs.2, Rhs.3, Rhs.4, _, Rhs.1, Lhs.1, _ {6} | REWRITE WITH Tmp.5 := ";", Tmp.5 := (In.6 ++ Tmp.5), Tmp.8 := "", Out.5 := InverseAppend(Tmp.5,Tmp.8,In.7) KEEPING 6 93919 ~1% {7} | SCAN OUTPUT In.0, In.1, In.2, In.3, In.4, In.5, _ {6} | REWRITE WITH NOT [NOT [Tmp.6 := "borrow", TEST InOut.5 = Tmp.6, Tmp.6 := true, TEST InOut.2 = Tmp.6], NOT [Tmp.6 := "", TEST InOut.5 = Tmp.6, Tmp.6 := true, TEST InOut.2 != Tmp.6]] KEEPING 6 81298 ~1% {5} | SCAN OUTPUT In.1, In.4, _, In.0, In.3 {3} | REWRITE WITH Tmp.2 := "", Out.2 := InverseAppend(In.3,Tmp.2,In.4) KEEPING 3 64110 ~1% {3} | SCAN OUTPUT In.0, In.2, In.1 36102333 ~0% {5} r4 = SCAN TypeInference::MethodCallMatching::AccessConstraint::MkRelevantAccess#7a01048b#prev OUTPUT In.2, In.0, In.1, In.3, In.4 17473531 ~0% {4} | JOIN WITH `FunctionType::FunctionPosition.isSelf/0#dispred#9e84d302` ON FIRST 1 OUTPUT Lhs.1, Lhs.2, Lhs.3, Lhs.4 47409 ~1% {9} | JOIN WITH `TypeInference::MethodCallMatchingInput::Access.getInferredSelfType/3#dispred#45b2f893#prev_delta` ON FIRST 1 OUTPUT Lhs.2, Lhs.3, Rhs.2, Rhs.3, Rhs.4, _, Rhs.1, Lhs.1, _ {6} | REWRITE WITH Tmp.5 := ";", Tmp.5 := (In.6 ++ Tmp.5), Tmp.8 := "", Out.5 := InverseAppend(Tmp.5,Tmp.8,In.7) KEEPING 6 29885 ~0% {7} | SCAN OUTPUT In.0, In.1, In.2, In.3, In.4, In.5, _ {6} | REWRITE WITH NOT [NOT [Tmp.6 := "borrow", TEST InOut.5 = Tmp.6, Tmp.6 := true, TEST InOut.2 = Tmp.6], NOT [Tmp.6 := "", TEST InOut.5 = Tmp.6, Tmp.6 := true, TEST InOut.2 != Tmp.6]] KEEPING 6 16952 ~1% {5} | SCAN OUTPUT In.1, In.4, _, In.0, In.3 {3} | REWRITE WITH Tmp.2 := "", Out.2 := InverseAppend(In.3,Tmp.2,In.4) KEEPING 3 16829 ~0% {3} | SCAN OUTPUT In.0, In.2, In.1 182949 ~1% {3} r5 = r1 UNION r2 UNION r3 UNION r4 182949 ~1% {3} | AND NOT `TypeInference::MethodCallMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#e8abf748#prev`(FIRST 3) return r5 ``` After ``` Pipeline standard for TypeInference::MethodCallMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#e8abf748@31ee547w was evaluated in 801 iterations totaling 19ms (delta sizes total: 182946). 81298 ~0% {5} r1 = JOIN TypeInference::MethodCallMatching::AccessConstraint::MkRelevantAccess#7a01048b#prev_delta WITH `TypeInference::MethodCallMatchingInput::Access.getInferredSelfType/3#dispred#45b2f893#prev` ON FIRST 3 OUTPUT Lhs.4, Rhs.4, _, Lhs.3, Rhs.3 {3} | REWRITE WITH Tmp.2 := "", Out.2 := InverseAppend(In.3,Tmp.2,In.4) KEEPING 3 64110 ~1% {3} | SCAN OUTPUT In.0, In.2, In.1 39574 ~0% {5} r2 = JOIN TypeInference::MethodCallMatching::AccessConstraint::MkRelevantAccess#7a01048b#prev_delta WITH `TypeInference::MethodCallMatchingInput::Access.getInferredNonSelfType/2#dispred#b181cb0a#prev` ON FIRST 2 OUTPUT Lhs.4, Rhs.3, _, Lhs.3, Rhs.2 {3} | REWRITE WITH Tmp.2 := "", Out.2 := InverseAppend(In.3,Tmp.2,In.4) KEEPING 3 36996 ~0% {3} | SCAN OUTPUT In.0, In.2, In.1 16952 ~0% {5} r3 = JOIN TypeInference::MethodCallMatching::AccessConstraint::MkRelevantAccess#7a01048b#prev WITH `TypeInference::MethodCallMatchingInput::Access.getInferredSelfType/3#dispred#45b2f893#prev_delta` ON FIRST 3 OUTPUT Lhs.4, Rhs.4, _, Lhs.3, Rhs.3 {3} | REWRITE WITH Tmp.2 := "", Out.2 := InverseAppend(In.3,Tmp.2,In.4) KEEPING 3 16829 ~0% {3} | SCAN OUTPUT In.0, In.2, In.1 90175 ~0% {5} r4 = JOIN TypeInference::MethodCallMatching::AccessConstraint::MkRelevantAccess#7a01048b#prev WITH `TypeInference::MethodCallMatchingInput::Access.getInferredNonSelfType/2#dispred#b181cb0a#prev_delta` ON FIRST 2 OUTPUT Lhs.4, Rhs.3, _, Lhs.3, Rhs.2 {3} | REWRITE WITH Tmp.2 := "", Out.2 := InverseAppend(In.3,Tmp.2,In.4) KEEPING 3 65014 ~0% {3} | SCAN OUTPUT In.0, In.2, In.1 182949 ~1% {3} r5 = r1 UNION r2 UNION r3 UNION r4 182949 ~1% {3} | AND NOT `TypeInference::MethodCallMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#e8abf748#prev`(FIRST 3) return r5 ``` --- rust/ql/lib/codeql/rust/internal/TypeInference.qll | 14 +++++++------- .../typeinference/internal/TypeInference.qll | 8 ++++---- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index bcc18342c00..15daf6d2f17 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -1812,8 +1812,12 @@ private module MethodCallMatchingInput implements MatchingWithEnvironmentInputSi } pragma[nomagic] - private Type getInferredSelfType(string derefChain, boolean borrow, TypePath path) { - result = this.getACandidateReceiverTypeAt(derefChain, borrow, path) + private Type getInferredSelfType(AccessPosition apos, string derefChainBorrow, TypePath path) { + exists(string derefChain, boolean borrow | + result = this.getACandidateReceiverTypeAt(derefChain, borrow, path) and + derefChainBorrow = encodeDerefChainBorrow(derefChain, borrow) and + apos.isSelf() + ) } pragma[nomagic] @@ -1839,11 +1843,7 @@ private module MethodCallMatchingInput implements MatchingWithEnvironmentInputSi bindingset[derefChainBorrow] Type getInferredType(string derefChainBorrow, AccessPosition apos, TypePath path) { - exists(string derefChain, boolean borrow | - derefChainBorrow = encodeDerefChainBorrow(derefChain, borrow) and - apos.isSelf() and - result = this.getInferredSelfType(derefChain, borrow, path) - ) + result = this.getInferredSelfType(apos, derefChainBorrow, path) or result = this.getInferredNonSelfType(apos, path) } diff --git a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll index ff9ccf3c192..7df7f26d9fa 100644 --- a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll +++ b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll @@ -1269,7 +1269,7 @@ module Make1 Input1> { } private newtype TRelevantAccess = - MkRelevantAccess(Access a, AccessEnvironment e, AccessPosition apos, TypePath path) { + MkRelevantAccess(Access a, AccessPosition apos, AccessEnvironment e, TypePath path) { relevantAccessConstraint(a, e, _, apos, path, _) } @@ -1279,11 +1279,11 @@ module Make1 Input1> { */ private class RelevantAccess extends MkRelevantAccess { Access a; - AccessEnvironment e; AccessPosition apos; + AccessEnvironment e; TypePath path; - RelevantAccess() { this = MkRelevantAccess(a, e, apos, path) } + RelevantAccess() { this = MkRelevantAccess(a, apos, e, path) } Type getTypeAt(TypePath suffix) { result = a.getInferredType(e, apos, path.appendInverse(suffix)) @@ -1314,7 +1314,7 @@ module Make1 Input1> { Type constraint, TypePath path, Type t ) { exists(RelevantAccess ra | - ra = MkRelevantAccess(a, e, apos, prefix) and + ra = MkRelevantAccess(a, apos, e, prefix) and SatisfiesConstraint::satisfiesConstraintType(ra, constraint, path, t) and constraint = ra.getConstraint(target) From b3bbe78974a9a61a6fc3c2f12b4fea25c01c28da Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Mon, 27 Oct 2025 13:21:41 +0100 Subject: [PATCH 116/126] Rust: Fix bad join Before ``` Pipeline standard for TypeInference::MethodCallMatching::directTypeMatch/6#f0fb0b61@31ee5u2w was evaluated in 821 iterations totaling 1057ms (delta sizes total: 689971). 416937 ~1% {6} r1 = SCAN `TypeInference::MethodCallMatching::directTypeMatch0/6#dfcc7717#prev_delta` OUTPUT In.0, In.3, In.1, In.2, In.4, In.5 222757 ~2% {8} r2 = JOIN r1 WITH `TypeInference::MethodCallMatchingInput::Access.getInferredNonSelfType/2#dispred#b181cb0a#prev` ON FIRST 2 OUTPUT Lhs.0, Lhs.2, Lhs.3, Lhs.5, Rhs.3, _, Lhs.4, Rhs.2 {6} | REWRITE WITH Tmp.5 := "", Out.5 := InverseAppend(In.6,Tmp.5,In.7) KEEPING 6 164360 ~3% {6} | SCAN OUTPUT In.0, In.1, In.2, In.5, In.4, In.3 315350783 ~1% {6} r3 = SCAN `TypeInference::MethodCallMatching::directTypeMatch0/6#dfcc7717#prev` OUTPUT In.0, In.3, In.1, In.2, In.4, In.5 593815 ~1% {8} r4 = JOIN r3 WITH `TypeInference::MethodCallMatchingInput::Access.getInferredNonSelfType/2#dispred#b181cb0a#prev_delta` ON FIRST 2 OUTPUT Lhs.0, Lhs.2, Lhs.3, Lhs.5, Rhs.3, _, Lhs.4, Rhs.2 {6} | REWRITE WITH Tmp.5 := "", Out.5 := InverseAppend(In.6,Tmp.5,In.7) KEEPING 6 342226 ~1% {6} | SCAN OUTPUT In.0, In.1, In.2, In.5, In.4, In.3 826517 ~0% {8} r5 = JOIN r1 WITH `TypeInference::MethodCallMatchingInput::Access.getInferredSelfType/3#dispred#45b2f893#prev` ON FIRST 3 OUTPUT Lhs.0, Lhs.2, Lhs.3, Lhs.5, Rhs.4, _, Lhs.4, Rhs.3 {6} | REWRITE WITH Tmp.5 := "", Out.5 := InverseAppend(In.6,Tmp.5,In.7) KEEPING 6 345294 ~1% {6} | SCAN OUTPUT In.0, In.1, In.2, In.5, In.4, In.3 73715 ~0% {8} r6 = JOIN r3 WITH `TypeInference::MethodCallMatchingInput::Access.getInferredSelfType/3#dispred#45b2f893#prev_delta` ON FIRST 3 OUTPUT Lhs.0, Lhs.2, Lhs.3, Lhs.5, Rhs.4, _, Lhs.4, Rhs.3 {6} | REWRITE WITH Tmp.5 := "", Out.5 := InverseAppend(In.6,Tmp.5,In.7) KEEPING 6 47802 ~1% {6} | SCAN OUTPUT In.0, In.1, In.2, In.5, In.4, In.3 899682 ~5% {6} r7 = r2 UNION r4 UNION r5 UNION r6 711040 ~6% {6} | AND NOT `TypeInference::MethodCallMatching::directTypeMatch/6#f0fb0b61#prev`(FIRST 6) return r7 ``` After ``` Pipeline standard for TypeInference::MethodCallMatching::directTypeMatch/6#f0fb0b61@ad458u2w was evaluated in 821 iterations totaling 374ms (delta sizes total: 691168). 222757 ~2% {8} r1 = JOIN `TypeInference::MethodCallMatching::directTypeMatch0/6#dfcc7717#prev_delta` WITH `TypeInference::MethodCallMatchingInput::Access.getInferredNonSelfType/2#dispred#b181cb0a#prev` ON FIRST 2 OUTPUT Lhs.0, Lhs.2, Lhs.3, Lhs.5, Rhs.3, _, Lhs.4, Rhs.2 {6} | REWRITE WITH Tmp.5 := "", Out.5 := InverseAppend(In.6,Tmp.5,In.7) KEEPING 6 164360 ~3% {6} | SCAN OUTPUT In.0, In.1, In.2, In.5, In.4, In.3 593815 ~1% {8} r2 = JOIN `TypeInference::MethodCallMatching::directTypeMatch0/6#dfcc7717#prev` WITH `TypeInference::MethodCallMatchingInput::Access.getInferredNonSelfType/2#dispred#b181cb0a#prev_delta` ON FIRST 2 OUTPUT Lhs.0, Lhs.2, Lhs.3, Lhs.5, Rhs.3, _, Lhs.4, Rhs.2 {6} | REWRITE WITH Tmp.5 := "", Out.5 := InverseAppend(In.6,Tmp.5,In.7) KEEPING 6 342226 ~1% {6} | SCAN OUTPUT In.0, In.1, In.2, In.5, In.4, In.3 826517 ~0% {8} r3 = JOIN `TypeInference::MethodCallMatching::directTypeMatch0/6#dfcc7717#prev_delta` WITH `TypeInference::MethodCallMatchingInput::Access.getInferredSelfType/3#dispred#45b2f893#prev` ON FIRST 3 OUTPUT Lhs.0, Lhs.2, Lhs.3, Lhs.5, Rhs.4, _, Lhs.4, Rhs.3 {6} | REWRITE WITH Tmp.5 := "", Out.5 := InverseAppend(In.6,Tmp.5,In.7) KEEPING 6 345294 ~1% {6} | SCAN OUTPUT In.0, In.1, In.2, In.5, In.4, In.3 73715 ~0% {8} r4 = JOIN `TypeInference::MethodCallMatching::directTypeMatch0/6#dfcc7717#prev` WITH `TypeInference::MethodCallMatchingInput::Access.getInferredSelfType/3#dispred#45b2f893#prev_delta` ON FIRST 3 OUTPUT Lhs.0, Lhs.2, Lhs.3, Lhs.5, Rhs.4, _, Lhs.4, Rhs.3 {6} | REWRITE WITH Tmp.5 := "", Out.5 := InverseAppend(In.6,Tmp.5,In.7) KEEPING 6 47802 ~1% {6} | SCAN OUTPUT In.0, In.1, In.2, In.5, In.4, In.3 899682 ~5% {6} r5 = r1 UNION r2 UNION r3 UNION r4 711095 ~6% {6} | AND NOT `TypeInference::MethodCallMatching::directTypeMatch/6#f0fb0b61#prev`(FIRST 6) return r5 ``` --- .../codeql/typeinference/internal/TypeInference.qll | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll index 7df7f26d9fa..0b259df9211 100644 --- a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll +++ b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll @@ -1160,7 +1160,7 @@ module Make1 Input1> { pragma[nomagic] private predicate directTypeMatch0( - Access a, AccessEnvironment e, Declaration target, DeclarationPosition dpos, + Access a, DeclarationPosition dpos, AccessEnvironment e, Declaration target, TypePath pathToTypeParam, TypeParameter tp ) { not exists(getTypeArgument(a, target, tp, _)) and @@ -1177,7 +1177,7 @@ module Make1 Input1> { Access a, AccessEnvironment e, Declaration target, TypePath path, Type t, TypeParameter tp ) { exists(AccessPosition apos, DeclarationPosition dpos, TypePath pathToTypeParam | - directTypeMatch0(a, e, target, dpos, pathToTypeParam, tp) and + directTypeMatch0(a, dpos, e, target, pathToTypeParam, tp) and accessDeclarationPositionMatch(apos, dpos) and t = a.getInferredType(e, apos, pathToTypeParam.appendInverse(path)) ) From 9ff3c61c6ef61e1fd1672623df39e3ec4c69a6be Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Wed, 29 Oct 2025 10:03:52 +0100 Subject: [PATCH 117/126] Rust: Add type inference tests involving `Self` --- .../PathResolutionConsistency.expected | 12 +- .../test/library-tests/type-inference/main.rs | 46 + .../type-inference/type-inference.expected | 7613 +++++++++-------- 3 files changed, 3881 insertions(+), 3790 deletions(-) diff --git a/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected index 2a12ae35276..28098e14514 100644 --- a/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected @@ -5,9 +5,9 @@ multipleCallTargets | dereference.rs:184:17:184:30 | ... .foo() | | dereference.rs:186:17:186:25 | S.bar(...) | | dereference.rs:187:17:187:29 | S.bar(...) | -| main.rs:2437:13:2437:31 | ...::from(...) | -| main.rs:2438:13:2438:31 | ...::from(...) | -| main.rs:2439:13:2439:31 | ...::from(...) | -| main.rs:2445:13:2445:31 | ...::from(...) | -| main.rs:2446:13:2446:31 | ...::from(...) | -| main.rs:2447:13:2447:31 | ...::from(...) | +| main.rs:2482:13:2482:31 | ...::from(...) | +| main.rs:2483:13:2483:31 | ...::from(...) | +| main.rs:2484:13:2484:31 | ...::from(...) | +| main.rs:2490:13:2490:31 | ...::from(...) | +| main.rs:2491:13:2491:31 | ...::from(...) | +| main.rs:2492:13:2492:31 | ...::from(...) | diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index fd34676284a..7dec2061a32 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -652,6 +652,51 @@ mod type_parameter_bounds { } } +mod trait_default_self_type_parameter { + // A trait with a type parameter that defaults to `Self`. + // trait TraitWithSelfTp { + trait TraitWithSelfTp> { + // TraitWithSelfTp::get_a + fn get_a(&self) -> A; + } + + fn get_a>(thing: &T) -> A { + thing.get_a() // $ target=TraitWithSelfTp::get_a + } + + // The trait bound on `T` uses the default for `A` which contains `Self` + fn tp_uses_default(thing: S) -> i64 { + let _ms = thing.get_a(); // $ target=TraitWithSelfTp::get_a MISSING: type=_ms:T.S + 0 + } + + // The supertrait uses the default for `A` which contains `Self` + trait SubTraitOfTraitWithSelfTp: TraitWithSelfTp + Sized {} + + fn get_a_through_tp(thing: &S) { + // `thing` is a `TraitWithSelfTp` through the trait hierarchy + let _ms = get_a(thing); // $ target=get_a MISSING: type=_ms:T.S + } + + struct MyStruct { + value: i32, + } + + // The implementing trait uses the default for `A` which contains `Self` + impl TraitWithSelfTp for MyStruct { + fn get_a(&self) -> Option { + Some(MyStruct { value: self.value }) // $ fieldof=MyStruct + } + } + + impl SubTraitOfTraitWithSelfTp for MyStruct {} + + pub fn test() { + let s = MyStruct { value: 0 }; + let _ms = get_a(&s); // $ target=get_a MISSING: type=_ms:T.MyStruct + } +} + mod function_trait_bounds { #[derive(Debug, Clone, Copy)] struct MyThing { @@ -2753,6 +2798,7 @@ fn main() { method_impl::g(method_impl::Foo {}, method_impl::Foo {}); // $ target=g method_non_parametric_impl::f(); // $ target=f 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 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 76b4afc482f..8e8e76ebde4 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -2002,3799 +2002,3844 @@ inferType | main.rs:651:18:651:37 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | | main.rs:651:32:651:33 | s1 | | {EXTERNAL LOCATION} | u8 | | main.rs:651:36:651:37 | s2 | | {EXTERNAL LOCATION} | i64 | -| main.rs:667:15:667:18 | SelfParam | | main.rs:666:5:677:5 | Self [trait MyTrait] | -| main.rs:669:15:669:18 | SelfParam | | main.rs:666:5:677:5 | Self [trait MyTrait] | -| main.rs:672:9:674:9 | { ... } | | main.rs:666:19:666:19 | A | -| main.rs:673:13:673:16 | self | | main.rs:666:5:677:5 | Self [trait MyTrait] | -| main.rs:673:13:673:21 | self.m1() | | main.rs:666:19:666:19 | A | -| main.rs:676:18:676:18 | x | | main.rs:666:5:677:5 | Self [trait MyTrait] | -| main.rs:681:50:681:50 | x | | main.rs:681:26:681:47 | T2 | -| main.rs:681:63:684:5 | { ... } | | main.rs:681:22:681:23 | T1 | -| main.rs:682:9:682:9 | x | | main.rs:681:26:681:47 | T2 | -| main.rs:682:9:682:14 | x.m1() | | main.rs:681:22:681:23 | T1 | -| main.rs:683:9:683:9 | x | | main.rs:681:26:681:47 | T2 | -| main.rs:683:9:683:14 | x.m1() | | main.rs:681:22:681:23 | T1 | -| main.rs:685:52:685:52 | x | | main.rs:685:28:685:49 | T2 | -| main.rs:685:65:689:5 | { ... } | | main.rs:685:24:685:25 | T1 | -| main.rs:686:13:686:13 | y | | main.rs:685:24:685:25 | T1 | -| main.rs:686:17:686:25 | ...::m1(...) | | main.rs:685:24:685:25 | T1 | -| main.rs:686:24:686:24 | x | | main.rs:685:28:685:49 | T2 | -| main.rs:687:9:687:9 | y | | main.rs:685:24:685:25 | T1 | -| main.rs:688:9:688:17 | ...::m1(...) | | main.rs:685:24:685:25 | T1 | -| main.rs:688:16:688:16 | x | | main.rs:685:28:685:49 | T2 | -| main.rs:690:52:690:52 | x | | main.rs:690:28:690:49 | T2 | -| main.rs:690:65:694:5 | { ... } | | main.rs:690:24:690:25 | T1 | -| main.rs:691:13:691:13 | y | | main.rs:690:24:690:25 | T1 | -| main.rs:691:17:691:30 | ...::m1(...) | | main.rs:690:24:690:25 | T1 | -| main.rs:691:29:691:29 | x | | main.rs:690:28:690:49 | T2 | -| main.rs:692:9:692:9 | y | | main.rs:690:24:690:25 | T1 | -| main.rs:693:9:693:22 | ...::m1(...) | | main.rs:690:24:690:25 | T1 | -| main.rs:693:21:693:21 | x | | main.rs:690:28:690:49 | T2 | -| main.rs:695:55:695:55 | x | | main.rs:695:31:695:52 | T2 | -| main.rs:695:68:699:5 | { ... } | | main.rs:695:27:695:28 | T1 | -| main.rs:696:13:696:13 | y | | main.rs:695:27:695:28 | T1 | -| main.rs:696:17:696:28 | ...::assoc(...) | | main.rs:695:27:695:28 | T1 | -| main.rs:696:27:696:27 | x | | main.rs:695:31:695:52 | T2 | -| main.rs:697:9:697:9 | y | | main.rs:695:27:695:28 | T1 | -| main.rs:698:9:698:20 | ...::assoc(...) | | main.rs:695:27:695:28 | T1 | -| main.rs:698:19:698:19 | x | | main.rs:695:31:695:52 | T2 | -| main.rs:700:55:700:55 | x | | main.rs:700:31:700:52 | T2 | -| main.rs:700:68:704:5 | { ... } | | main.rs:700:27:700:28 | T1 | -| main.rs:701:13:701:13 | y | | main.rs:700:27:700:28 | T1 | -| main.rs:701:17:701:33 | ...::assoc(...) | | main.rs:700:27:700:28 | T1 | -| main.rs:701:32:701:32 | x | | main.rs:700:31:700:52 | T2 | -| main.rs:702:9:702:9 | y | | main.rs:700:27:700:28 | T1 | -| main.rs:703:9:703:25 | ...::assoc(...) | | main.rs:700:27:700:28 | T1 | -| main.rs:703:24:703:24 | x | | main.rs:700:31:700:52 | T2 | -| main.rs:708:49:708:49 | x | | main.rs:656:5:659:5 | MyThing | -| main.rs:708:49:708:49 | x | T | main.rs:708:32:708:46 | T2 | -| main.rs:708:71:710:5 | { ... } | | main.rs:708:28:708:29 | T1 | -| main.rs:709:9:709:9 | x | | main.rs:656:5:659:5 | MyThing | -| main.rs:709:9:709:9 | x | T | main.rs:708:32:708:46 | T2 | -| main.rs:709:9:709:11 | x.a | | main.rs:708:32:708:46 | T2 | -| main.rs:709:9:709:16 | ... .m1() | | main.rs:708:28:708:29 | T1 | -| main.rs:711:51:711:51 | x | | main.rs:656:5:659:5 | MyThing | -| main.rs:711:51:711:51 | x | T | main.rs:711:34:711:48 | T2 | -| main.rs:711:73:713:5 | { ... } | | main.rs:711:30:711:31 | T1 | -| main.rs:712:9:712:19 | ...::m1(...) | | main.rs:711:30:711:31 | T1 | -| main.rs:712:16:712:16 | x | | main.rs:656:5:659:5 | MyThing | -| main.rs:712:16:712:16 | x | T | main.rs:711:34:711:48 | T2 | -| main.rs:712:16:712:18 | x.a | | main.rs:711:34:711:48 | T2 | -| main.rs:714:51:714:51 | x | | main.rs:656:5:659:5 | MyThing | -| main.rs:714:51:714:51 | x | T | main.rs:714:34:714:48 | T2 | -| main.rs:714:73:716:5 | { ... } | | main.rs:714:30:714:31 | T1 | -| main.rs:715:9:715:24 | ...::m1(...) | | main.rs:714:30:714:31 | T1 | -| main.rs:715:21:715:21 | x | | main.rs:656:5:659:5 | MyThing | -| main.rs:715:21:715:21 | x | T | main.rs:714:34:714:48 | T2 | -| main.rs:715:21:715:23 | x.a | | main.rs:714:34:714:48 | T2 | -| main.rs:719:15:719:18 | SelfParam | | main.rs:656:5:659:5 | MyThing | -| main.rs:719:15:719:18 | SelfParam | T | main.rs:718:10:718:10 | T | -| main.rs:719:26:721:9 | { ... } | | main.rs:718:10:718:10 | T | -| main.rs:720:13:720:16 | self | | main.rs:656:5:659:5 | MyThing | -| main.rs:720:13:720:16 | self | T | main.rs:718:10:718:10 | T | -| main.rs:720:13:720:18 | self.a | | main.rs:718:10:718:10 | T | -| main.rs:723:18:723:18 | x | | main.rs:656:5:659:5 | MyThing | -| main.rs:723:18:723:18 | x | T | main.rs:718:10:718:10 | T | -| main.rs:723:32:725:9 | { ... } | | main.rs:718:10:718:10 | T | -| main.rs:724:13:724:13 | x | | main.rs:656:5:659:5 | MyThing | -| main.rs:724:13:724:13 | x | T | main.rs:718:10:718:10 | T | -| main.rs:724:13:724:15 | x.a | | main.rs:718:10:718:10 | T | -| main.rs:729:13:729:13 | x | | main.rs:656:5:659:5 | MyThing | -| main.rs:729:13:729:13 | x | T | main.rs:661:5:662:14 | S1 | -| main.rs:729:17:729:33 | MyThing {...} | | main.rs:656:5:659:5 | MyThing | -| main.rs:729:17:729:33 | MyThing {...} | T | main.rs:661:5:662:14 | S1 | -| main.rs:729:30:729:31 | S1 | | main.rs:661:5:662:14 | S1 | -| main.rs:730:13:730:13 | y | | main.rs:656:5:659:5 | MyThing | -| main.rs:730:13:730:13 | y | T | main.rs:663:5:664:14 | S2 | -| main.rs:730:17:730:33 | MyThing {...} | | main.rs:656:5:659:5 | MyThing | -| main.rs:730:17:730:33 | MyThing {...} | T | main.rs:663:5:664:14 | S2 | -| main.rs:730:30:730:31 | S2 | | main.rs:663:5:664:14 | S2 | -| main.rs:732:18:732:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:732:18:732:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:732:18:732:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:732:18:732:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:732:26:732:26 | x | | main.rs:656:5:659:5 | MyThing | -| main.rs:732:26:732:26 | x | T | main.rs:661:5:662:14 | S1 | -| main.rs:732:26:732:31 | x.m1() | | main.rs:661:5:662:14 | S1 | -| main.rs:733:18:733:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:733:18:733:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:733:18:733:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:733:18:733:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:733:26:733:26 | y | | main.rs:656:5:659:5 | MyThing | -| main.rs:733:26:733:26 | y | T | main.rs:663:5:664:14 | S2 | -| main.rs:733:26:733:31 | y.m1() | | main.rs:663:5:664:14 | S2 | -| main.rs:735:13:735:13 | x | | main.rs:656:5:659:5 | MyThing | -| main.rs:735:13:735:13 | x | T | main.rs:661:5:662:14 | S1 | -| main.rs:735:17:735:33 | MyThing {...} | | main.rs:656:5:659:5 | MyThing | -| main.rs:735:17:735:33 | MyThing {...} | T | main.rs:661:5:662:14 | S1 | -| main.rs:735:30:735:31 | S1 | | main.rs:661:5:662:14 | S1 | -| main.rs:736:13:736:13 | y | | main.rs:656:5:659:5 | MyThing | -| main.rs:736:13:736:13 | y | T | main.rs:663:5:664:14 | S2 | -| main.rs:736:17:736:33 | MyThing {...} | | main.rs:656:5:659:5 | MyThing | -| main.rs:736:17:736:33 | MyThing {...} | T | main.rs:663:5:664:14 | S2 | -| main.rs:736:30:736:31 | S2 | | main.rs:663:5:664:14 | S2 | -| main.rs:738:18:738:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:738:18:738:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:738:18:738:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:738:18:738:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:738:26:738:26 | x | | main.rs:656:5:659:5 | MyThing | -| main.rs:738:26:738:26 | x | T | main.rs:661:5:662:14 | S1 | -| main.rs:738:26:738:31 | x.m2() | | main.rs:661:5:662:14 | S1 | -| main.rs:739:18:739:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:739:18:739:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:739:18:739:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:739:18:739:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:739:26:739:26 | y | | main.rs:656:5:659:5 | MyThing | -| main.rs:739:26:739:26 | y | T | main.rs:663:5:664:14 | S2 | -| main.rs:739:26:739:31 | y.m2() | | main.rs:663:5:664:14 | S2 | -| main.rs:741:13:741:14 | x2 | | main.rs:656:5:659:5 | MyThing | -| main.rs:741:13:741:14 | x2 | T | main.rs:661:5:662:14 | S1 | -| main.rs:741:18:741:34 | MyThing {...} | | main.rs:656:5:659:5 | MyThing | -| main.rs:741:18:741:34 | MyThing {...} | T | main.rs:661:5:662:14 | S1 | -| main.rs:741:31:741:32 | S1 | | main.rs:661:5:662:14 | S1 | -| main.rs:742:13:742:14 | y2 | | main.rs:656:5:659:5 | MyThing | -| main.rs:742:13:742:14 | y2 | T | main.rs:663:5:664:14 | S2 | -| main.rs:742:18:742:34 | MyThing {...} | | main.rs:656:5:659:5 | MyThing | -| main.rs:742:18:742:34 | MyThing {...} | T | main.rs:663:5:664:14 | S2 | -| main.rs:742:31:742:32 | S2 | | main.rs:663:5:664:14 | S2 | -| main.rs:744:13:744:13 | a | | main.rs:661:5:662:14 | S1 | -| main.rs:744:17:744:33 | call_trait_m1(...) | | main.rs:661:5:662:14 | S1 | -| main.rs:744:31:744:32 | x2 | | main.rs:656:5:659:5 | MyThing | -| main.rs:744:31:744:32 | x2 | T | main.rs:661:5:662:14 | S1 | -| main.rs:745:18:745:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:745:18:745:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:745:18:745:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:745:18:745:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:745:26:745:26 | a | | main.rs:661:5:662:14 | S1 | -| main.rs:746:13:746:13 | a | | main.rs:661:5:662:14 | S1 | -| main.rs:746:17:746:35 | call_trait_m1_2(...) | | main.rs:661:5:662:14 | S1 | -| main.rs:746:33:746:34 | x2 | | main.rs:656:5:659:5 | MyThing | -| main.rs:746:33:746:34 | x2 | T | main.rs:661:5:662:14 | S1 | -| main.rs:747:18:747:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:747:18:747:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:747:18:747:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:747:18:747:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:747:26:747:26 | a | | main.rs:661:5:662:14 | S1 | -| main.rs:748:13:748:13 | a | | main.rs:661:5:662:14 | S1 | -| main.rs:748:17:748:35 | call_trait_m1_3(...) | | main.rs:661:5:662:14 | S1 | -| main.rs:748:33:748:34 | x2 | | main.rs:656:5:659:5 | MyThing | -| main.rs:748:33:748:34 | x2 | T | main.rs:661:5:662:14 | S1 | -| main.rs:749:18:749:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:749:18:749:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:749:18:749:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:749:18:749:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:749:26:749:26 | a | | main.rs:661:5:662:14 | S1 | -| main.rs:750:13:750:13 | a | | main.rs:663:5:664:14 | S2 | -| main.rs:750:17:750:33 | call_trait_m1(...) | | main.rs:663:5:664:14 | S2 | -| main.rs:750:31:750:32 | y2 | | main.rs:656:5:659:5 | MyThing | -| main.rs:750:31:750:32 | y2 | T | main.rs:663:5:664:14 | S2 | -| main.rs:751:18:751:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:751:18:751:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:751:18:751:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:751:18:751:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:751:26:751:26 | a | | main.rs:663:5:664:14 | S2 | -| main.rs:752:13:752:13 | a | | main.rs:663:5:664:14 | S2 | -| main.rs:752:17:752:35 | call_trait_m1_2(...) | | main.rs:663:5:664:14 | S2 | -| main.rs:752:33:752:34 | y2 | | main.rs:656:5:659:5 | MyThing | -| main.rs:752:33:752:34 | y2 | T | main.rs:663:5:664:14 | S2 | -| main.rs:753:18:753:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:753:18:753:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:753:18:753:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:753:18:753:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:753:26:753:26 | a | | main.rs:663:5:664:14 | S2 | -| main.rs:754:13:754:13 | a | | main.rs:663:5:664:14 | S2 | -| main.rs:754:17:754:35 | call_trait_m1_3(...) | | main.rs:663:5:664:14 | S2 | -| main.rs:754:33:754:34 | y2 | | main.rs:656:5:659:5 | MyThing | -| main.rs:754:33:754:34 | y2 | T | main.rs:663:5:664:14 | S2 | -| main.rs:755:18:755:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:755:18:755:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:755:18:755:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:755:18:755:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:755:26:755:26 | a | | main.rs:663:5:664:14 | S2 | -| main.rs:756:13:756:13 | a | | main.rs:661:5:662:14 | S1 | -| main.rs:756:17:756:38 | call_trait_assoc_1(...) | | main.rs:661:5:662:14 | S1 | -| main.rs:756:36:756:37 | x2 | | main.rs:656:5:659:5 | MyThing | -| main.rs:756:36:756:37 | x2 | T | main.rs:661:5:662:14 | S1 | -| main.rs:757:18:757:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:757:18:757:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:757:18:757:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:757:18:757:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:757:26:757:26 | a | | main.rs:661:5:662:14 | S1 | -| main.rs:758:13:758:13 | a | | main.rs:661:5:662:14 | S1 | -| main.rs:758:17:758:38 | call_trait_assoc_2(...) | | main.rs:661:5:662:14 | S1 | -| main.rs:758:36:758:37 | x2 | | main.rs:656:5:659:5 | MyThing | -| main.rs:758:36:758:37 | x2 | T | main.rs:661:5:662:14 | S1 | -| main.rs:759:18:759:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:759:18:759:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:759:18:759:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:759:18:759:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:759:26:759:26 | a | | main.rs:661:5:662:14 | S1 | -| main.rs:760:13:760:13 | a | | main.rs:663:5:664:14 | S2 | -| main.rs:760:17:760:38 | call_trait_assoc_1(...) | | main.rs:663:5:664:14 | S2 | -| main.rs:760:36:760:37 | y2 | | main.rs:656:5:659:5 | MyThing | -| main.rs:760:36:760:37 | y2 | T | main.rs:663:5:664:14 | S2 | -| main.rs:761:18:761:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:761:18:761:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:761:18:761:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:761:18:761:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:761:26:761:26 | a | | main.rs:663:5:664:14 | S2 | -| main.rs:762:13:762:13 | a | | main.rs:663:5:664:14 | S2 | -| main.rs:762:17:762:38 | call_trait_assoc_2(...) | | main.rs:663:5:664:14 | S2 | -| main.rs:762:36:762:37 | y2 | | main.rs:656:5:659:5 | MyThing | -| main.rs:762:36:762:37 | y2 | T | main.rs:663:5:664:14 | S2 | -| main.rs:763:18:763:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:763:18:763:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:763:18:763:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:763:18:763:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:763:26:763:26 | a | | main.rs:663:5:664:14 | S2 | -| main.rs:765:13:765:14 | x3 | | main.rs:656:5:659:5 | MyThing | -| main.rs:765:13:765:14 | x3 | T | main.rs:656:5:659:5 | MyThing | -| main.rs:765:13:765:14 | x3 | T.T | main.rs:661:5:662:14 | S1 | -| main.rs:765:18:767:9 | MyThing {...} | | main.rs:656:5:659:5 | MyThing | -| main.rs:765:18:767:9 | MyThing {...} | T | main.rs:656:5:659:5 | MyThing | -| main.rs:765:18:767:9 | MyThing {...} | T.T | main.rs:661:5:662:14 | S1 | -| main.rs:766:16:766:32 | MyThing {...} | | main.rs:656:5:659:5 | MyThing | -| main.rs:766:16:766:32 | MyThing {...} | T | main.rs:661:5:662:14 | S1 | -| main.rs:766:29:766:30 | S1 | | main.rs:661:5:662:14 | S1 | -| main.rs:768:13:768:14 | y3 | | main.rs:656:5:659:5 | MyThing | -| main.rs:768:13:768:14 | y3 | T | main.rs:656:5:659:5 | MyThing | -| main.rs:768:13:768:14 | y3 | T.T | main.rs:663:5:664:14 | S2 | -| main.rs:768:18:770:9 | MyThing {...} | | main.rs:656:5:659:5 | MyThing | -| main.rs:768:18:770:9 | MyThing {...} | T | main.rs:656:5:659:5 | MyThing | -| main.rs:768:18:770:9 | MyThing {...} | T.T | main.rs:663:5:664:14 | S2 | -| main.rs:769:16:769:32 | MyThing {...} | | main.rs:656:5:659:5 | MyThing | -| main.rs:769:16:769:32 | MyThing {...} | T | main.rs:663:5:664:14 | S2 | -| main.rs:769:29:769:30 | S2 | | main.rs:663:5:664:14 | S2 | -| main.rs:772:13:772:13 | a | | main.rs:661:5:662:14 | S1 | -| main.rs:772:17:772:39 | call_trait_thing_m1(...) | | main.rs:661:5:662:14 | S1 | -| main.rs:772:37:772:38 | x3 | | main.rs:656:5:659:5 | MyThing | -| main.rs:772:37:772:38 | x3 | T | main.rs:656:5:659:5 | MyThing | -| main.rs:772:37:772:38 | x3 | T.T | main.rs:661:5:662:14 | S1 | -| main.rs:773:18:773:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:773:18:773:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:773:18:773:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:773:18:773:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:773:26:773:26 | a | | main.rs:661:5:662:14 | S1 | -| main.rs:774:13:774:13 | a | | main.rs:661:5:662:14 | S1 | -| main.rs:774:17:774:41 | call_trait_thing_m1_2(...) | | main.rs:661:5:662:14 | S1 | -| main.rs:774:39:774:40 | x3 | | main.rs:656:5:659:5 | MyThing | -| main.rs:774:39:774:40 | x3 | T | main.rs:656:5:659:5 | MyThing | -| main.rs:774:39:774:40 | x3 | T.T | main.rs:661:5:662:14 | S1 | -| main.rs:775:18:775:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:775:18:775:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:775:18:775:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:775:18:775:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:775:26:775:26 | a | | main.rs:661:5:662:14 | S1 | -| main.rs:776:13:776:13 | a | | main.rs:661:5:662:14 | S1 | -| main.rs:776:17:776:41 | call_trait_thing_m1_3(...) | | main.rs:661:5:662:14 | S1 | -| main.rs:776:39:776:40 | x3 | | main.rs:656:5:659:5 | MyThing | -| main.rs:776:39:776:40 | x3 | T | main.rs:656:5:659:5 | MyThing | -| main.rs:776:39:776:40 | x3 | T.T | main.rs:661:5:662:14 | S1 | +| main.rs:660:18:660:22 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:660:18:660:22 | SelfParam | &T | main.rs:656:5:661:5 | Self [trait TraitWithSelfTp] | +| main.rs:663:40:663:44 | thing | | file://:0:0:0:0 | & | +| main.rs:663:40:663:44 | thing | &T | main.rs:663:17:663:37 | T | +| main.rs:663:56:665:5 | { ... } | | main.rs:663:14:663:14 | A | +| main.rs:664:9:664:13 | thing | | file://:0:0:0:0 | & | +| main.rs:664:9:664:13 | thing | &T | main.rs:663:17:663:37 | T | +| main.rs:664:9:664:21 | thing.get_a() | | main.rs:663:14:663:14 | A | +| main.rs:668:44:668:48 | thing | | main.rs:668:24:668:41 | S | +| main.rs:668:61:671:5 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:669:13:669:15 | _ms | | {EXTERNAL LOCATION} | Option | +| main.rs:669:13:669:15 | _ms | T | main.rs:656:5:661:5 | Self [trait TraitWithSelfTp] | +| main.rs:669:19:669:23 | thing | | main.rs:668:24:668:41 | S | +| main.rs:669:19:669:31 | thing.get_a() | | {EXTERNAL LOCATION} | Option | +| main.rs:669:19:669:31 | thing.get_a() | T | main.rs:656:5:661:5 | Self [trait TraitWithSelfTp] | +| main.rs:670:9:670:9 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:670:9:670:9 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:676:55:676:59 | thing | | file://:0:0:0:0 | & | +| main.rs:676:55:676:59 | thing | &T | main.rs:676:25:676:52 | S | +| main.rs:678:13:678:15 | _ms | | {EXTERNAL LOCATION} | Option | +| main.rs:678:13:678:15 | _ms | T | main.rs:656:5:661:5 | Self [trait TraitWithSelfTp] | +| main.rs:678:19:678:30 | get_a(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:678:19:678:30 | get_a(...) | T | main.rs:656:5:661:5 | Self [trait TraitWithSelfTp] | +| main.rs:678:25:678:29 | thing | | file://:0:0:0:0 | & | +| main.rs:678:25:678:29 | thing | &T | main.rs:676:25:676:52 | S | +| main.rs:687:18:687:22 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:687:18:687:22 | SelfParam | &T | main.rs:681:5:683:5 | MyStruct | +| main.rs:687:41:689:9 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:687:41:689:9 | { ... } | T | main.rs:681:5:683:5 | MyStruct | +| main.rs:688:13:688:48 | Some(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:688:13:688:48 | Some(...) | T | main.rs:681:5:683:5 | MyStruct | +| main.rs:688:18:688:47 | MyStruct {...} | | main.rs:681:5:683:5 | MyStruct | +| main.rs:688:36:688:39 | self | | file://:0:0:0:0 | & | +| main.rs:688:36:688:39 | self | &T | main.rs:681:5:683:5 | MyStruct | +| main.rs:688:36:688:45 | self.value | | {EXTERNAL LOCATION} | i32 | +| main.rs:695:13:695:13 | s | | main.rs:681:5:683:5 | MyStruct | +| main.rs:695:17:695:37 | MyStruct {...} | | main.rs:681:5:683:5 | MyStruct | +| main.rs:695:35:695:35 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:696:13:696:15 | _ms | | {EXTERNAL LOCATION} | Option | +| main.rs:696:13:696:15 | _ms | T | main.rs:656:5:661:5 | Self [trait TraitWithSelfTp] | +| main.rs:696:19:696:27 | get_a(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:696:19:696:27 | get_a(...) | T | main.rs:656:5:661:5 | Self [trait TraitWithSelfTp] | +| main.rs:696:25:696:26 | &s | | file://:0:0:0:0 | & | +| main.rs:696:25:696:26 | &s | &T | main.rs:681:5:683:5 | MyStruct | +| main.rs:696:26:696:26 | s | | main.rs:681:5:683:5 | MyStruct | +| main.rs:712:15:712:18 | SelfParam | | main.rs:711:5:722:5 | Self [trait MyTrait] | +| main.rs:714:15:714:18 | SelfParam | | main.rs:711:5:722:5 | Self [trait MyTrait] | +| main.rs:717:9:719:9 | { ... } | | main.rs:711:19:711:19 | A | +| main.rs:718:13:718:16 | self | | main.rs:711:5:722:5 | Self [trait MyTrait] | +| main.rs:718:13:718:21 | self.m1() | | main.rs:711:19:711:19 | A | +| main.rs:721:18:721:18 | x | | main.rs:711:5:722:5 | Self [trait MyTrait] | +| main.rs:726:50:726:50 | x | | main.rs:726:26:726:47 | T2 | +| main.rs:726:63:729:5 | { ... } | | main.rs:726:22:726:23 | T1 | +| main.rs:727:9:727:9 | x | | main.rs:726:26:726:47 | T2 | +| main.rs:727:9:727:14 | x.m1() | | main.rs:726:22:726:23 | T1 | +| main.rs:728:9:728:9 | x | | main.rs:726:26:726:47 | T2 | +| main.rs:728:9:728:14 | x.m1() | | main.rs:726:22:726:23 | T1 | +| main.rs:730:52:730:52 | x | | main.rs:730:28:730:49 | T2 | +| main.rs:730:65:734:5 | { ... } | | main.rs:730:24:730:25 | T1 | +| main.rs:731:13:731:13 | y | | main.rs:730:24:730:25 | T1 | +| main.rs:731:17:731:25 | ...::m1(...) | | main.rs:730:24:730:25 | T1 | +| main.rs:731:24:731:24 | x | | main.rs:730:28:730:49 | T2 | +| main.rs:732:9:732:9 | y | | main.rs:730:24:730:25 | T1 | +| main.rs:733:9:733:17 | ...::m1(...) | | main.rs:730:24:730:25 | T1 | +| main.rs:733:16:733:16 | x | | main.rs:730:28:730:49 | T2 | +| main.rs:735:52:735:52 | x | | main.rs:735:28:735:49 | T2 | +| main.rs:735:65:739:5 | { ... } | | main.rs:735:24:735:25 | T1 | +| main.rs:736:13:736:13 | y | | main.rs:735:24:735:25 | T1 | +| main.rs:736:17:736:30 | ...::m1(...) | | main.rs:735:24:735:25 | T1 | +| main.rs:736:29:736:29 | x | | main.rs:735:28:735:49 | T2 | +| main.rs:737:9:737:9 | y | | main.rs:735:24:735:25 | T1 | +| main.rs:738:9:738:22 | ...::m1(...) | | main.rs:735:24:735:25 | T1 | +| main.rs:738:21:738:21 | x | | main.rs:735:28:735:49 | T2 | +| main.rs:740:55:740:55 | x | | main.rs:740:31:740:52 | T2 | +| main.rs:740:68:744:5 | { ... } | | main.rs:740:27:740:28 | T1 | +| main.rs:741:13:741:13 | y | | main.rs:740:27:740:28 | T1 | +| main.rs:741:17:741:28 | ...::assoc(...) | | main.rs:740:27:740:28 | T1 | +| main.rs:741:27:741:27 | x | | main.rs:740:31:740:52 | T2 | +| main.rs:742:9:742:9 | y | | main.rs:740:27:740:28 | T1 | +| main.rs:743:9:743:20 | ...::assoc(...) | | main.rs:740:27:740:28 | T1 | +| main.rs:743:19:743:19 | x | | main.rs:740:31:740:52 | T2 | +| main.rs:745:55:745:55 | x | | main.rs:745:31:745:52 | T2 | +| main.rs:745:68:749:5 | { ... } | | main.rs:745:27:745:28 | T1 | +| main.rs:746:13:746:13 | y | | main.rs:745:27:745:28 | T1 | +| main.rs:746:17:746:33 | ...::assoc(...) | | main.rs:745:27:745:28 | T1 | +| main.rs:746:32:746:32 | x | | main.rs:745:31:745:52 | T2 | +| main.rs:747:9:747:9 | y | | main.rs:745:27:745:28 | T1 | +| main.rs:748:9:748:25 | ...::assoc(...) | | main.rs:745:27:745:28 | T1 | +| main.rs:748:24:748:24 | x | | main.rs:745:31:745:52 | T2 | +| main.rs:753:49:753:49 | x | | main.rs:701:5:704:5 | MyThing | +| main.rs:753:49:753:49 | x | T | main.rs:753:32:753:46 | T2 | +| main.rs:753:71:755:5 | { ... } | | main.rs:753:28:753:29 | T1 | +| main.rs:754:9:754:9 | x | | main.rs:701:5:704:5 | MyThing | +| main.rs:754:9:754:9 | x | T | main.rs:753:32:753:46 | T2 | +| main.rs:754:9:754:11 | x.a | | main.rs:753:32:753:46 | T2 | +| main.rs:754:9:754:16 | ... .m1() | | main.rs:753:28:753:29 | T1 | +| main.rs:756:51:756:51 | x | | main.rs:701:5:704:5 | MyThing | +| main.rs:756:51:756:51 | x | T | main.rs:756:34:756:48 | T2 | +| main.rs:756:73:758:5 | { ... } | | main.rs:756:30:756:31 | T1 | +| main.rs:757:9:757:19 | ...::m1(...) | | main.rs:756:30:756:31 | T1 | +| main.rs:757:16:757:16 | x | | main.rs:701:5:704:5 | MyThing | +| main.rs:757:16:757:16 | x | T | main.rs:756:34:756:48 | T2 | +| main.rs:757:16:757:18 | x.a | | main.rs:756:34:756:48 | T2 | +| main.rs:759:51:759:51 | x | | main.rs:701:5:704:5 | MyThing | +| main.rs:759:51:759:51 | x | T | main.rs:759:34:759:48 | T2 | +| main.rs:759:73:761:5 | { ... } | | main.rs:759:30:759:31 | T1 | +| main.rs:760:9:760:24 | ...::m1(...) | | main.rs:759:30:759:31 | T1 | +| main.rs:760:21:760:21 | x | | main.rs:701:5:704:5 | MyThing | +| main.rs:760:21:760:21 | x | T | main.rs:759:34:759:48 | T2 | +| main.rs:760:21:760:23 | x.a | | main.rs:759:34:759:48 | T2 | +| main.rs:764:15:764:18 | SelfParam | | main.rs:701:5:704:5 | MyThing | +| main.rs:764:15:764:18 | SelfParam | T | main.rs:763:10:763:10 | T | +| main.rs:764:26:766:9 | { ... } | | main.rs:763:10:763:10 | T | +| main.rs:765:13:765:16 | self | | main.rs:701:5:704:5 | MyThing | +| main.rs:765:13:765:16 | self | T | main.rs:763:10:763:10 | T | +| main.rs:765:13:765:18 | self.a | | main.rs:763:10:763:10 | T | +| main.rs:768:18:768:18 | x | | main.rs:701:5:704:5 | MyThing | +| main.rs:768:18:768:18 | x | T | main.rs:763:10:763:10 | T | +| main.rs:768:32:770:9 | { ... } | | main.rs:763:10:763:10 | T | +| main.rs:769:13:769:13 | x | | main.rs:701:5:704:5 | MyThing | +| main.rs:769:13:769:13 | x | T | main.rs:763:10:763:10 | T | +| main.rs:769:13:769:15 | x.a | | main.rs:763:10:763:10 | T | +| main.rs:774:13:774:13 | x | | main.rs:701:5:704:5 | MyThing | +| main.rs:774:13:774:13 | x | T | main.rs:706:5:707:14 | S1 | +| main.rs:774:17:774:33 | MyThing {...} | | main.rs:701:5:704:5 | MyThing | +| main.rs:774:17:774:33 | MyThing {...} | T | main.rs:706:5:707:14 | S1 | +| main.rs:774:30:774:31 | S1 | | main.rs:706:5:707:14 | S1 | +| main.rs:775:13:775:13 | y | | main.rs:701:5:704:5 | MyThing | +| main.rs:775:13:775:13 | y | T | main.rs:708:5:709:14 | S2 | +| main.rs:775:17:775:33 | MyThing {...} | | main.rs:701:5:704:5 | MyThing | +| main.rs:775:17:775:33 | MyThing {...} | T | main.rs:708:5:709:14 | S2 | +| main.rs:775:30:775:31 | S2 | | main.rs:708:5:709:14 | S2 | | main.rs:777:18:777:23 | "{:?}\\n" | | file://:0:0:0:0 | & | | main.rs:777:18:777:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:777:18:777:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:777:18:777:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:777:26:777:26 | a | | main.rs:661:5:662:14 | S1 | -| main.rs:778:13:778:13 | b | | main.rs:663:5:664:14 | S2 | -| main.rs:778:17:778:39 | call_trait_thing_m1(...) | | main.rs:663:5:664:14 | S2 | -| main.rs:778:37:778:38 | y3 | | main.rs:656:5:659:5 | MyThing | -| main.rs:778:37:778:38 | y3 | T | main.rs:656:5:659:5 | MyThing | -| main.rs:778:37:778:38 | y3 | T.T | main.rs:663:5:664:14 | S2 | -| main.rs:779:18:779:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:779:18:779:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:779:18:779:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:779:18:779:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:779:26:779:26 | b | | main.rs:663:5:664:14 | S2 | -| main.rs:780:13:780:13 | b | | main.rs:663:5:664:14 | S2 | -| main.rs:780:17:780:41 | call_trait_thing_m1_2(...) | | main.rs:663:5:664:14 | S2 | -| main.rs:780:39:780:40 | y3 | | main.rs:656:5:659:5 | MyThing | -| main.rs:780:39:780:40 | y3 | T | main.rs:656:5:659:5 | MyThing | -| main.rs:780:39:780:40 | y3 | T.T | main.rs:663:5:664:14 | S2 | -| main.rs:781:18:781:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:781:18:781:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:781:18:781:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:781:18:781:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:781:26:781:26 | b | | main.rs:663:5:664:14 | S2 | -| main.rs:782:13:782:13 | b | | main.rs:663:5:664:14 | S2 | -| main.rs:782:17:782:41 | call_trait_thing_m1_3(...) | | main.rs:663:5:664:14 | S2 | -| main.rs:782:39:782:40 | y3 | | main.rs:656:5:659:5 | MyThing | -| main.rs:782:39:782:40 | y3 | T | main.rs:656:5:659:5 | MyThing | -| main.rs:782:39:782:40 | y3 | T.T | main.rs:663:5:664:14 | S2 | +| main.rs:777:18:777:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:777:18:777:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:777:26:777:26 | x | | main.rs:701:5:704:5 | MyThing | +| main.rs:777:26:777:26 | x | T | main.rs:706:5:707:14 | S1 | +| main.rs:777:26:777:31 | x.m1() | | main.rs:706:5:707:14 | S1 | +| main.rs:778:18:778:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:778:18:778:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:778:18:778:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:778:18:778:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:778:26:778:26 | y | | main.rs:701:5:704:5 | MyThing | +| main.rs:778:26:778:26 | y | T | main.rs:708:5:709:14 | S2 | +| main.rs:778:26:778:31 | y.m1() | | main.rs:708:5:709:14 | S2 | +| main.rs:780:13:780:13 | x | | main.rs:701:5:704:5 | MyThing | +| main.rs:780:13:780:13 | x | T | main.rs:706:5:707:14 | S1 | +| main.rs:780:17:780:33 | MyThing {...} | | main.rs:701:5:704:5 | MyThing | +| main.rs:780:17:780:33 | MyThing {...} | T | main.rs:706:5:707:14 | S1 | +| main.rs:780:30:780:31 | S1 | | main.rs:706:5:707:14 | S1 | +| main.rs:781:13:781:13 | y | | main.rs:701:5:704:5 | MyThing | +| main.rs:781:13:781:13 | y | T | main.rs:708:5:709:14 | S2 | +| main.rs:781:17:781:33 | MyThing {...} | | main.rs:701:5:704:5 | MyThing | +| main.rs:781:17:781:33 | MyThing {...} | T | main.rs:708:5:709:14 | S2 | +| main.rs:781:30:781:31 | S2 | | main.rs:708:5:709:14 | S2 | | main.rs:783:18:783:23 | "{:?}\\n" | | file://:0:0:0:0 | & | | main.rs:783:18:783:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:783:18:783:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:783:18:783:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:783:26:783:26 | b | | main.rs:663:5:664:14 | S2 | -| main.rs:794:19:794:22 | SelfParam | | main.rs:788:5:791:5 | Wrapper | -| main.rs:794:19:794:22 | SelfParam | A | main.rs:793:10:793:10 | A | -| main.rs:794:30:796:9 | { ... } | | main.rs:793:10:793:10 | A | -| main.rs:795:13:795:16 | self | | main.rs:788:5:791:5 | Wrapper | -| main.rs:795:13:795:16 | self | A | main.rs:793:10:793:10 | A | -| main.rs:795:13:795:22 | self.field | | main.rs:793:10:793:10 | A | -| main.rs:803:15:803:18 | SelfParam | | main.rs:799:5:813:5 | Self [trait MyTrait] | -| main.rs:805:15:805:18 | SelfParam | | main.rs:799:5:813:5 | Self [trait MyTrait] | -| main.rs:809:9:812:9 | { ... } | | main.rs:800:9:800:28 | AssociatedType | -| main.rs:810:13:810:16 | self | | main.rs:799:5:813:5 | Self [trait MyTrait] | -| main.rs:810:13:810:21 | self.m1() | | main.rs:800:9:800:28 | AssociatedType | -| main.rs:811:13:811:43 | ...::default(...) | | main.rs:800:9:800:28 | AssociatedType | -| main.rs:819:19:819:23 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:819:19:819:23 | SelfParam | &T | main.rs:815:5:825:5 | Self [trait MyTraitAssoc2] | -| main.rs:819:26:819:26 | a | | main.rs:819:16:819:16 | A | -| main.rs:821:22:821:26 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:821:22:821:26 | SelfParam | &T | main.rs:815:5:825:5 | Self [trait MyTraitAssoc2] | -| main.rs:821:29:821:29 | a | | main.rs:821:19:821:19 | A | -| main.rs:821:35:821:35 | b | | main.rs:821:19:821:19 | A | -| main.rs:821:75:824:9 | { ... } | | main.rs:816:9:816:52 | GenericAssociatedType | -| main.rs:822:13:822:16 | self | | file://:0:0:0:0 | & | -| main.rs:822:13:822:16 | self | &T | main.rs:815:5:825:5 | Self [trait MyTraitAssoc2] | -| main.rs:822:13:822:23 | self.put(...) | | main.rs:816:9:816:52 | GenericAssociatedType | -| main.rs:822:22:822:22 | a | | main.rs:821:19:821:19 | A | -| main.rs:823:13:823:16 | self | | file://:0:0:0:0 | & | -| main.rs:823:13:823:16 | self | &T | main.rs:815:5:825:5 | Self [trait MyTraitAssoc2] | -| main.rs:823:13:823:23 | self.put(...) | | main.rs:816:9:816:52 | GenericAssociatedType | -| main.rs:823:22:823:22 | b | | main.rs:821:19:821:19 | A | -| main.rs:832:21:832:25 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:832:21:832:25 | SelfParam | &T | main.rs:827:5:837:5 | Self [trait TraitMultipleAssoc] | -| main.rs:834:20:834:24 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:834:20:834:24 | SelfParam | &T | main.rs:827:5:837:5 | Self [trait TraitMultipleAssoc] | -| main.rs:836:20:836:24 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:836:20:836:24 | SelfParam | &T | main.rs:827:5:837:5 | Self [trait TraitMultipleAssoc] | -| main.rs:852:15:852:18 | SelfParam | | main.rs:839:5:840:13 | S | -| main.rs:852:45:854:9 | { ... } | | main.rs:845:5:846:14 | AT | -| main.rs:853:13:853:14 | AT | | main.rs:845:5:846:14 | AT | -| main.rs:862:19:862:23 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:862:19:862:23 | SelfParam | &T | main.rs:839:5:840:13 | S | -| main.rs:862:26:862:26 | a | | main.rs:862:16:862:16 | A | -| main.rs:862:46:864:9 | { ... } | | main.rs:788:5:791:5 | Wrapper | -| main.rs:862:46:864:9 | { ... } | A | main.rs:862:16:862:16 | A | -| main.rs:863:13:863:32 | Wrapper {...} | | main.rs:788:5:791:5 | Wrapper | -| main.rs:863:13:863:32 | Wrapper {...} | A | main.rs:862:16:862:16 | A | -| main.rs:863:30:863:30 | a | | main.rs:862:16:862:16 | A | -| main.rs:871:15:871:18 | SelfParam | | main.rs:842:5:843:14 | S2 | -| main.rs:871:45:873:9 | { ... } | | main.rs:788:5:791:5 | Wrapper | -| main.rs:871:45:873:9 | { ... } | A | main.rs:842:5:843:14 | S2 | -| main.rs:872:13:872:35 | Wrapper {...} | | main.rs:788:5:791:5 | Wrapper | -| main.rs:872:13:872:35 | Wrapper {...} | A | main.rs:842:5:843:14 | S2 | -| main.rs:872:30:872:33 | self | | main.rs:842:5:843:14 | S2 | -| main.rs:878:30:880:9 | { ... } | | main.rs:788:5:791:5 | Wrapper | -| main.rs:878:30:880:9 | { ... } | A | main.rs:842:5:843:14 | S2 | -| main.rs:879:13:879:33 | Wrapper {...} | | main.rs:788:5:791:5 | Wrapper | -| main.rs:879:13:879:33 | Wrapper {...} | A | main.rs:842:5:843:14 | S2 | -| main.rs:879:30:879:31 | S2 | | main.rs:842:5:843:14 | S2 | -| main.rs:885:22:885:26 | thing | | main.rs:885:10:885:19 | T | -| main.rs:886:9:886:13 | thing | | main.rs:885:10:885:19 | T | -| main.rs:893:21:893:25 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:893:21:893:25 | SelfParam | &T | main.rs:845:5:846:14 | AT | -| main.rs:893:34:895:9 | { ... } | | main.rs:845:5:846:14 | AT | -| main.rs:894:13:894:14 | AT | | main.rs:845:5:846:14 | AT | -| main.rs:897:20:897:24 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:897:20:897:24 | SelfParam | &T | main.rs:845:5:846:14 | AT | -| main.rs:897:43:899:9 | { ... } | | main.rs:839:5:840:13 | S | -| main.rs:898:13:898:13 | S | | main.rs:839:5:840:13 | S | -| main.rs:901:20:901:24 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:901:20:901:24 | SelfParam | &T | main.rs:845:5:846:14 | AT | -| main.rs:901:43:903:9 | { ... } | | main.rs:842:5:843:14 | S2 | -| main.rs:902:13:902:14 | S2 | | main.rs:842:5:843:14 | S2 | -| main.rs:907:13:907:14 | x1 | | main.rs:839:5:840:13 | S | -| main.rs:907:18:907:18 | S | | main.rs:839:5:840:13 | S | -| main.rs:909:18:909:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:909:18:909:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:909:18:909:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:909:18:909:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:909:26:909:27 | x1 | | main.rs:839:5:840:13 | S | -| main.rs:909:26:909:32 | x1.m1() | | main.rs:845:5:846:14 | AT | -| main.rs:911:13:911:14 | x2 | | main.rs:839:5:840:13 | S | -| main.rs:911:18:911:18 | S | | main.rs:839:5:840:13 | S | -| main.rs:913:13:913:13 | y | | main.rs:845:5:846:14 | AT | -| main.rs:913:17:913:18 | x2 | | main.rs:839:5:840:13 | S | -| main.rs:913:17:913:23 | x2.m2() | | main.rs:845:5:846:14 | AT | -| main.rs:914:18:914:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:914:18:914:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:914:18:914:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:914:18:914:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:914:26:914:26 | y | | main.rs:845:5:846:14 | AT | -| main.rs:916:13:916:14 | x3 | | main.rs:839:5:840:13 | S | -| main.rs:916:18:916:18 | S | | main.rs:839:5:840:13 | S | -| main.rs:918:18:918:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:918:18:918:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:918:18:918:43 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:918:18:918:43 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:918:26:918:27 | x3 | | main.rs:839:5:840:13 | S | -| main.rs:918:26:918:34 | x3.put(...) | | main.rs:788:5:791:5 | Wrapper | -| main.rs:918:26:918:34 | x3.put(...) | A | {EXTERNAL LOCATION} | i32 | -| main.rs:918:26:918:43 | ... .unwrap() | | {EXTERNAL LOCATION} | i32 | -| main.rs:918:33:918:33 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:921:18:921:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:921:18:921:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:921:18:921:49 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:921:18:921:49 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:921:26:921:27 | x3 | | main.rs:839:5:840:13 | S | -| main.rs:921:26:921:40 | x3.putTwo(...) | | main.rs:788:5:791:5 | Wrapper | -| main.rs:921:26:921:40 | x3.putTwo(...) | A | main.rs:859:36:859:50 | AssociatedParam | -| main.rs:921:26:921:49 | ... .unwrap() | | main.rs:859:36:859:50 | AssociatedParam | -| main.rs:921:36:921:36 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:921:39:921:39 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:923:20:923:20 | S | | main.rs:839:5:840:13 | S | -| main.rs:924:18:924:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:924:18:924:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:924:18:924:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:924:18:924:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:926:13:926:14 | x5 | | main.rs:842:5:843:14 | S2 | -| main.rs:926:18:926:19 | S2 | | main.rs:842:5:843:14 | S2 | -| main.rs:927:18:927:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:927:18:927:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:927:18:927:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:927:18:927:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:927:26:927:27 | x5 | | main.rs:842:5:843:14 | S2 | -| main.rs:927:26:927:32 | x5.m1() | | main.rs:788:5:791:5 | Wrapper | -| main.rs:927:26:927:32 | x5.m1() | A | main.rs:842:5:843:14 | S2 | -| main.rs:928:13:928:14 | x6 | | main.rs:842:5:843:14 | S2 | -| main.rs:928:18:928:19 | S2 | | main.rs:842:5:843:14 | S2 | -| main.rs:929:18:929:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:929:18:929:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:929:18:929:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:929:18:929:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:929:26:929:27 | x6 | | main.rs:842:5:843:14 | S2 | -| main.rs:929:26:929:32 | x6.m2() | | main.rs:788:5:791:5 | Wrapper | -| main.rs:929:26:929:32 | x6.m2() | A | main.rs:842:5:843:14 | S2 | -| main.rs:931:13:931:22 | assoc_zero | | main.rs:845:5:846:14 | AT | -| main.rs:931:26:931:27 | AT | | main.rs:845:5:846:14 | AT | -| main.rs:931:26:931:38 | AT.get_zero() | | main.rs:845:5:846:14 | AT | -| main.rs:932:13:932:21 | assoc_one | | main.rs:839:5:840:13 | S | -| main.rs:932:25:932:26 | AT | | main.rs:845:5:846:14 | AT | -| main.rs:932:25:932:36 | AT.get_one() | | main.rs:839:5:840:13 | S | -| main.rs:933:13:933:21 | assoc_two | | main.rs:842:5:843:14 | S2 | -| main.rs:933:25:933:26 | AT | | main.rs:845:5:846:14 | AT | -| main.rs:933:25:933:36 | AT.get_two() | | main.rs:842:5:843:14 | S2 | -| main.rs:941:19:941:23 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:941:19:941:23 | SelfParam | &T | main.rs:938:5:942:5 | Self [trait Supertrait] | -| main.rs:941:26:941:32 | content | | main.rs:939:9:939:21 | Content | -| main.rs:946:24:946:28 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:946:24:946:28 | SelfParam | &T | main.rs:944:5:947:5 | Self [trait Subtrait] | -| main.rs:955:23:955:27 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:955:23:955:27 | SelfParam | &T | main.rs:949:5:959:5 | Self [trait Subtrait2] | -| main.rs:955:30:955:31 | c1 | | main.rs:939:9:939:21 | Content | -| main.rs:955:49:955:50 | c2 | | main.rs:939:9:939:21 | Content | -| main.rs:956:13:956:16 | self | | file://:0:0:0:0 | & | -| main.rs:956:13:956:16 | self | &T | main.rs:949:5:959:5 | Self [trait Subtrait2] | -| main.rs:956:25:956:26 | c1 | | main.rs:939:9:939:21 | Content | -| main.rs:957:13:957:16 | self | | file://:0:0:0:0 | & | -| main.rs:957:13:957:16 | self | &T | main.rs:949:5:959:5 | Self [trait Subtrait2] | -| main.rs:957:25:957:26 | c2 | | main.rs:939:9:939:21 | Content | -| main.rs:965:19:965:23 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:965:19:965:23 | SelfParam | &T | main.rs:961:5:961:24 | MyType | -| main.rs:965:19:965:23 | SelfParam | &T.T | main.rs:963:10:963:10 | T | -| main.rs:965:26:965:33 | _content | | main.rs:963:10:963:10 | T | -| main.rs:966:22:966:42 | "Inserting content: \\n" | | file://:0:0:0:0 | & | -| main.rs:966:22:966:42 | "Inserting content: \\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:966:22:966:42 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:966:22:966:42 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:972:24:972:28 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:972:24:972:28 | SelfParam | &T | main.rs:961:5:961:24 | MyType | -| main.rs:972:24:972:28 | SelfParam | &T.T | main.rs:970:10:970:17 | T | -| main.rs:972:48:974:9 | { ... } | | main.rs:970:10:970:17 | T | -| main.rs:973:13:973:19 | (...) | | main.rs:961:5:961:24 | MyType | -| main.rs:973:13:973:19 | (...) | T | main.rs:970:10:970:17 | T | -| main.rs:973:13:973:21 | ... .0 | | main.rs:970:10:970:17 | T | -| main.rs:973:13:973:29 | ... .clone() | | main.rs:970:10:970:17 | T | -| main.rs:973:14:973:18 | * ... | | main.rs:961:5:961:24 | MyType | -| main.rs:973:14:973:18 | * ... | T | main.rs:970:10:970:17 | T | -| main.rs:973:15:973:18 | self | | file://:0:0:0:0 | & | -| main.rs:973:15:973:18 | self | &T | main.rs:961:5:961:24 | MyType | -| main.rs:973:15:973:18 | self | &T.T | main.rs:970:10:970:17 | T | -| main.rs:977:33:977:36 | item | | file://:0:0:0:0 | & | -| main.rs:977:33:977:36 | item | &T | main.rs:977:20:977:30 | T | -| main.rs:977:57:979:5 | { ... } | | main.rs:939:9:939:21 | Content | -| main.rs:978:9:978:12 | item | | file://:0:0:0:0 | & | -| main.rs:978:9:978:12 | item | &T | main.rs:977:20:977:30 | T | -| main.rs:978:9:978:26 | item.get_content() | | main.rs:939:9:939:21 | Content | -| main.rs:981:35:981:38 | item | | file://:0:0:0:0 | & | -| main.rs:981:35:981:38 | item | &T | main.rs:981:21:981:32 | T | -| main.rs:981:45:981:46 | c1 | | main.rs:939:9:939:21 | Content | -| main.rs:981:61:981:62 | c2 | | main.rs:939:9:939:21 | Content | -| main.rs:981:77:981:78 | c3 | | main.rs:939:9:939:21 | Content | -| main.rs:982:9:982:12 | item | | file://:0:0:0:0 | & | -| main.rs:982:9:982:12 | item | &T | main.rs:981:21:981:32 | T | -| main.rs:982:21:982:22 | c1 | | main.rs:939:9:939:21 | Content | -| main.rs:983:9:983:12 | item | | file://:0:0:0:0 | & | -| main.rs:983:9:983:12 | item | &T | main.rs:981:21:981:32 | T | -| main.rs:983:25:983:26 | c2 | | main.rs:939:9:939:21 | Content | -| main.rs:983:29:983:30 | c3 | | main.rs:939:9:939:21 | Content | -| main.rs:987:13:987:17 | item1 | | main.rs:961:5:961:24 | MyType | -| main.rs:987:13:987:17 | item1 | T | {EXTERNAL LOCATION} | i64 | -| main.rs:987:21:987:33 | MyType(...) | | main.rs:961:5:961:24 | MyType | -| main.rs:987:21:987:33 | MyType(...) | T | {EXTERNAL LOCATION} | i64 | -| main.rs:987:28:987:32 | 42i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:988:25:988:29 | item1 | | main.rs:961:5:961:24 | MyType | -| main.rs:988:25:988:29 | item1 | T | {EXTERNAL LOCATION} | i64 | -| main.rs:990:13:990:17 | item2 | | main.rs:961:5:961:24 | MyType | -| main.rs:990:13:990:17 | item2 | T | {EXTERNAL LOCATION} | bool | -| main.rs:990:21:990:32 | MyType(...) | | main.rs:961:5:961:24 | MyType | -| main.rs:990:21:990:32 | MyType(...) | T | {EXTERNAL LOCATION} | bool | -| main.rs:990:28:990:31 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:991:37:991:42 | &item2 | | file://:0:0:0:0 | & | -| main.rs:991:37:991:42 | &item2 | &T | main.rs:961:5:961:24 | MyType | -| main.rs:991:37:991:42 | &item2 | &T.T | {EXTERNAL LOCATION} | bool | -| main.rs:991:38:991:42 | item2 | | main.rs:961:5:961:24 | MyType | -| main.rs:991:38:991:42 | item2 | T | {EXTERNAL LOCATION} | bool | -| main.rs:1008:15:1008:18 | SelfParam | | main.rs:996:5:1000:5 | MyEnum | -| main.rs:1008:15:1008:18 | SelfParam | A | main.rs:1007:10:1007:10 | T | -| main.rs:1008:26:1013:9 | { ... } | | main.rs:1007:10:1007:10 | T | -| main.rs:1009:13:1012:13 | match self { ... } | | main.rs:1007:10:1007:10 | T | -| main.rs:1009:19:1009:22 | self | | main.rs:996:5:1000:5 | MyEnum | -| main.rs:1009:19:1009:22 | self | A | main.rs:1007:10:1007:10 | T | -| main.rs:1010:17:1010:29 | ...::C1(...) | | main.rs:996:5:1000:5 | MyEnum | -| main.rs:1010:17:1010:29 | ...::C1(...) | A | main.rs:1007:10:1007:10 | T | -| main.rs:1010:28:1010:28 | a | | main.rs:1007:10:1007:10 | T | -| main.rs:1010:34:1010:34 | a | | main.rs:1007:10:1007:10 | T | -| main.rs:1011:17:1011:32 | ...::C2 {...} | | main.rs:996:5:1000:5 | MyEnum | -| main.rs:1011:17:1011:32 | ...::C2 {...} | A | main.rs:1007:10:1007:10 | T | -| main.rs:1011:30:1011:30 | a | | main.rs:1007:10:1007:10 | T | -| main.rs:1011:37:1011:37 | a | | main.rs:1007:10:1007:10 | T | -| main.rs:1017:13:1017:13 | x | | main.rs:996:5:1000:5 | MyEnum | -| main.rs:1017:13:1017:13 | x | A | main.rs:1002:5:1003:14 | S1 | -| main.rs:1017:17:1017:30 | ...::C1(...) | | main.rs:996:5:1000:5 | MyEnum | -| main.rs:1017:17:1017:30 | ...::C1(...) | A | main.rs:1002:5:1003:14 | S1 | -| main.rs:1017:28:1017:29 | S1 | | main.rs:1002:5:1003:14 | S1 | -| main.rs:1018:13:1018:13 | y | | main.rs:996:5:1000:5 | MyEnum | -| main.rs:1018:13:1018:13 | y | A | main.rs:1004:5:1005:14 | S2 | -| main.rs:1018:17:1018:36 | ...::C2 {...} | | main.rs:996:5:1000:5 | MyEnum | -| main.rs:1018:17:1018:36 | ...::C2 {...} | A | main.rs:1004:5:1005:14 | S2 | -| main.rs:1018:33:1018:34 | S2 | | main.rs:1004:5:1005:14 | S2 | -| main.rs:1020:18:1020:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1020:18:1020:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1020:18:1020:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1020:18:1020:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1020:26:1020:26 | x | | main.rs:996:5:1000:5 | MyEnum | -| main.rs:1020:26:1020:26 | x | A | main.rs:1002:5:1003:14 | S1 | -| main.rs:1020:26:1020:31 | x.m1() | | main.rs:1002:5:1003:14 | S1 | -| main.rs:1021:18:1021:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1021:18:1021:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1021:18:1021:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1021:18:1021:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1021:26:1021:26 | y | | main.rs:996:5:1000:5 | MyEnum | -| main.rs:1021:26:1021:26 | y | A | main.rs:1004:5:1005:14 | S2 | -| main.rs:1021:26:1021:31 | y.m1() | | main.rs:1004:5:1005:14 | S2 | -| main.rs:1043:15:1043:18 | SelfParam | | main.rs:1041:5:1044:5 | Self [trait MyTrait1] | -| main.rs:1048:15:1048:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1048:15:1048:19 | SelfParam | &T | main.rs:1046:5:1058:5 | Self [trait MyTrait2] | -| main.rs:1051:9:1057:9 | { ... } | | main.rs:1046:20:1046:22 | Tr2 | -| main.rs:1052:13:1056:13 | if ... {...} else {...} | | main.rs:1046:20:1046:22 | Tr2 | -| main.rs:1052:16:1052:16 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1052:16:1052:20 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1052:20:1052:20 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1052:22:1054:13 | { ... } | | main.rs:1046:20:1046:22 | Tr2 | -| main.rs:1053:17:1053:20 | self | | file://:0:0:0:0 | & | -| main.rs:1053:17:1053:20 | self | &T | main.rs:1046:5:1058:5 | Self [trait MyTrait2] | -| main.rs:1053:17:1053:25 | self.m1() | | main.rs:1046:20:1046:22 | Tr2 | -| main.rs:1054:20:1056:13 | { ... } | | main.rs:1046:20:1046:22 | Tr2 | -| main.rs:1055:17:1055:31 | ...::m1(...) | | main.rs:1046:20:1046:22 | Tr2 | -| main.rs:1055:26:1055:30 | * ... | | main.rs:1046:5:1058:5 | Self [trait MyTrait2] | -| main.rs:1055:27:1055:30 | self | | file://:0:0:0:0 | & | -| main.rs:1055:27:1055:30 | self | &T | main.rs:1046:5:1058:5 | Self [trait MyTrait2] | -| main.rs:1062:15:1062:18 | SelfParam | | main.rs:1060:5:1072:5 | Self [trait MyTrait3] | -| main.rs:1065:9:1071:9 | { ... } | | main.rs:1060:20:1060:22 | Tr3 | -| main.rs:1066:13:1070:13 | if ... {...} else {...} | | main.rs:1060:20:1060:22 | Tr3 | -| main.rs:1066:16:1066:16 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1066:16:1066:20 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1066:20:1066:20 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1066:22:1068:13 | { ... } | | main.rs:1060:20:1060:22 | Tr3 | -| main.rs:1067:17:1067:20 | self | | main.rs:1060:5:1072:5 | Self [trait MyTrait3] | -| main.rs:1067:17:1067:25 | self.m2() | | main.rs:1026:5:1029:5 | MyThing | -| main.rs:1067:17:1067:25 | self.m2() | A | main.rs:1060:20:1060:22 | Tr3 | -| main.rs:1067:17:1067:27 | ... .a | | main.rs:1060:20:1060:22 | Tr3 | -| main.rs:1068:20:1070:13 | { ... } | | main.rs:1060:20:1060:22 | Tr3 | -| main.rs:1069:17:1069:31 | ...::m2(...) | | main.rs:1026:5:1029:5 | MyThing | -| main.rs:1069:17:1069:31 | ...::m2(...) | A | main.rs:1060:20:1060:22 | Tr3 | -| main.rs:1069:17:1069:33 | ... .a | | main.rs:1060:20:1060:22 | Tr3 | -| main.rs:1069:26:1069:30 | &self | | file://:0:0:0:0 | & | -| main.rs:1069:26:1069:30 | &self | &T | main.rs:1060:5:1072:5 | Self [trait MyTrait3] | -| main.rs:1069:27:1069:30 | self | | main.rs:1060:5:1072:5 | Self [trait MyTrait3] | -| main.rs:1076:15:1076:18 | SelfParam | | main.rs:1026:5:1029:5 | MyThing | -| main.rs:1076:15:1076:18 | SelfParam | A | main.rs:1074:10:1074:10 | T | -| main.rs:1076:26:1078:9 | { ... } | | main.rs:1074:10:1074:10 | T | -| main.rs:1077:13:1077:16 | self | | main.rs:1026:5:1029:5 | MyThing | -| main.rs:1077:13:1077:16 | self | A | main.rs:1074:10:1074:10 | T | -| main.rs:1077:13:1077:18 | self.a | | main.rs:1074:10:1074:10 | T | -| main.rs:1085:15:1085:18 | SelfParam | | main.rs:1031:5:1034:5 | MyThing2 | -| main.rs:1085:15:1085:18 | SelfParam | A | main.rs:1083:10:1083:10 | T | -| main.rs:1085:35:1087:9 | { ... } | | main.rs:1026:5:1029:5 | MyThing | -| main.rs:1085:35:1087:9 | { ... } | A | main.rs:1083:10:1083:10 | T | -| main.rs:1086:13:1086:33 | MyThing {...} | | main.rs:1026:5:1029:5 | MyThing | -| main.rs:1086:13:1086:33 | MyThing {...} | A | main.rs:1083:10:1083:10 | T | -| main.rs:1086:26:1086:29 | self | | main.rs:1031:5:1034:5 | MyThing2 | -| main.rs:1086:26:1086:29 | self | A | main.rs:1083:10:1083:10 | T | -| main.rs:1086:26:1086:31 | self.a | | main.rs:1083:10:1083:10 | T | -| main.rs:1094:44:1094:44 | x | | main.rs:1094:26:1094:41 | T2 | -| main.rs:1094:57:1096:5 | { ... } | | main.rs:1094:22:1094:23 | T1 | -| main.rs:1095:9:1095:9 | x | | main.rs:1094:26:1094:41 | T2 | -| main.rs:1095:9:1095:14 | x.m1() | | main.rs:1094:22:1094:23 | T1 | -| main.rs:1098:56:1098:56 | x | | main.rs:1098:39:1098:53 | T | -| main.rs:1100:13:1100:13 | a | | main.rs:1026:5:1029:5 | MyThing | -| main.rs:1100:13:1100:13 | a | A | main.rs:1036:5:1037:14 | S1 | -| main.rs:1100:17:1100:17 | x | | main.rs:1098:39:1098:53 | T | -| main.rs:1100:17:1100:22 | x.m1() | | main.rs:1026:5:1029:5 | MyThing | -| main.rs:1100:17:1100:22 | x.m1() | A | main.rs:1036:5:1037:14 | S1 | -| main.rs:1101:18:1101:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1101:18:1101:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1101:18:1101:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1101:18:1101:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1101:26:1101:26 | a | | main.rs:1026:5:1029:5 | MyThing | -| main.rs:1101:26:1101:26 | a | A | main.rs:1036:5:1037:14 | S1 | -| main.rs:1105:13:1105:13 | x | | main.rs:1026:5:1029:5 | MyThing | -| main.rs:1105:13:1105:13 | x | A | main.rs:1036:5:1037:14 | S1 | -| main.rs:1105:17:1105:33 | MyThing {...} | | main.rs:1026:5:1029:5 | MyThing | -| main.rs:1105:17:1105:33 | MyThing {...} | A | main.rs:1036:5:1037:14 | S1 | -| main.rs:1105:30:1105:31 | S1 | | main.rs:1036:5:1037:14 | S1 | -| main.rs:1106:13:1106:13 | y | | main.rs:1026:5:1029:5 | MyThing | -| main.rs:1106:13:1106:13 | y | A | main.rs:1038:5:1039:14 | S2 | -| main.rs:1106:17:1106:33 | MyThing {...} | | main.rs:1026:5:1029:5 | MyThing | -| main.rs:1106:17:1106:33 | MyThing {...} | A | main.rs:1038:5:1039:14 | S2 | -| main.rs:1106:30:1106:31 | S2 | | main.rs:1038:5:1039:14 | S2 | -| main.rs:1108:18:1108:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1108:18:1108:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1108:18:1108:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1108:18:1108:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1108:26:1108:26 | x | | main.rs:1026:5:1029:5 | MyThing | -| main.rs:1108:26:1108:26 | x | A | main.rs:1036:5:1037:14 | S1 | -| main.rs:1108:26:1108:31 | x.m1() | | main.rs:1036:5:1037:14 | S1 | -| main.rs:1109:18:1109:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1109:18:1109:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1109:18:1109:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1109:18:1109:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1109:26:1109:26 | y | | main.rs:1026:5:1029:5 | MyThing | -| main.rs:1109:26:1109:26 | y | A | main.rs:1038:5:1039:14 | S2 | -| main.rs:1109:26:1109:31 | y.m1() | | main.rs:1038:5:1039:14 | S2 | -| main.rs:1111:13:1111:13 | x | | main.rs:1026:5:1029:5 | MyThing | -| main.rs:1111:13:1111:13 | x | A | main.rs:1036:5:1037:14 | S1 | -| main.rs:1111:17:1111:33 | MyThing {...} | | main.rs:1026:5:1029:5 | MyThing | -| main.rs:1111:17:1111:33 | MyThing {...} | A | main.rs:1036:5:1037:14 | S1 | -| main.rs:1111:30:1111:31 | S1 | | main.rs:1036:5:1037:14 | S1 | -| main.rs:1112:13:1112:13 | y | | main.rs:1026:5:1029:5 | MyThing | -| main.rs:1112:13:1112:13 | y | A | main.rs:1038:5:1039:14 | S2 | -| main.rs:1112:17:1112:33 | MyThing {...} | | main.rs:1026:5:1029:5 | MyThing | -| main.rs:1112:17:1112:33 | MyThing {...} | A | main.rs:1038:5:1039:14 | S2 | -| main.rs:1112:30:1112:31 | S2 | | main.rs:1038:5:1039:14 | S2 | -| main.rs:1114:18:1114:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1114:18:1114:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1114:18:1114:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1114:18:1114:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1114:26:1114:26 | x | | main.rs:1026:5:1029:5 | MyThing | -| main.rs:1114:26:1114:26 | x | A | main.rs:1036:5:1037:14 | S1 | -| main.rs:1114:26:1114:31 | x.m2() | | main.rs:1036:5:1037:14 | S1 | -| main.rs:1115:18:1115:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1115:18:1115:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1115:18:1115:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1115:18:1115:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1115:26:1115:26 | y | | main.rs:1026:5:1029:5 | MyThing | -| main.rs:1115:26:1115:26 | y | A | main.rs:1038:5:1039:14 | S2 | -| main.rs:1115:26:1115:31 | y.m2() | | main.rs:1038:5:1039:14 | S2 | -| main.rs:1117:13:1117:13 | x | | main.rs:1031:5:1034:5 | MyThing2 | -| main.rs:1117:13:1117:13 | x | A | main.rs:1036:5:1037:14 | S1 | -| main.rs:1117:17:1117:34 | MyThing2 {...} | | main.rs:1031:5:1034:5 | MyThing2 | -| main.rs:1117:17:1117:34 | MyThing2 {...} | A | main.rs:1036:5:1037:14 | S1 | -| main.rs:1117:31:1117:32 | S1 | | main.rs:1036:5:1037:14 | S1 | -| main.rs:1118:13:1118:13 | y | | main.rs:1031:5:1034:5 | MyThing2 | -| main.rs:1118:13:1118:13 | y | A | main.rs:1038:5:1039:14 | S2 | -| main.rs:1118:17:1118:34 | MyThing2 {...} | | main.rs:1031:5:1034:5 | MyThing2 | -| main.rs:1118:17:1118:34 | MyThing2 {...} | A | main.rs:1038:5:1039:14 | S2 | -| main.rs:1118:31:1118:32 | S2 | | main.rs:1038:5:1039:14 | S2 | -| main.rs:1120:18:1120:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1120:18:1120:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1120:18:1120:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1120:18:1120:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1120:26:1120:26 | x | | main.rs:1031:5:1034:5 | MyThing2 | -| main.rs:1120:26:1120:26 | x | A | main.rs:1036:5:1037:14 | S1 | -| main.rs:1120:26:1120:31 | x.m3() | | main.rs:1036:5:1037:14 | S1 | -| main.rs:1121:18:1121:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1121:18:1121:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1121:18:1121:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1121:18:1121:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1121:26:1121:26 | y | | main.rs:1031:5:1034:5 | MyThing2 | -| main.rs:1121:26:1121:26 | y | A | main.rs:1038:5:1039:14 | S2 | -| main.rs:1121:26:1121:31 | y.m3() | | main.rs:1038:5:1039:14 | S2 | -| main.rs:1123:13:1123:13 | x | | main.rs:1026:5:1029:5 | MyThing | -| main.rs:1123:13:1123:13 | x | A | main.rs:1036:5:1037:14 | S1 | -| main.rs:1123:17:1123:33 | MyThing {...} | | main.rs:1026:5:1029:5 | MyThing | -| main.rs:1123:17:1123:33 | MyThing {...} | A | main.rs:1036:5:1037:14 | S1 | -| main.rs:1123:30:1123:31 | S1 | | main.rs:1036:5:1037:14 | S1 | -| main.rs:1124:13:1124:13 | s | | main.rs:1036:5:1037:14 | S1 | -| main.rs:1124:17:1124:32 | call_trait_m1(...) | | main.rs:1036:5:1037:14 | S1 | -| main.rs:1124:31:1124:31 | x | | main.rs:1026:5:1029:5 | MyThing | -| main.rs:1124:31:1124:31 | x | A | main.rs:1036:5:1037:14 | S1 | -| main.rs:1126:13:1126:13 | x | | main.rs:1031:5:1034:5 | MyThing2 | -| main.rs:1126:13:1126:13 | x | A | main.rs:1038:5:1039:14 | S2 | -| main.rs:1126:17:1126:34 | MyThing2 {...} | | main.rs:1031:5:1034:5 | MyThing2 | -| main.rs:1126:17:1126:34 | MyThing2 {...} | A | main.rs:1038:5:1039:14 | S2 | -| main.rs:1126:31:1126:32 | S2 | | main.rs:1038:5:1039:14 | S2 | -| main.rs:1127:13:1127:13 | s | | main.rs:1026:5:1029:5 | MyThing | -| main.rs:1127:13:1127:13 | s | A | main.rs:1038:5:1039:14 | S2 | -| main.rs:1127:17:1127:32 | call_trait_m1(...) | | main.rs:1026:5:1029:5 | MyThing | -| main.rs:1127:17:1127:32 | call_trait_m1(...) | A | main.rs:1038:5:1039:14 | S2 | -| main.rs:1127:31:1127:31 | x | | main.rs:1031:5:1034:5 | MyThing2 | -| main.rs:1127:31:1127:31 | x | A | main.rs:1038:5:1039:14 | S2 | -| main.rs:1144:22:1144:22 | x | | file://:0:0:0:0 | & | -| main.rs:1144:22:1144:22 | x | &T | main.rs:1144:11:1144:19 | T | -| main.rs:1144:35:1146:5 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1144:35:1146:5 | { ... } | &T | main.rs:1144:11:1144:19 | T | -| main.rs:1145:9:1145:9 | x | | file://:0:0:0:0 | & | -| main.rs:1145:9:1145:9 | x | &T | main.rs:1144:11:1144:19 | T | -| main.rs:1149:17:1149:20 | SelfParam | | main.rs:1134:5:1135:14 | S1 | -| main.rs:1149:29:1151:9 | { ... } | | main.rs:1137:5:1138:14 | S2 | -| main.rs:1150:13:1150:14 | S2 | | main.rs:1137:5:1138:14 | S2 | -| main.rs:1154:21:1154:21 | x | | main.rs:1154:13:1154:14 | T1 | -| main.rs:1157:5:1159:5 | { ... } | | main.rs:1154:17:1154:18 | T2 | -| main.rs:1158:9:1158:9 | x | | main.rs:1154:13:1154:14 | T1 | -| main.rs:1158:9:1158:16 | x.into() | | main.rs:1154:17:1154:18 | T2 | -| main.rs:1162:13:1162:13 | x | | main.rs:1134:5:1135:14 | S1 | -| main.rs:1162:17:1162:18 | S1 | | main.rs:1134:5:1135:14 | S1 | -| main.rs:1163:18:1163:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1163:18:1163:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1163:18:1163:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1163:18:1163:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1163:26:1163:31 | id(...) | | file://:0:0:0:0 | & | -| main.rs:1163:26:1163:31 | id(...) | &T | main.rs:1134:5:1135:14 | S1 | -| main.rs:1163:29:1163:30 | &x | | file://:0:0:0:0 | & | -| main.rs:1163:29:1163:30 | &x | &T | main.rs:1134:5:1135:14 | S1 | -| main.rs:1163:30:1163:30 | x | | main.rs:1134:5:1135:14 | S1 | -| main.rs:1165:13:1165:13 | x | | main.rs:1134:5:1135:14 | S1 | -| main.rs:1165:17:1165:18 | S1 | | main.rs:1134:5:1135:14 | S1 | +| main.rs:783:18:783:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:783:18:783:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:783:26:783:26 | x | | main.rs:701:5:704:5 | MyThing | +| main.rs:783:26:783:26 | x | T | main.rs:706:5:707:14 | S1 | +| main.rs:783:26:783:31 | x.m2() | | main.rs:706:5:707:14 | S1 | +| main.rs:784:18:784:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:784:18:784:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:784:18:784:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:784:18:784:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:784:26:784:26 | y | | main.rs:701:5:704:5 | MyThing | +| main.rs:784:26:784:26 | y | T | main.rs:708:5:709:14 | S2 | +| main.rs:784:26:784:31 | y.m2() | | main.rs:708:5:709:14 | S2 | +| main.rs:786:13:786:14 | x2 | | main.rs:701:5:704:5 | MyThing | +| main.rs:786:13:786:14 | x2 | T | main.rs:706:5:707:14 | S1 | +| main.rs:786:18:786:34 | MyThing {...} | | main.rs:701:5:704:5 | MyThing | +| main.rs:786:18:786:34 | MyThing {...} | T | main.rs:706:5:707:14 | S1 | +| main.rs:786:31:786:32 | S1 | | main.rs:706:5:707:14 | S1 | +| main.rs:787:13:787:14 | y2 | | main.rs:701:5:704:5 | MyThing | +| main.rs:787:13:787:14 | y2 | T | main.rs:708:5:709:14 | S2 | +| main.rs:787:18:787:34 | MyThing {...} | | main.rs:701:5:704:5 | MyThing | +| main.rs:787:18:787:34 | MyThing {...} | T | main.rs:708:5:709:14 | S2 | +| main.rs:787:31:787:32 | S2 | | main.rs:708:5:709:14 | S2 | +| main.rs:789:13:789:13 | a | | main.rs:706:5:707:14 | S1 | +| main.rs:789:17:789:33 | call_trait_m1(...) | | main.rs:706:5:707:14 | S1 | +| main.rs:789:31:789:32 | x2 | | main.rs:701:5:704:5 | MyThing | +| main.rs:789:31:789:32 | x2 | T | main.rs:706:5:707:14 | S1 | +| main.rs:790:18:790:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:790:18:790:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:790:18:790:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:790:18:790:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:790:26:790:26 | a | | main.rs:706:5:707:14 | S1 | +| main.rs:791:13:791:13 | a | | main.rs:706:5:707:14 | S1 | +| main.rs:791:17:791:35 | call_trait_m1_2(...) | | main.rs:706:5:707:14 | S1 | +| main.rs:791:33:791:34 | x2 | | main.rs:701:5:704:5 | MyThing | +| main.rs:791:33:791:34 | x2 | T | main.rs:706:5:707:14 | S1 | +| main.rs:792:18:792:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:792:18:792:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:792:18:792:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:792:18:792:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:792:26:792:26 | a | | main.rs:706:5:707:14 | S1 | +| main.rs:793:13:793:13 | a | | main.rs:706:5:707:14 | S1 | +| main.rs:793:17:793:35 | call_trait_m1_3(...) | | main.rs:706:5:707:14 | S1 | +| main.rs:793:33:793:34 | x2 | | main.rs:701:5:704:5 | MyThing | +| main.rs:793:33:793:34 | x2 | T | main.rs:706:5:707:14 | S1 | +| main.rs:794:18:794:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:794:18:794:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:794:18:794:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:794:18:794:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:794:26:794:26 | a | | main.rs:706:5:707:14 | S1 | +| main.rs:795:13:795:13 | a | | main.rs:708:5:709:14 | S2 | +| main.rs:795:17:795:33 | call_trait_m1(...) | | main.rs:708:5:709:14 | S2 | +| main.rs:795:31:795:32 | y2 | | main.rs:701:5:704:5 | MyThing | +| main.rs:795:31:795:32 | y2 | T | main.rs:708:5:709:14 | S2 | +| main.rs:796:18:796:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:796:18:796:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:796:18:796:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:796:18:796:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:796:26:796:26 | a | | main.rs:708:5:709:14 | S2 | +| main.rs:797:13:797:13 | a | | main.rs:708:5:709:14 | S2 | +| main.rs:797:17:797:35 | call_trait_m1_2(...) | | main.rs:708:5:709:14 | S2 | +| main.rs:797:33:797:34 | y2 | | main.rs:701:5:704:5 | MyThing | +| main.rs:797:33:797:34 | y2 | T | main.rs:708:5:709:14 | S2 | +| main.rs:798:18:798:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:798:18:798:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:798:18:798:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:798:18:798:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:798:26:798:26 | a | | main.rs:708:5:709:14 | S2 | +| main.rs:799:13:799:13 | a | | main.rs:708:5:709:14 | S2 | +| main.rs:799:17:799:35 | call_trait_m1_3(...) | | main.rs:708:5:709:14 | S2 | +| main.rs:799:33:799:34 | y2 | | main.rs:701:5:704:5 | MyThing | +| main.rs:799:33:799:34 | y2 | T | main.rs:708:5:709:14 | S2 | +| main.rs:800:18:800:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:800:18:800:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:800:18:800:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:800:18:800:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:800:26:800:26 | a | | main.rs:708:5:709:14 | S2 | +| main.rs:801:13:801:13 | a | | main.rs:706:5:707:14 | S1 | +| main.rs:801:17:801:38 | call_trait_assoc_1(...) | | main.rs:706:5:707:14 | S1 | +| main.rs:801:36:801:37 | x2 | | main.rs:701:5:704:5 | MyThing | +| main.rs:801:36:801:37 | x2 | T | main.rs:706:5:707:14 | S1 | +| main.rs:802:18:802:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:802:18:802:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:802:18:802:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:802:18:802:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:802:26:802:26 | a | | main.rs:706:5:707:14 | S1 | +| main.rs:803:13:803:13 | a | | main.rs:706:5:707:14 | S1 | +| main.rs:803:17:803:38 | call_trait_assoc_2(...) | | main.rs:706:5:707:14 | S1 | +| main.rs:803:36:803:37 | x2 | | main.rs:701:5:704:5 | MyThing | +| main.rs:803:36:803:37 | x2 | T | main.rs:706:5:707:14 | S1 | +| main.rs:804:18:804:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:804:18:804:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:804:18:804:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:804:18:804:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:804:26:804:26 | a | | main.rs:706:5:707:14 | S1 | +| main.rs:805:13:805:13 | a | | main.rs:708:5:709:14 | S2 | +| main.rs:805:17:805:38 | call_trait_assoc_1(...) | | main.rs:708:5:709:14 | S2 | +| main.rs:805:36:805:37 | y2 | | main.rs:701:5:704:5 | MyThing | +| main.rs:805:36:805:37 | y2 | T | main.rs:708:5:709:14 | S2 | +| main.rs:806:18:806:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:806:18:806:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:806:18:806:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:806:18:806:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:806:26:806:26 | a | | main.rs:708:5:709:14 | S2 | +| main.rs:807:13:807:13 | a | | main.rs:708:5:709:14 | S2 | +| main.rs:807:17:807:38 | call_trait_assoc_2(...) | | main.rs:708:5:709:14 | S2 | +| main.rs:807:36:807:37 | y2 | | main.rs:701:5:704:5 | MyThing | +| main.rs:807:36:807:37 | y2 | T | main.rs:708:5:709:14 | S2 | +| main.rs:808:18:808:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:808:18:808:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:808:18:808:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:808:18:808:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:808:26:808:26 | a | | main.rs:708:5:709:14 | S2 | +| main.rs:810:13:810:14 | x3 | | main.rs:701:5:704:5 | MyThing | +| main.rs:810:13:810:14 | x3 | T | main.rs:701:5:704:5 | MyThing | +| main.rs:810:13:810:14 | x3 | T.T | main.rs:706:5:707:14 | S1 | +| main.rs:810:18:812:9 | MyThing {...} | | main.rs:701:5:704:5 | MyThing | +| main.rs:810:18:812:9 | MyThing {...} | T | main.rs:701:5:704:5 | MyThing | +| main.rs:810:18:812:9 | MyThing {...} | T.T | main.rs:706:5:707:14 | S1 | +| main.rs:811:16:811:32 | MyThing {...} | | main.rs:701:5:704:5 | MyThing | +| main.rs:811:16:811:32 | MyThing {...} | T | main.rs:706:5:707:14 | S1 | +| main.rs:811:29:811:30 | S1 | | main.rs:706:5:707:14 | S1 | +| main.rs:813:13:813:14 | y3 | | main.rs:701:5:704:5 | MyThing | +| main.rs:813:13:813:14 | y3 | T | main.rs:701:5:704:5 | MyThing | +| main.rs:813:13:813:14 | y3 | T.T | main.rs:708:5:709:14 | S2 | +| main.rs:813:18:815:9 | MyThing {...} | | main.rs:701:5:704:5 | MyThing | +| main.rs:813:18:815:9 | MyThing {...} | T | main.rs:701:5:704:5 | MyThing | +| main.rs:813:18:815:9 | MyThing {...} | T.T | main.rs:708:5:709:14 | S2 | +| main.rs:814:16:814:32 | MyThing {...} | | main.rs:701:5:704:5 | MyThing | +| main.rs:814:16:814:32 | MyThing {...} | T | main.rs:708:5:709:14 | S2 | +| main.rs:814:29:814:30 | S2 | | main.rs:708:5:709:14 | S2 | +| main.rs:817:13:817:13 | a | | main.rs:706:5:707:14 | S1 | +| main.rs:817:17:817:39 | call_trait_thing_m1(...) | | main.rs:706:5:707:14 | S1 | +| main.rs:817:37:817:38 | x3 | | main.rs:701:5:704:5 | MyThing | +| main.rs:817:37:817:38 | x3 | T | main.rs:701:5:704:5 | MyThing | +| main.rs:817:37:817:38 | x3 | T.T | main.rs:706:5:707:14 | S1 | +| main.rs:818:18:818:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:818:18:818:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:818:18:818:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:818:18:818:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:818:26:818:26 | a | | main.rs:706:5:707:14 | S1 | +| main.rs:819:13:819:13 | a | | main.rs:706:5:707:14 | S1 | +| main.rs:819:17:819:41 | call_trait_thing_m1_2(...) | | main.rs:706:5:707:14 | S1 | +| main.rs:819:39:819:40 | x3 | | main.rs:701:5:704:5 | MyThing | +| main.rs:819:39:819:40 | x3 | T | main.rs:701:5:704:5 | MyThing | +| main.rs:819:39:819:40 | x3 | T.T | main.rs:706:5:707:14 | S1 | +| main.rs:820:18:820:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:820:18:820:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:820:18:820:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:820:18:820:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:820:26:820:26 | a | | main.rs:706:5:707:14 | S1 | +| main.rs:821:13:821:13 | a | | main.rs:706:5:707:14 | S1 | +| main.rs:821:17:821:41 | call_trait_thing_m1_3(...) | | main.rs:706:5:707:14 | S1 | +| main.rs:821:39:821:40 | x3 | | main.rs:701:5:704:5 | MyThing | +| main.rs:821:39:821:40 | x3 | T | main.rs:701:5:704:5 | MyThing | +| main.rs:821:39:821:40 | x3 | T.T | main.rs:706:5:707:14 | S1 | +| main.rs:822:18:822:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:822:18:822:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:822:18:822:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:822:18:822:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:822:26:822:26 | a | | main.rs:706:5:707:14 | S1 | +| main.rs:823:13:823:13 | b | | main.rs:708:5:709:14 | S2 | +| main.rs:823:17:823:39 | call_trait_thing_m1(...) | | main.rs:708:5:709:14 | S2 | +| main.rs:823:37:823:38 | y3 | | main.rs:701:5:704:5 | MyThing | +| main.rs:823:37:823:38 | y3 | T | main.rs:701:5:704:5 | MyThing | +| main.rs:823:37:823:38 | y3 | T.T | main.rs:708:5:709:14 | S2 | +| main.rs:824:18:824:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:824:18:824:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:824:18:824:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:824:18:824:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:824:26:824:26 | b | | main.rs:708:5:709:14 | S2 | +| main.rs:825:13:825:13 | b | | main.rs:708:5:709:14 | S2 | +| main.rs:825:17:825:41 | call_trait_thing_m1_2(...) | | main.rs:708:5:709:14 | S2 | +| main.rs:825:39:825:40 | y3 | | main.rs:701:5:704:5 | MyThing | +| main.rs:825:39:825:40 | y3 | T | main.rs:701:5:704:5 | MyThing | +| main.rs:825:39:825:40 | y3 | T.T | main.rs:708:5:709:14 | S2 | +| main.rs:826:18:826:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:826:18:826:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:826:18:826:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:826:18:826:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:826:26:826:26 | b | | main.rs:708:5:709:14 | S2 | +| main.rs:827:13:827:13 | b | | main.rs:708:5:709:14 | S2 | +| main.rs:827:17:827:41 | call_trait_thing_m1_3(...) | | main.rs:708:5:709:14 | S2 | +| main.rs:827:39:827:40 | y3 | | main.rs:701:5:704:5 | MyThing | +| main.rs:827:39:827:40 | y3 | T | main.rs:701:5:704:5 | MyThing | +| main.rs:827:39:827:40 | y3 | T.T | main.rs:708:5:709:14 | S2 | +| main.rs:828:18:828:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:828:18:828:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:828:18:828:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:828:18:828:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:828:26:828:26 | b | | main.rs:708:5:709:14 | S2 | +| main.rs:839:19:839:22 | SelfParam | | main.rs:833:5:836:5 | Wrapper | +| main.rs:839:19:839:22 | SelfParam | A | main.rs:838:10:838:10 | A | +| main.rs:839:30:841:9 | { ... } | | main.rs:838:10:838:10 | A | +| main.rs:840:13:840:16 | self | | main.rs:833:5:836:5 | Wrapper | +| main.rs:840:13:840:16 | self | A | main.rs:838:10:838:10 | A | +| main.rs:840:13:840:22 | self.field | | main.rs:838:10:838:10 | A | +| main.rs:848:15:848:18 | SelfParam | | main.rs:844:5:858:5 | Self [trait MyTrait] | +| main.rs:850:15:850:18 | SelfParam | | main.rs:844:5:858:5 | Self [trait MyTrait] | +| main.rs:854:9:857:9 | { ... } | | main.rs:845:9:845:28 | AssociatedType | +| main.rs:855:13:855:16 | self | | main.rs:844:5:858:5 | Self [trait MyTrait] | +| main.rs:855:13:855:21 | self.m1() | | main.rs:845:9:845:28 | AssociatedType | +| main.rs:856:13:856:43 | ...::default(...) | | main.rs:845:9:845:28 | AssociatedType | +| main.rs:864:19:864:23 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:864:19:864:23 | SelfParam | &T | main.rs:860:5:870:5 | Self [trait MyTraitAssoc2] | +| main.rs:864:26:864:26 | a | | main.rs:864:16:864:16 | A | +| main.rs:866:22:866:26 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:866:22:866:26 | SelfParam | &T | main.rs:860:5:870:5 | Self [trait MyTraitAssoc2] | +| main.rs:866:29:866:29 | a | | main.rs:866:19:866:19 | A | +| main.rs:866:35:866:35 | b | | main.rs:866:19:866:19 | A | +| main.rs:866:75:869:9 | { ... } | | main.rs:861:9:861:52 | GenericAssociatedType | +| main.rs:867:13:867:16 | self | | file://:0:0:0:0 | & | +| main.rs:867:13:867:16 | self | &T | main.rs:860:5:870:5 | Self [trait MyTraitAssoc2] | +| main.rs:867:13:867:23 | self.put(...) | | main.rs:861:9:861:52 | GenericAssociatedType | +| main.rs:867:22:867:22 | a | | main.rs:866:19:866:19 | A | +| main.rs:868:13:868:16 | self | | file://:0:0:0:0 | & | +| main.rs:868:13:868:16 | self | &T | main.rs:860:5:870:5 | Self [trait MyTraitAssoc2] | +| main.rs:868:13:868:23 | self.put(...) | | main.rs:861:9:861:52 | GenericAssociatedType | +| main.rs:868:22:868:22 | b | | main.rs:866:19:866:19 | A | +| main.rs:877:21:877:25 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:877:21:877:25 | SelfParam | &T | main.rs:872:5:882:5 | Self [trait TraitMultipleAssoc] | +| main.rs:879:20:879:24 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:879:20:879:24 | SelfParam | &T | main.rs:872:5:882:5 | Self [trait TraitMultipleAssoc] | +| main.rs:881:20:881:24 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:881:20:881:24 | SelfParam | &T | main.rs:872:5:882:5 | Self [trait TraitMultipleAssoc] | +| main.rs:897:15:897:18 | SelfParam | | main.rs:884:5:885:13 | S | +| main.rs:897:45:899:9 | { ... } | | main.rs:890:5:891:14 | AT | +| main.rs:898:13:898:14 | AT | | main.rs:890:5:891:14 | AT | +| main.rs:907:19:907:23 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:907:19:907:23 | SelfParam | &T | main.rs:884:5:885:13 | S | +| main.rs:907:26:907:26 | a | | main.rs:907:16:907:16 | A | +| main.rs:907:46:909:9 | { ... } | | main.rs:833:5:836:5 | Wrapper | +| main.rs:907:46:909:9 | { ... } | A | main.rs:907:16:907:16 | A | +| main.rs:908:13:908:32 | Wrapper {...} | | main.rs:833:5:836:5 | Wrapper | +| main.rs:908:13:908:32 | Wrapper {...} | A | main.rs:907:16:907:16 | A | +| main.rs:908:30:908:30 | a | | main.rs:907:16:907:16 | A | +| main.rs:916:15:916:18 | SelfParam | | main.rs:887:5:888:14 | S2 | +| main.rs:916:45:918:9 | { ... } | | main.rs:833:5:836:5 | Wrapper | +| main.rs:916:45:918:9 | { ... } | A | main.rs:887:5:888:14 | S2 | +| main.rs:917:13:917:35 | Wrapper {...} | | main.rs:833:5:836:5 | Wrapper | +| main.rs:917:13:917:35 | Wrapper {...} | A | main.rs:887:5:888:14 | S2 | +| main.rs:917:30:917:33 | self | | main.rs:887:5:888:14 | S2 | +| main.rs:923:30:925:9 | { ... } | | main.rs:833:5:836:5 | Wrapper | +| main.rs:923:30:925:9 | { ... } | A | main.rs:887:5:888:14 | S2 | +| main.rs:924:13:924:33 | Wrapper {...} | | main.rs:833:5:836:5 | Wrapper | +| main.rs:924:13:924:33 | Wrapper {...} | A | main.rs:887:5:888:14 | S2 | +| main.rs:924:30:924:31 | S2 | | main.rs:887:5:888:14 | S2 | +| main.rs:930:22:930:26 | thing | | main.rs:930:10:930:19 | T | +| main.rs:931:9:931:13 | thing | | main.rs:930:10:930:19 | T | +| main.rs:938:21:938:25 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:938:21:938:25 | SelfParam | &T | main.rs:890:5:891:14 | AT | +| main.rs:938:34:940:9 | { ... } | | main.rs:890:5:891:14 | AT | +| main.rs:939:13:939:14 | AT | | main.rs:890:5:891:14 | AT | +| main.rs:942:20:942:24 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:942:20:942:24 | SelfParam | &T | main.rs:890:5:891:14 | AT | +| main.rs:942:43:944:9 | { ... } | | main.rs:884:5:885:13 | S | +| main.rs:943:13:943:13 | S | | main.rs:884:5:885:13 | S | +| main.rs:946:20:946:24 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:946:20:946:24 | SelfParam | &T | main.rs:890:5:891:14 | AT | +| main.rs:946:43:948:9 | { ... } | | main.rs:887:5:888:14 | S2 | +| main.rs:947:13:947:14 | S2 | | main.rs:887:5:888:14 | S2 | +| main.rs:952:13:952:14 | x1 | | main.rs:884:5:885:13 | S | +| main.rs:952:18:952:18 | S | | main.rs:884:5:885:13 | S | +| main.rs:954:18:954:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:954:18:954:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:954:18:954:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:954:18:954:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:954:26:954:27 | x1 | | main.rs:884:5:885:13 | S | +| main.rs:954:26:954:32 | x1.m1() | | main.rs:890:5:891:14 | AT | +| main.rs:956:13:956:14 | x2 | | main.rs:884:5:885:13 | S | +| main.rs:956:18:956:18 | S | | main.rs:884:5:885:13 | S | +| main.rs:958:13:958:13 | y | | main.rs:890:5:891:14 | AT | +| main.rs:958:17:958:18 | x2 | | main.rs:884:5:885:13 | S | +| main.rs:958:17:958:23 | x2.m2() | | main.rs:890:5:891:14 | AT | +| main.rs:959:18:959:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:959:18:959:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:959:18:959:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:959:18:959:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:959:26:959:26 | y | | main.rs:890:5:891:14 | AT | +| main.rs:961:13:961:14 | x3 | | main.rs:884:5:885:13 | S | +| main.rs:961:18:961:18 | S | | main.rs:884:5:885:13 | S | +| main.rs:963:18:963:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:963:18:963:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:963:18:963:43 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:963:18:963:43 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:963:26:963:27 | x3 | | main.rs:884:5:885:13 | S | +| main.rs:963:26:963:34 | x3.put(...) | | main.rs:833:5:836:5 | Wrapper | +| main.rs:963:26:963:34 | x3.put(...) | A | {EXTERNAL LOCATION} | i32 | +| main.rs:963:26:963:43 | ... .unwrap() | | {EXTERNAL LOCATION} | i32 | +| main.rs:963:33:963:33 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:966:18:966:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:966:18:966:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:966:18:966:49 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:966:18:966:49 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:966:26:966:27 | x3 | | main.rs:884:5:885:13 | S | +| main.rs:966:26:966:40 | x3.putTwo(...) | | main.rs:833:5:836:5 | Wrapper | +| main.rs:966:26:966:40 | x3.putTwo(...) | A | main.rs:904:36:904:50 | AssociatedParam | +| main.rs:966:26:966:49 | ... .unwrap() | | main.rs:904:36:904:50 | AssociatedParam | +| main.rs:966:36:966:36 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:966:39:966:39 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:968:20:968:20 | S | | main.rs:884:5:885:13 | S | +| main.rs:969:18:969:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:969:18:969:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:969:18:969:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:969:18:969:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:971:13:971:14 | x5 | | main.rs:887:5:888:14 | S2 | +| main.rs:971:18:971:19 | S2 | | main.rs:887:5:888:14 | S2 | +| main.rs:972:18:972:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:972:18:972:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:972:18:972:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:972:18:972:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:972:26:972:27 | x5 | | main.rs:887:5:888:14 | S2 | +| main.rs:972:26:972:32 | x5.m1() | | main.rs:833:5:836:5 | Wrapper | +| main.rs:972:26:972:32 | x5.m1() | A | main.rs:887:5:888:14 | S2 | +| main.rs:973:13:973:14 | x6 | | main.rs:887:5:888:14 | S2 | +| main.rs:973:18:973:19 | S2 | | main.rs:887:5:888:14 | S2 | +| main.rs:974:18:974:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:974:18:974:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:974:18:974:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:974:18:974:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:974:26:974:27 | x6 | | main.rs:887:5:888:14 | S2 | +| main.rs:974:26:974:32 | x6.m2() | | main.rs:833:5:836:5 | Wrapper | +| main.rs:974:26:974:32 | x6.m2() | A | main.rs:887:5:888:14 | S2 | +| main.rs:976:13:976:22 | assoc_zero | | main.rs:890:5:891:14 | AT | +| main.rs:976:26:976:27 | AT | | main.rs:890:5:891:14 | AT | +| main.rs:976:26:976:38 | AT.get_zero() | | main.rs:890:5:891:14 | AT | +| main.rs:977:13:977:21 | assoc_one | | main.rs:884:5:885:13 | S | +| main.rs:977:25:977:26 | AT | | main.rs:890:5:891:14 | AT | +| main.rs:977:25:977:36 | AT.get_one() | | main.rs:884:5:885:13 | S | +| main.rs:978:13:978:21 | assoc_two | | main.rs:887:5:888:14 | S2 | +| main.rs:978:25:978:26 | AT | | main.rs:890:5:891:14 | AT | +| main.rs:978:25:978:36 | AT.get_two() | | main.rs:887:5:888:14 | S2 | +| main.rs:986:19:986:23 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:986:19:986:23 | SelfParam | &T | main.rs:983:5:987:5 | Self [trait Supertrait] | +| main.rs:986:26:986:32 | content | | main.rs:984:9:984:21 | Content | +| main.rs:991:24:991:28 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:991:24:991:28 | SelfParam | &T | main.rs:989:5:992:5 | Self [trait Subtrait] | +| main.rs:1000:23:1000:27 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1000:23:1000:27 | SelfParam | &T | main.rs:994:5:1004:5 | Self [trait Subtrait2] | +| main.rs:1000:30:1000:31 | c1 | | main.rs:984:9:984:21 | Content | +| main.rs:1000:49:1000:50 | c2 | | main.rs:984:9:984:21 | Content | +| main.rs:1001:13:1001:16 | self | | file://:0:0:0:0 | & | +| main.rs:1001:13:1001:16 | self | &T | main.rs:994:5:1004:5 | Self [trait Subtrait2] | +| main.rs:1001:25:1001:26 | c1 | | main.rs:984:9:984:21 | Content | +| main.rs:1002:13:1002:16 | self | | file://:0:0:0:0 | & | +| main.rs:1002:13:1002:16 | self | &T | main.rs:994:5:1004:5 | Self [trait Subtrait2] | +| main.rs:1002:25:1002:26 | c2 | | main.rs:984:9:984:21 | Content | +| main.rs:1010:19:1010:23 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1010:19:1010:23 | SelfParam | &T | main.rs:1006:5:1006:24 | MyType | +| main.rs:1010:19:1010:23 | SelfParam | &T.T | main.rs:1008:10:1008:10 | T | +| main.rs:1010:26:1010:33 | _content | | main.rs:1008:10:1008:10 | T | +| main.rs:1011:22:1011:42 | "Inserting content: \\n" | | file://:0:0:0:0 | & | +| main.rs:1011:22:1011:42 | "Inserting content: \\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1011:22:1011:42 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1011:22:1011:42 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1017:24:1017:28 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1017:24:1017:28 | SelfParam | &T | main.rs:1006:5:1006:24 | MyType | +| main.rs:1017:24:1017:28 | SelfParam | &T.T | main.rs:1015:10:1015:17 | T | +| main.rs:1017:48:1019:9 | { ... } | | main.rs:1015:10:1015:17 | T | +| main.rs:1018:13:1018:19 | (...) | | main.rs:1006:5:1006:24 | MyType | +| main.rs:1018:13:1018:19 | (...) | T | main.rs:1015:10:1015:17 | T | +| main.rs:1018:13:1018:21 | ... .0 | | main.rs:1015:10:1015:17 | T | +| main.rs:1018:13:1018:29 | ... .clone() | | main.rs:1015:10:1015:17 | T | +| main.rs:1018:14:1018:18 | * ... | | main.rs:1006:5:1006:24 | MyType | +| main.rs:1018:14:1018:18 | * ... | T | main.rs:1015:10:1015:17 | T | +| main.rs:1018:15:1018:18 | self | | file://:0:0:0:0 | & | +| main.rs:1018:15:1018:18 | self | &T | main.rs:1006:5:1006:24 | MyType | +| main.rs:1018:15:1018:18 | self | &T.T | main.rs:1015:10:1015:17 | T | +| main.rs:1022:33:1022:36 | item | | file://:0:0:0:0 | & | +| main.rs:1022:33:1022:36 | item | &T | main.rs:1022:20:1022:30 | T | +| main.rs:1022:57:1024:5 | { ... } | | main.rs:984:9:984:21 | Content | +| main.rs:1023:9:1023:12 | item | | file://:0:0:0:0 | & | +| main.rs:1023:9:1023:12 | item | &T | main.rs:1022:20:1022:30 | T | +| main.rs:1023:9:1023:26 | item.get_content() | | main.rs:984:9:984:21 | Content | +| main.rs:1026:35:1026:38 | item | | file://:0:0:0:0 | & | +| main.rs:1026:35:1026:38 | item | &T | main.rs:1026:21:1026:32 | T | +| main.rs:1026:45:1026:46 | c1 | | main.rs:984:9:984:21 | Content | +| main.rs:1026:61:1026:62 | c2 | | main.rs:984:9:984:21 | Content | +| main.rs:1026:77:1026:78 | c3 | | main.rs:984:9:984:21 | Content | +| main.rs:1027:9:1027:12 | item | | file://:0:0:0:0 | & | +| main.rs:1027:9:1027:12 | item | &T | main.rs:1026:21:1026:32 | T | +| main.rs:1027:21:1027:22 | c1 | | main.rs:984:9:984:21 | Content | +| main.rs:1028:9:1028:12 | item | | file://:0:0:0:0 | & | +| main.rs:1028:9:1028:12 | item | &T | main.rs:1026:21:1026:32 | T | +| main.rs:1028:25:1028:26 | c2 | | main.rs:984:9:984:21 | Content | +| main.rs:1028:29:1028:30 | c3 | | main.rs:984:9:984:21 | Content | +| main.rs:1032:13:1032:17 | item1 | | main.rs:1006:5:1006:24 | MyType | +| main.rs:1032:13:1032:17 | item1 | T | {EXTERNAL LOCATION} | i64 | +| main.rs:1032:21:1032:33 | MyType(...) | | main.rs:1006:5:1006:24 | MyType | +| main.rs:1032:21:1032:33 | MyType(...) | T | {EXTERNAL LOCATION} | i64 | +| main.rs:1032:28:1032:32 | 42i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1033:25:1033:29 | item1 | | main.rs:1006:5:1006:24 | MyType | +| main.rs:1033:25:1033:29 | item1 | T | {EXTERNAL LOCATION} | i64 | +| main.rs:1035:13:1035:17 | item2 | | main.rs:1006:5:1006:24 | MyType | +| main.rs:1035:13:1035:17 | item2 | T | {EXTERNAL LOCATION} | bool | +| main.rs:1035:21:1035:32 | MyType(...) | | main.rs:1006:5:1006:24 | MyType | +| main.rs:1035:21:1035:32 | MyType(...) | T | {EXTERNAL LOCATION} | bool | +| main.rs:1035:28:1035:31 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1036:37:1036:42 | &item2 | | file://:0:0:0:0 | & | +| main.rs:1036:37:1036:42 | &item2 | &T | main.rs:1006:5:1006:24 | MyType | +| main.rs:1036:37:1036:42 | &item2 | &T.T | {EXTERNAL LOCATION} | bool | +| main.rs:1036:38:1036:42 | item2 | | main.rs:1006:5:1006:24 | MyType | +| main.rs:1036:38:1036:42 | item2 | T | {EXTERNAL LOCATION} | bool | +| main.rs:1053:15:1053:18 | SelfParam | | main.rs:1041:5:1045:5 | MyEnum | +| main.rs:1053:15:1053:18 | SelfParam | A | main.rs:1052:10:1052:10 | T | +| main.rs:1053:26:1058:9 | { ... } | | main.rs:1052:10:1052:10 | T | +| main.rs:1054:13:1057:13 | match self { ... } | | main.rs:1052:10:1052:10 | T | +| main.rs:1054:19:1054:22 | self | | main.rs:1041:5:1045:5 | MyEnum | +| main.rs:1054:19:1054:22 | self | A | main.rs:1052:10:1052:10 | T | +| main.rs:1055:17:1055:29 | ...::C1(...) | | main.rs:1041:5:1045:5 | MyEnum | +| main.rs:1055:17:1055:29 | ...::C1(...) | A | main.rs:1052:10:1052:10 | T | +| main.rs:1055:28:1055:28 | a | | main.rs:1052:10:1052:10 | T | +| main.rs:1055:34:1055:34 | a | | main.rs:1052:10:1052:10 | T | +| main.rs:1056:17:1056:32 | ...::C2 {...} | | main.rs:1041:5:1045:5 | MyEnum | +| main.rs:1056:17:1056:32 | ...::C2 {...} | A | main.rs:1052:10:1052:10 | T | +| main.rs:1056:30:1056:30 | a | | main.rs:1052:10:1052:10 | T | +| main.rs:1056:37:1056:37 | a | | main.rs:1052:10:1052:10 | T | +| main.rs:1062:13:1062:13 | x | | main.rs:1041:5:1045:5 | MyEnum | +| main.rs:1062:13:1062:13 | x | A | main.rs:1047:5:1048:14 | S1 | +| main.rs:1062:17:1062:30 | ...::C1(...) | | main.rs:1041:5:1045:5 | MyEnum | +| main.rs:1062:17:1062:30 | ...::C1(...) | A | main.rs:1047:5:1048:14 | S1 | +| main.rs:1062:28:1062:29 | S1 | | main.rs:1047:5:1048:14 | S1 | +| main.rs:1063:13:1063:13 | y | | main.rs:1041:5:1045:5 | MyEnum | +| main.rs:1063:13:1063:13 | y | A | main.rs:1049:5:1050:14 | S2 | +| main.rs:1063:17:1063:36 | ...::C2 {...} | | main.rs:1041:5:1045:5 | MyEnum | +| main.rs:1063:17:1063:36 | ...::C2 {...} | A | main.rs:1049:5:1050:14 | S2 | +| main.rs:1063:33:1063:34 | S2 | | main.rs:1049:5:1050:14 | S2 | +| main.rs:1065:18:1065:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1065:18:1065:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1065:18:1065:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1065:18:1065:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1065:26:1065:26 | x | | main.rs:1041:5:1045:5 | MyEnum | +| main.rs:1065:26:1065:26 | x | A | main.rs:1047:5:1048:14 | S1 | +| main.rs:1065:26:1065:31 | x.m1() | | main.rs:1047:5:1048:14 | S1 | +| main.rs:1066:18:1066:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1066:18:1066:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1066:18:1066:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1066:18:1066:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1066:26:1066:26 | y | | main.rs:1041:5:1045:5 | MyEnum | +| main.rs:1066:26:1066:26 | y | A | main.rs:1049:5:1050:14 | S2 | +| main.rs:1066:26:1066:31 | y.m1() | | main.rs:1049:5:1050:14 | S2 | +| main.rs:1088:15:1088:18 | SelfParam | | main.rs:1086:5:1089:5 | Self [trait MyTrait1] | +| main.rs:1093:15:1093:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1093:15:1093:19 | SelfParam | &T | main.rs:1091:5:1103:5 | Self [trait MyTrait2] | +| main.rs:1096:9:1102:9 | { ... } | | main.rs:1091:20:1091:22 | Tr2 | +| main.rs:1097:13:1101:13 | if ... {...} else {...} | | main.rs:1091:20:1091:22 | Tr2 | +| main.rs:1097:16:1097:16 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1097:16:1097:20 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1097:20:1097:20 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1097:22:1099:13 | { ... } | | main.rs:1091:20:1091:22 | Tr2 | +| main.rs:1098:17:1098:20 | self | | file://:0:0:0:0 | & | +| main.rs:1098:17:1098:20 | self | &T | main.rs:1091:5:1103:5 | Self [trait MyTrait2] | +| main.rs:1098:17:1098:25 | self.m1() | | main.rs:1091:20:1091:22 | Tr2 | +| main.rs:1099:20:1101:13 | { ... } | | main.rs:1091:20:1091:22 | Tr2 | +| main.rs:1100:17:1100:31 | ...::m1(...) | | main.rs:1091:20:1091:22 | Tr2 | +| main.rs:1100:26:1100:30 | * ... | | main.rs:1091:5:1103:5 | Self [trait MyTrait2] | +| main.rs:1100:27:1100:30 | self | | file://:0:0:0:0 | & | +| main.rs:1100:27:1100:30 | self | &T | main.rs:1091:5:1103:5 | Self [trait MyTrait2] | +| main.rs:1107:15:1107:18 | SelfParam | | main.rs:1105:5:1117:5 | Self [trait MyTrait3] | +| main.rs:1110:9:1116:9 | { ... } | | main.rs:1105:20:1105:22 | Tr3 | +| main.rs:1111:13:1115:13 | if ... {...} else {...} | | main.rs:1105:20:1105:22 | Tr3 | +| main.rs:1111:16:1111:16 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1111:16:1111:20 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1111:20:1111:20 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1111:22:1113:13 | { ... } | | main.rs:1105:20:1105:22 | Tr3 | +| main.rs:1112:17:1112:20 | self | | main.rs:1105:5:1117:5 | Self [trait MyTrait3] | +| main.rs:1112:17:1112:25 | self.m2() | | main.rs:1071:5:1074:5 | MyThing | +| main.rs:1112:17:1112:25 | self.m2() | A | main.rs:1105:20:1105:22 | Tr3 | +| main.rs:1112:17:1112:27 | ... .a | | main.rs:1105:20:1105:22 | Tr3 | +| main.rs:1113:20:1115:13 | { ... } | | main.rs:1105:20:1105:22 | Tr3 | +| main.rs:1114:17:1114:31 | ...::m2(...) | | main.rs:1071:5:1074:5 | MyThing | +| main.rs:1114:17:1114:31 | ...::m2(...) | A | main.rs:1105:20:1105:22 | Tr3 | +| main.rs:1114:17:1114:33 | ... .a | | main.rs:1105:20:1105:22 | Tr3 | +| main.rs:1114:26:1114:30 | &self | | file://:0:0:0:0 | & | +| main.rs:1114:26:1114:30 | &self | &T | main.rs:1105:5:1117:5 | Self [trait MyTrait3] | +| main.rs:1114:27:1114:30 | self | | main.rs:1105:5:1117:5 | Self [trait MyTrait3] | +| main.rs:1121:15:1121:18 | SelfParam | | main.rs:1071:5:1074:5 | MyThing | +| main.rs:1121:15:1121:18 | SelfParam | A | main.rs:1119:10:1119:10 | T | +| main.rs:1121:26:1123:9 | { ... } | | main.rs:1119:10:1119:10 | T | +| main.rs:1122:13:1122:16 | self | | main.rs:1071:5:1074:5 | MyThing | +| main.rs:1122:13:1122:16 | self | A | main.rs:1119:10:1119:10 | T | +| main.rs:1122:13:1122:18 | self.a | | main.rs:1119:10:1119:10 | T | +| main.rs:1130:15:1130:18 | SelfParam | | main.rs:1076:5:1079:5 | MyThing2 | +| main.rs:1130:15:1130:18 | SelfParam | A | main.rs:1128:10:1128:10 | T | +| main.rs:1130:35:1132:9 | { ... } | | main.rs:1071:5:1074:5 | MyThing | +| main.rs:1130:35:1132:9 | { ... } | A | main.rs:1128:10:1128:10 | T | +| main.rs:1131:13:1131:33 | MyThing {...} | | main.rs:1071:5:1074:5 | MyThing | +| main.rs:1131:13:1131:33 | MyThing {...} | A | main.rs:1128:10:1128:10 | T | +| main.rs:1131:26:1131:29 | self | | main.rs:1076:5:1079:5 | MyThing2 | +| main.rs:1131:26:1131:29 | self | A | main.rs:1128:10:1128:10 | T | +| main.rs:1131:26:1131:31 | self.a | | main.rs:1128:10:1128:10 | T | +| main.rs:1139:44:1139:44 | x | | main.rs:1139:26:1139:41 | T2 | +| main.rs:1139:57:1141:5 | { ... } | | main.rs:1139:22:1139:23 | T1 | +| main.rs:1140:9:1140:9 | x | | main.rs:1139:26:1139:41 | T2 | +| main.rs:1140:9:1140:14 | x.m1() | | main.rs:1139:22:1139:23 | T1 | +| main.rs:1143:56:1143:56 | x | | main.rs:1143:39:1143:53 | T | +| main.rs:1145:13:1145:13 | a | | main.rs:1071:5:1074:5 | MyThing | +| main.rs:1145:13:1145:13 | a | A | main.rs:1081:5:1082:14 | S1 | +| main.rs:1145:17:1145:17 | x | | main.rs:1143:39:1143:53 | T | +| main.rs:1145:17:1145:22 | x.m1() | | main.rs:1071:5:1074:5 | MyThing | +| main.rs:1145:17:1145:22 | x.m1() | A | main.rs:1081:5:1082:14 | S1 | +| main.rs:1146:18:1146:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1146:18:1146:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1146:18:1146:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1146:18:1146:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1146:26:1146:26 | a | | main.rs:1071:5:1074:5 | MyThing | +| main.rs:1146:26:1146:26 | a | A | main.rs:1081:5:1082:14 | S1 | +| main.rs:1150:13:1150:13 | x | | main.rs:1071:5:1074:5 | MyThing | +| main.rs:1150:13:1150:13 | x | A | main.rs:1081:5:1082:14 | S1 | +| main.rs:1150:17:1150:33 | MyThing {...} | | main.rs:1071:5:1074:5 | MyThing | +| main.rs:1150:17:1150:33 | MyThing {...} | A | main.rs:1081:5:1082:14 | S1 | +| main.rs:1150:30:1150:31 | S1 | | main.rs:1081:5:1082:14 | S1 | +| main.rs:1151:13:1151:13 | y | | main.rs:1071:5:1074:5 | MyThing | +| main.rs:1151:13:1151:13 | y | A | main.rs:1083:5:1084:14 | S2 | +| main.rs:1151:17:1151:33 | MyThing {...} | | main.rs:1071:5:1074:5 | MyThing | +| main.rs:1151:17:1151:33 | MyThing {...} | A | main.rs:1083:5:1084:14 | S2 | +| main.rs:1151:30:1151:31 | S2 | | main.rs:1083:5:1084:14 | S2 | +| main.rs:1153:18:1153:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1153:18:1153:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1153:18:1153:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1153:18:1153:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1153:26:1153:26 | x | | main.rs:1071:5:1074:5 | MyThing | +| main.rs:1153:26:1153:26 | x | A | main.rs:1081:5:1082:14 | S1 | +| main.rs:1153:26:1153:31 | x.m1() | | main.rs:1081:5:1082:14 | S1 | +| main.rs:1154:18:1154:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1154:18:1154:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1154:18:1154:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1154:18:1154:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1154:26:1154:26 | y | | main.rs:1071:5:1074:5 | MyThing | +| main.rs:1154:26:1154:26 | y | A | main.rs:1083:5:1084:14 | S2 | +| main.rs:1154:26:1154:31 | y.m1() | | main.rs:1083:5:1084:14 | S2 | +| main.rs:1156:13:1156:13 | x | | main.rs:1071:5:1074:5 | MyThing | +| main.rs:1156:13:1156:13 | x | A | main.rs:1081:5:1082:14 | S1 | +| main.rs:1156:17:1156:33 | MyThing {...} | | main.rs:1071:5:1074:5 | MyThing | +| main.rs:1156:17:1156:33 | MyThing {...} | A | main.rs:1081:5:1082:14 | S1 | +| main.rs:1156:30:1156:31 | S1 | | main.rs:1081:5:1082:14 | S1 | +| main.rs:1157:13:1157:13 | y | | main.rs:1071:5:1074:5 | MyThing | +| main.rs:1157:13:1157:13 | y | A | main.rs:1083:5:1084:14 | S2 | +| main.rs:1157:17:1157:33 | MyThing {...} | | main.rs:1071:5:1074:5 | MyThing | +| main.rs:1157:17:1157:33 | MyThing {...} | A | main.rs:1083:5:1084:14 | S2 | +| main.rs:1157:30:1157:31 | S2 | | main.rs:1083:5:1084:14 | S2 | +| main.rs:1159:18:1159:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1159:18:1159:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1159:18:1159:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1159:18:1159:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1159:26:1159:26 | x | | main.rs:1071:5:1074:5 | MyThing | +| main.rs:1159:26:1159:26 | x | A | main.rs:1081:5:1082:14 | S1 | +| main.rs:1159:26:1159:31 | x.m2() | | main.rs:1081:5:1082:14 | S1 | +| main.rs:1160:18:1160:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1160:18:1160:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1160:18:1160:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1160:18:1160:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1160:26:1160:26 | y | | main.rs:1071:5:1074:5 | MyThing | +| main.rs:1160:26:1160:26 | y | A | main.rs:1083:5:1084:14 | S2 | +| main.rs:1160:26:1160:31 | y.m2() | | main.rs:1083:5:1084:14 | S2 | +| main.rs:1162:13:1162:13 | x | | main.rs:1076:5:1079:5 | MyThing2 | +| main.rs:1162:13:1162:13 | x | A | main.rs:1081:5:1082:14 | S1 | +| main.rs:1162:17:1162:34 | MyThing2 {...} | | main.rs:1076:5:1079:5 | MyThing2 | +| main.rs:1162:17:1162:34 | MyThing2 {...} | A | main.rs:1081:5:1082:14 | S1 | +| main.rs:1162:31:1162:32 | S1 | | main.rs:1081:5:1082:14 | S1 | +| main.rs:1163:13:1163:13 | y | | main.rs:1076:5:1079:5 | MyThing2 | +| main.rs:1163:13:1163:13 | y | A | main.rs:1083:5:1084:14 | S2 | +| main.rs:1163:17:1163:34 | MyThing2 {...} | | main.rs:1076:5:1079:5 | MyThing2 | +| main.rs:1163:17:1163:34 | MyThing2 {...} | A | main.rs:1083:5:1084:14 | S2 | +| main.rs:1163:31:1163:32 | S2 | | main.rs:1083:5:1084:14 | S2 | +| main.rs:1165:18:1165:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1165:18:1165:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1165:18:1165:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1165:18:1165:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1165:26:1165:26 | x | | main.rs:1076:5:1079:5 | MyThing2 | +| main.rs:1165:26:1165:26 | x | A | main.rs:1081:5:1082:14 | S1 | +| main.rs:1165:26:1165:31 | x.m3() | | main.rs:1081:5:1082:14 | S1 | | main.rs:1166:18:1166:23 | "{:?}\\n" | | file://:0:0:0:0 | & | | main.rs:1166:18:1166:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1166:18:1166:37 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1166:18:1166:37 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1166:26:1166:37 | id::<...>(...) | | file://:0:0:0:0 | & | -| main.rs:1166:26:1166:37 | id::<...>(...) | &T | main.rs:1134:5:1135:14 | S1 | -| main.rs:1166:35:1166:36 | &x | | file://:0:0:0:0 | & | -| main.rs:1166:35:1166:36 | &x | &T | main.rs:1134:5:1135:14 | S1 | -| main.rs:1166:36:1166:36 | x | | main.rs:1134:5:1135:14 | S1 | -| main.rs:1168:13:1168:13 | x | | main.rs:1134:5:1135:14 | S1 | -| main.rs:1168:13:1168:13 | x | | main.rs:1140:5:1140:25 | dyn Trait | -| main.rs:1168:17:1168:18 | S1 | | main.rs:1134:5:1135:14 | S1 | -| main.rs:1168:17:1168:18 | S1 | | main.rs:1140:5:1140:25 | dyn Trait | -| main.rs:1170:18:1170:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1170:18:1170:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1170:18:1170:44 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1170:18:1170:44 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1170:26:1170:44 | id::<...>(...) | | file://:0:0:0:0 | & | -| main.rs:1170:26:1170:44 | id::<...>(...) | &T | main.rs:1140:5:1140:25 | dyn Trait | -| main.rs:1170:42:1170:43 | &x | | file://:0:0:0:0 | & | -| main.rs:1170:42:1170:43 | &x | &T | main.rs:1134:5:1135:14 | S1 | -| main.rs:1170:42:1170:43 | &x | &T | main.rs:1140:5:1140:25 | dyn Trait | -| main.rs:1170:43:1170:43 | x | | main.rs:1134:5:1135:14 | S1 | -| main.rs:1170:43:1170:43 | x | | main.rs:1140:5:1140:25 | dyn Trait | -| main.rs:1172:13:1172:13 | x | | main.rs:1134:5:1135:14 | S1 | -| main.rs:1172:17:1172:18 | S1 | | main.rs:1134:5:1135:14 | S1 | -| main.rs:1173:9:1173:25 | into::<...>(...) | | main.rs:1137:5:1138:14 | S2 | -| main.rs:1173:24:1173:24 | x | | main.rs:1134:5:1135:14 | S1 | -| main.rs:1175:13:1175:13 | x | | main.rs:1134:5:1135:14 | S1 | -| main.rs:1175:17:1175:18 | S1 | | main.rs:1134:5:1135:14 | S1 | -| main.rs:1176:13:1176:13 | y | | main.rs:1137:5:1138:14 | S2 | -| main.rs:1176:21:1176:27 | into(...) | | main.rs:1137:5:1138:14 | S2 | -| main.rs:1176:26:1176:26 | x | | main.rs:1134:5:1135:14 | S1 | -| main.rs:1190:22:1190:25 | SelfParam | | main.rs:1181:5:1187:5 | PairOption | -| main.rs:1190:22:1190:25 | SelfParam | Fst | main.rs:1189:10:1189:12 | Fst | -| main.rs:1190:22:1190:25 | SelfParam | Snd | main.rs:1189:15:1189:17 | Snd | -| main.rs:1190:35:1197:9 | { ... } | | main.rs:1189:15:1189:17 | Snd | -| main.rs:1191:13:1196:13 | match self { ... } | | main.rs:1189:15:1189:17 | Snd | -| main.rs:1191:19:1191:22 | self | | main.rs:1181:5:1187:5 | PairOption | -| main.rs:1191:19:1191:22 | self | Fst | main.rs:1189:10:1189:12 | Fst | -| main.rs:1191:19:1191:22 | self | Snd | main.rs:1189:15:1189:17 | Snd | -| main.rs:1192:17:1192:38 | ...::PairNone(...) | | main.rs:1181:5:1187:5 | PairOption | -| main.rs:1192:17:1192:38 | ...::PairNone(...) | Fst | main.rs:1189:10:1189:12 | Fst | -| main.rs:1192:17:1192:38 | ...::PairNone(...) | Snd | main.rs:1189:15:1189:17 | Snd | -| main.rs:1192:43:1192:82 | MacroExpr | | main.rs:1189:15:1189:17 | Snd | -| main.rs:1192:50:1192:81 | "PairNone has no second elemen... | | file://:0:0:0:0 | & | -| main.rs:1192:50:1192:81 | "PairNone has no second elemen... | &T | {EXTERNAL LOCATION} | str | -| main.rs:1192:50:1192:81 | ...::panic_fmt(...) | | file://:0:0:0:0 | ! | -| main.rs:1192:50:1192:81 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1192:50:1192:81 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1192:50:1192:81 | MacroExpr | | main.rs:1189:15:1189:17 | Snd | -| main.rs:1192:50:1192:81 | { ... } | | main.rs:1189:15:1189:17 | Snd | -| main.rs:1193:17:1193:38 | ...::PairFst(...) | | main.rs:1181:5:1187:5 | PairOption | -| main.rs:1193:17:1193:38 | ...::PairFst(...) | Fst | main.rs:1189:10:1189:12 | Fst | -| main.rs:1193:17:1193:38 | ...::PairFst(...) | Snd | main.rs:1189:15:1189:17 | Snd | -| main.rs:1193:37:1193:37 | _ | | main.rs:1189:10:1189:12 | Fst | -| main.rs:1193:43:1193:81 | MacroExpr | | main.rs:1189:15:1189:17 | Snd | -| main.rs:1193:50:1193:80 | "PairFst has no second element... | | file://:0:0:0:0 | & | -| main.rs:1193:50:1193:80 | "PairFst has no second element... | &T | {EXTERNAL LOCATION} | str | -| main.rs:1193:50:1193:80 | ...::panic_fmt(...) | | file://:0:0:0:0 | ! | -| main.rs:1193:50:1193:80 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1193:50:1193:80 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1193:50:1193:80 | MacroExpr | | main.rs:1189:15:1189:17 | Snd | -| main.rs:1193:50:1193:80 | { ... } | | main.rs:1189:15:1189:17 | Snd | -| main.rs:1194:17:1194:40 | ...::PairSnd(...) | | main.rs:1181:5:1187:5 | PairOption | -| main.rs:1194:17:1194:40 | ...::PairSnd(...) | Fst | main.rs:1189:10:1189:12 | Fst | -| main.rs:1194:17:1194:40 | ...::PairSnd(...) | Snd | main.rs:1189:15:1189:17 | Snd | -| main.rs:1194:37:1194:39 | snd | | main.rs:1189:15:1189:17 | Snd | -| main.rs:1194:45:1194:47 | snd | | main.rs:1189:15:1189:17 | Snd | -| main.rs:1195:17:1195:44 | ...::PairBoth(...) | | main.rs:1181:5:1187:5 | PairOption | -| main.rs:1195:17:1195:44 | ...::PairBoth(...) | Fst | main.rs:1189:10:1189:12 | Fst | -| main.rs:1195:17:1195:44 | ...::PairBoth(...) | Snd | main.rs:1189:15:1189:17 | Snd | -| main.rs:1195:38:1195:38 | _ | | main.rs:1189:10:1189:12 | Fst | -| main.rs:1195:41:1195:43 | snd | | main.rs:1189:15:1189:17 | Snd | -| main.rs:1195:49:1195:51 | snd | | main.rs:1189:15:1189:17 | Snd | -| main.rs:1221:10:1221:10 | t | | main.rs:1181:5:1187:5 | PairOption | -| main.rs:1221:10:1221:10 | t | Fst | main.rs:1203:5:1204:14 | S2 | -| main.rs:1221:10:1221:10 | t | Snd | main.rs:1181:5:1187:5 | PairOption | -| main.rs:1221:10:1221:10 | t | Snd.Fst | main.rs:1203:5:1204:14 | S2 | -| main.rs:1221:10:1221:10 | t | Snd.Snd | main.rs:1206:5:1207:14 | S3 | -| main.rs:1222:13:1222:13 | x | | main.rs:1206:5:1207:14 | S3 | -| main.rs:1222:17:1222:17 | t | | main.rs:1181:5:1187:5 | PairOption | -| main.rs:1222:17:1222:17 | t | Fst | main.rs:1203:5:1204:14 | S2 | -| main.rs:1222:17:1222:17 | t | Snd | main.rs:1181:5:1187:5 | PairOption | -| main.rs:1222:17:1222:17 | t | Snd.Fst | main.rs:1203:5:1204:14 | S2 | -| main.rs:1222:17:1222:17 | t | Snd.Snd | main.rs:1206:5:1207:14 | S3 | -| main.rs:1222:17:1222:29 | t.unwrapSnd() | | main.rs:1181:5:1187:5 | PairOption | -| main.rs:1222:17:1222:29 | t.unwrapSnd() | Fst | main.rs:1203:5:1204:14 | S2 | -| main.rs:1222:17:1222:29 | t.unwrapSnd() | Snd | main.rs:1206:5:1207:14 | S3 | -| main.rs:1222:17:1222:41 | ... .unwrapSnd() | | main.rs:1206:5:1207:14 | S3 | -| main.rs:1223:18:1223:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1223:18:1223:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1223:18:1223:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1223:18:1223:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1223:26:1223:26 | x | | main.rs:1206:5:1207:14 | S3 | -| main.rs:1238:22:1238:25 | SelfParam | | main.rs:1236:5:1239:5 | Self [trait TraitWithAssocType] | -| main.rs:1246:22:1246:25 | SelfParam | | main.rs:1234:5:1234:28 | GenS | -| main.rs:1246:22:1246:25 | SelfParam | GenT | main.rs:1241:10:1241:15 | Output | -| main.rs:1246:44:1248:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1246:44:1248:9 | { ... } | E | main.rs:1241:10:1241:15 | Output | -| main.rs:1246:44:1248:9 | { ... } | T | main.rs:1241:10:1241:15 | Output | -| main.rs:1247:13:1247:22 | Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1247:13:1247:22 | Ok(...) | E | main.rs:1241:10:1241:15 | Output | -| main.rs:1247:13:1247:22 | Ok(...) | T | main.rs:1241:10:1241:15 | Output | -| main.rs:1247:16:1247:19 | self | | main.rs:1234:5:1234:28 | GenS | -| main.rs:1247:16:1247:19 | self | GenT | main.rs:1241:10:1241:15 | Output | -| main.rs:1247:16:1247:21 | self.0 | | main.rs:1241:10:1241:15 | Output | -| main.rs:1253:13:1253:14 | p1 | | main.rs:1181:5:1187:5 | PairOption | -| main.rs:1253:13:1253:14 | p1 | Fst | main.rs:1200:5:1201:14 | S1 | -| main.rs:1253:13:1253:14 | p1 | Snd | main.rs:1203:5:1204:14 | S2 | -| main.rs:1253:26:1253:53 | ...::PairBoth(...) | | main.rs:1181:5:1187:5 | PairOption | -| main.rs:1253:26:1253:53 | ...::PairBoth(...) | Fst | main.rs:1200:5:1201:14 | S1 | -| main.rs:1253:26:1253:53 | ...::PairBoth(...) | Snd | main.rs:1203:5:1204:14 | S2 | -| main.rs:1253:47:1253:48 | S1 | | main.rs:1200:5:1201:14 | S1 | -| main.rs:1253:51:1253:52 | S2 | | main.rs:1203:5:1204:14 | S2 | -| main.rs:1254:18:1254:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1254:18:1254:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1254:18:1254:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1254:18:1254:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1254:26:1254:27 | p1 | | main.rs:1181:5:1187:5 | PairOption | -| main.rs:1254:26:1254:27 | p1 | Fst | main.rs:1200:5:1201:14 | S1 | -| main.rs:1254:26:1254:27 | p1 | Snd | main.rs:1203:5:1204:14 | S2 | -| main.rs:1257:13:1257:14 | p2 | | main.rs:1181:5:1187:5 | PairOption | -| main.rs:1257:13:1257:14 | p2 | Fst | main.rs:1200:5:1201:14 | S1 | -| main.rs:1257:13:1257:14 | p2 | Snd | main.rs:1203:5:1204:14 | S2 | -| main.rs:1257:26:1257:47 | ...::PairNone(...) | | main.rs:1181:5:1187:5 | PairOption | -| main.rs:1257:26:1257:47 | ...::PairNone(...) | Fst | main.rs:1200:5:1201:14 | S1 | -| main.rs:1257:26:1257:47 | ...::PairNone(...) | Snd | main.rs:1203:5:1204:14 | S2 | -| main.rs:1258:18:1258:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1258:18:1258:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1258:18:1258:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1258:18:1258:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1258:26:1258:27 | p2 | | main.rs:1181:5:1187:5 | PairOption | -| main.rs:1258:26:1258:27 | p2 | Fst | main.rs:1200:5:1201:14 | S1 | -| main.rs:1258:26:1258:27 | p2 | Snd | main.rs:1203:5:1204:14 | S2 | -| main.rs:1261:13:1261:14 | p3 | | main.rs:1181:5:1187:5 | PairOption | -| main.rs:1261:13:1261:14 | p3 | Fst | main.rs:1203:5:1204:14 | S2 | -| main.rs:1261:13:1261:14 | p3 | Snd | main.rs:1206:5:1207:14 | S3 | -| main.rs:1261:34:1261:56 | ...::PairSnd(...) | | main.rs:1181:5:1187:5 | PairOption | -| main.rs:1261:34:1261:56 | ...::PairSnd(...) | Fst | main.rs:1203:5:1204:14 | S2 | -| main.rs:1261:34:1261:56 | ...::PairSnd(...) | Snd | main.rs:1206:5:1207:14 | S3 | -| main.rs:1261:54:1261:55 | S3 | | main.rs:1206:5:1207:14 | S3 | -| main.rs:1262:18:1262:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1262:18:1262:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1262:18:1262:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1262:18:1262:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1262:26:1262:27 | p3 | | main.rs:1181:5:1187:5 | PairOption | -| main.rs:1262:26:1262:27 | p3 | Fst | main.rs:1203:5:1204:14 | S2 | -| main.rs:1262:26:1262:27 | p3 | Snd | main.rs:1206:5:1207:14 | S3 | -| main.rs:1265:13:1265:14 | p3 | | main.rs:1181:5:1187:5 | PairOption | -| main.rs:1265:13:1265:14 | p3 | Fst | main.rs:1203:5:1204:14 | S2 | -| main.rs:1265:13:1265:14 | p3 | Snd | main.rs:1206:5:1207:14 | S3 | -| main.rs:1265:35:1265:56 | ...::PairNone(...) | | main.rs:1181:5:1187:5 | PairOption | -| main.rs:1265:35:1265:56 | ...::PairNone(...) | Fst | main.rs:1203:5:1204:14 | S2 | -| main.rs:1265:35:1265:56 | ...::PairNone(...) | Snd | main.rs:1206:5:1207:14 | S3 | -| main.rs:1266:18:1266:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1266:18:1266:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1266:18:1266:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1266:18:1266:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1266:26:1266:27 | p3 | | main.rs:1181:5:1187:5 | PairOption | -| main.rs:1266:26:1266:27 | p3 | Fst | main.rs:1203:5:1204:14 | S2 | -| main.rs:1266:26:1266:27 | p3 | Snd | main.rs:1206:5:1207:14 | S3 | -| main.rs:1268:11:1268:54 | ...::PairSnd(...) | | main.rs:1181:5:1187:5 | PairOption | -| main.rs:1268:11:1268:54 | ...::PairSnd(...) | Fst | main.rs:1203:5:1204:14 | S2 | -| main.rs:1268:11:1268:54 | ...::PairSnd(...) | Snd | main.rs:1181:5:1187:5 | PairOption | -| main.rs:1268:11:1268:54 | ...::PairSnd(...) | Snd.Fst | main.rs:1203:5:1204:14 | S2 | -| main.rs:1268:11:1268:54 | ...::PairSnd(...) | Snd.Snd | main.rs:1206:5:1207:14 | S3 | -| main.rs:1268:31:1268:53 | ...::PairSnd(...) | | main.rs:1181:5:1187:5 | PairOption | -| main.rs:1268:31:1268:53 | ...::PairSnd(...) | Fst | main.rs:1203:5:1204:14 | S2 | -| main.rs:1268:31:1268:53 | ...::PairSnd(...) | Snd | main.rs:1206:5:1207:14 | S3 | -| main.rs:1268:51:1268:52 | S3 | | main.rs:1206:5:1207:14 | S3 | -| main.rs:1270:13:1270:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:1270:13:1270:13 | x | E | main.rs:1200:5:1201:14 | S1 | -| main.rs:1270:13:1270:13 | x | T | main.rs:1226:5:1226:34 | S4 | -| main.rs:1270:13:1270:13 | x | T.T41 | main.rs:1203:5:1204:14 | S2 | -| main.rs:1270:13:1270:13 | x | T.T42 | main.rs:1228:5:1228:22 | S5 | -| main.rs:1270:13:1270:13 | x | T.T42.T5 | main.rs:1203:5:1204:14 | S2 | -| main.rs:1272:13:1272:13 | y | | {EXTERNAL LOCATION} | Result | -| main.rs:1272:13:1272:13 | y | E | {EXTERNAL LOCATION} | bool | -| main.rs:1272:13:1272:13 | y | T | {EXTERNAL LOCATION} | bool | -| main.rs:1272:17:1272:26 | GenS(...) | | main.rs:1234:5:1234:28 | GenS | -| main.rs:1272:17:1272:26 | GenS(...) | GenT | {EXTERNAL LOCATION} | bool | -| main.rs:1272:17:1272:38 | ... .get_input() | | {EXTERNAL LOCATION} | Result | -| main.rs:1272:17:1272:38 | ... .get_input() | E | {EXTERNAL LOCATION} | bool | -| main.rs:1272:17:1272:38 | ... .get_input() | T | {EXTERNAL LOCATION} | bool | -| main.rs:1272:22:1272:25 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1285:16:1285:24 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1285:16:1285:24 | SelfParam | &T | main.rs:1283:5:1290:5 | Self [trait MyTrait] | -| main.rs:1285:27:1285:31 | value | | main.rs:1283:19:1283:19 | S | -| main.rs:1287:21:1287:29 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1287:21:1287:29 | SelfParam | &T | main.rs:1283:5:1290:5 | Self [trait MyTrait] | -| main.rs:1287:32:1287:36 | value | | main.rs:1283:19:1283:19 | S | -| main.rs:1288:13:1288:16 | self | | file://:0:0:0:0 | & | -| main.rs:1288:13:1288:16 | self | &T | main.rs:1283:5:1290:5 | Self [trait MyTrait] | -| main.rs:1288:22:1288:26 | value | | main.rs:1283:19:1283:19 | S | -| main.rs:1294:16:1294:24 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1294:16:1294:24 | SelfParam | &T | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1294:16:1294:24 | SelfParam | &T.T | main.rs:1292:10:1292:10 | T | -| main.rs:1294:27:1294:31 | value | | main.rs:1292:10:1292:10 | T | -| main.rs:1298:26:1300:9 | { ... } | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1298:26:1300:9 | { ... } | T | main.rs:1297:10:1297:10 | T | -| main.rs:1299:13:1299:30 | ...::MyNone(...) | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1299:13:1299:30 | ...::MyNone(...) | T | main.rs:1297:10:1297:10 | T | -| main.rs:1304:20:1304:23 | SelfParam | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1304:20:1304:23 | SelfParam | T | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1304:20:1304:23 | SelfParam | T.T | main.rs:1303:10:1303:10 | T | -| main.rs:1304:41:1309:9 | { ... } | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1304:41:1309:9 | { ... } | T | main.rs:1303:10:1303:10 | T | -| main.rs:1305:13:1308:13 | match self { ... } | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1305:13:1308:13 | match self { ... } | T | main.rs:1303:10:1303:10 | T | -| main.rs:1305:19:1305:22 | self | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1305:19:1305:22 | self | T | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1305:19:1305:22 | self | T.T | main.rs:1303:10:1303:10 | T | -| main.rs:1306:17:1306:34 | ...::MyNone(...) | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1306:17:1306:34 | ...::MyNone(...) | T | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1306:17:1306:34 | ...::MyNone(...) | T.T | main.rs:1303:10:1303:10 | T | -| main.rs:1306:39:1306:56 | ...::MyNone(...) | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1306:39:1306:56 | ...::MyNone(...) | T | main.rs:1303:10:1303:10 | T | -| main.rs:1307:17:1307:35 | ...::MySome(...) | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1307:17:1307:35 | ...::MySome(...) | T | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1307:17:1307:35 | ...::MySome(...) | T.T | main.rs:1303:10:1303:10 | T | -| main.rs:1307:34:1307:34 | x | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1307:34:1307:34 | x | T | main.rs:1303:10:1303:10 | T | -| main.rs:1307:40:1307:40 | x | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1307:40:1307:40 | x | T | main.rs:1303:10:1303:10 | T | -| main.rs:1316:13:1316:14 | x1 | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1316:13:1316:14 | x1 | T | main.rs:1312:5:1313:13 | S | -| main.rs:1316:18:1316:37 | ...::new(...) | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1316:18:1316:37 | ...::new(...) | T | main.rs:1312:5:1313:13 | S | -| main.rs:1317:18:1317:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1317:18:1317:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1317:18:1317:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1317:18:1317:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1317:26:1317:27 | x1 | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1317:26:1317:27 | x1 | T | main.rs:1312:5:1313:13 | S | -| main.rs:1319:17:1319:18 | x2 | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1319:17:1319:18 | x2 | T | main.rs:1312:5:1313:13 | S | -| main.rs:1319:22:1319:36 | ...::new(...) | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1319:22:1319:36 | ...::new(...) | T | main.rs:1312:5:1313:13 | S | -| main.rs:1320:9:1320:10 | x2 | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1320:9:1320:10 | x2 | T | main.rs:1312:5:1313:13 | S | -| main.rs:1320:16:1320:16 | S | | main.rs:1312:5:1313:13 | S | -| main.rs:1321:18:1321:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1321:18:1321:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1321:18:1321:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1321:18:1321:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1321:26:1321:27 | x2 | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1321:26:1321:27 | x2 | T | main.rs:1312:5:1313:13 | S | -| main.rs:1324:17:1324:18 | x3 | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1324:22:1324:36 | ...::new(...) | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1325:9:1325:10 | x3 | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1325:21:1325:21 | S | | main.rs:1312:5:1313:13 | S | -| main.rs:1326:18:1326:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1326:18:1326:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1326:18:1326:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1326:18:1326:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1326:26:1326:27 | x3 | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1328:17:1328:18 | x4 | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1328:17:1328:18 | x4 | T | main.rs:1312:5:1313:13 | S | -| main.rs:1328:22:1328:36 | ...::new(...) | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1328:22:1328:36 | ...::new(...) | T | main.rs:1312:5:1313:13 | S | -| main.rs:1329:23:1329:29 | &mut x4 | | file://:0:0:0:0 | & | -| main.rs:1329:23:1329:29 | &mut x4 | &T | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1329:23:1329:29 | &mut x4 | &T.T | main.rs:1312:5:1313:13 | S | -| main.rs:1329:28:1329:29 | x4 | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1329:28:1329:29 | x4 | T | main.rs:1312:5:1313:13 | S | -| main.rs:1329:32:1329:32 | S | | main.rs:1312:5:1313:13 | S | -| main.rs:1330:18:1330:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1330:18:1330:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1330:18:1330:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1330:18:1330:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1330:26:1330:27 | x4 | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1330:26:1330:27 | x4 | T | main.rs:1312:5:1313:13 | S | -| main.rs:1332:13:1332:14 | x5 | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1332:13:1332:14 | x5 | T | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1332:13:1332:14 | x5 | T.T | main.rs:1312:5:1313:13 | S | -| main.rs:1332:18:1332:58 | ...::MySome(...) | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1332:18:1332:58 | ...::MySome(...) | T | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1332:18:1332:58 | ...::MySome(...) | T.T | main.rs:1312:5:1313:13 | S | -| main.rs:1332:35:1332:57 | ...::MyNone(...) | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1332:35:1332:57 | ...::MyNone(...) | T | main.rs:1312:5:1313:13 | S | -| main.rs:1333:18:1333:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1333:18:1333:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1333:18:1333:37 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1333:18:1333:37 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1333:26:1333:27 | x5 | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1333:26:1333:27 | x5 | T | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1333:26:1333:27 | x5 | T.T | main.rs:1312:5:1313:13 | S | -| main.rs:1333:26:1333:37 | x5.flatten() | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1333:26:1333:37 | x5.flatten() | T | main.rs:1312:5:1313:13 | S | -| main.rs:1335:13:1335:14 | x6 | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1335:13:1335:14 | x6 | T | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1335:13:1335:14 | x6 | T.T | main.rs:1312:5:1313:13 | S | -| main.rs:1335:18:1335:58 | ...::MySome(...) | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1335:18:1335:58 | ...::MySome(...) | T | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1335:18:1335:58 | ...::MySome(...) | T.T | main.rs:1312:5:1313:13 | S | -| main.rs:1335:35:1335:57 | ...::MyNone(...) | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1335:35:1335:57 | ...::MyNone(...) | T | main.rs:1312:5:1313:13 | S | -| main.rs:1336:18:1336:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1336:18:1336:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1336:18:1336:61 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1336:18:1336:61 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1336:26:1336:61 | ...::flatten(...) | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1336:26:1336:61 | ...::flatten(...) | T | main.rs:1312:5:1313:13 | S | -| main.rs:1336:59:1336:60 | x6 | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1336:59:1336:60 | x6 | T | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1336:59:1336:60 | x6 | T.T | main.rs:1312:5:1313:13 | S | -| main.rs:1339:13:1339:19 | from_if | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1339:13:1339:19 | from_if | T | main.rs:1312:5:1313:13 | S | -| main.rs:1339:23:1343:9 | if ... {...} else {...} | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1339:23:1343:9 | if ... {...} else {...} | T | main.rs:1312:5:1313:13 | S | -| main.rs:1339:26:1339:26 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1339:26:1339:30 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1339:30:1339:30 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1339:32:1341:9 | { ... } | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1339:32:1341:9 | { ... } | T | main.rs:1312:5:1313:13 | S | -| main.rs:1340:13:1340:30 | ...::MyNone(...) | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1340:13:1340:30 | ...::MyNone(...) | T | main.rs:1312:5:1313:13 | S | -| main.rs:1341:16:1343:9 | { ... } | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1341:16:1343:9 | { ... } | T | main.rs:1312:5:1313:13 | S | -| main.rs:1342:13:1342:31 | ...::MySome(...) | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1342:13:1342:31 | ...::MySome(...) | T | main.rs:1312:5:1313:13 | S | -| main.rs:1342:30:1342:30 | S | | main.rs:1312:5:1313:13 | S | -| main.rs:1344:18:1344:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1344:18:1344:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1344:18:1344:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1344:18:1344:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1344:26:1344:32 | from_if | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1344:26:1344:32 | from_if | T | main.rs:1312:5:1313:13 | S | -| main.rs:1347:13:1347:22 | from_match | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1347:13:1347:22 | from_match | T | main.rs:1312:5:1313:13 | S | -| main.rs:1347:26:1350:9 | match ... { ... } | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1347:26:1350:9 | match ... { ... } | T | main.rs:1312:5:1313:13 | S | -| main.rs:1347:32:1347:32 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1347:32:1347:36 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1347:36:1347:36 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1348:13:1348:16 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1348:21:1348:38 | ...::MyNone(...) | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1348:21:1348:38 | ...::MyNone(...) | T | main.rs:1312:5:1313:13 | S | -| main.rs:1349:13:1349:17 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1349:22:1349:40 | ...::MySome(...) | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1349:22:1349:40 | ...::MySome(...) | T | main.rs:1312:5:1313:13 | S | -| main.rs:1349:39:1349:39 | S | | main.rs:1312:5:1313:13 | S | -| main.rs:1351:18:1351:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1351:18:1351:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1351:18:1351:35 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1351:18:1351:35 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1351:26:1351:35 | from_match | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1351:26:1351:35 | from_match | T | main.rs:1312:5:1313:13 | S | -| main.rs:1354:13:1354:21 | from_loop | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1354:13:1354:21 | from_loop | T | main.rs:1312:5:1313:13 | S | -| main.rs:1354:25:1359:9 | loop { ... } | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1354:25:1359:9 | loop { ... } | T | main.rs:1312:5:1313:13 | S | -| main.rs:1355:16:1355:16 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1355:16:1355:20 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1355:20:1355:20 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1356:23:1356:40 | ...::MyNone(...) | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1356:23:1356:40 | ...::MyNone(...) | T | main.rs:1312:5:1313:13 | S | -| main.rs:1358:19:1358:37 | ...::MySome(...) | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1358:19:1358:37 | ...::MySome(...) | T | main.rs:1312:5:1313:13 | S | -| main.rs:1358:36:1358:36 | S | | main.rs:1312:5:1313:13 | S | -| main.rs:1360:18:1360:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1360:18:1360:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1360:18:1360:34 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1360:18:1360:34 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1360:26:1360:34 | from_loop | | main.rs:1277:5:1281:5 | MyOption | -| main.rs:1360:26:1360:34 | from_loop | T | main.rs:1312:5:1313:13 | S | -| main.rs:1378:15:1378:18 | SelfParam | | main.rs:1366:5:1367:19 | S | -| main.rs:1378:15:1378:18 | SelfParam | T | main.rs:1377:10:1377:10 | T | -| main.rs:1378:26:1380:9 | { ... } | | main.rs:1377:10:1377:10 | T | -| main.rs:1379:13:1379:16 | self | | main.rs:1366:5:1367:19 | S | -| main.rs:1379:13:1379:16 | self | T | main.rs:1377:10:1377:10 | T | -| main.rs:1379:13:1379:18 | self.0 | | main.rs:1377:10:1377:10 | T | -| main.rs:1382:15:1382:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1382:15:1382:19 | SelfParam | &T | main.rs:1366:5:1367:19 | S | -| main.rs:1382:15:1382:19 | SelfParam | &T.T | main.rs:1377:10:1377:10 | T | -| main.rs:1382:28:1384:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1382:28:1384:9 | { ... } | &T | main.rs:1377:10:1377:10 | T | -| main.rs:1383:13:1383:19 | &... | | file://:0:0:0:0 | & | -| main.rs:1383:13:1383:19 | &... | &T | main.rs:1377:10:1377:10 | T | -| main.rs:1383:14:1383:17 | self | | file://:0:0:0:0 | & | -| main.rs:1383:14:1383:17 | self | &T | main.rs:1366:5:1367:19 | S | -| main.rs:1383:14:1383:17 | self | &T.T | main.rs:1377:10:1377:10 | T | -| main.rs:1383:14:1383:19 | self.0 | | main.rs:1377:10:1377:10 | T | -| main.rs:1386:15:1386:25 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1386:15:1386:25 | SelfParam | &T | main.rs:1366:5:1367:19 | S | -| main.rs:1386:15:1386:25 | SelfParam | &T.T | main.rs:1377:10:1377:10 | T | -| main.rs:1386:34:1388:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1386:34:1388:9 | { ... } | &T | main.rs:1377:10:1377:10 | T | -| main.rs:1387:13:1387:19 | &... | | file://:0:0:0:0 | & | -| main.rs:1387:13:1387:19 | &... | &T | main.rs:1377:10:1377:10 | T | -| main.rs:1387:14:1387:17 | self | | file://:0:0:0:0 | & | -| main.rs:1387:14:1387:17 | self | &T | main.rs:1366:5:1367:19 | S | -| main.rs:1387:14:1387:17 | self | &T.T | main.rs:1377:10:1377:10 | T | -| main.rs:1387:14:1387:19 | self.0 | | main.rs:1377:10:1377:10 | T | -| main.rs:1392:29:1392:33 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1392:29:1392:33 | SelfParam | &T | main.rs:1391:5:1394:5 | Self [trait ATrait] | -| main.rs:1393:33:1393:36 | SelfParam | | main.rs:1391:5:1394:5 | Self [trait ATrait] | -| main.rs:1399:29:1399:33 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1399:29:1399:33 | SelfParam | &T | file://:0:0:0:0 | & | -| main.rs:1399:29:1399:33 | SelfParam | &T.&T | main.rs:1372:5:1375:5 | MyInt | -| main.rs:1399:43:1401:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1400:13:1400:22 | (...) | | main.rs:1372:5:1375:5 | MyInt | -| main.rs:1400:13:1400:24 | ... .a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1400:14:1400:21 | * ... | | main.rs:1372:5:1375:5 | MyInt | -| main.rs:1400:15:1400:21 | (...) | | file://:0:0:0:0 | & | -| main.rs:1400:15:1400:21 | (...) | &T | main.rs:1372:5:1375:5 | MyInt | -| main.rs:1400:16:1400:20 | * ... | | file://:0:0:0:0 | & | -| main.rs:1400:16:1400:20 | * ... | &T | main.rs:1372:5:1375:5 | MyInt | -| main.rs:1400:17:1400:20 | self | | file://:0:0:0:0 | & | -| main.rs:1400:17:1400:20 | self | &T | file://:0:0:0:0 | & | -| main.rs:1400:17:1400:20 | self | &T.&T | main.rs:1372:5:1375:5 | MyInt | -| main.rs:1404:33:1404:36 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1404:33:1404:36 | SelfParam | &T | main.rs:1372:5:1375:5 | MyInt | -| main.rs:1404:46:1406:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1405:13:1405:19 | (...) | | main.rs:1372:5:1375:5 | MyInt | -| main.rs:1405:13:1405:21 | ... .a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1405:14:1405:18 | * ... | | main.rs:1372:5:1375:5 | MyInt | -| main.rs:1405:15:1405:18 | self | | file://:0:0:0:0 | & | -| main.rs:1405:15:1405:18 | self | &T | main.rs:1372:5:1375:5 | MyInt | -| main.rs:1410:13:1410:14 | x1 | | main.rs:1366:5:1367:19 | S | -| main.rs:1410:13:1410:14 | x1 | T | main.rs:1369:5:1370:14 | S2 | -| main.rs:1410:18:1410:22 | S(...) | | main.rs:1366:5:1367:19 | S | -| main.rs:1410:18:1410:22 | S(...) | T | main.rs:1369:5:1370:14 | S2 | -| main.rs:1410:20:1410:21 | S2 | | main.rs:1369:5:1370:14 | S2 | -| main.rs:1411:18:1411:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1411:18:1411:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1411:18:1411:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1411:18:1411:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1411:26:1411:27 | x1 | | main.rs:1366:5:1367:19 | S | -| main.rs:1411:26:1411:27 | x1 | T | main.rs:1369:5:1370:14 | S2 | -| main.rs:1411:26:1411:32 | x1.m1() | | main.rs:1369:5:1370:14 | S2 | -| main.rs:1413:13:1413:14 | x2 | | main.rs:1366:5:1367:19 | S | -| main.rs:1413:13:1413:14 | x2 | T | main.rs:1369:5:1370:14 | S2 | -| main.rs:1413:18:1413:22 | S(...) | | main.rs:1366:5:1367:19 | S | -| main.rs:1413:18:1413:22 | S(...) | T | main.rs:1369:5:1370:14 | S2 | -| main.rs:1413:20:1413:21 | S2 | | main.rs:1369:5:1370:14 | S2 | -| main.rs:1415:18:1415:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1415:18:1415:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1415:18:1415:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1415:18:1415:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1415:26:1415:27 | x2 | | main.rs:1366:5:1367:19 | S | -| main.rs:1415:26:1415:27 | x2 | T | main.rs:1369:5:1370:14 | S2 | -| main.rs:1415:26:1415:32 | x2.m2() | | file://:0:0:0:0 | & | -| main.rs:1415:26:1415:32 | x2.m2() | &T | main.rs:1369:5:1370:14 | S2 | -| main.rs:1416:18:1416:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1416:18:1416:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1416:18:1416:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1416:18:1416:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1416:26:1416:27 | x2 | | main.rs:1366:5:1367:19 | S | -| main.rs:1416:26:1416:27 | x2 | T | main.rs:1369:5:1370:14 | S2 | -| main.rs:1416:26:1416:32 | x2.m3() | | file://:0:0:0:0 | & | -| main.rs:1416:26:1416:32 | x2.m3() | &T | main.rs:1369:5:1370:14 | S2 | -| main.rs:1418:13:1418:14 | x3 | | main.rs:1366:5:1367:19 | S | -| main.rs:1418:13:1418:14 | x3 | T | main.rs:1369:5:1370:14 | S2 | -| main.rs:1418:18:1418:22 | S(...) | | main.rs:1366:5:1367:19 | S | -| main.rs:1418:18:1418:22 | S(...) | T | main.rs:1369:5:1370:14 | S2 | -| main.rs:1418:20:1418:21 | S2 | | main.rs:1369:5:1370:14 | S2 | -| main.rs:1420:18:1420:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1420:18:1420:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1420:18:1420:41 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1420:18:1420:41 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1420:26:1420:41 | ...::m2(...) | | file://:0:0:0:0 | & | -| main.rs:1420:26:1420:41 | ...::m2(...) | &T | main.rs:1369:5:1370:14 | S2 | -| main.rs:1420:38:1420:40 | &x3 | | file://:0:0:0:0 | & | -| main.rs:1420:38:1420:40 | &x3 | &T | main.rs:1366:5:1367:19 | S | -| main.rs:1420:38:1420:40 | &x3 | &T.T | main.rs:1369:5:1370:14 | S2 | -| main.rs:1420:39:1420:40 | x3 | | main.rs:1366:5:1367:19 | S | -| main.rs:1420:39:1420:40 | x3 | T | main.rs:1369:5:1370:14 | S2 | -| main.rs:1421:18:1421:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1421:18:1421:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1421:18:1421:41 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1421:18:1421:41 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1421:26:1421:41 | ...::m3(...) | | file://:0:0:0:0 | & | -| main.rs:1421:26:1421:41 | ...::m3(...) | &T | main.rs:1369:5:1370:14 | S2 | -| main.rs:1421:38:1421:40 | &x3 | | file://:0:0:0:0 | & | -| main.rs:1421:38:1421:40 | &x3 | &T | main.rs:1366:5:1367:19 | S | -| main.rs:1421:38:1421:40 | &x3 | &T.T | main.rs:1369:5:1370:14 | S2 | -| main.rs:1421:39:1421:40 | x3 | | main.rs:1366:5:1367:19 | S | -| main.rs:1421:39:1421:40 | x3 | T | main.rs:1369:5:1370:14 | S2 | -| main.rs:1423:13:1423:14 | x4 | | file://:0:0:0:0 | & | -| main.rs:1423:13:1423:14 | x4 | &T | main.rs:1366:5:1367:19 | S | -| main.rs:1423:13:1423:14 | x4 | &T.T | main.rs:1369:5:1370:14 | S2 | -| main.rs:1423:18:1423:23 | &... | | file://:0:0:0:0 | & | -| main.rs:1423:18:1423:23 | &... | &T | main.rs:1366:5:1367:19 | S | -| main.rs:1423:18:1423:23 | &... | &T.T | main.rs:1369:5:1370:14 | S2 | -| main.rs:1423:19:1423:23 | S(...) | | main.rs:1366:5:1367:19 | S | -| main.rs:1423:19:1423:23 | S(...) | T | main.rs:1369:5:1370:14 | S2 | -| main.rs:1423:21:1423:22 | S2 | | main.rs:1369:5:1370:14 | S2 | -| main.rs:1425:18:1425:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1425:18:1425:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1425:18:1425:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1425:18:1425:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1425:26:1425:27 | x4 | | file://:0:0:0:0 | & | -| main.rs:1425:26:1425:27 | x4 | &T | main.rs:1366:5:1367:19 | S | -| main.rs:1425:26:1425:27 | x4 | &T.T | main.rs:1369:5:1370:14 | S2 | -| main.rs:1425:26:1425:32 | x4.m2() | | file://:0:0:0:0 | & | -| main.rs:1425:26:1425:32 | x4.m2() | &T | main.rs:1369:5:1370:14 | S2 | -| main.rs:1426:18:1426:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1426:18:1426:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1426:18:1426:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1426:18:1426:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1426:26:1426:27 | x4 | | file://:0:0:0:0 | & | -| main.rs:1426:26:1426:27 | x4 | &T | main.rs:1366:5:1367:19 | S | -| main.rs:1426:26:1426:27 | x4 | &T.T | main.rs:1369:5:1370:14 | S2 | -| main.rs:1426:26:1426:32 | x4.m3() | | file://:0:0:0:0 | & | -| main.rs:1426:26:1426:32 | x4.m3() | &T | main.rs:1369:5:1370:14 | S2 | -| main.rs:1428:13:1428:14 | x5 | | file://:0:0:0:0 | & | -| main.rs:1428:13:1428:14 | x5 | &T | main.rs:1366:5:1367:19 | S | -| main.rs:1428:13:1428:14 | x5 | &T.T | main.rs:1369:5:1370:14 | S2 | -| main.rs:1428:18:1428:23 | &... | | file://:0:0:0:0 | & | -| main.rs:1428:18:1428:23 | &... | &T | main.rs:1366:5:1367:19 | S | -| main.rs:1428:18:1428:23 | &... | &T.T | main.rs:1369:5:1370:14 | S2 | -| main.rs:1428:19:1428:23 | S(...) | | main.rs:1366:5:1367:19 | S | -| main.rs:1428:19:1428:23 | S(...) | T | main.rs:1369:5:1370:14 | S2 | -| main.rs:1428:21:1428:22 | S2 | | main.rs:1369:5:1370:14 | S2 | -| main.rs:1430:18:1430:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1430:18:1430:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1430:18:1430:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1430:18:1430:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1430:26:1430:27 | x5 | | file://:0:0:0:0 | & | -| main.rs:1430:26:1430:27 | x5 | &T | main.rs:1366:5:1367:19 | S | -| main.rs:1430:26:1430:27 | x5 | &T.T | main.rs:1369:5:1370:14 | S2 | -| main.rs:1430:26:1430:32 | x5.m1() | | main.rs:1369:5:1370:14 | S2 | -| main.rs:1431:18:1431:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1431:18:1431:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1431:18:1431:29 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1431:18:1431:29 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1431:26:1431:27 | x5 | | file://:0:0:0:0 | & | -| main.rs:1431:26:1431:27 | x5 | &T | main.rs:1366:5:1367:19 | S | -| main.rs:1431:26:1431:27 | x5 | &T.T | main.rs:1369:5:1370:14 | S2 | -| main.rs:1431:26:1431:29 | x5.0 | | main.rs:1369:5:1370:14 | S2 | -| main.rs:1433:13:1433:14 | x6 | | file://:0:0:0:0 | & | -| main.rs:1433:13:1433:14 | x6 | &T | main.rs:1366:5:1367:19 | S | -| main.rs:1433:13:1433:14 | x6 | &T.T | main.rs:1369:5:1370:14 | S2 | -| main.rs:1433:18:1433:23 | &... | | file://:0:0:0:0 | & | -| main.rs:1433:18:1433:23 | &... | &T | main.rs:1366:5:1367:19 | S | -| main.rs:1433:18:1433:23 | &... | &T.T | main.rs:1369:5:1370:14 | S2 | -| main.rs:1433:19:1433:23 | S(...) | | main.rs:1366:5:1367:19 | S | -| main.rs:1433:19:1433:23 | S(...) | T | main.rs:1369:5:1370:14 | S2 | -| main.rs:1433:21:1433:22 | S2 | | main.rs:1369:5:1370:14 | S2 | -| main.rs:1436:18:1436:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1436:18:1436:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1436:18:1436:35 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1436:18:1436:35 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1436:26:1436:30 | (...) | | main.rs:1366:5:1367:19 | S | -| main.rs:1436:26:1436:30 | (...) | T | main.rs:1369:5:1370:14 | S2 | -| main.rs:1436:26:1436:35 | ... .m1() | | main.rs:1369:5:1370:14 | S2 | -| main.rs:1436:27:1436:29 | * ... | | main.rs:1366:5:1367:19 | S | -| main.rs:1436:27:1436:29 | * ... | T | main.rs:1369:5:1370:14 | S2 | -| main.rs:1436:28:1436:29 | x6 | | file://:0:0:0:0 | & | -| main.rs:1436:28:1436:29 | x6 | &T | main.rs:1366:5:1367:19 | S | -| main.rs:1436:28:1436:29 | x6 | &T.T | main.rs:1369:5:1370:14 | S2 | -| main.rs:1438:13:1438:14 | x7 | | main.rs:1366:5:1367:19 | S | -| main.rs:1438:13:1438:14 | x7 | T | file://:0:0:0:0 | & | -| main.rs:1438:13:1438:14 | x7 | T.&T | main.rs:1369:5:1370:14 | S2 | -| main.rs:1438:18:1438:23 | S(...) | | main.rs:1366:5:1367:19 | S | -| main.rs:1438:18:1438:23 | S(...) | T | file://:0:0:0:0 | & | -| main.rs:1438:18:1438:23 | S(...) | T.&T | main.rs:1369:5:1370:14 | S2 | -| main.rs:1438:20:1438:22 | &S2 | | file://:0:0:0:0 | & | -| main.rs:1438:20:1438:22 | &S2 | &T | main.rs:1369:5:1370:14 | S2 | -| main.rs:1438:21:1438:22 | S2 | | main.rs:1369:5:1370:14 | S2 | -| main.rs:1441:13:1441:13 | t | | file://:0:0:0:0 | & | -| main.rs:1441:13:1441:13 | t | &T | main.rs:1369:5:1370:14 | S2 | -| main.rs:1441:17:1441:18 | x7 | | main.rs:1366:5:1367:19 | S | -| main.rs:1441:17:1441:18 | x7 | T | file://:0:0:0:0 | & | -| main.rs:1441:17:1441:18 | x7 | T.&T | main.rs:1369:5:1370:14 | S2 | -| main.rs:1441:17:1441:23 | x7.m1() | | file://:0:0:0:0 | & | -| main.rs:1441:17:1441:23 | x7.m1() | &T | main.rs:1369:5:1370:14 | S2 | -| main.rs:1442:18:1442:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1442:18:1442:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1442:18:1442:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1442:18:1442:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1442:26:1442:27 | x7 | | main.rs:1366:5:1367:19 | S | -| main.rs:1442:26:1442:27 | x7 | T | file://:0:0:0:0 | & | -| main.rs:1442:26:1442:27 | x7 | T.&T | main.rs:1369:5:1370:14 | S2 | -| main.rs:1444:13:1444:14 | x9 | | {EXTERNAL LOCATION} | String | -| main.rs:1444:26:1444:32 | "Hello" | | file://:0:0:0:0 | & | -| main.rs:1444:26:1444:32 | "Hello" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1444:26:1444:44 | "Hello".to_string() | | {EXTERNAL LOCATION} | String | -| main.rs:1448:13:1448:13 | u | | {EXTERNAL LOCATION} | Result | -| main.rs:1448:13:1448:13 | u | T | {EXTERNAL LOCATION} | u32 | -| main.rs:1448:17:1448:18 | x9 | | {EXTERNAL LOCATION} | String | -| main.rs:1448:17:1448:33 | x9.parse() | | {EXTERNAL LOCATION} | Result | -| main.rs:1448:17:1448:33 | x9.parse() | T | {EXTERNAL LOCATION} | u32 | -| main.rs:1450:13:1450:20 | my_thing | | file://:0:0:0:0 | & | -| main.rs:1450:13:1450:20 | my_thing | &T | main.rs:1372:5:1375:5 | MyInt | -| main.rs:1450:24:1450:39 | &... | | file://:0:0:0:0 | & | -| main.rs:1450:24:1450:39 | &... | &T | main.rs:1372:5:1375:5 | MyInt | -| main.rs:1450:25:1450:39 | MyInt {...} | | main.rs:1372:5:1375:5 | MyInt | -| main.rs:1450:36:1450:37 | 37 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1450:36:1450:37 | 37 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1452:13:1452:13 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1452:17:1452:24 | my_thing | | file://:0:0:0:0 | & | -| main.rs:1452:17:1452:24 | my_thing | &T | main.rs:1372:5:1375:5 | MyInt | -| main.rs:1452:17:1452:43 | my_thing.method_on_borrow() | | {EXTERNAL LOCATION} | i64 | -| main.rs:1453:18:1453:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1453:18:1453:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1453:18:1453:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1453:18:1453:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1453:26:1453:26 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1456:13:1456:20 | my_thing | | file://:0:0:0:0 | & | -| main.rs:1456:13:1456:20 | my_thing | &T | main.rs:1372:5:1375:5 | MyInt | -| main.rs:1456:24:1456:39 | &... | | file://:0:0:0:0 | & | -| main.rs:1456:24:1456:39 | &... | &T | main.rs:1372:5:1375:5 | MyInt | -| main.rs:1456:25:1456:39 | MyInt {...} | | main.rs:1372:5:1375:5 | MyInt | -| main.rs:1456:36:1456:37 | 38 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1456:36:1456:37 | 38 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1457:13:1457:13 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1457:17:1457:24 | my_thing | | file://:0:0:0:0 | & | -| main.rs:1457:17:1457:24 | my_thing | &T | main.rs:1372:5:1375:5 | MyInt | -| main.rs:1457:17:1457:47 | my_thing.method_not_on_borrow() | | {EXTERNAL LOCATION} | i64 | -| main.rs:1458:18:1458:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1458:18:1458:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1458:18:1458:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1458:18:1458:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1458:26:1458:26 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1465:16:1465:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1465:16:1465:20 | SelfParam | &T | main.rs:1463:5:1471:5 | Self [trait MyTrait] | -| main.rs:1468:16:1468:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1468:16:1468:20 | SelfParam | &T | main.rs:1463:5:1471:5 | Self [trait MyTrait] | -| main.rs:1468:32:1470:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1468:32:1470:9 | { ... } | &T | main.rs:1463:5:1471:5 | Self [trait MyTrait] | -| main.rs:1469:13:1469:16 | self | | file://:0:0:0:0 | & | -| main.rs:1469:13:1469:16 | self | &T | main.rs:1463:5:1471:5 | Self [trait MyTrait] | -| main.rs:1469:13:1469:22 | self.foo() | | file://:0:0:0:0 | & | -| main.rs:1469:13:1469:22 | self.foo() | &T | main.rs:1463:5:1471:5 | Self [trait MyTrait] | -| main.rs:1477:16:1477:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1477:16:1477:20 | SelfParam | &T | main.rs:1473:5:1473:20 | MyStruct | -| main.rs:1477:36:1479:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1477:36:1479:9 | { ... } | &T | main.rs:1473:5:1473:20 | MyStruct | -| main.rs:1478:13:1478:16 | self | | file://:0:0:0:0 | & | -| main.rs:1478:13:1478:16 | self | &T | main.rs:1473:5:1473:20 | MyStruct | -| main.rs:1483:13:1483:13 | x | | main.rs:1473:5:1473:20 | MyStruct | -| main.rs:1483:17:1483:24 | MyStruct | | main.rs:1473:5:1473:20 | MyStruct | -| main.rs:1484:9:1484:9 | x | | main.rs:1473:5:1473:20 | MyStruct | -| main.rs:1484:9:1484:15 | x.bar() | | file://:0:0:0:0 | & | -| main.rs:1484:9:1484:15 | x.bar() | &T | main.rs:1473:5:1473:20 | MyStruct | -| main.rs:1494:16:1494:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1494:16:1494:20 | SelfParam | &T | main.rs:1491:5:1491:26 | MyStruct | -| main.rs:1494:16:1494:20 | SelfParam | &T.T | main.rs:1493:10:1493:10 | T | -| main.rs:1494:32:1496:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1494:32:1496:9 | { ... } | &T | main.rs:1491:5:1491:26 | MyStruct | -| main.rs:1494:32:1496:9 | { ... } | &T.T | main.rs:1493:10:1493:10 | T | -| main.rs:1495:13:1495:16 | self | | file://:0:0:0:0 | & | -| main.rs:1495:13:1495:16 | self | &T | main.rs:1491:5:1491:26 | MyStruct | -| main.rs:1495:13:1495:16 | self | &T.T | main.rs:1493:10:1493:10 | T | -| main.rs:1500:13:1500:13 | x | | main.rs:1491:5:1491:26 | MyStruct | -| main.rs:1500:13:1500:13 | x | T | main.rs:1489:5:1489:13 | S | -| main.rs:1500:17:1500:27 | MyStruct(...) | | main.rs:1491:5:1491:26 | MyStruct | -| main.rs:1500:17:1500:27 | MyStruct(...) | T | main.rs:1489:5:1489:13 | S | -| main.rs:1500:26:1500:26 | S | | main.rs:1489:5:1489:13 | S | -| main.rs:1501:9:1501:9 | x | | main.rs:1491:5:1491:26 | MyStruct | -| main.rs:1501:9:1501:9 | x | T | main.rs:1489:5:1489:13 | S | -| main.rs:1501:9:1501:15 | x.foo() | | file://:0:0:0:0 | & | -| main.rs:1501:9:1501:15 | x.foo() | &T | main.rs:1491:5:1491:26 | MyStruct | -| main.rs:1501:9:1501:15 | x.foo() | &T.T | main.rs:1489:5:1489:13 | S | -| main.rs:1512:17:1512:25 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1512:17:1512:25 | SelfParam | &T | main.rs:1506:5:1509:5 | MyFlag | -| main.rs:1513:13:1513:16 | self | | file://:0:0:0:0 | & | -| main.rs:1513:13:1513:16 | self | &T | main.rs:1506:5:1509:5 | MyFlag | -| main.rs:1513:13:1513:21 | self.bool | | {EXTERNAL LOCATION} | bool | -| main.rs:1513:13:1513:34 | ... = ... | | file://:0:0:0:0 | () | -| main.rs:1513:25:1513:34 | ! ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1513:26:1513:29 | self | | file://:0:0:0:0 | & | -| main.rs:1513:26:1513:29 | self | &T | main.rs:1506:5:1509:5 | MyFlag | -| main.rs:1513:26:1513:34 | self.bool | | {EXTERNAL LOCATION} | bool | -| main.rs:1520:15:1520:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1520:15:1520:19 | SelfParam | &T | main.rs:1517:5:1517:13 | S | -| main.rs:1520:31:1522:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1520:31:1522:9 | { ... } | &T | main.rs:1517:5:1517:13 | S | -| main.rs:1521:13:1521:19 | &... | | file://:0:0:0:0 | & | -| main.rs:1521:13:1521:19 | &... | &T | file://:0:0:0:0 | & | -| main.rs:1521:13:1521:19 | &... | &T | main.rs:1517:5:1517:13 | S | -| main.rs:1521:13:1521:19 | &... | &T.&T | file://:0:0:0:0 | & | -| main.rs:1521:13:1521:19 | &... | &T.&T.&T | file://:0:0:0:0 | & | -| main.rs:1521:13:1521:19 | &... | &T.&T.&T.&T | main.rs:1517:5:1517:13 | S | -| main.rs:1521:14:1521:19 | &... | | file://:0:0:0:0 | & | -| main.rs:1521:14:1521:19 | &... | &T | file://:0:0:0:0 | & | -| main.rs:1521:14:1521:19 | &... | &T.&T | file://:0:0:0:0 | & | -| main.rs:1521:14:1521:19 | &... | &T.&T.&T | main.rs:1517:5:1517:13 | S | -| main.rs:1521:15:1521:19 | &self | | file://:0:0:0:0 | & | -| main.rs:1521:15:1521:19 | &self | &T | file://:0:0:0:0 | & | -| main.rs:1521:15:1521:19 | &self | &T.&T | main.rs:1517:5:1517:13 | S | -| main.rs:1521:16:1521:19 | self | | file://:0:0:0:0 | & | -| main.rs:1521:16:1521:19 | self | &T | main.rs:1517:5:1517:13 | S | -| main.rs:1524:15:1524:25 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1524:15:1524:25 | SelfParam | &T | main.rs:1517:5:1517:13 | S | -| main.rs:1524:37:1526:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1524:37:1526:9 | { ... } | &T | main.rs:1517:5:1517:13 | S | -| main.rs:1525:13:1525:19 | &... | | file://:0:0:0:0 | & | -| main.rs:1525:13:1525:19 | &... | &T | file://:0:0:0:0 | & | -| main.rs:1525:13:1525:19 | &... | &T | main.rs:1517:5:1517:13 | S | -| main.rs:1525:13:1525:19 | &... | &T.&T | file://:0:0:0:0 | & | -| main.rs:1525:13:1525:19 | &... | &T.&T.&T | file://:0:0:0:0 | & | -| main.rs:1525:13:1525:19 | &... | &T.&T.&T.&T | main.rs:1517:5:1517:13 | S | -| main.rs:1525:14:1525:19 | &... | | file://:0:0:0:0 | & | -| main.rs:1525:14:1525:19 | &... | &T | file://:0:0:0:0 | & | -| main.rs:1525:14:1525:19 | &... | &T.&T | file://:0:0:0:0 | & | -| main.rs:1525:14:1525:19 | &... | &T.&T.&T | main.rs:1517:5:1517:13 | S | -| main.rs:1525:15:1525:19 | &self | | file://:0:0:0:0 | & | -| main.rs:1525:15:1525:19 | &self | &T | file://:0:0:0:0 | & | -| main.rs:1525:15:1525:19 | &self | &T.&T | main.rs:1517:5:1517:13 | S | -| main.rs:1525:16:1525:19 | self | | file://:0:0:0:0 | & | -| main.rs:1525:16:1525:19 | self | &T | main.rs:1517:5:1517:13 | S | -| main.rs:1528:15:1528:15 | x | | file://:0:0:0:0 | & | -| main.rs:1528:15:1528:15 | x | &T | main.rs:1517:5:1517:13 | S | -| main.rs:1528:34:1530:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1528:34:1530:9 | { ... } | &T | main.rs:1517:5:1517:13 | S | -| main.rs:1529:13:1529:13 | x | | file://:0:0:0:0 | & | -| main.rs:1529:13:1529:13 | x | &T | main.rs:1517:5:1517:13 | S | -| main.rs:1532:15:1532:15 | x | | file://:0:0:0:0 | & | -| main.rs:1532:15:1532:15 | x | &T | main.rs:1517:5:1517:13 | S | -| main.rs:1532:34:1534:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1532:34:1534:9 | { ... } | &T | main.rs:1517:5:1517:13 | S | -| main.rs:1533:13:1533:16 | &... | | file://:0:0:0:0 | & | -| main.rs:1533:13:1533:16 | &... | &T | file://:0:0:0:0 | & | -| main.rs:1533:13:1533:16 | &... | &T | main.rs:1517:5:1517:13 | S | -| main.rs:1533:13:1533:16 | &... | &T.&T | file://:0:0:0:0 | & | -| main.rs:1533:13:1533:16 | &... | &T.&T.&T | file://:0:0:0:0 | & | -| main.rs:1533:13:1533:16 | &... | &T.&T.&T.&T | main.rs:1517:5:1517:13 | S | -| main.rs:1533:14:1533:16 | &... | | file://:0:0:0:0 | & | -| main.rs:1533:14:1533:16 | &... | &T | file://:0:0:0:0 | & | -| main.rs:1533:14:1533:16 | &... | &T.&T | file://:0:0:0:0 | & | -| main.rs:1533:14:1533:16 | &... | &T.&T.&T | main.rs:1517:5:1517:13 | S | -| main.rs:1533:15:1533:16 | &x | | file://:0:0:0:0 | & | -| main.rs:1533:15:1533:16 | &x | &T | file://:0:0:0:0 | & | -| main.rs:1533:15:1533:16 | &x | &T.&T | main.rs:1517:5:1517:13 | S | -| main.rs:1533:16:1533:16 | x | | file://:0:0:0:0 | & | -| main.rs:1533:16:1533:16 | x | &T | main.rs:1517:5:1517:13 | S | -| main.rs:1538:13:1538:13 | x | | main.rs:1517:5:1517:13 | S | -| main.rs:1538:17:1538:20 | S {...} | | main.rs:1517:5:1517:13 | S | -| main.rs:1539:9:1539:9 | x | | main.rs:1517:5:1517:13 | S | -| main.rs:1539:9:1539:14 | x.f1() | | file://:0:0:0:0 | & | -| main.rs:1539:9:1539:14 | x.f1() | &T | main.rs:1517:5:1517:13 | S | -| main.rs:1540:9:1540:9 | x | | main.rs:1517:5:1517:13 | S | -| main.rs:1540:9:1540:14 | x.f2() | | file://:0:0:0:0 | & | -| main.rs:1540:9:1540:14 | x.f2() | &T | main.rs:1517:5:1517:13 | S | -| main.rs:1541:9:1541:17 | ...::f3(...) | | file://:0:0:0:0 | & | -| main.rs:1541:9:1541:17 | ...::f3(...) | &T | main.rs:1517:5:1517:13 | S | -| main.rs:1541:15:1541:16 | &x | | file://:0:0:0:0 | & | -| main.rs:1541:15:1541:16 | &x | &T | main.rs:1517:5:1517:13 | S | -| main.rs:1541:16:1541:16 | x | | main.rs:1517:5:1517:13 | S | -| main.rs:1543:13:1543:13 | n | | {EXTERNAL LOCATION} | bool | -| main.rs:1543:17:1543:24 | * ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1543:18:1543:24 | * ... | | file://:0:0:0:0 | & | -| main.rs:1543:18:1543:24 | * ... | &T | {EXTERNAL LOCATION} | bool | -| main.rs:1543:19:1543:24 | &... | | file://:0:0:0:0 | & | -| main.rs:1543:19:1543:24 | &... | &T | file://:0:0:0:0 | & | -| main.rs:1543:19:1543:24 | &... | &T.&T | {EXTERNAL LOCATION} | bool | -| main.rs:1543:20:1543:24 | &true | | file://:0:0:0:0 | & | -| main.rs:1543:20:1543:24 | &true | &T | {EXTERNAL LOCATION} | bool | -| main.rs:1543:21:1543:24 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1547:17:1547:20 | flag | | main.rs:1506:5:1509:5 | MyFlag | -| main.rs:1547:24:1547:41 | ...::default(...) | | main.rs:1506:5:1509:5 | MyFlag | -| main.rs:1548:22:1548:30 | &mut flag | | file://:0:0:0:0 | & | -| main.rs:1548:22:1548:30 | &mut flag | &T | main.rs:1506:5:1509:5 | MyFlag | -| main.rs:1548:27:1548:30 | flag | | main.rs:1506:5:1509:5 | MyFlag | -| main.rs:1549:18:1549:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1549:18:1549:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1549:18:1549:29 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1549:18:1549:29 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1549:26:1549:29 | flag | | main.rs:1506:5:1509:5 | MyFlag | -| main.rs:1564:43:1567:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1564:43:1567:5 | { ... } | E | main.rs:1556:5:1557:14 | S1 | -| main.rs:1564:43:1567:5 | { ... } | T | main.rs:1556:5:1557:14 | S1 | -| main.rs:1565:13:1565:13 | x | | main.rs:1556:5:1557:14 | S1 | -| main.rs:1565:17:1565:30 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1565:17:1565:30 | ...::Ok(...) | T | main.rs:1556:5:1557:14 | S1 | -| main.rs:1565:17:1565:31 | TryExpr | | main.rs:1556:5:1557:14 | S1 | -| main.rs:1565:28:1565:29 | S1 | | main.rs:1556:5:1557:14 | S1 | -| main.rs:1566:9:1566:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1566:9:1566:22 | ...::Ok(...) | E | main.rs:1556:5:1557:14 | S1 | -| main.rs:1566:9:1566:22 | ...::Ok(...) | T | main.rs:1556:5:1557:14 | S1 | -| main.rs:1566:20:1566:21 | S1 | | main.rs:1556:5:1557:14 | S1 | -| main.rs:1571:46:1575:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1571:46:1575:5 | { ... } | E | main.rs:1559:5:1560:14 | S2 | -| main.rs:1571:46:1575:5 | { ... } | T | main.rs:1556:5:1557:14 | S1 | -| main.rs:1572:13:1572:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:1572:13:1572:13 | x | T | main.rs:1556:5:1557:14 | S1 | -| main.rs:1572:17:1572:30 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1572:17:1572:30 | ...::Ok(...) | T | main.rs:1556:5:1557:14 | S1 | -| main.rs:1572:28:1572:29 | S1 | | main.rs:1556:5:1557:14 | S1 | -| main.rs:1573:13:1573:13 | y | | main.rs:1556:5:1557:14 | S1 | -| main.rs:1573:17:1573:17 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:1573:17:1573:17 | x | T | main.rs:1556:5:1557:14 | S1 | -| main.rs:1573:17:1573:18 | TryExpr | | main.rs:1556:5:1557:14 | S1 | -| main.rs:1574:9:1574:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1574:9:1574:22 | ...::Ok(...) | E | main.rs:1559:5:1560:14 | S2 | -| main.rs:1574:9:1574:22 | ...::Ok(...) | T | main.rs:1556:5:1557:14 | S1 | -| main.rs:1574:20:1574:21 | S1 | | main.rs:1556:5:1557:14 | S1 | -| main.rs:1579:40:1584:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1579:40:1584:5 | { ... } | E | main.rs:1559:5:1560:14 | S2 | -| main.rs:1579:40:1584:5 | { ... } | T | main.rs:1556:5:1557:14 | S1 | -| main.rs:1580:13:1580:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:1580:13:1580:13 | x | T | {EXTERNAL LOCATION} | Result | -| main.rs:1580:13:1580:13 | x | T.T | main.rs:1556:5:1557:14 | S1 | -| main.rs:1580:17:1580:42 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1580:17:1580:42 | ...::Ok(...) | T | {EXTERNAL LOCATION} | Result | -| main.rs:1580:17:1580:42 | ...::Ok(...) | T.T | main.rs:1556:5:1557:14 | S1 | -| main.rs:1580:28:1580:41 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1580:28:1580:41 | ...::Ok(...) | T | main.rs:1556:5:1557:14 | S1 | -| main.rs:1580:39:1580:40 | S1 | | main.rs:1556:5:1557:14 | S1 | -| main.rs:1582:17:1582:17 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:1582:17:1582:17 | x | T | {EXTERNAL LOCATION} | Result | -| main.rs:1582:17:1582:17 | x | T.T | main.rs:1556:5:1557:14 | S1 | -| main.rs:1582:17:1582:18 | TryExpr | | {EXTERNAL LOCATION} | Result | -| main.rs:1582:17:1582:18 | TryExpr | T | main.rs:1556:5:1557:14 | S1 | -| main.rs:1582:17:1582:29 | ... .map(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1582:24:1582:28 | \|...\| s | | {EXTERNAL LOCATION} | dyn FnOnce | -| main.rs:1582:24:1582:28 | \|...\| s | dyn(Args) | file://:0:0:0:0 | (T_1) | -| main.rs:1583:9:1583:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1583:9:1583:22 | ...::Ok(...) | E | main.rs:1559:5:1560:14 | S2 | -| main.rs:1583:9:1583:22 | ...::Ok(...) | T | main.rs:1556:5:1557:14 | S1 | -| main.rs:1583:20:1583:21 | S1 | | main.rs:1556:5:1557:14 | S1 | -| main.rs:1588:30:1588:34 | input | | {EXTERNAL LOCATION} | Result | -| main.rs:1588:30:1588:34 | input | E | main.rs:1556:5:1557:14 | S1 | -| main.rs:1588:30:1588:34 | input | T | main.rs:1588:20:1588:27 | T | -| main.rs:1588:69:1595:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1588:69:1595:5 | { ... } | E | main.rs:1556:5:1557:14 | S1 | -| main.rs:1588:69:1595:5 | { ... } | T | main.rs:1588:20:1588:27 | T | -| main.rs:1589:13:1589:17 | value | | main.rs:1588:20:1588:27 | T | -| main.rs:1589:21:1589:25 | input | | {EXTERNAL LOCATION} | Result | -| main.rs:1589:21:1589:25 | input | E | main.rs:1556:5:1557:14 | S1 | -| main.rs:1589:21:1589:25 | input | T | main.rs:1588:20:1588:27 | T | -| main.rs:1589:21:1589:26 | TryExpr | | main.rs:1588:20:1588:27 | T | -| main.rs:1590:22:1590:38 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1590:22:1590:38 | ...::Ok(...) | E | main.rs:1556:5:1557:14 | S1 | -| main.rs:1590:22:1590:38 | ...::Ok(...) | T | main.rs:1588:20:1588:27 | T | -| main.rs:1590:22:1593:10 | ... .and_then(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1590:22:1593:10 | ... .and_then(...) | E | main.rs:1556:5:1557:14 | S1 | -| main.rs:1590:33:1590:37 | value | | main.rs:1588:20:1588:27 | T | -| main.rs:1590:49:1593:9 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | -| main.rs:1590:49:1593:9 | \|...\| ... | dyn(Args) | file://:0:0:0:0 | (T_1) | -| main.rs:1590:49:1593:9 | \|...\| ... | dyn(Output) | {EXTERNAL LOCATION} | Result | -| main.rs:1590:49:1593:9 | \|...\| ... | dyn(Output).E | main.rs:1556:5:1557:14 | S1 | -| main.rs:1590:53:1593:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1590:53:1593:9 | { ... } | E | main.rs:1556:5:1557:14 | S1 | -| main.rs:1591:22:1591:27 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1591:22:1591:27 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1591:22:1591:30 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1591:22:1591:30 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1592:13:1592:34 | ...::Ok::<...>(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1592:13:1592:34 | ...::Ok::<...>(...) | E | main.rs:1556:5:1557:14 | S1 | -| main.rs:1594:9:1594:23 | ...::Err(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1594:9:1594:23 | ...::Err(...) | E | main.rs:1556:5:1557:14 | S1 | -| main.rs:1594:9:1594:23 | ...::Err(...) | T | main.rs:1588:20:1588:27 | T | -| main.rs:1594:21:1594:22 | S1 | | main.rs:1556:5:1557:14 | S1 | -| main.rs:1599:16:1599:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1599:16:1599:33 | ...::Ok(...) | E | main.rs:1556:5:1557:14 | S1 | -| main.rs:1599:16:1599:33 | ...::Ok(...) | T | main.rs:1556:5:1557:14 | S1 | -| main.rs:1599:27:1599:32 | result | | main.rs:1556:5:1557:14 | S1 | -| main.rs:1599:37:1599:52 | try_same_error(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1599:37:1599:52 | try_same_error(...) | E | main.rs:1556:5:1557:14 | S1 | -| main.rs:1599:37:1599:52 | try_same_error(...) | T | main.rs:1556:5:1557:14 | S1 | -| main.rs:1600:22:1600:27 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1600:22:1600:27 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1600:22:1600:35 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1600:22:1600:35 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1600:30:1600:35 | result | | main.rs:1556:5:1557:14 | S1 | -| main.rs:1603:16:1603:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1603:16:1603:33 | ...::Ok(...) | E | main.rs:1559:5:1560:14 | S2 | -| main.rs:1603:16:1603:33 | ...::Ok(...) | T | main.rs:1556:5:1557:14 | S1 | -| main.rs:1603:27:1603:32 | result | | main.rs:1556:5:1557:14 | S1 | -| main.rs:1603:37:1603:55 | try_convert_error(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1603:37:1603:55 | try_convert_error(...) | E | main.rs:1559:5:1560:14 | S2 | -| main.rs:1603:37:1603:55 | try_convert_error(...) | T | main.rs:1556:5:1557:14 | S1 | -| main.rs:1604:22:1604:27 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1604:22:1604:27 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1604:22:1604:35 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1604:22:1604:35 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1604:30:1604:35 | result | | main.rs:1556:5:1557:14 | S1 | -| main.rs:1607:16:1607:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1607:16:1607:33 | ...::Ok(...) | E | main.rs:1559:5:1560:14 | S2 | -| main.rs:1607:16:1607:33 | ...::Ok(...) | T | main.rs:1556:5:1557:14 | S1 | -| main.rs:1607:27:1607:32 | result | | main.rs:1556:5:1557:14 | S1 | -| main.rs:1607:37:1607:49 | try_chained(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1607:37:1607:49 | try_chained(...) | E | main.rs:1559:5:1560:14 | S2 | -| main.rs:1607:37:1607:49 | try_chained(...) | T | main.rs:1556:5:1557:14 | S1 | -| main.rs:1608:22:1608:27 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1608:22:1608:27 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1608:22:1608:35 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1608:22:1608:35 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1608:30:1608:35 | result | | main.rs:1556:5:1557:14 | S1 | -| main.rs:1611:16:1611:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1611:16:1611:33 | ...::Ok(...) | E | main.rs:1556:5:1557:14 | S1 | -| main.rs:1611:16:1611:33 | ...::Ok(...) | T | main.rs:1556:5:1557:14 | S1 | -| main.rs:1611:27:1611:32 | result | | main.rs:1556:5:1557:14 | S1 | -| main.rs:1611:37:1611:63 | try_complex(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1611:37:1611:63 | try_complex(...) | E | main.rs:1556:5:1557:14 | S1 | -| main.rs:1611:37:1611:63 | try_complex(...) | T | main.rs:1556:5:1557:14 | S1 | -| main.rs:1611:49:1611:62 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1611:49:1611:62 | ...::Ok(...) | E | main.rs:1556:5:1557:14 | S1 | -| main.rs:1611:49:1611:62 | ...::Ok(...) | T | main.rs:1556:5:1557:14 | S1 | -| main.rs:1611:60:1611:61 | S1 | | main.rs:1556:5:1557:14 | S1 | -| main.rs:1612:22:1612:27 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1612:22:1612:27 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1612:22:1612:35 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1612:22:1612:35 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1612:30:1612:35 | result | | main.rs:1556:5:1557:14 | S1 | -| main.rs:1619:13:1619:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1619:22:1619:22 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1620:13:1620:13 | y | | {EXTERNAL LOCATION} | i32 | -| main.rs:1620:17:1620:17 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1621:13:1621:13 | z | | {EXTERNAL LOCATION} | i32 | -| main.rs:1621:17:1621:17 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1621:17:1621:21 | ... + ... | | {EXTERNAL LOCATION} | i32 | -| main.rs:1621:21:1621:21 | y | | {EXTERNAL LOCATION} | i32 | -| main.rs:1622:13:1622:13 | z | | {EXTERNAL LOCATION} | i32 | -| main.rs:1622:17:1622:17 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1622:17:1622:23 | x.abs() | | {EXTERNAL LOCATION} | i32 | -| main.rs:1623:13:1623:13 | c | | {EXTERNAL LOCATION} | char | -| main.rs:1623:17:1623:19 | 'c' | | {EXTERNAL LOCATION} | char | -| main.rs:1624:13:1624:17 | hello | | file://:0:0:0:0 | & | -| main.rs:1624:13:1624:17 | hello | &T | {EXTERNAL LOCATION} | str | -| main.rs:1624:21:1624:27 | "Hello" | | file://:0:0:0:0 | & | -| main.rs:1624:21:1624:27 | "Hello" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1625:13:1625:13 | f | | {EXTERNAL LOCATION} | f64 | -| main.rs:1625:17:1625:24 | 123.0f64 | | {EXTERNAL LOCATION} | f64 | -| main.rs:1626:13:1626:13 | t | | {EXTERNAL LOCATION} | bool | -| main.rs:1626:17:1626:20 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1627:13:1627:13 | f | | {EXTERNAL LOCATION} | bool | -| main.rs:1627:17:1627:21 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1634:13:1634:13 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:1634:17:1634:20 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1634:17:1634:29 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1634:25:1634:29 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1635:13:1635:13 | y | | {EXTERNAL LOCATION} | bool | -| main.rs:1635:17:1635:20 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1635:17:1635:29 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1635:25:1635:29 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1637:17:1637:17 | a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1638:13:1638:16 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:1638:20:1638:21 | 34 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1638:20:1638:27 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1638:26:1638:27 | 33 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1639:12:1639:15 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:1640:17:1640:17 | z | | file://:0:0:0:0 | () | -| main.rs:1640:21:1640:27 | (...) | | file://:0:0:0:0 | () | -| main.rs:1640:22:1640:22 | a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1640:22:1640:26 | ... = ... | | file://:0:0:0:0 | () | -| main.rs:1640:26:1640:26 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1642:13:1642:13 | a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1642:13:1642:17 | ... = ... | | file://:0:0:0:0 | () | -| main.rs:1642:17:1642:17 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1644:9:1644:9 | a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1658:30:1660:9 | { ... } | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1659:13:1659:31 | Vec2 {...} | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1659:23:1659:23 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1659:23:1659:23 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1659:29:1659:29 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1659:29:1659:29 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1666:16:1666:19 | SelfParam | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1666:22:1666:24 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1666:41:1671:9 | { ... } | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1667:13:1670:13 | Vec2 {...} | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1668:20:1668:23 | self | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1668:20:1668:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1668:20:1668:33 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1668:29:1668:31 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1668:29:1668:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1669:20:1669:23 | self | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1669:20:1669:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1669:20:1669:33 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1669:29:1669:31 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1669:29:1669:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1676:23:1676:31 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1676:23:1676:31 | SelfParam | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1676:34:1676:36 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1677:13:1677:16 | self | | file://:0:0:0:0 | & | -| main.rs:1677:13:1677:16 | self | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1677:13:1677:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1677:13:1677:27 | ... += ... | | file://:0:0:0:0 | () | -| main.rs:1677:23:1677:25 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1677:23:1677:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1678:13:1678:16 | self | | file://:0:0:0:0 | & | -| main.rs:1678:13:1678:16 | self | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1678:13:1678:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1678:13:1678:27 | ... += ... | | file://:0:0:0:0 | () | -| main.rs:1678:23:1678:25 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1678:23:1678:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1684:16:1684:19 | SelfParam | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1684:22:1684:24 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1684:41:1689:9 | { ... } | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1685:13:1688:13 | Vec2 {...} | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1686:20:1686:23 | self | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1686:20:1686:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1686:20:1686:33 | ... - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1686:29:1686:31 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1686:29:1686:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1687:20:1687:23 | self | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1687:20:1687:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1687:20:1687:33 | ... - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1687:29:1687:31 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1687:29:1687:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1694:23:1694:31 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1694:23:1694:31 | SelfParam | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1694:34:1694:36 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1695:13:1695:16 | self | | file://:0:0:0:0 | & | -| main.rs:1695:13:1695:16 | self | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1695:13:1695:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1695:13:1695:27 | ... -= ... | | file://:0:0:0:0 | () | -| main.rs:1695:23:1695:25 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1695:23:1695:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1696:13:1696:16 | self | | file://:0:0:0:0 | & | -| main.rs:1696:13:1696:16 | self | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1696:13:1696:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1696:13:1696:27 | ... -= ... | | file://:0:0:0:0 | () | -| main.rs:1696:23:1696:25 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1696:23:1696:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1702:16:1702:19 | SelfParam | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1702:22:1702:24 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1702:41:1707:9 | { ... } | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1703:13:1706:13 | Vec2 {...} | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1704:20:1704:23 | self | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1704:20:1704:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1704:20:1704:33 | ... * ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1704:29:1704:31 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1704:29:1704:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1705:20:1705:23 | self | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1705:20:1705:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1705:20:1705:33 | ... * ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1705:29:1705:31 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1705:29:1705:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1711:23:1711:31 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1711:23:1711:31 | SelfParam | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1711:34:1711:36 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1712:13:1712:16 | self | | file://:0:0:0:0 | & | -| main.rs:1712:13:1712:16 | self | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1712:13:1712:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1712:13:1712:27 | ... *= ... | | file://:0:0:0:0 | () | -| main.rs:1712:23:1712:25 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1712:23:1712:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1713:13:1713:16 | self | | file://:0:0:0:0 | & | -| main.rs:1713:13:1713:16 | self | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1713:13:1713:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1713:13:1713:27 | ... *= ... | | file://:0:0:0:0 | () | -| main.rs:1713:23:1713:25 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1713:23:1713:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1719:16:1719:19 | SelfParam | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1719:22:1719:24 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1719:41:1724:9 | { ... } | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1720:13:1723:13 | Vec2 {...} | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1721:20:1721:23 | self | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1721:20:1721:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1721:20:1721:33 | ... / ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1721:29:1721:31 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1721:29:1721:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1722:20:1722:23 | self | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1722:20:1722:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1722:20:1722:33 | ... / ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1722:29:1722:31 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1722:29:1722:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1728:23:1728:31 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1728:23:1728:31 | SelfParam | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1728:34:1728:36 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1729:13:1729:16 | self | | file://:0:0:0:0 | & | -| main.rs:1729:13:1729:16 | self | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1729:13:1729:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1729:13:1729:27 | ... /= ... | | file://:0:0:0:0 | () | -| main.rs:1729:23:1729:25 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1729:23:1729:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1730:13:1730:16 | self | | file://:0:0:0:0 | & | -| main.rs:1730:13:1730:16 | self | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1730:13:1730:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1730:13:1730:27 | ... /= ... | | file://:0:0:0:0 | () | -| main.rs:1730:23:1730:25 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1730:23:1730:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1736:16:1736:19 | SelfParam | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1736:22:1736:24 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1736:41:1741:9 | { ... } | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1737:13:1740:13 | Vec2 {...} | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1738:20:1738:23 | self | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1738:20:1738:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1738:20:1738:33 | ... % ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1738:29:1738:31 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1738:29:1738:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1739:20:1739:23 | self | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1739:20:1739:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1739:20:1739:33 | ... % ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1739:29:1739:31 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1739:29:1739:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1745:23:1745:31 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1745:23:1745:31 | SelfParam | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1745:34:1745:36 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1746:13:1746:16 | self | | file://:0:0:0:0 | & | -| main.rs:1746:13:1746:16 | self | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1746:13:1746:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1746:13:1746:27 | ... %= ... | | file://:0:0:0:0 | () | -| main.rs:1746:23:1746:25 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1746:23:1746:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1747:13:1747:16 | self | | file://:0:0:0:0 | & | -| main.rs:1747:13:1747:16 | self | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1747:13:1747:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1747:13:1747:27 | ... %= ... | | file://:0:0:0:0 | () | -| main.rs:1747:23:1747:25 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1747:23:1747:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1753:19:1753:22 | SelfParam | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1753:25:1753:27 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1753:44:1758:9 | { ... } | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1754:13:1757:13 | Vec2 {...} | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1755:20:1755:23 | self | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1755:20:1755:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1755:20:1755:33 | ... & ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1755:29:1755:31 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1755:29:1755:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1756:20:1756:23 | self | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1756:20:1756:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1756:20:1756:33 | ... & ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1756:29:1756:31 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1756:29:1756:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1762:26:1762:34 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1762:26:1762:34 | SelfParam | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1762:37:1762:39 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1763:13:1763:16 | self | | file://:0:0:0:0 | & | -| main.rs:1763:13:1763:16 | self | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1763:13:1763:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1763:13:1763:27 | ... &= ... | | file://:0:0:0:0 | () | -| main.rs:1763:23:1763:25 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1763:23:1763:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1764:13:1764:16 | self | | file://:0:0:0:0 | & | -| main.rs:1764:13:1764:16 | self | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1764:13:1764:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1764:13:1764:27 | ... &= ... | | file://:0:0:0:0 | () | -| main.rs:1764:23:1764:25 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1764:23:1764:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1770:18:1770:21 | SelfParam | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1770:24:1770:26 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1770:43:1775:9 | { ... } | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1771:13:1774:13 | Vec2 {...} | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1772:20:1772:23 | self | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1772:20:1772:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1772:20:1772:33 | ... \| ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1772:29:1772:31 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1772:29:1772:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1773:20:1773:23 | self | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1773:20:1773:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1773:20:1773:33 | ... \| ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1773:29:1773:31 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1773:29:1773:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1779:25:1779:33 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1779:25:1779:33 | SelfParam | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1779:36:1779:38 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1780:13:1780:16 | self | | file://:0:0:0:0 | & | -| main.rs:1780:13:1780:16 | self | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1780:13:1780:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1780:13:1780:27 | ... \|= ... | | file://:0:0:0:0 | () | -| main.rs:1780:23:1780:25 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1780:23:1780:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1781:13:1781:16 | self | | file://:0:0:0:0 | & | -| main.rs:1781:13:1781:16 | self | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1781:13:1781:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1781:13:1781:27 | ... \|= ... | | file://:0:0:0:0 | () | -| main.rs:1781:23:1781:25 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1781:23:1781:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1787:19:1787:22 | SelfParam | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1787:25:1787:27 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1787:44:1792:9 | { ... } | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1788:13:1791:13 | Vec2 {...} | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1789:20:1789:23 | self | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1789:20:1789:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1789:20:1789:33 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1789:29:1789:31 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1789:29:1789:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1790:20:1790:23 | self | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1790:20:1790:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1790:20:1790:33 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1790:29:1790:31 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1790:29:1790:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1796:26:1796:34 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1796:26:1796:34 | SelfParam | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1796:37:1796:39 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1797:13:1797:16 | self | | file://:0:0:0:0 | & | -| main.rs:1797:13:1797:16 | self | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1797:13:1797:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1797:13:1797:27 | ... ^= ... | | file://:0:0:0:0 | () | -| main.rs:1797:23:1797:25 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1797:23:1797:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1798:13:1798:16 | self | | file://:0:0:0:0 | & | -| main.rs:1798:13:1798:16 | self | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1798:13:1798:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1798:13:1798:27 | ... ^= ... | | file://:0:0:0:0 | () | -| main.rs:1798:23:1798:25 | rhs | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1798:23:1798:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1804:16:1804:19 | SelfParam | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1804:22:1804:24 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1804:40:1809:9 | { ... } | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1805:13:1808:13 | Vec2 {...} | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1806:20:1806:23 | self | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1806:20:1806:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1806:20:1806:32 | ... << ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1806:30:1806:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1807:20:1807:23 | self | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1807:20:1807:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1807:20:1807:32 | ... << ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1807:30:1807:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1813:23:1813:31 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1813:23:1813:31 | SelfParam | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1813:34:1813:36 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1814:13:1814:16 | self | | file://:0:0:0:0 | & | -| main.rs:1814:13:1814:16 | self | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1814:13:1814:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1814:13:1814:26 | ... <<= ... | | file://:0:0:0:0 | () | -| main.rs:1814:24:1814:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1815:13:1815:16 | self | | file://:0:0:0:0 | & | -| main.rs:1815:13:1815:16 | self | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1815:13:1815:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1815:13:1815:26 | ... <<= ... | | file://:0:0:0:0 | () | -| main.rs:1815:24:1815:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1821:16:1821:19 | SelfParam | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1821:22:1821:24 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1821:40:1826:9 | { ... } | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1822:13:1825:13 | Vec2 {...} | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1823:20:1823:23 | self | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1823:20:1823:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1823:20:1823:32 | ... >> ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1823:30:1823:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1824:20:1824:23 | self | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1824:20:1824:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1824:20:1824:32 | ... >> ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1824:30:1824:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1830:23:1830:31 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1830:23:1830:31 | SelfParam | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1830:34:1830:36 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1831:13:1831:16 | self | | file://:0:0:0:0 | & | -| main.rs:1831:13:1831:16 | self | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1831:13:1831:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1831:13:1831:26 | ... >>= ... | | file://:0:0:0:0 | () | -| main.rs:1831:24:1831:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1832:13:1832:16 | self | | file://:0:0:0:0 | & | -| main.rs:1832:13:1832:16 | self | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1832:13:1832:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1832:13:1832:26 | ... >>= ... | | file://:0:0:0:0 | () | -| main.rs:1832:24:1832:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1838:16:1838:19 | SelfParam | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1838:30:1843:9 | { ... } | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1839:13:1842:13 | Vec2 {...} | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1840:20:1840:26 | - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1840:21:1840:24 | self | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1840:21:1840:26 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1841:20:1841:26 | - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1841:21:1841:24 | self | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1841:21:1841:26 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1848:16:1848:19 | SelfParam | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1848:30:1853:9 | { ... } | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1849:13:1852:13 | Vec2 {...} | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1850:20:1850:26 | ! ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1850:21:1850:24 | self | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1850:21:1850:26 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1851:20:1851:26 | ! ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1851:21:1851:24 | self | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1851:21:1851:26 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1857:15:1857:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1857:15:1857:19 | SelfParam | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1857:22:1857:26 | other | | file://:0:0:0:0 | & | -| main.rs:1857:22:1857:26 | other | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1857:44:1859:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:1858:13:1858:16 | self | | file://:0:0:0:0 | & | -| main.rs:1858:13:1858:16 | self | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1858:13:1858:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1858:13:1858:29 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1858:13:1858:50 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1858:23:1858:27 | other | | file://:0:0:0:0 | & | -| main.rs:1858:23:1858:27 | other | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1858:23:1858:29 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1858:34:1858:37 | self | | file://:0:0:0:0 | & | -| main.rs:1858:34:1858:37 | self | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1858:34:1858:39 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1858:34:1858:50 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1858:44:1858:48 | other | | file://:0:0:0:0 | & | -| main.rs:1858:44:1858:48 | other | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1858:44:1858:50 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1861:15:1861:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1861:15:1861:19 | SelfParam | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1861:22:1861:26 | other | | file://:0:0:0:0 | & | -| main.rs:1861:22:1861:26 | other | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1861:44:1863:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:1862:13:1862:16 | self | | file://:0:0:0:0 | & | -| main.rs:1862:13:1862:16 | self | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1862:13:1862:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1862:13:1862:29 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1862:13:1862:50 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1862:23:1862:27 | other | | file://:0:0:0:0 | & | -| main.rs:1862:23:1862:27 | other | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1862:23:1862:29 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1862:34:1862:37 | self | | file://:0:0:0:0 | & | -| main.rs:1862:34:1862:37 | self | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1862:34:1862:39 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1862:34:1862:50 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1862:44:1862:48 | other | | file://:0:0:0:0 | & | -| main.rs:1862:44:1862:48 | other | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1862:44:1862:50 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1867:24:1867:28 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1867:24:1867:28 | SelfParam | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1867:31:1867:35 | other | | file://:0:0:0:0 | & | -| main.rs:1867:31:1867:35 | other | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1867:75:1869:9 | { ... } | | {EXTERNAL LOCATION} | Option | -| main.rs:1867:75:1869:9 | { ... } | T | {EXTERNAL LOCATION} | Ordering | -| main.rs:1868:13:1868:29 | (...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:1868:13:1868:63 | ... .partial_cmp(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:1868:13:1868:63 | ... .partial_cmp(...) | T | {EXTERNAL LOCATION} | Ordering | -| main.rs:1868:14:1868:17 | self | | file://:0:0:0:0 | & | -| main.rs:1868:14:1868:17 | self | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1868:14:1868:19 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1868:14:1868:28 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1868:23:1868:26 | self | | file://:0:0:0:0 | & | -| main.rs:1868:23:1868:26 | self | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1868:23:1868:28 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1868:43:1868:62 | &... | | file://:0:0:0:0 | & | -| main.rs:1868:43:1868:62 | &... | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:1868:44:1868:62 | (...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:1868:45:1868:49 | other | | file://:0:0:0:0 | & | -| main.rs:1868:45:1868:49 | other | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1868:45:1868:51 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1868:45:1868:61 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1868:55:1868:59 | other | | file://:0:0:0:0 | & | -| main.rs:1868:55:1868:59 | other | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1868:55:1868:61 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1871:15:1871:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1871:15:1871:19 | SelfParam | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1871:22:1871:26 | other | | file://:0:0:0:0 | & | -| main.rs:1871:22:1871:26 | other | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1871:44:1873:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:1872:13:1872:16 | self | | file://:0:0:0:0 | & | -| main.rs:1872:13:1872:16 | self | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1872:13:1872:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1872:13:1872:28 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1872:13:1872:48 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1872:22:1872:26 | other | | file://:0:0:0:0 | & | -| main.rs:1872:22:1872:26 | other | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1872:22:1872:28 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1872:33:1872:36 | self | | file://:0:0:0:0 | & | -| main.rs:1872:33:1872:36 | self | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1872:33:1872:38 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1872:33:1872:48 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1872:42:1872:46 | other | | file://:0:0:0:0 | & | -| main.rs:1872:42:1872:46 | other | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1872:42:1872:48 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1875:15:1875:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1875:15:1875:19 | SelfParam | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1875:22:1875:26 | other | | file://:0:0:0:0 | & | -| main.rs:1875:22:1875:26 | other | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1875:44:1877:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1166:18:1166:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1166:18:1166:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1166:26:1166:26 | y | | main.rs:1076:5:1079:5 | MyThing2 | +| main.rs:1166:26:1166:26 | y | A | main.rs:1083:5:1084:14 | S2 | +| main.rs:1166:26:1166:31 | y.m3() | | main.rs:1083:5:1084:14 | S2 | +| main.rs:1168:13:1168:13 | x | | main.rs:1071:5:1074:5 | MyThing | +| main.rs:1168:13:1168:13 | x | A | main.rs:1081:5:1082:14 | S1 | +| main.rs:1168:17:1168:33 | MyThing {...} | | main.rs:1071:5:1074:5 | MyThing | +| main.rs:1168:17:1168:33 | MyThing {...} | A | main.rs:1081:5:1082:14 | S1 | +| main.rs:1168:30:1168:31 | S1 | | main.rs:1081:5:1082:14 | S1 | +| main.rs:1169:13:1169:13 | s | | main.rs:1081:5:1082:14 | S1 | +| main.rs:1169:17:1169:32 | call_trait_m1(...) | | main.rs:1081:5:1082:14 | S1 | +| main.rs:1169:31:1169:31 | x | | main.rs:1071:5:1074:5 | MyThing | +| main.rs:1169:31:1169:31 | x | A | main.rs:1081:5:1082:14 | S1 | +| main.rs:1171:13:1171:13 | x | | main.rs:1076:5:1079:5 | MyThing2 | +| main.rs:1171:13:1171:13 | x | A | main.rs:1083:5:1084:14 | S2 | +| main.rs:1171:17:1171:34 | MyThing2 {...} | | main.rs:1076:5:1079:5 | MyThing2 | +| main.rs:1171:17:1171:34 | MyThing2 {...} | A | main.rs:1083:5:1084:14 | S2 | +| main.rs:1171:31:1171:32 | S2 | | main.rs:1083:5:1084:14 | S2 | +| main.rs:1172:13:1172:13 | s | | main.rs:1071:5:1074:5 | MyThing | +| main.rs:1172:13:1172:13 | s | A | main.rs:1083:5:1084:14 | S2 | +| main.rs:1172:17:1172:32 | call_trait_m1(...) | | main.rs:1071:5:1074:5 | MyThing | +| main.rs:1172:17:1172:32 | call_trait_m1(...) | A | main.rs:1083:5:1084:14 | S2 | +| main.rs:1172:31:1172:31 | x | | main.rs:1076:5:1079:5 | MyThing2 | +| main.rs:1172:31:1172:31 | x | A | main.rs:1083:5:1084:14 | S2 | +| main.rs:1189:22:1189:22 | x | | file://:0:0:0:0 | & | +| main.rs:1189:22:1189:22 | x | &T | main.rs:1189:11:1189:19 | T | +| main.rs:1189:35:1191:5 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1189:35:1191:5 | { ... } | &T | main.rs:1189:11:1189:19 | T | +| main.rs:1190:9:1190:9 | x | | file://:0:0:0:0 | & | +| main.rs:1190:9:1190:9 | x | &T | main.rs:1189:11:1189:19 | T | +| main.rs:1194:17:1194:20 | SelfParam | | main.rs:1179:5:1180:14 | S1 | +| main.rs:1194:29:1196:9 | { ... } | | main.rs:1182:5:1183:14 | S2 | +| main.rs:1195:13:1195:14 | S2 | | main.rs:1182:5:1183:14 | S2 | +| main.rs:1199:21:1199:21 | x | | main.rs:1199:13:1199:14 | T1 | +| main.rs:1202:5:1204:5 | { ... } | | main.rs:1199:17:1199:18 | T2 | +| main.rs:1203:9:1203:9 | x | | main.rs:1199:13:1199:14 | T1 | +| main.rs:1203:9:1203:16 | x.into() | | main.rs:1199:17:1199:18 | T2 | +| main.rs:1207:13:1207:13 | x | | main.rs:1179:5:1180:14 | S1 | +| main.rs:1207:17:1207:18 | S1 | | main.rs:1179:5:1180:14 | S1 | +| main.rs:1208:18:1208:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1208:18:1208:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1208:18:1208:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1208:18:1208:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1208:26:1208:31 | id(...) | | file://:0:0:0:0 | & | +| main.rs:1208:26:1208:31 | id(...) | &T | main.rs:1179:5:1180:14 | S1 | +| main.rs:1208:29:1208:30 | &x | | file://:0:0:0:0 | & | +| main.rs:1208:29:1208:30 | &x | &T | main.rs:1179:5:1180:14 | S1 | +| main.rs:1208:30:1208:30 | x | | main.rs:1179:5:1180:14 | S1 | +| main.rs:1210:13:1210:13 | x | | main.rs:1179:5:1180:14 | S1 | +| main.rs:1210:17:1210:18 | S1 | | main.rs:1179:5:1180:14 | S1 | +| main.rs:1211:18:1211:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1211:18:1211:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1211:18:1211:37 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1211:18:1211:37 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1211:26:1211:37 | id::<...>(...) | | file://:0:0:0:0 | & | +| main.rs:1211:26:1211:37 | id::<...>(...) | &T | main.rs:1179:5:1180:14 | S1 | +| main.rs:1211:35:1211:36 | &x | | file://:0:0:0:0 | & | +| main.rs:1211:35:1211:36 | &x | &T | main.rs:1179:5:1180:14 | S1 | +| main.rs:1211:36:1211:36 | x | | main.rs:1179:5:1180:14 | S1 | +| main.rs:1213:13:1213:13 | x | | main.rs:1179:5:1180:14 | S1 | +| main.rs:1213:13:1213:13 | x | | main.rs:1185:5:1185:25 | dyn Trait | +| main.rs:1213:17:1213:18 | S1 | | main.rs:1179:5:1180:14 | S1 | +| main.rs:1213:17:1213:18 | S1 | | main.rs:1185:5:1185:25 | dyn Trait | +| main.rs:1215:18:1215:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1215:18:1215:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1215:18:1215:44 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1215:18:1215:44 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1215:26:1215:44 | id::<...>(...) | | file://:0:0:0:0 | & | +| main.rs:1215:26:1215:44 | id::<...>(...) | &T | main.rs:1185:5:1185:25 | dyn Trait | +| main.rs:1215:42:1215:43 | &x | | file://:0:0:0:0 | & | +| main.rs:1215:42:1215:43 | &x | &T | main.rs:1179:5:1180:14 | S1 | +| main.rs:1215:42:1215:43 | &x | &T | main.rs:1185:5:1185:25 | dyn Trait | +| main.rs:1215:43:1215:43 | x | | main.rs:1179:5:1180:14 | S1 | +| main.rs:1215:43:1215:43 | x | | main.rs:1185:5:1185:25 | dyn Trait | +| main.rs:1217:13:1217:13 | x | | main.rs:1179:5:1180:14 | S1 | +| main.rs:1217:17:1217:18 | S1 | | main.rs:1179:5:1180:14 | S1 | +| main.rs:1218:9:1218:25 | into::<...>(...) | | main.rs:1182:5:1183:14 | S2 | +| main.rs:1218:24:1218:24 | x | | main.rs:1179:5:1180:14 | S1 | +| main.rs:1220:13:1220:13 | x | | main.rs:1179:5:1180:14 | S1 | +| main.rs:1220:17:1220:18 | S1 | | main.rs:1179:5:1180:14 | S1 | +| main.rs:1221:13:1221:13 | y | | main.rs:1182:5:1183:14 | S2 | +| main.rs:1221:21:1221:27 | into(...) | | main.rs:1182:5:1183:14 | S2 | +| main.rs:1221:26:1221:26 | x | | main.rs:1179:5:1180:14 | S1 | +| main.rs:1235:22:1235:25 | SelfParam | | main.rs:1226:5:1232:5 | PairOption | +| main.rs:1235:22:1235:25 | SelfParam | Fst | main.rs:1234:10:1234:12 | Fst | +| main.rs:1235:22:1235:25 | SelfParam | Snd | main.rs:1234:15:1234:17 | Snd | +| main.rs:1235:35:1242:9 | { ... } | | main.rs:1234:15:1234:17 | Snd | +| main.rs:1236:13:1241:13 | match self { ... } | | main.rs:1234:15:1234:17 | Snd | +| main.rs:1236:19:1236:22 | self | | main.rs:1226:5:1232:5 | PairOption | +| main.rs:1236:19:1236:22 | self | Fst | main.rs:1234:10:1234:12 | Fst | +| main.rs:1236:19:1236:22 | self | Snd | main.rs:1234:15:1234:17 | Snd | +| main.rs:1237:17:1237:38 | ...::PairNone(...) | | main.rs:1226:5:1232:5 | PairOption | +| main.rs:1237:17:1237:38 | ...::PairNone(...) | Fst | main.rs:1234:10:1234:12 | Fst | +| main.rs:1237:17:1237:38 | ...::PairNone(...) | Snd | main.rs:1234:15:1234:17 | Snd | +| main.rs:1237:43:1237:82 | MacroExpr | | main.rs:1234:15:1234:17 | Snd | +| main.rs:1237:50:1237:81 | "PairNone has no second elemen... | | file://:0:0:0:0 | & | +| main.rs:1237:50:1237:81 | "PairNone has no second elemen... | &T | {EXTERNAL LOCATION} | str | +| main.rs:1237:50:1237:81 | ...::panic_fmt(...) | | file://:0:0:0:0 | ! | +| main.rs:1237:50:1237:81 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1237:50:1237:81 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1237:50:1237:81 | MacroExpr | | main.rs:1234:15:1234:17 | Snd | +| main.rs:1237:50:1237:81 | { ... } | | main.rs:1234:15:1234:17 | Snd | +| main.rs:1238:17:1238:38 | ...::PairFst(...) | | main.rs:1226:5:1232:5 | PairOption | +| main.rs:1238:17:1238:38 | ...::PairFst(...) | Fst | main.rs:1234:10:1234:12 | Fst | +| main.rs:1238:17:1238:38 | ...::PairFst(...) | Snd | main.rs:1234:15:1234:17 | Snd | +| main.rs:1238:37:1238:37 | _ | | main.rs:1234:10:1234:12 | Fst | +| main.rs:1238:43:1238:81 | MacroExpr | | main.rs:1234:15:1234:17 | Snd | +| main.rs:1238:50:1238:80 | "PairFst has no second element... | | file://:0:0:0:0 | & | +| main.rs:1238:50:1238:80 | "PairFst has no second element... | &T | {EXTERNAL LOCATION} | str | +| main.rs:1238:50:1238:80 | ...::panic_fmt(...) | | file://:0:0:0:0 | ! | +| main.rs:1238:50:1238:80 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1238:50:1238:80 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1238:50:1238:80 | MacroExpr | | main.rs:1234:15:1234:17 | Snd | +| main.rs:1238:50:1238:80 | { ... } | | main.rs:1234:15:1234:17 | Snd | +| main.rs:1239:17:1239:40 | ...::PairSnd(...) | | main.rs:1226:5:1232:5 | PairOption | +| main.rs:1239:17:1239:40 | ...::PairSnd(...) | Fst | main.rs:1234:10:1234:12 | Fst | +| main.rs:1239:17:1239:40 | ...::PairSnd(...) | Snd | main.rs:1234:15:1234:17 | Snd | +| main.rs:1239:37:1239:39 | snd | | main.rs:1234:15:1234:17 | Snd | +| main.rs:1239:45:1239:47 | snd | | main.rs:1234:15:1234:17 | Snd | +| main.rs:1240:17:1240:44 | ...::PairBoth(...) | | main.rs:1226:5:1232:5 | PairOption | +| main.rs:1240:17:1240:44 | ...::PairBoth(...) | Fst | main.rs:1234:10:1234:12 | Fst | +| main.rs:1240:17:1240:44 | ...::PairBoth(...) | Snd | main.rs:1234:15:1234:17 | Snd | +| main.rs:1240:38:1240:38 | _ | | main.rs:1234:10:1234:12 | Fst | +| main.rs:1240:41:1240:43 | snd | | main.rs:1234:15:1234:17 | Snd | +| main.rs:1240:49:1240:51 | snd | | main.rs:1234:15:1234:17 | Snd | +| main.rs:1266:10:1266:10 | t | | main.rs:1226:5:1232:5 | PairOption | +| main.rs:1266:10:1266:10 | t | Fst | main.rs:1248:5:1249:14 | S2 | +| main.rs:1266:10:1266:10 | t | Snd | main.rs:1226:5:1232:5 | PairOption | +| main.rs:1266:10:1266:10 | t | Snd.Fst | main.rs:1248:5:1249:14 | S2 | +| main.rs:1266:10:1266:10 | t | Snd.Snd | main.rs:1251:5:1252:14 | S3 | +| main.rs:1267:13:1267:13 | x | | main.rs:1251:5:1252:14 | S3 | +| main.rs:1267:17:1267:17 | t | | main.rs:1226:5:1232:5 | PairOption | +| main.rs:1267:17:1267:17 | t | Fst | main.rs:1248:5:1249:14 | S2 | +| main.rs:1267:17:1267:17 | t | Snd | main.rs:1226:5:1232:5 | PairOption | +| main.rs:1267:17:1267:17 | t | Snd.Fst | main.rs:1248:5:1249:14 | S2 | +| main.rs:1267:17:1267:17 | t | Snd.Snd | main.rs:1251:5:1252:14 | S3 | +| main.rs:1267:17:1267:29 | t.unwrapSnd() | | main.rs:1226:5:1232:5 | PairOption | +| main.rs:1267:17:1267:29 | t.unwrapSnd() | Fst | main.rs:1248:5:1249:14 | S2 | +| main.rs:1267:17:1267:29 | t.unwrapSnd() | Snd | main.rs:1251:5:1252:14 | S3 | +| main.rs:1267:17:1267:41 | ... .unwrapSnd() | | main.rs:1251:5:1252:14 | S3 | +| main.rs:1268:18:1268:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1268:18:1268:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1268:18:1268:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1268:18:1268:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1268:26:1268:26 | x | | main.rs:1251:5:1252:14 | S3 | +| main.rs:1283:22:1283:25 | SelfParam | | main.rs:1281:5:1284:5 | Self [trait TraitWithAssocType] | +| main.rs:1291:22:1291:25 | SelfParam | | main.rs:1279:5:1279:28 | GenS | +| main.rs:1291:22:1291:25 | SelfParam | GenT | main.rs:1286:10:1286:15 | Output | +| main.rs:1291:44:1293:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1291:44:1293:9 | { ... } | E | main.rs:1286:10:1286:15 | Output | +| main.rs:1291:44:1293:9 | { ... } | T | main.rs:1286:10:1286:15 | Output | +| main.rs:1292:13:1292:22 | Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1292:13:1292:22 | Ok(...) | E | main.rs:1286:10:1286:15 | Output | +| main.rs:1292:13:1292:22 | Ok(...) | T | main.rs:1286:10:1286:15 | Output | +| main.rs:1292:16:1292:19 | self | | main.rs:1279:5:1279:28 | GenS | +| main.rs:1292:16:1292:19 | self | GenT | main.rs:1286:10:1286:15 | Output | +| main.rs:1292:16:1292:21 | self.0 | | main.rs:1286:10:1286:15 | Output | +| main.rs:1298:13:1298:14 | p1 | | main.rs:1226:5:1232:5 | PairOption | +| main.rs:1298:13:1298:14 | p1 | Fst | main.rs:1245:5:1246:14 | S1 | +| main.rs:1298:13:1298:14 | p1 | Snd | main.rs:1248:5:1249:14 | S2 | +| main.rs:1298:26:1298:53 | ...::PairBoth(...) | | main.rs:1226:5:1232:5 | PairOption | +| main.rs:1298:26:1298:53 | ...::PairBoth(...) | Fst | main.rs:1245:5:1246:14 | S1 | +| main.rs:1298:26:1298:53 | ...::PairBoth(...) | Snd | main.rs:1248:5:1249:14 | S2 | +| main.rs:1298:47:1298:48 | S1 | | main.rs:1245:5:1246:14 | S1 | +| main.rs:1298:51:1298:52 | S2 | | main.rs:1248:5:1249:14 | S2 | +| main.rs:1299:18:1299:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1299:18:1299:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1299:18:1299:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1299:18:1299:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1299:26:1299:27 | p1 | | main.rs:1226:5:1232:5 | PairOption | +| main.rs:1299:26:1299:27 | p1 | Fst | main.rs:1245:5:1246:14 | S1 | +| main.rs:1299:26:1299:27 | p1 | Snd | main.rs:1248:5:1249:14 | S2 | +| main.rs:1302:13:1302:14 | p2 | | main.rs:1226:5:1232:5 | PairOption | +| main.rs:1302:13:1302:14 | p2 | Fst | main.rs:1245:5:1246:14 | S1 | +| main.rs:1302:13:1302:14 | p2 | Snd | main.rs:1248:5:1249:14 | S2 | +| main.rs:1302:26:1302:47 | ...::PairNone(...) | | main.rs:1226:5:1232:5 | PairOption | +| main.rs:1302:26:1302:47 | ...::PairNone(...) | Fst | main.rs:1245:5:1246:14 | S1 | +| main.rs:1302:26:1302:47 | ...::PairNone(...) | Snd | main.rs:1248:5:1249:14 | S2 | +| main.rs:1303:18:1303:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1303:18:1303:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1303:18:1303:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1303:18:1303:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1303:26:1303:27 | p2 | | main.rs:1226:5:1232:5 | PairOption | +| main.rs:1303:26:1303:27 | p2 | Fst | main.rs:1245:5:1246:14 | S1 | +| main.rs:1303:26:1303:27 | p2 | Snd | main.rs:1248:5:1249:14 | S2 | +| main.rs:1306:13:1306:14 | p3 | | main.rs:1226:5:1232:5 | PairOption | +| main.rs:1306:13:1306:14 | p3 | Fst | main.rs:1248:5:1249:14 | S2 | +| main.rs:1306:13:1306:14 | p3 | Snd | main.rs:1251:5:1252:14 | S3 | +| main.rs:1306:34:1306:56 | ...::PairSnd(...) | | main.rs:1226:5:1232:5 | PairOption | +| main.rs:1306:34:1306:56 | ...::PairSnd(...) | Fst | main.rs:1248:5:1249:14 | S2 | +| main.rs:1306:34:1306:56 | ...::PairSnd(...) | Snd | main.rs:1251:5:1252:14 | S3 | +| main.rs:1306:54:1306:55 | S3 | | main.rs:1251:5:1252:14 | S3 | +| main.rs:1307:18:1307:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1307:18:1307:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1307:18:1307:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1307:18:1307:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1307:26:1307:27 | p3 | | main.rs:1226:5:1232:5 | PairOption | +| main.rs:1307:26:1307:27 | p3 | Fst | main.rs:1248:5:1249:14 | S2 | +| main.rs:1307:26:1307:27 | p3 | Snd | main.rs:1251:5:1252:14 | S3 | +| main.rs:1310:13:1310:14 | p3 | | main.rs:1226:5:1232:5 | PairOption | +| main.rs:1310:13:1310:14 | p3 | Fst | main.rs:1248:5:1249:14 | S2 | +| main.rs:1310:13:1310:14 | p3 | Snd | main.rs:1251:5:1252:14 | S3 | +| main.rs:1310:35:1310:56 | ...::PairNone(...) | | main.rs:1226:5:1232:5 | PairOption | +| main.rs:1310:35:1310:56 | ...::PairNone(...) | Fst | main.rs:1248:5:1249:14 | S2 | +| main.rs:1310:35:1310:56 | ...::PairNone(...) | Snd | main.rs:1251:5:1252:14 | S3 | +| main.rs:1311:18:1311:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1311:18:1311:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1311:18:1311:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1311:18:1311:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1311:26:1311:27 | p3 | | main.rs:1226:5:1232:5 | PairOption | +| main.rs:1311:26:1311:27 | p3 | Fst | main.rs:1248:5:1249:14 | S2 | +| main.rs:1311:26:1311:27 | p3 | Snd | main.rs:1251:5:1252:14 | S3 | +| main.rs:1313:11:1313:54 | ...::PairSnd(...) | | main.rs:1226:5:1232:5 | PairOption | +| main.rs:1313:11:1313:54 | ...::PairSnd(...) | Fst | main.rs:1248:5:1249:14 | S2 | +| main.rs:1313:11:1313:54 | ...::PairSnd(...) | Snd | main.rs:1226:5:1232:5 | PairOption | +| main.rs:1313:11:1313:54 | ...::PairSnd(...) | Snd.Fst | main.rs:1248:5:1249:14 | S2 | +| main.rs:1313:11:1313:54 | ...::PairSnd(...) | Snd.Snd | main.rs:1251:5:1252:14 | S3 | +| main.rs:1313:31:1313:53 | ...::PairSnd(...) | | main.rs:1226:5:1232:5 | PairOption | +| main.rs:1313:31:1313:53 | ...::PairSnd(...) | Fst | main.rs:1248:5:1249:14 | S2 | +| main.rs:1313:31:1313:53 | ...::PairSnd(...) | Snd | main.rs:1251:5:1252:14 | S3 | +| main.rs:1313:51:1313:52 | S3 | | main.rs:1251:5:1252:14 | S3 | +| main.rs:1315:13:1315:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1315:13:1315:13 | x | E | main.rs:1245:5:1246:14 | S1 | +| main.rs:1315:13:1315:13 | x | T | main.rs:1271:5:1271:34 | S4 | +| main.rs:1315:13:1315:13 | x | T.T41 | main.rs:1248:5:1249:14 | S2 | +| main.rs:1315:13:1315:13 | x | T.T42 | main.rs:1273:5:1273:22 | S5 | +| main.rs:1315:13:1315:13 | x | T.T42.T5 | main.rs:1248:5:1249:14 | S2 | +| main.rs:1317:13:1317:13 | y | | {EXTERNAL LOCATION} | Result | +| main.rs:1317:13:1317:13 | y | E | {EXTERNAL LOCATION} | bool | +| main.rs:1317:13:1317:13 | y | T | {EXTERNAL LOCATION} | bool | +| main.rs:1317:17:1317:26 | GenS(...) | | main.rs:1279:5:1279:28 | GenS | +| main.rs:1317:17:1317:26 | GenS(...) | GenT | {EXTERNAL LOCATION} | bool | +| main.rs:1317:17:1317:38 | ... .get_input() | | {EXTERNAL LOCATION} | Result | +| main.rs:1317:17:1317:38 | ... .get_input() | E | {EXTERNAL LOCATION} | bool | +| main.rs:1317:17:1317:38 | ... .get_input() | T | {EXTERNAL LOCATION} | bool | +| main.rs:1317:22:1317:25 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1330:16:1330:24 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1330:16:1330:24 | SelfParam | &T | main.rs:1328:5:1335:5 | Self [trait MyTrait] | +| main.rs:1330:27:1330:31 | value | | main.rs:1328:19:1328:19 | S | +| main.rs:1332:21:1332:29 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1332:21:1332:29 | SelfParam | &T | main.rs:1328:5:1335:5 | Self [trait MyTrait] | +| main.rs:1332:32:1332:36 | value | | main.rs:1328:19:1328:19 | S | +| main.rs:1333:13:1333:16 | self | | file://:0:0:0:0 | & | +| main.rs:1333:13:1333:16 | self | &T | main.rs:1328:5:1335:5 | Self [trait MyTrait] | +| main.rs:1333:22:1333:26 | value | | main.rs:1328:19:1328:19 | S | +| main.rs:1339:16:1339:24 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1339:16:1339:24 | SelfParam | &T | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1339:16:1339:24 | SelfParam | &T.T | main.rs:1337:10:1337:10 | T | +| main.rs:1339:27:1339:31 | value | | main.rs:1337:10:1337:10 | T | +| main.rs:1343:26:1345:9 | { ... } | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1343:26:1345:9 | { ... } | T | main.rs:1342:10:1342:10 | T | +| main.rs:1344:13:1344:30 | ...::MyNone(...) | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1344:13:1344:30 | ...::MyNone(...) | T | main.rs:1342:10:1342:10 | T | +| main.rs:1349:20:1349:23 | SelfParam | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1349:20:1349:23 | SelfParam | T | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1349:20:1349:23 | SelfParam | T.T | main.rs:1348:10:1348:10 | T | +| main.rs:1349:41:1354:9 | { ... } | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1349:41:1354:9 | { ... } | T | main.rs:1348:10:1348:10 | T | +| main.rs:1350:13:1353:13 | match self { ... } | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1350:13:1353:13 | match self { ... } | T | main.rs:1348:10:1348:10 | T | +| main.rs:1350:19:1350:22 | self | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1350:19:1350:22 | self | T | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1350:19:1350:22 | self | T.T | main.rs:1348:10:1348:10 | T | +| main.rs:1351:17:1351:34 | ...::MyNone(...) | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1351:17:1351:34 | ...::MyNone(...) | T | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1351:17:1351:34 | ...::MyNone(...) | T.T | main.rs:1348:10:1348:10 | T | +| main.rs:1351:39:1351:56 | ...::MyNone(...) | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1351:39:1351:56 | ...::MyNone(...) | T | main.rs:1348:10:1348:10 | T | +| main.rs:1352:17:1352:35 | ...::MySome(...) | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1352:17:1352:35 | ...::MySome(...) | T | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1352:17:1352:35 | ...::MySome(...) | T.T | main.rs:1348:10:1348:10 | T | +| main.rs:1352:34:1352:34 | x | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1352:34:1352:34 | x | T | main.rs:1348:10:1348:10 | T | +| main.rs:1352:40:1352:40 | x | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1352:40:1352:40 | x | T | main.rs:1348:10:1348:10 | T | +| main.rs:1361:13:1361:14 | x1 | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1361:13:1361:14 | x1 | T | main.rs:1357:5:1358:13 | S | +| main.rs:1361:18:1361:37 | ...::new(...) | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1361:18:1361:37 | ...::new(...) | T | main.rs:1357:5:1358:13 | S | +| main.rs:1362:18:1362:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1362:18:1362:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1362:18:1362:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1362:18:1362:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1362:26:1362:27 | x1 | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1362:26:1362:27 | x1 | T | main.rs:1357:5:1358:13 | S | +| main.rs:1364:17:1364:18 | x2 | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1364:17:1364:18 | x2 | T | main.rs:1357:5:1358:13 | S | +| main.rs:1364:22:1364:36 | ...::new(...) | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1364:22:1364:36 | ...::new(...) | T | main.rs:1357:5:1358:13 | S | +| main.rs:1365:9:1365:10 | x2 | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1365:9:1365:10 | x2 | T | main.rs:1357:5:1358:13 | S | +| main.rs:1365:16:1365:16 | S | | main.rs:1357:5:1358:13 | S | +| main.rs:1366:18:1366:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1366:18:1366:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1366:18:1366:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1366:18:1366:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1366:26:1366:27 | x2 | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1366:26:1366:27 | x2 | T | main.rs:1357:5:1358:13 | S | +| main.rs:1369:17:1369:18 | x3 | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1369:22:1369:36 | ...::new(...) | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1370:9:1370:10 | x3 | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1370:21:1370:21 | S | | main.rs:1357:5:1358:13 | S | +| main.rs:1371:18:1371:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1371:18:1371:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1371:18:1371:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1371:18:1371:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1371:26:1371:27 | x3 | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1373:17:1373:18 | x4 | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1373:17:1373:18 | x4 | T | main.rs:1357:5:1358:13 | S | +| main.rs:1373:22:1373:36 | ...::new(...) | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1373:22:1373:36 | ...::new(...) | T | main.rs:1357:5:1358:13 | S | +| main.rs:1374:23:1374:29 | &mut x4 | | file://:0:0:0:0 | & | +| main.rs:1374:23:1374:29 | &mut x4 | &T | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1374:23:1374:29 | &mut x4 | &T.T | main.rs:1357:5:1358:13 | S | +| main.rs:1374:28:1374:29 | x4 | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1374:28:1374:29 | x4 | T | main.rs:1357:5:1358:13 | S | +| main.rs:1374:32:1374:32 | S | | main.rs:1357:5:1358:13 | S | +| main.rs:1375:18:1375:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1375:18:1375:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1375:18:1375:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1375:18:1375:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1375:26:1375:27 | x4 | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1375:26:1375:27 | x4 | T | main.rs:1357:5:1358:13 | S | +| main.rs:1377:13:1377:14 | x5 | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1377:13:1377:14 | x5 | T | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1377:13:1377:14 | x5 | T.T | main.rs:1357:5:1358:13 | S | +| main.rs:1377:18:1377:58 | ...::MySome(...) | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1377:18:1377:58 | ...::MySome(...) | T | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1377:18:1377:58 | ...::MySome(...) | T.T | main.rs:1357:5:1358:13 | S | +| main.rs:1377:35:1377:57 | ...::MyNone(...) | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1377:35:1377:57 | ...::MyNone(...) | T | main.rs:1357:5:1358:13 | S | +| main.rs:1378:18:1378:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1378:18:1378:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1378:18:1378:37 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1378:18:1378:37 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1378:26:1378:27 | x5 | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1378:26:1378:27 | x5 | T | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1378:26:1378:27 | x5 | T.T | main.rs:1357:5:1358:13 | S | +| main.rs:1378:26:1378:37 | x5.flatten() | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1378:26:1378:37 | x5.flatten() | T | main.rs:1357:5:1358:13 | S | +| main.rs:1380:13:1380:14 | x6 | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1380:13:1380:14 | x6 | T | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1380:13:1380:14 | x6 | T.T | main.rs:1357:5:1358:13 | S | +| main.rs:1380:18:1380:58 | ...::MySome(...) | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1380:18:1380:58 | ...::MySome(...) | T | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1380:18:1380:58 | ...::MySome(...) | T.T | main.rs:1357:5:1358:13 | S | +| main.rs:1380:35:1380:57 | ...::MyNone(...) | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1380:35:1380:57 | ...::MyNone(...) | T | main.rs:1357:5:1358:13 | S | +| main.rs:1381:18:1381:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1381:18:1381:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1381:18:1381:61 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1381:18:1381:61 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1381:26:1381:61 | ...::flatten(...) | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1381:26:1381:61 | ...::flatten(...) | T | main.rs:1357:5:1358:13 | S | +| main.rs:1381:59:1381:60 | x6 | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1381:59:1381:60 | x6 | T | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1381:59:1381:60 | x6 | T.T | main.rs:1357:5:1358:13 | S | +| main.rs:1384:13:1384:19 | from_if | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1384:13:1384:19 | from_if | T | main.rs:1357:5:1358:13 | S | +| main.rs:1384:23:1388:9 | if ... {...} else {...} | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1384:23:1388:9 | if ... {...} else {...} | T | main.rs:1357:5:1358:13 | S | +| main.rs:1384:26:1384:26 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1384:26:1384:30 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1384:30:1384:30 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1384:32:1386:9 | { ... } | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1384:32:1386:9 | { ... } | T | main.rs:1357:5:1358:13 | S | +| main.rs:1385:13:1385:30 | ...::MyNone(...) | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1385:13:1385:30 | ...::MyNone(...) | T | main.rs:1357:5:1358:13 | S | +| main.rs:1386:16:1388:9 | { ... } | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1386:16:1388:9 | { ... } | T | main.rs:1357:5:1358:13 | S | +| main.rs:1387:13:1387:31 | ...::MySome(...) | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1387:13:1387:31 | ...::MySome(...) | T | main.rs:1357:5:1358:13 | S | +| main.rs:1387:30:1387:30 | S | | main.rs:1357:5:1358:13 | S | +| main.rs:1389:18:1389:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1389:18:1389:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1389:18:1389:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1389:18:1389:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1389:26:1389:32 | from_if | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1389:26:1389:32 | from_if | T | main.rs:1357:5:1358:13 | S | +| main.rs:1392:13:1392:22 | from_match | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1392:13:1392:22 | from_match | T | main.rs:1357:5:1358:13 | S | +| main.rs:1392:26:1395:9 | match ... { ... } | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1392:26:1395:9 | match ... { ... } | T | main.rs:1357:5:1358:13 | S | +| main.rs:1392:32:1392:32 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1392:32:1392:36 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1392:36:1392:36 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1393:13:1393:16 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1393:21:1393:38 | ...::MyNone(...) | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1393:21:1393:38 | ...::MyNone(...) | T | main.rs:1357:5:1358:13 | S | +| main.rs:1394:13:1394:17 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1394:22:1394:40 | ...::MySome(...) | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1394:22:1394:40 | ...::MySome(...) | T | main.rs:1357:5:1358:13 | S | +| main.rs:1394:39:1394:39 | S | | main.rs:1357:5:1358:13 | S | +| main.rs:1396:18:1396:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1396:18:1396:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1396:18:1396:35 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1396:18:1396:35 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1396:26:1396:35 | from_match | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1396:26:1396:35 | from_match | T | main.rs:1357:5:1358:13 | S | +| main.rs:1399:13:1399:21 | from_loop | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1399:13:1399:21 | from_loop | T | main.rs:1357:5:1358:13 | S | +| main.rs:1399:25:1404:9 | loop { ... } | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1399:25:1404:9 | loop { ... } | T | main.rs:1357:5:1358:13 | S | +| main.rs:1400:16:1400:16 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1400:16:1400:20 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1400:20:1400:20 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1401:23:1401:40 | ...::MyNone(...) | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1401:23:1401:40 | ...::MyNone(...) | T | main.rs:1357:5:1358:13 | S | +| main.rs:1403:19:1403:37 | ...::MySome(...) | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1403:19:1403:37 | ...::MySome(...) | T | main.rs:1357:5:1358:13 | S | +| main.rs:1403:36:1403:36 | S | | main.rs:1357:5:1358:13 | S | +| main.rs:1405:18:1405:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1405:18:1405:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1405:18:1405:34 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1405:18:1405:34 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1405:26:1405:34 | from_loop | | main.rs:1322:5:1326:5 | MyOption | +| main.rs:1405:26:1405:34 | from_loop | T | main.rs:1357:5:1358:13 | S | +| main.rs:1423:15:1423:18 | SelfParam | | main.rs:1411:5:1412:19 | S | +| main.rs:1423:15:1423:18 | SelfParam | T | main.rs:1422:10:1422:10 | T | +| main.rs:1423:26:1425:9 | { ... } | | main.rs:1422:10:1422:10 | T | +| main.rs:1424:13:1424:16 | self | | main.rs:1411:5:1412:19 | S | +| main.rs:1424:13:1424:16 | self | T | main.rs:1422:10:1422:10 | T | +| main.rs:1424:13:1424:18 | self.0 | | main.rs:1422:10:1422:10 | T | +| main.rs:1427:15:1427:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1427:15:1427:19 | SelfParam | &T | main.rs:1411:5:1412:19 | S | +| main.rs:1427:15:1427:19 | SelfParam | &T.T | main.rs:1422:10:1422:10 | T | +| main.rs:1427:28:1429:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1427:28:1429:9 | { ... } | &T | main.rs:1422:10:1422:10 | T | +| main.rs:1428:13:1428:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1428:13:1428:19 | &... | &T | main.rs:1422:10:1422:10 | T | +| main.rs:1428:14:1428:17 | self | | file://:0:0:0:0 | & | +| main.rs:1428:14:1428:17 | self | &T | main.rs:1411:5:1412:19 | S | +| main.rs:1428:14:1428:17 | self | &T.T | main.rs:1422:10:1422:10 | T | +| main.rs:1428:14:1428:19 | self.0 | | main.rs:1422:10:1422:10 | T | +| main.rs:1431:15:1431:25 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1431:15:1431:25 | SelfParam | &T | main.rs:1411:5:1412:19 | S | +| main.rs:1431:15:1431:25 | SelfParam | &T.T | main.rs:1422:10:1422:10 | T | +| main.rs:1431:34:1433:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1431:34:1433:9 | { ... } | &T | main.rs:1422:10:1422:10 | T | +| main.rs:1432:13:1432:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1432:13:1432:19 | &... | &T | main.rs:1422:10:1422:10 | T | +| main.rs:1432:14:1432:17 | self | | file://:0:0:0:0 | & | +| main.rs:1432:14:1432:17 | self | &T | main.rs:1411:5:1412:19 | S | +| main.rs:1432:14:1432:17 | self | &T.T | main.rs:1422:10:1422:10 | T | +| main.rs:1432:14:1432:19 | self.0 | | main.rs:1422:10:1422:10 | T | +| main.rs:1437:29:1437:33 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1437:29:1437:33 | SelfParam | &T | main.rs:1436:5:1439:5 | Self [trait ATrait] | +| main.rs:1438:33:1438:36 | SelfParam | | main.rs:1436:5:1439:5 | Self [trait ATrait] | +| main.rs:1444:29:1444:33 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1444:29:1444:33 | SelfParam | &T | file://:0:0:0:0 | & | +| main.rs:1444:29:1444:33 | SelfParam | &T.&T | main.rs:1417:5:1420:5 | MyInt | +| main.rs:1444:43:1446:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1445:13:1445:22 | (...) | | main.rs:1417:5:1420:5 | MyInt | +| main.rs:1445:13:1445:24 | ... .a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1445:14:1445:21 | * ... | | main.rs:1417:5:1420:5 | MyInt | +| main.rs:1445:15:1445:21 | (...) | | file://:0:0:0:0 | & | +| main.rs:1445:15:1445:21 | (...) | &T | main.rs:1417:5:1420:5 | MyInt | +| main.rs:1445:16:1445:20 | * ... | | file://:0:0:0:0 | & | +| main.rs:1445:16:1445:20 | * ... | &T | main.rs:1417:5:1420:5 | MyInt | +| main.rs:1445:17:1445:20 | self | | file://:0:0:0:0 | & | +| main.rs:1445:17:1445:20 | self | &T | file://:0:0:0:0 | & | +| main.rs:1445:17:1445:20 | self | &T.&T | main.rs:1417:5:1420:5 | MyInt | +| main.rs:1449:33:1449:36 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1449:33:1449:36 | SelfParam | &T | main.rs:1417:5:1420:5 | MyInt | +| main.rs:1449:46:1451:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1450:13:1450:19 | (...) | | main.rs:1417:5:1420:5 | MyInt | +| main.rs:1450:13:1450:21 | ... .a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1450:14:1450:18 | * ... | | main.rs:1417:5:1420:5 | MyInt | +| main.rs:1450:15:1450:18 | self | | file://:0:0:0:0 | & | +| main.rs:1450:15:1450:18 | self | &T | main.rs:1417:5:1420:5 | MyInt | +| main.rs:1455:13:1455:14 | x1 | | main.rs:1411:5:1412:19 | S | +| main.rs:1455:13:1455:14 | x1 | T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1455:18:1455:22 | S(...) | | main.rs:1411:5:1412:19 | S | +| main.rs:1455:18:1455:22 | S(...) | T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1455:20:1455:21 | S2 | | main.rs:1414:5:1415:14 | S2 | +| main.rs:1456:18:1456:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1456:18:1456:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1456:18:1456:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1456:18:1456:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1456:26:1456:27 | x1 | | main.rs:1411:5:1412:19 | S | +| main.rs:1456:26:1456:27 | x1 | T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1456:26:1456:32 | x1.m1() | | main.rs:1414:5:1415:14 | S2 | +| main.rs:1458:13:1458:14 | x2 | | main.rs:1411:5:1412:19 | S | +| main.rs:1458:13:1458:14 | x2 | T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1458:18:1458:22 | S(...) | | main.rs:1411:5:1412:19 | S | +| main.rs:1458:18:1458:22 | S(...) | T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1458:20:1458:21 | S2 | | main.rs:1414:5:1415:14 | S2 | +| main.rs:1460:18:1460:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1460:18:1460:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1460:18:1460:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1460:18:1460:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1460:26:1460:27 | x2 | | main.rs:1411:5:1412:19 | S | +| main.rs:1460:26:1460:27 | x2 | T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1460:26:1460:32 | x2.m2() | | file://:0:0:0:0 | & | +| main.rs:1460:26:1460:32 | x2.m2() | &T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1461:18:1461:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1461:18:1461:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1461:18:1461:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1461:18:1461:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1461:26:1461:27 | x2 | | main.rs:1411:5:1412:19 | S | +| main.rs:1461:26:1461:27 | x2 | T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1461:26:1461:32 | x2.m3() | | file://:0:0:0:0 | & | +| main.rs:1461:26:1461:32 | x2.m3() | &T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1463:13:1463:14 | x3 | | main.rs:1411:5:1412:19 | S | +| main.rs:1463:13:1463:14 | x3 | T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1463:18:1463:22 | S(...) | | main.rs:1411:5:1412:19 | S | +| main.rs:1463:18:1463:22 | S(...) | T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1463:20:1463:21 | S2 | | main.rs:1414:5:1415:14 | S2 | +| main.rs:1465:18:1465:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1465:18:1465:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1465:18:1465:41 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1465:18:1465:41 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1465:26:1465:41 | ...::m2(...) | | file://:0:0:0:0 | & | +| main.rs:1465:26:1465:41 | ...::m2(...) | &T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1465:38:1465:40 | &x3 | | file://:0:0:0:0 | & | +| main.rs:1465:38:1465:40 | &x3 | &T | main.rs:1411:5:1412:19 | S | +| main.rs:1465:38:1465:40 | &x3 | &T.T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1465:39:1465:40 | x3 | | main.rs:1411:5:1412:19 | S | +| main.rs:1465:39:1465:40 | x3 | T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1466:18:1466:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1466:18:1466:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1466:18:1466:41 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1466:18:1466:41 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1466:26:1466:41 | ...::m3(...) | | file://:0:0:0:0 | & | +| main.rs:1466:26:1466:41 | ...::m3(...) | &T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1466:38:1466:40 | &x3 | | file://:0:0:0:0 | & | +| main.rs:1466:38:1466:40 | &x3 | &T | main.rs:1411:5:1412:19 | S | +| main.rs:1466:38:1466:40 | &x3 | &T.T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1466:39:1466:40 | x3 | | main.rs:1411:5:1412:19 | S | +| main.rs:1466:39:1466:40 | x3 | T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1468:13:1468:14 | x4 | | file://:0:0:0:0 | & | +| main.rs:1468:13:1468:14 | x4 | &T | main.rs:1411:5:1412:19 | S | +| main.rs:1468:13:1468:14 | x4 | &T.T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1468:18:1468:23 | &... | | file://:0:0:0:0 | & | +| main.rs:1468:18:1468:23 | &... | &T | main.rs:1411:5:1412:19 | S | +| main.rs:1468:18:1468:23 | &... | &T.T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1468:19:1468:23 | S(...) | | main.rs:1411:5:1412:19 | S | +| main.rs:1468:19:1468:23 | S(...) | T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1468:21:1468:22 | S2 | | main.rs:1414:5:1415:14 | S2 | +| main.rs:1470:18:1470:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1470:18:1470:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1470:18:1470:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1470:18:1470:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1470:26:1470:27 | x4 | | file://:0:0:0:0 | & | +| main.rs:1470:26:1470:27 | x4 | &T | main.rs:1411:5:1412:19 | S | +| main.rs:1470:26:1470:27 | x4 | &T.T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1470:26:1470:32 | x4.m2() | | file://:0:0:0:0 | & | +| main.rs:1470:26:1470:32 | x4.m2() | &T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1471:18:1471:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1471:18:1471:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1471:18:1471:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1471:18:1471:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1471:26:1471:27 | x4 | | file://:0:0:0:0 | & | +| main.rs:1471:26:1471:27 | x4 | &T | main.rs:1411:5:1412:19 | S | +| main.rs:1471:26:1471:27 | x4 | &T.T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1471:26:1471:32 | x4.m3() | | file://:0:0:0:0 | & | +| main.rs:1471:26:1471:32 | x4.m3() | &T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1473:13:1473:14 | x5 | | file://:0:0:0:0 | & | +| main.rs:1473:13:1473:14 | x5 | &T | main.rs:1411:5:1412:19 | S | +| main.rs:1473:13:1473:14 | x5 | &T.T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1473:18:1473:23 | &... | | file://:0:0:0:0 | & | +| main.rs:1473:18:1473:23 | &... | &T | main.rs:1411:5:1412:19 | S | +| main.rs:1473:18:1473:23 | &... | &T.T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1473:19:1473:23 | S(...) | | main.rs:1411:5:1412:19 | S | +| main.rs:1473:19:1473:23 | S(...) | T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1473:21:1473:22 | S2 | | main.rs:1414:5:1415:14 | S2 | +| main.rs:1475:18:1475:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1475:18:1475:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1475:18:1475:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1475:18:1475:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1475:26:1475:27 | x5 | | file://:0:0:0:0 | & | +| main.rs:1475:26:1475:27 | x5 | &T | main.rs:1411:5:1412:19 | S | +| main.rs:1475:26:1475:27 | x5 | &T.T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1475:26:1475:32 | x5.m1() | | main.rs:1414:5:1415:14 | S2 | +| main.rs:1476:18:1476:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1476:18:1476:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1476:18:1476:29 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1476:18:1476:29 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1476:26:1476:27 | x5 | | file://:0:0:0:0 | & | +| main.rs:1476:26:1476:27 | x5 | &T | main.rs:1411:5:1412:19 | S | +| main.rs:1476:26:1476:27 | x5 | &T.T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1476:26:1476:29 | x5.0 | | main.rs:1414:5:1415:14 | S2 | +| main.rs:1478:13:1478:14 | x6 | | file://:0:0:0:0 | & | +| main.rs:1478:13:1478:14 | x6 | &T | main.rs:1411:5:1412:19 | S | +| main.rs:1478:13:1478:14 | x6 | &T.T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1478:18:1478:23 | &... | | file://:0:0:0:0 | & | +| main.rs:1478:18:1478:23 | &... | &T | main.rs:1411:5:1412:19 | S | +| main.rs:1478:18:1478:23 | &... | &T.T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1478:19:1478:23 | S(...) | | main.rs:1411:5:1412:19 | S | +| main.rs:1478:19:1478:23 | S(...) | T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1478:21:1478:22 | S2 | | main.rs:1414:5:1415:14 | S2 | +| main.rs:1481:18:1481:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1481:18:1481:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1481:18:1481:35 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1481:18:1481:35 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1481:26:1481:30 | (...) | | main.rs:1411:5:1412:19 | S | +| main.rs:1481:26:1481:30 | (...) | T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1481:26:1481:35 | ... .m1() | | main.rs:1414:5:1415:14 | S2 | +| main.rs:1481:27:1481:29 | * ... | | main.rs:1411:5:1412:19 | S | +| main.rs:1481:27:1481:29 | * ... | T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1481:28:1481:29 | x6 | | file://:0:0:0:0 | & | +| main.rs:1481:28:1481:29 | x6 | &T | main.rs:1411:5:1412:19 | S | +| main.rs:1481:28:1481:29 | x6 | &T.T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1483:13:1483:14 | x7 | | main.rs:1411:5:1412:19 | S | +| main.rs:1483:13:1483:14 | x7 | T | file://:0:0:0:0 | & | +| main.rs:1483:13:1483:14 | x7 | T.&T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1483:18:1483:23 | S(...) | | main.rs:1411:5:1412:19 | S | +| main.rs:1483:18:1483:23 | S(...) | T | file://:0:0:0:0 | & | +| main.rs:1483:18:1483:23 | S(...) | T.&T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1483:20:1483:22 | &S2 | | file://:0:0:0:0 | & | +| main.rs:1483:20:1483:22 | &S2 | &T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1483:21:1483:22 | S2 | | main.rs:1414:5:1415:14 | S2 | +| main.rs:1486:13:1486:13 | t | | file://:0:0:0:0 | & | +| main.rs:1486:13:1486:13 | t | &T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1486:17:1486:18 | x7 | | main.rs:1411:5:1412:19 | S | +| main.rs:1486:17:1486:18 | x7 | T | file://:0:0:0:0 | & | +| main.rs:1486:17:1486:18 | x7 | T.&T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1486:17:1486:23 | x7.m1() | | file://:0:0:0:0 | & | +| main.rs:1486:17:1486:23 | x7.m1() | &T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1487:18:1487:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1487:18:1487:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1487:18:1487:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1487:18:1487:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1487:26:1487:27 | x7 | | main.rs:1411:5:1412:19 | S | +| main.rs:1487:26:1487:27 | x7 | T | file://:0:0:0:0 | & | +| main.rs:1487:26:1487:27 | x7 | T.&T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1489:13:1489:14 | x9 | | {EXTERNAL LOCATION} | String | +| main.rs:1489:26:1489:32 | "Hello" | | file://:0:0:0:0 | & | +| main.rs:1489:26:1489:32 | "Hello" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1489:26:1489:44 | "Hello".to_string() | | {EXTERNAL LOCATION} | String | +| main.rs:1493:13:1493:13 | u | | {EXTERNAL LOCATION} | Result | +| main.rs:1493:13:1493:13 | u | T | {EXTERNAL LOCATION} | u32 | +| main.rs:1493:17:1493:18 | x9 | | {EXTERNAL LOCATION} | String | +| main.rs:1493:17:1493:33 | x9.parse() | | {EXTERNAL LOCATION} | Result | +| main.rs:1493:17:1493:33 | x9.parse() | T | {EXTERNAL LOCATION} | u32 | +| main.rs:1495:13:1495:20 | my_thing | | file://:0:0:0:0 | & | +| main.rs:1495:13:1495:20 | my_thing | &T | main.rs:1417:5:1420:5 | MyInt | +| main.rs:1495:24:1495:39 | &... | | file://:0:0:0:0 | & | +| main.rs:1495:24:1495:39 | &... | &T | main.rs:1417:5:1420:5 | MyInt | +| main.rs:1495:25:1495:39 | MyInt {...} | | main.rs:1417:5:1420:5 | MyInt | +| main.rs:1495:36:1495:37 | 37 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1495:36:1495:37 | 37 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1497:13:1497:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1497:17:1497:24 | my_thing | | file://:0:0:0:0 | & | +| main.rs:1497:17:1497:24 | my_thing | &T | main.rs:1417:5:1420:5 | MyInt | +| main.rs:1497:17:1497:43 | my_thing.method_on_borrow() | | {EXTERNAL LOCATION} | i64 | +| main.rs:1498:18:1498:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1498:18:1498:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1498:18:1498:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1498:18:1498:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1498:26:1498:26 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1501:13:1501:20 | my_thing | | file://:0:0:0:0 | & | +| main.rs:1501:13:1501:20 | my_thing | &T | main.rs:1417:5:1420:5 | MyInt | +| main.rs:1501:24:1501:39 | &... | | file://:0:0:0:0 | & | +| main.rs:1501:24:1501:39 | &... | &T | main.rs:1417:5:1420:5 | MyInt | +| main.rs:1501:25:1501:39 | MyInt {...} | | main.rs:1417:5:1420:5 | MyInt | +| main.rs:1501:36:1501:37 | 38 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1501:36:1501:37 | 38 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1502:13:1502:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1502:17:1502:24 | my_thing | | file://:0:0:0:0 | & | +| main.rs:1502:17:1502:24 | my_thing | &T | main.rs:1417:5:1420:5 | MyInt | +| main.rs:1502:17:1502:47 | my_thing.method_not_on_borrow() | | {EXTERNAL LOCATION} | i64 | +| main.rs:1503:18:1503:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1503:18:1503:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1503:18:1503:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1503:18:1503:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1503:26:1503:26 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1510:16:1510:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1510:16:1510:20 | SelfParam | &T | main.rs:1508:5:1516:5 | Self [trait MyTrait] | +| main.rs:1513:16:1513:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1513:16:1513:20 | SelfParam | &T | main.rs:1508:5:1516:5 | Self [trait MyTrait] | +| main.rs:1513:32:1515:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1513:32:1515:9 | { ... } | &T | main.rs:1508:5:1516:5 | Self [trait MyTrait] | +| main.rs:1514:13:1514:16 | self | | file://:0:0:0:0 | & | +| main.rs:1514:13:1514:16 | self | &T | main.rs:1508:5:1516:5 | Self [trait MyTrait] | +| main.rs:1514:13:1514:22 | self.foo() | | file://:0:0:0:0 | & | +| main.rs:1514:13:1514:22 | self.foo() | &T | main.rs:1508:5:1516:5 | Self [trait MyTrait] | +| main.rs:1522:16:1522:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1522:16:1522:20 | SelfParam | &T | main.rs:1518:5:1518:20 | MyStruct | +| main.rs:1522:36:1524:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1522:36:1524:9 | { ... } | &T | main.rs:1518:5:1518:20 | MyStruct | +| main.rs:1523:13:1523:16 | self | | file://:0:0:0:0 | & | +| main.rs:1523:13:1523:16 | self | &T | main.rs:1518:5:1518:20 | MyStruct | +| main.rs:1528:13:1528:13 | x | | main.rs:1518:5:1518:20 | MyStruct | +| main.rs:1528:17:1528:24 | MyStruct | | main.rs:1518:5:1518:20 | MyStruct | +| main.rs:1529:9:1529:9 | x | | main.rs:1518:5:1518:20 | MyStruct | +| main.rs:1529:9:1529:15 | x.bar() | | file://:0:0:0:0 | & | +| main.rs:1529:9:1529:15 | x.bar() | &T | main.rs:1518:5:1518:20 | MyStruct | +| main.rs:1539:16:1539:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1539:16:1539:20 | SelfParam | &T | main.rs:1536:5:1536:26 | MyStruct | +| main.rs:1539:16:1539:20 | SelfParam | &T.T | main.rs:1538:10:1538:10 | T | +| main.rs:1539:32:1541:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1539:32:1541:9 | { ... } | &T | main.rs:1536:5:1536:26 | MyStruct | +| main.rs:1539:32:1541:9 | { ... } | &T.T | main.rs:1538:10:1538:10 | T | +| main.rs:1540:13:1540:16 | self | | file://:0:0:0:0 | & | +| main.rs:1540:13:1540:16 | self | &T | main.rs:1536:5:1536:26 | MyStruct | +| main.rs:1540:13:1540:16 | self | &T.T | main.rs:1538:10:1538:10 | T | +| main.rs:1545:13:1545:13 | x | | main.rs:1536:5:1536:26 | MyStruct | +| main.rs:1545:13:1545:13 | x | T | main.rs:1534:5:1534:13 | S | +| main.rs:1545:17:1545:27 | MyStruct(...) | | main.rs:1536:5:1536:26 | MyStruct | +| main.rs:1545:17:1545:27 | MyStruct(...) | T | main.rs:1534:5:1534:13 | S | +| main.rs:1545:26:1545:26 | S | | main.rs:1534:5:1534:13 | S | +| main.rs:1546:9:1546:9 | x | | main.rs:1536:5:1536:26 | MyStruct | +| main.rs:1546:9:1546:9 | x | T | main.rs:1534:5:1534:13 | S | +| main.rs:1546:9:1546:15 | x.foo() | | file://:0:0:0:0 | & | +| main.rs:1546:9:1546:15 | x.foo() | &T | main.rs:1536:5:1536:26 | MyStruct | +| main.rs:1546:9:1546:15 | x.foo() | &T.T | main.rs:1534:5:1534:13 | S | +| main.rs:1557:17:1557:25 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1557:17:1557:25 | SelfParam | &T | main.rs:1551:5:1554:5 | MyFlag | +| main.rs:1558:13:1558:16 | self | | file://:0:0:0:0 | & | +| main.rs:1558:13:1558:16 | self | &T | main.rs:1551:5:1554:5 | MyFlag | +| main.rs:1558:13:1558:21 | self.bool | | {EXTERNAL LOCATION} | bool | +| main.rs:1558:13:1558:34 | ... = ... | | file://:0:0:0:0 | () | +| main.rs:1558:25:1558:34 | ! ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1558:26:1558:29 | self | | file://:0:0:0:0 | & | +| main.rs:1558:26:1558:29 | self | &T | main.rs:1551:5:1554:5 | MyFlag | +| main.rs:1558:26:1558:34 | self.bool | | {EXTERNAL LOCATION} | bool | +| main.rs:1565:15:1565:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1565:15:1565:19 | SelfParam | &T | main.rs:1562:5:1562:13 | S | +| main.rs:1565:31:1567:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1565:31:1567:9 | { ... } | &T | main.rs:1562:5:1562:13 | S | +| main.rs:1566:13:1566:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1566:13:1566:19 | &... | &T | file://:0:0:0:0 | & | +| main.rs:1566:13:1566:19 | &... | &T | main.rs:1562:5:1562:13 | S | +| main.rs:1566:13:1566:19 | &... | &T.&T | file://:0:0:0:0 | & | +| main.rs:1566:13:1566:19 | &... | &T.&T.&T | file://:0:0:0:0 | & | +| main.rs:1566:13:1566:19 | &... | &T.&T.&T.&T | main.rs:1562:5:1562:13 | S | +| main.rs:1566:14:1566:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1566:14:1566:19 | &... | &T | file://:0:0:0:0 | & | +| main.rs:1566:14:1566:19 | &... | &T.&T | file://:0:0:0:0 | & | +| main.rs:1566:14:1566:19 | &... | &T.&T.&T | main.rs:1562:5:1562:13 | S | +| main.rs:1566:15:1566:19 | &self | | file://:0:0:0:0 | & | +| main.rs:1566:15:1566:19 | &self | &T | file://:0:0:0:0 | & | +| main.rs:1566:15:1566:19 | &self | &T.&T | main.rs:1562:5:1562:13 | S | +| main.rs:1566:16:1566:19 | self | | file://:0:0:0:0 | & | +| main.rs:1566:16:1566:19 | self | &T | main.rs:1562:5:1562:13 | S | +| main.rs:1569:15:1569:25 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1569:15:1569:25 | SelfParam | &T | main.rs:1562:5:1562:13 | S | +| main.rs:1569:37:1571:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1569:37:1571:9 | { ... } | &T | main.rs:1562:5:1562:13 | S | +| main.rs:1570:13:1570:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1570:13:1570:19 | &... | &T | file://:0:0:0:0 | & | +| main.rs:1570:13:1570:19 | &... | &T | main.rs:1562:5:1562:13 | S | +| main.rs:1570:13:1570:19 | &... | &T.&T | file://:0:0:0:0 | & | +| main.rs:1570:13:1570:19 | &... | &T.&T.&T | file://:0:0:0:0 | & | +| main.rs:1570:13:1570:19 | &... | &T.&T.&T.&T | main.rs:1562:5:1562:13 | S | +| main.rs:1570:14:1570:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1570:14:1570:19 | &... | &T | file://:0:0:0:0 | & | +| main.rs:1570:14:1570:19 | &... | &T.&T | file://:0:0:0:0 | & | +| main.rs:1570:14:1570:19 | &... | &T.&T.&T | main.rs:1562:5:1562:13 | S | +| main.rs:1570:15:1570:19 | &self | | file://:0:0:0:0 | & | +| main.rs:1570:15:1570:19 | &self | &T | file://:0:0:0:0 | & | +| main.rs:1570:15:1570:19 | &self | &T.&T | main.rs:1562:5:1562:13 | S | +| main.rs:1570:16:1570:19 | self | | file://:0:0:0:0 | & | +| main.rs:1570:16:1570:19 | self | &T | main.rs:1562:5:1562:13 | S | +| main.rs:1573:15:1573:15 | x | | file://:0:0:0:0 | & | +| main.rs:1573:15:1573:15 | x | &T | main.rs:1562:5:1562:13 | S | +| main.rs:1573:34:1575:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1573:34:1575:9 | { ... } | &T | main.rs:1562:5:1562:13 | S | +| main.rs:1574:13:1574:13 | x | | file://:0:0:0:0 | & | +| main.rs:1574:13:1574:13 | x | &T | main.rs:1562:5:1562:13 | S | +| main.rs:1577:15:1577:15 | x | | file://:0:0:0:0 | & | +| main.rs:1577:15:1577:15 | x | &T | main.rs:1562:5:1562:13 | S | +| main.rs:1577:34:1579:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1577:34:1579:9 | { ... } | &T | main.rs:1562:5:1562:13 | S | +| main.rs:1578:13:1578:16 | &... | | file://:0:0:0:0 | & | +| main.rs:1578:13:1578:16 | &... | &T | file://:0:0:0:0 | & | +| main.rs:1578:13:1578:16 | &... | &T | main.rs:1562:5:1562:13 | S | +| main.rs:1578:13:1578:16 | &... | &T.&T | file://:0:0:0:0 | & | +| main.rs:1578:13:1578:16 | &... | &T.&T.&T | file://:0:0:0:0 | & | +| main.rs:1578:13:1578:16 | &... | &T.&T.&T.&T | main.rs:1562:5:1562:13 | S | +| main.rs:1578:14:1578:16 | &... | | file://:0:0:0:0 | & | +| main.rs:1578:14:1578:16 | &... | &T | file://:0:0:0:0 | & | +| main.rs:1578:14:1578:16 | &... | &T.&T | file://:0:0:0:0 | & | +| main.rs:1578:14:1578:16 | &... | &T.&T.&T | main.rs:1562:5:1562:13 | S | +| main.rs:1578:15:1578:16 | &x | | file://:0:0:0:0 | & | +| main.rs:1578:15:1578:16 | &x | &T | file://:0:0:0:0 | & | +| main.rs:1578:15:1578:16 | &x | &T.&T | main.rs:1562:5:1562:13 | S | +| main.rs:1578:16:1578:16 | x | | file://:0:0:0:0 | & | +| main.rs:1578:16:1578:16 | x | &T | main.rs:1562:5:1562:13 | S | +| main.rs:1583:13:1583:13 | x | | main.rs:1562:5:1562:13 | S | +| main.rs:1583:17:1583:20 | S {...} | | main.rs:1562:5:1562:13 | S | +| main.rs:1584:9:1584:9 | x | | main.rs:1562:5:1562:13 | S | +| main.rs:1584:9:1584:14 | x.f1() | | file://:0:0:0:0 | & | +| main.rs:1584:9:1584:14 | x.f1() | &T | main.rs:1562:5:1562:13 | S | +| main.rs:1585:9:1585:9 | x | | main.rs:1562:5:1562:13 | S | +| main.rs:1585:9:1585:14 | x.f2() | | file://:0:0:0:0 | & | +| main.rs:1585:9:1585:14 | x.f2() | &T | main.rs:1562:5:1562:13 | S | +| main.rs:1586:9:1586:17 | ...::f3(...) | | file://:0:0:0:0 | & | +| main.rs:1586:9:1586:17 | ...::f3(...) | &T | main.rs:1562:5:1562:13 | S | +| main.rs:1586:15:1586:16 | &x | | file://:0:0:0:0 | & | +| main.rs:1586:15:1586:16 | &x | &T | main.rs:1562:5:1562:13 | S | +| main.rs:1586:16:1586:16 | x | | main.rs:1562:5:1562:13 | S | +| main.rs:1588:13:1588:13 | n | | {EXTERNAL LOCATION} | bool | +| main.rs:1588:17:1588:24 | * ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1588:18:1588:24 | * ... | | file://:0:0:0:0 | & | +| main.rs:1588:18:1588:24 | * ... | &T | {EXTERNAL LOCATION} | bool | +| main.rs:1588:19:1588:24 | &... | | file://:0:0:0:0 | & | +| main.rs:1588:19:1588:24 | &... | &T | file://:0:0:0:0 | & | +| main.rs:1588:19:1588:24 | &... | &T.&T | {EXTERNAL LOCATION} | bool | +| main.rs:1588:20:1588:24 | &true | | file://:0:0:0:0 | & | +| main.rs:1588:20:1588:24 | &true | &T | {EXTERNAL LOCATION} | bool | +| main.rs:1588:21:1588:24 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1592:17:1592:20 | flag | | main.rs:1551:5:1554:5 | MyFlag | +| main.rs:1592:24:1592:41 | ...::default(...) | | main.rs:1551:5:1554:5 | MyFlag | +| main.rs:1593:22:1593:30 | &mut flag | | file://:0:0:0:0 | & | +| main.rs:1593:22:1593:30 | &mut flag | &T | main.rs:1551:5:1554:5 | MyFlag | +| main.rs:1593:27:1593:30 | flag | | main.rs:1551:5:1554:5 | MyFlag | +| main.rs:1594:18:1594:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1594:18:1594:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1594:18:1594:29 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1594:18:1594:29 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1594:26:1594:29 | flag | | main.rs:1551:5:1554:5 | MyFlag | +| main.rs:1609:43:1612:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1609:43:1612:5 | { ... } | E | main.rs:1601:5:1602:14 | S1 | +| main.rs:1609:43:1612:5 | { ... } | T | main.rs:1601:5:1602:14 | S1 | +| main.rs:1610:13:1610:13 | x | | main.rs:1601:5:1602:14 | S1 | +| main.rs:1610:17:1610:30 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1610:17:1610:30 | ...::Ok(...) | T | main.rs:1601:5:1602:14 | S1 | +| main.rs:1610:17:1610:31 | TryExpr | | main.rs:1601:5:1602:14 | S1 | +| main.rs:1610:28:1610:29 | S1 | | main.rs:1601:5:1602:14 | S1 | +| main.rs:1611:9:1611:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1611:9:1611:22 | ...::Ok(...) | E | main.rs:1601:5:1602:14 | S1 | +| main.rs:1611:9:1611:22 | ...::Ok(...) | T | main.rs:1601:5:1602:14 | S1 | +| main.rs:1611:20:1611:21 | S1 | | main.rs:1601:5:1602:14 | S1 | +| main.rs:1616:46:1620:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1616:46:1620:5 | { ... } | E | main.rs:1604:5:1605:14 | S2 | +| main.rs:1616:46:1620:5 | { ... } | T | main.rs:1601:5:1602:14 | S1 | +| main.rs:1617:13:1617:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1617:13:1617:13 | x | T | main.rs:1601:5:1602:14 | S1 | +| main.rs:1617:17:1617:30 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1617:17:1617:30 | ...::Ok(...) | T | main.rs:1601:5:1602:14 | S1 | +| main.rs:1617:28:1617:29 | S1 | | main.rs:1601:5:1602:14 | S1 | +| main.rs:1618:13:1618:13 | y | | main.rs:1601:5:1602:14 | S1 | +| main.rs:1618:17:1618:17 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1618:17:1618:17 | x | T | main.rs:1601:5:1602:14 | S1 | +| main.rs:1618:17:1618:18 | TryExpr | | main.rs:1601:5:1602:14 | S1 | +| main.rs:1619:9:1619:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1619:9:1619:22 | ...::Ok(...) | E | main.rs:1604:5:1605:14 | S2 | +| main.rs:1619:9:1619:22 | ...::Ok(...) | T | main.rs:1601:5:1602:14 | S1 | +| main.rs:1619:20:1619:21 | S1 | | main.rs:1601:5:1602:14 | S1 | +| main.rs:1624:40:1629:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1624:40:1629:5 | { ... } | E | main.rs:1604:5:1605:14 | S2 | +| main.rs:1624:40:1629:5 | { ... } | T | main.rs:1601:5:1602:14 | S1 | +| main.rs:1625:13:1625:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1625:13:1625:13 | x | T | {EXTERNAL LOCATION} | Result | +| main.rs:1625:13:1625:13 | x | T.T | main.rs:1601:5:1602:14 | S1 | +| main.rs:1625:17:1625:42 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1625:17:1625:42 | ...::Ok(...) | T | {EXTERNAL LOCATION} | Result | +| main.rs:1625:17:1625:42 | ...::Ok(...) | T.T | main.rs:1601:5:1602:14 | S1 | +| main.rs:1625:28:1625:41 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1625:28:1625:41 | ...::Ok(...) | T | main.rs:1601:5:1602:14 | S1 | +| main.rs:1625:39:1625:40 | S1 | | main.rs:1601:5:1602:14 | S1 | +| main.rs:1627:17:1627:17 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1627:17:1627:17 | x | T | {EXTERNAL LOCATION} | Result | +| main.rs:1627:17:1627:17 | x | T.T | main.rs:1601:5:1602:14 | S1 | +| main.rs:1627:17:1627:18 | TryExpr | | {EXTERNAL LOCATION} | Result | +| main.rs:1627:17:1627:18 | TryExpr | T | main.rs:1601:5:1602:14 | S1 | +| main.rs:1627:17:1627:29 | ... .map(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1627:24:1627:28 | \|...\| s | | {EXTERNAL LOCATION} | dyn FnOnce | +| main.rs:1627:24:1627:28 | \|...\| s | dyn(Args) | file://:0:0:0:0 | (T_1) | +| main.rs:1628:9:1628:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1628:9:1628:22 | ...::Ok(...) | E | main.rs:1604:5:1605:14 | S2 | +| main.rs:1628:9:1628:22 | ...::Ok(...) | T | main.rs:1601:5:1602:14 | S1 | +| main.rs:1628:20:1628:21 | S1 | | main.rs:1601:5:1602:14 | S1 | +| main.rs:1633:30:1633:34 | input | | {EXTERNAL LOCATION} | Result | +| main.rs:1633:30:1633:34 | input | E | main.rs:1601:5:1602:14 | S1 | +| main.rs:1633:30:1633:34 | input | T | main.rs:1633:20:1633:27 | T | +| main.rs:1633:69:1640:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1633:69:1640:5 | { ... } | E | main.rs:1601:5:1602:14 | S1 | +| main.rs:1633:69:1640:5 | { ... } | T | main.rs:1633:20:1633:27 | T | +| main.rs:1634:13:1634:17 | value | | main.rs:1633:20:1633:27 | T | +| main.rs:1634:21:1634:25 | input | | {EXTERNAL LOCATION} | Result | +| main.rs:1634:21:1634:25 | input | E | main.rs:1601:5:1602:14 | S1 | +| main.rs:1634:21:1634:25 | input | T | main.rs:1633:20:1633:27 | T | +| main.rs:1634:21:1634:26 | TryExpr | | main.rs:1633:20:1633:27 | T | +| main.rs:1635:22:1635:38 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1635:22:1635:38 | ...::Ok(...) | E | main.rs:1601:5:1602:14 | S1 | +| main.rs:1635:22:1635:38 | ...::Ok(...) | T | main.rs:1633:20:1633:27 | T | +| main.rs:1635:22:1638:10 | ... .and_then(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1635:22:1638:10 | ... .and_then(...) | E | main.rs:1601:5:1602:14 | S1 | +| main.rs:1635:33:1635:37 | value | | main.rs:1633:20:1633:27 | T | +| main.rs:1635:49:1638:9 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | +| main.rs:1635:49:1638:9 | \|...\| ... | dyn(Args) | file://:0:0:0:0 | (T_1) | +| main.rs:1635:49:1638:9 | \|...\| ... | dyn(Output) | {EXTERNAL LOCATION} | Result | +| main.rs:1635:49:1638:9 | \|...\| ... | dyn(Output).E | main.rs:1601:5:1602:14 | S1 | +| main.rs:1635:53:1638:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1635:53:1638:9 | { ... } | E | main.rs:1601:5:1602:14 | S1 | +| main.rs:1636:22:1636:27 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1636:22:1636:27 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1636:22:1636:30 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1636:22:1636:30 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1637:13:1637:34 | ...::Ok::<...>(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1637:13:1637:34 | ...::Ok::<...>(...) | E | main.rs:1601:5:1602:14 | S1 | +| main.rs:1639:9:1639:23 | ...::Err(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1639:9:1639:23 | ...::Err(...) | E | main.rs:1601:5:1602:14 | S1 | +| main.rs:1639:9:1639:23 | ...::Err(...) | T | main.rs:1633:20:1633:27 | T | +| main.rs:1639:21:1639:22 | S1 | | main.rs:1601:5:1602:14 | S1 | +| main.rs:1644:16:1644:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1644:16:1644:33 | ...::Ok(...) | E | main.rs:1601:5:1602:14 | S1 | +| main.rs:1644:16:1644:33 | ...::Ok(...) | T | main.rs:1601:5:1602:14 | S1 | +| main.rs:1644:27:1644:32 | result | | main.rs:1601:5:1602:14 | S1 | +| main.rs:1644:37:1644:52 | try_same_error(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1644:37:1644:52 | try_same_error(...) | E | main.rs:1601:5:1602:14 | S1 | +| main.rs:1644:37:1644:52 | try_same_error(...) | T | main.rs:1601:5:1602:14 | S1 | +| main.rs:1645:22:1645:27 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1645:22:1645:27 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1645:22:1645:35 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1645:22:1645:35 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1645:30:1645:35 | result | | main.rs:1601:5:1602:14 | S1 | +| main.rs:1648:16:1648:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1648:16:1648:33 | ...::Ok(...) | E | main.rs:1604:5:1605:14 | S2 | +| main.rs:1648:16:1648:33 | ...::Ok(...) | T | main.rs:1601:5:1602:14 | S1 | +| main.rs:1648:27:1648:32 | result | | main.rs:1601:5:1602:14 | S1 | +| main.rs:1648:37:1648:55 | try_convert_error(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1648:37:1648:55 | try_convert_error(...) | E | main.rs:1604:5:1605:14 | S2 | +| main.rs:1648:37:1648:55 | try_convert_error(...) | T | main.rs:1601:5:1602:14 | S1 | +| main.rs:1649:22:1649:27 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1649:22:1649:27 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1649:22:1649:35 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1649:22:1649:35 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1649:30:1649:35 | result | | main.rs:1601:5:1602:14 | S1 | +| main.rs:1652:16:1652:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1652:16:1652:33 | ...::Ok(...) | E | main.rs:1604:5:1605:14 | S2 | +| main.rs:1652:16:1652:33 | ...::Ok(...) | T | main.rs:1601:5:1602:14 | S1 | +| main.rs:1652:27:1652:32 | result | | main.rs:1601:5:1602:14 | S1 | +| main.rs:1652:37:1652:49 | try_chained(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1652:37:1652:49 | try_chained(...) | E | main.rs:1604:5:1605:14 | S2 | +| main.rs:1652:37:1652:49 | try_chained(...) | T | main.rs:1601:5:1602:14 | S1 | +| main.rs:1653:22:1653:27 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1653:22:1653:27 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1653:22:1653:35 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1653:22:1653:35 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1653:30:1653:35 | result | | main.rs:1601:5:1602:14 | S1 | +| main.rs:1656:16:1656:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1656:16:1656:33 | ...::Ok(...) | E | main.rs:1601:5:1602:14 | S1 | +| main.rs:1656:16:1656:33 | ...::Ok(...) | T | main.rs:1601:5:1602:14 | S1 | +| main.rs:1656:27:1656:32 | result | | main.rs:1601:5:1602:14 | S1 | +| main.rs:1656:37:1656:63 | try_complex(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1656:37:1656:63 | try_complex(...) | E | main.rs:1601:5:1602:14 | S1 | +| main.rs:1656:37:1656:63 | try_complex(...) | T | main.rs:1601:5:1602:14 | S1 | +| main.rs:1656:49:1656:62 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1656:49:1656:62 | ...::Ok(...) | E | main.rs:1601:5:1602:14 | S1 | +| main.rs:1656:49:1656:62 | ...::Ok(...) | T | main.rs:1601:5:1602:14 | S1 | +| main.rs:1656:60:1656:61 | S1 | | main.rs:1601:5:1602:14 | S1 | +| main.rs:1657:22:1657:27 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1657:22:1657:27 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1657:22:1657:35 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1657:22:1657:35 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1657:30:1657:35 | result | | main.rs:1601:5:1602:14 | S1 | +| main.rs:1664:13:1664:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1664:22:1664:22 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1665:13:1665:13 | y | | {EXTERNAL LOCATION} | i32 | +| main.rs:1665:17:1665:17 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1666:13:1666:13 | z | | {EXTERNAL LOCATION} | i32 | +| main.rs:1666:17:1666:17 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1666:17:1666:21 | ... + ... | | {EXTERNAL LOCATION} | i32 | +| main.rs:1666:21:1666:21 | y | | {EXTERNAL LOCATION} | i32 | +| main.rs:1667:13:1667:13 | z | | {EXTERNAL LOCATION} | i32 | +| main.rs:1667:17:1667:17 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1667:17:1667:23 | x.abs() | | {EXTERNAL LOCATION} | i32 | +| main.rs:1668:13:1668:13 | c | | {EXTERNAL LOCATION} | char | +| main.rs:1668:17:1668:19 | 'c' | | {EXTERNAL LOCATION} | char | +| main.rs:1669:13:1669:17 | hello | | file://:0:0:0:0 | & | +| main.rs:1669:13:1669:17 | hello | &T | {EXTERNAL LOCATION} | str | +| main.rs:1669:21:1669:27 | "Hello" | | file://:0:0:0:0 | & | +| main.rs:1669:21:1669:27 | "Hello" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1670:13:1670:13 | f | | {EXTERNAL LOCATION} | f64 | +| main.rs:1670:17:1670:24 | 123.0f64 | | {EXTERNAL LOCATION} | f64 | +| main.rs:1671:13:1671:13 | t | | {EXTERNAL LOCATION} | bool | +| main.rs:1671:17:1671:20 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1672:13:1672:13 | f | | {EXTERNAL LOCATION} | bool | +| main.rs:1672:17:1672:21 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1679:13:1679:13 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:1679:17:1679:20 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1679:17:1679:29 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1679:25:1679:29 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1680:13:1680:13 | y | | {EXTERNAL LOCATION} | bool | +| main.rs:1680:17:1680:20 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1680:17:1680:29 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1680:25:1680:29 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1682:17:1682:17 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1683:13:1683:16 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:1683:20:1683:21 | 34 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1683:20:1683:27 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1683:26:1683:27 | 33 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1684:12:1684:15 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:1685:17:1685:17 | z | | file://:0:0:0:0 | () | +| main.rs:1685:21:1685:27 | (...) | | file://:0:0:0:0 | () | +| main.rs:1685:22:1685:22 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1685:22:1685:26 | ... = ... | | file://:0:0:0:0 | () | +| main.rs:1685:26:1685:26 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1687:13:1687:13 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1687:13:1687:17 | ... = ... | | file://:0:0:0:0 | () | +| main.rs:1687:17:1687:17 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1689:9:1689:9 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1703:30:1705:9 | { ... } | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1704:13:1704:31 | Vec2 {...} | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1704:23:1704:23 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1704:23:1704:23 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1704:29:1704:29 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1704:29:1704:29 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1711:16:1711:19 | SelfParam | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1711:22:1711:24 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1711:41:1716:9 | { ... } | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1712:13:1715:13 | Vec2 {...} | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1713:20:1713:23 | self | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1713:20:1713:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1713:20:1713:33 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1713:29:1713:31 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1713:29:1713:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1714:20:1714:23 | self | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1714:20:1714:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1714:20:1714:33 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1714:29:1714:31 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1714:29:1714:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1721:23:1721:31 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1721:23:1721:31 | SelfParam | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1721:34:1721:36 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1722:13:1722:16 | self | | file://:0:0:0:0 | & | +| main.rs:1722:13:1722:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1722:13:1722:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1722:13:1722:27 | ... += ... | | file://:0:0:0:0 | () | +| main.rs:1722:23:1722:25 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1722:23:1722:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1723:13:1723:16 | self | | file://:0:0:0:0 | & | +| main.rs:1723:13:1723:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1723:13:1723:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1723:13:1723:27 | ... += ... | | file://:0:0:0:0 | () | +| main.rs:1723:23:1723:25 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1723:23:1723:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1729:16:1729:19 | SelfParam | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1729:22:1729:24 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1729:41:1734:9 | { ... } | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1730:13:1733:13 | Vec2 {...} | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1731:20:1731:23 | self | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1731:20:1731:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1731:20:1731:33 | ... - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1731:29:1731:31 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1731:29:1731:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1732:20:1732:23 | self | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1732:20:1732:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1732:20:1732:33 | ... - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1732:29:1732:31 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1732:29:1732:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1739:23:1739:31 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1739:23:1739:31 | SelfParam | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1739:34:1739:36 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1740:13:1740:16 | self | | file://:0:0:0:0 | & | +| main.rs:1740:13:1740:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1740:13:1740:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1740:13:1740:27 | ... -= ... | | file://:0:0:0:0 | () | +| main.rs:1740:23:1740:25 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1740:23:1740:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1741:13:1741:16 | self | | file://:0:0:0:0 | & | +| main.rs:1741:13:1741:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1741:13:1741:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1741:13:1741:27 | ... -= ... | | file://:0:0:0:0 | () | +| main.rs:1741:23:1741:25 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1741:23:1741:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1747:16:1747:19 | SelfParam | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1747:22:1747:24 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1747:41:1752:9 | { ... } | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1748:13:1751:13 | Vec2 {...} | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1749:20:1749:23 | self | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1749:20:1749:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1749:20:1749:33 | ... * ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1749:29:1749:31 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1749:29:1749:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1750:20:1750:23 | self | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1750:20:1750:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1750:20:1750:33 | ... * ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1750:29:1750:31 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1750:29:1750:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1756:23:1756:31 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1756:23:1756:31 | SelfParam | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1756:34:1756:36 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1757:13:1757:16 | self | | file://:0:0:0:0 | & | +| main.rs:1757:13:1757:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1757:13:1757:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1757:13:1757:27 | ... *= ... | | file://:0:0:0:0 | () | +| main.rs:1757:23:1757:25 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1757:23:1757:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1758:13:1758:16 | self | | file://:0:0:0:0 | & | +| main.rs:1758:13:1758:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1758:13:1758:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1758:13:1758:27 | ... *= ... | | file://:0:0:0:0 | () | +| main.rs:1758:23:1758:25 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1758:23:1758:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1764:16:1764:19 | SelfParam | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1764:22:1764:24 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1764:41:1769:9 | { ... } | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1765:13:1768:13 | Vec2 {...} | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1766:20:1766:23 | self | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1766:20:1766:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1766:20:1766:33 | ... / ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1766:29:1766:31 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1766:29:1766:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1767:20:1767:23 | self | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1767:20:1767:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1767:20:1767:33 | ... / ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1767:29:1767:31 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1767:29:1767:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1773:23:1773:31 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1773:23:1773:31 | SelfParam | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1773:34:1773:36 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1774:13:1774:16 | self | | file://:0:0:0:0 | & | +| main.rs:1774:13:1774:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1774:13:1774:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1774:13:1774:27 | ... /= ... | | file://:0:0:0:0 | () | +| main.rs:1774:23:1774:25 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1774:23:1774:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1775:13:1775:16 | self | | file://:0:0:0:0 | & | +| main.rs:1775:13:1775:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1775:13:1775:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1775:13:1775:27 | ... /= ... | | file://:0:0:0:0 | () | +| main.rs:1775:23:1775:25 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1775:23:1775:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1781:16:1781:19 | SelfParam | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1781:22:1781:24 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1781:41:1786:9 | { ... } | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1782:13:1785:13 | Vec2 {...} | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1783:20:1783:23 | self | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1783:20:1783:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1783:20:1783:33 | ... % ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1783:29:1783:31 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1783:29:1783:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1784:20:1784:23 | self | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1784:20:1784:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1784:20:1784:33 | ... % ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1784:29:1784:31 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1784:29:1784:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1790:23:1790:31 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1790:23:1790:31 | SelfParam | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1790:34:1790:36 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1791:13:1791:16 | self | | file://:0:0:0:0 | & | +| main.rs:1791:13:1791:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1791:13:1791:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1791:13:1791:27 | ... %= ... | | file://:0:0:0:0 | () | +| main.rs:1791:23:1791:25 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1791:23:1791:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1792:13:1792:16 | self | | file://:0:0:0:0 | & | +| main.rs:1792:13:1792:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1792:13:1792:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1792:13:1792:27 | ... %= ... | | file://:0:0:0:0 | () | +| main.rs:1792:23:1792:25 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1792:23:1792:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1798:19:1798:22 | SelfParam | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1798:25:1798:27 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1798:44:1803:9 | { ... } | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1799:13:1802:13 | Vec2 {...} | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1800:20:1800:23 | self | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1800:20:1800:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1800:20:1800:33 | ... & ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1800:29:1800:31 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1800:29:1800:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1801:20:1801:23 | self | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1801:20:1801:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1801:20:1801:33 | ... & ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1801:29:1801:31 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1801:29:1801:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1807:26:1807:34 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1807:26:1807:34 | SelfParam | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1807:37:1807:39 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1808:13:1808:16 | self | | file://:0:0:0:0 | & | +| main.rs:1808:13:1808:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1808:13:1808:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1808:13:1808:27 | ... &= ... | | file://:0:0:0:0 | () | +| main.rs:1808:23:1808:25 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1808:23:1808:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1809:13:1809:16 | self | | file://:0:0:0:0 | & | +| main.rs:1809:13:1809:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1809:13:1809:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1809:13:1809:27 | ... &= ... | | file://:0:0:0:0 | () | +| main.rs:1809:23:1809:25 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1809:23:1809:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1815:18:1815:21 | SelfParam | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1815:24:1815:26 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1815:43:1820:9 | { ... } | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1816:13:1819:13 | Vec2 {...} | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1817:20:1817:23 | self | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1817:20:1817:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1817:20:1817:33 | ... \| ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1817:29:1817:31 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1817:29:1817:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1818:20:1818:23 | self | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1818:20:1818:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1818:20:1818:33 | ... \| ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1818:29:1818:31 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1818:29:1818:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1824:25:1824:33 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1824:25:1824:33 | SelfParam | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1824:36:1824:38 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1825:13:1825:16 | self | | file://:0:0:0:0 | & | +| main.rs:1825:13:1825:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1825:13:1825:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1825:13:1825:27 | ... \|= ... | | file://:0:0:0:0 | () | +| main.rs:1825:23:1825:25 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1825:23:1825:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1826:13:1826:16 | self | | file://:0:0:0:0 | & | +| main.rs:1826:13:1826:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1826:13:1826:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1826:13:1826:27 | ... \|= ... | | file://:0:0:0:0 | () | +| main.rs:1826:23:1826:25 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1826:23:1826:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1832:19:1832:22 | SelfParam | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1832:25:1832:27 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1832:44:1837:9 | { ... } | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1833:13:1836:13 | Vec2 {...} | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1834:20:1834:23 | self | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1834:20:1834:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1834:20:1834:33 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1834:29:1834:31 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1834:29:1834:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1835:20:1835:23 | self | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1835:20:1835:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1835:20:1835:33 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1835:29:1835:31 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1835:29:1835:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1841:26:1841:34 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1841:26:1841:34 | SelfParam | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1841:37:1841:39 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1842:13:1842:16 | self | | file://:0:0:0:0 | & | +| main.rs:1842:13:1842:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1842:13:1842:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1842:13:1842:27 | ... ^= ... | | file://:0:0:0:0 | () | +| main.rs:1842:23:1842:25 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1842:23:1842:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1843:13:1843:16 | self | | file://:0:0:0:0 | & | +| main.rs:1843:13:1843:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1843:13:1843:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1843:13:1843:27 | ... ^= ... | | file://:0:0:0:0 | () | +| main.rs:1843:23:1843:25 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1843:23:1843:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1849:16:1849:19 | SelfParam | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1849:22:1849:24 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1849:40:1854:9 | { ... } | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1850:13:1853:13 | Vec2 {...} | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1851:20:1851:23 | self | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1851:20:1851:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1851:20:1851:32 | ... << ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1851:30:1851:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1852:20:1852:23 | self | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1852:20:1852:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1852:20:1852:32 | ... << ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1852:30:1852:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1858:23:1858:31 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1858:23:1858:31 | SelfParam | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1858:34:1858:36 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1859:13:1859:16 | self | | file://:0:0:0:0 | & | +| main.rs:1859:13:1859:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1859:13:1859:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1859:13:1859:26 | ... <<= ... | | file://:0:0:0:0 | () | +| main.rs:1859:24:1859:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1860:13:1860:16 | self | | file://:0:0:0:0 | & | +| main.rs:1860:13:1860:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1860:13:1860:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1860:13:1860:26 | ... <<= ... | | file://:0:0:0:0 | () | +| main.rs:1860:24:1860:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1866:16:1866:19 | SelfParam | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1866:22:1866:24 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1866:40:1871:9 | { ... } | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1867:13:1870:13 | Vec2 {...} | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1868:20:1868:23 | self | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1868:20:1868:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1868:20:1868:32 | ... >> ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1868:30:1868:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1869:20:1869:23 | self | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1869:20:1869:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1869:20:1869:32 | ... >> ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1869:30:1869:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1875:23:1875:31 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1875:23:1875:31 | SelfParam | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1875:34:1875:36 | rhs | | {EXTERNAL LOCATION} | u32 | | main.rs:1876:13:1876:16 | self | | file://:0:0:0:0 | & | -| main.rs:1876:13:1876:16 | self | &T | main.rs:1651:5:1656:5 | Vec2 | +| main.rs:1876:13:1876:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | | main.rs:1876:13:1876:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1876:13:1876:29 | ... <= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1876:13:1876:50 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1876:23:1876:27 | other | | file://:0:0:0:0 | & | -| main.rs:1876:23:1876:27 | other | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1876:23:1876:29 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1876:34:1876:37 | self | | file://:0:0:0:0 | & | -| main.rs:1876:34:1876:37 | self | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1876:34:1876:39 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1876:34:1876:50 | ... <= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1876:44:1876:48 | other | | file://:0:0:0:0 | & | -| main.rs:1876:44:1876:48 | other | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1876:44:1876:50 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1879:15:1879:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1879:15:1879:19 | SelfParam | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1879:22:1879:26 | other | | file://:0:0:0:0 | & | -| main.rs:1879:22:1879:26 | other | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1879:44:1881:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:1880:13:1880:16 | self | | file://:0:0:0:0 | & | -| main.rs:1880:13:1880:16 | self | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1880:13:1880:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1880:13:1880:28 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1880:13:1880:48 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1880:22:1880:26 | other | | file://:0:0:0:0 | & | -| main.rs:1880:22:1880:26 | other | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1880:22:1880:28 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1880:33:1880:36 | self | | file://:0:0:0:0 | & | -| main.rs:1880:33:1880:36 | self | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1880:33:1880:38 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1880:33:1880:48 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1880:42:1880:46 | other | | file://:0:0:0:0 | & | -| main.rs:1880:42:1880:46 | other | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1880:42:1880:48 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1883:15:1883:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1883:15:1883:19 | SelfParam | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1883:22:1883:26 | other | | file://:0:0:0:0 | & | -| main.rs:1883:22:1883:26 | other | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1883:44:1885:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:1884:13:1884:16 | self | | file://:0:0:0:0 | & | -| main.rs:1884:13:1884:16 | self | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1884:13:1884:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1884:13:1884:29 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1884:13:1884:50 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1884:23:1884:27 | other | | file://:0:0:0:0 | & | -| main.rs:1884:23:1884:27 | other | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1884:23:1884:29 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1884:34:1884:37 | self | | file://:0:0:0:0 | & | -| main.rs:1884:34:1884:37 | self | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1884:34:1884:39 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1884:34:1884:50 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1884:44:1884:48 | other | | file://:0:0:0:0 | & | -| main.rs:1884:44:1884:48 | other | &T | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1884:44:1884:50 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1888:26:1888:26 | a | | main.rs:1888:18:1888:23 | T | -| main.rs:1888:32:1888:32 | b | | main.rs:1888:18:1888:23 | T | -| main.rs:1888:51:1890:5 | { ... } | | {EXTERNAL LOCATION} | Output | -| main.rs:1889:9:1889:9 | a | | main.rs:1888:18:1888:23 | T | -| main.rs:1889:9:1889:13 | ... + ... | | {EXTERNAL LOCATION} | Output | -| main.rs:1889:13:1889:13 | b | | main.rs:1888:18:1888:23 | T | -| main.rs:1896:13:1896:18 | i64_eq | | {EXTERNAL LOCATION} | bool | -| main.rs:1896:22:1896:35 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:1896:23:1896:26 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1896:23:1896:34 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1896:31:1896:34 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1897:13:1897:18 | i64_ne | | {EXTERNAL LOCATION} | bool | -| main.rs:1897:22:1897:35 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:1897:23:1897:26 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1897:23:1897:34 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1897:31:1897:34 | 4i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1898:13:1898:18 | i64_lt | | {EXTERNAL LOCATION} | bool | -| main.rs:1898:22:1898:34 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:1898:23:1898:26 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1898:23:1898:33 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1898:30:1898:33 | 6i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1899:13:1899:18 | i64_le | | {EXTERNAL LOCATION} | bool | -| main.rs:1899:22:1899:35 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:1899:23:1899:26 | 7i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1899:23:1899:34 | ... <= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1899:31:1899:34 | 8i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1900:13:1900:18 | i64_gt | | {EXTERNAL LOCATION} | bool | -| main.rs:1900:22:1900:35 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:1900:23:1900:26 | 9i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1900:23:1900:34 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1900:30:1900:34 | 10i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1901:13:1901:18 | i64_ge | | {EXTERNAL LOCATION} | bool | -| main.rs:1901:22:1901:37 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:1901:23:1901:27 | 11i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1901:23:1901:36 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1901:32:1901:36 | 12i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1904:13:1904:19 | i64_add | | {EXTERNAL LOCATION} | i64 | -| main.rs:1904:23:1904:27 | 13i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1904:23:1904:35 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1904:31:1904:35 | 14i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1905:13:1905:19 | i64_sub | | {EXTERNAL LOCATION} | i64 | -| main.rs:1905:23:1905:27 | 15i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1905:23:1905:35 | ... - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1905:31:1905:35 | 16i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1906:13:1906:19 | i64_mul | | {EXTERNAL LOCATION} | i64 | -| main.rs:1906:23:1906:27 | 17i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1906:23:1906:35 | ... * ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1906:31:1906:35 | 18i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1907:13:1907:19 | i64_div | | {EXTERNAL LOCATION} | i64 | -| main.rs:1907:23:1907:27 | 19i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1907:23:1907:35 | ... / ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1907:31:1907:35 | 20i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1908:13:1908:19 | i64_rem | | {EXTERNAL LOCATION} | i64 | -| main.rs:1908:23:1908:27 | 21i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1908:23:1908:35 | ... % ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1908:31:1908:35 | 22i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1909:39:1909:42 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1909:45:1909:48 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1912:17:1912:30 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1912:34:1912:38 | 23i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1913:9:1913:22 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1913:9:1913:31 | ... += ... | | file://:0:0:0:0 | () | -| main.rs:1913:27:1913:31 | 24i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1915:17:1915:30 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1915:34:1915:38 | 25i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1916:9:1916:22 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1916:9:1916:31 | ... -= ... | | file://:0:0:0:0 | () | -| main.rs:1916:27:1916:31 | 26i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1918:17:1918:30 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1918:34:1918:38 | 27i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1919:9:1919:22 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1919:9:1919:31 | ... *= ... | | file://:0:0:0:0 | () | -| main.rs:1919:27:1919:31 | 28i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1921:17:1921:30 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1921:34:1921:38 | 29i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1922:9:1922:22 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1922:9:1922:31 | ... /= ... | | file://:0:0:0:0 | () | -| main.rs:1922:27:1922:31 | 30i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1924:17:1924:30 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1924:34:1924:38 | 31i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1925:9:1925:22 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1925:9:1925:31 | ... %= ... | | file://:0:0:0:0 | () | -| main.rs:1925:27:1925:31 | 32i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1928:13:1928:22 | i64_bitand | | {EXTERNAL LOCATION} | i64 | -| main.rs:1928:26:1928:30 | 33i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1928:26:1928:38 | ... & ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1928:34:1928:38 | 34i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1929:13:1929:21 | i64_bitor | | {EXTERNAL LOCATION} | i64 | -| main.rs:1929:25:1929:29 | 35i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1929:25:1929:37 | ... \| ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1929:33:1929:37 | 36i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1930:13:1930:22 | i64_bitxor | | {EXTERNAL LOCATION} | i64 | -| main.rs:1930:26:1930:30 | 37i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1930:26:1930:38 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1930:34:1930:38 | 38i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1931:13:1931:19 | i64_shl | | {EXTERNAL LOCATION} | i64 | -| main.rs:1931:23:1931:27 | 39i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1931:23:1931:36 | ... << ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1931:32:1931:36 | 40i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1932:13:1932:19 | i64_shr | | {EXTERNAL LOCATION} | i64 | -| main.rs:1932:23:1932:27 | 41i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1932:23:1932:36 | ... >> ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1932:32:1932:36 | 42i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1935:17:1935:33 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1935:37:1935:41 | 43i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1936:9:1936:25 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1936:9:1936:34 | ... &= ... | | file://:0:0:0:0 | () | -| main.rs:1936:30:1936:34 | 44i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1938:17:1938:32 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1938:36:1938:40 | 45i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1939:9:1939:24 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1939:9:1939:33 | ... \|= ... | | file://:0:0:0:0 | () | -| main.rs:1939:29:1939:33 | 46i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1941:17:1941:33 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1941:37:1941:41 | 47i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1942:9:1942:25 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1942:9:1942:34 | ... ^= ... | | file://:0:0:0:0 | () | -| main.rs:1942:30:1942:34 | 48i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1944:17:1944:30 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1944:34:1944:38 | 49i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1945:9:1945:22 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1945:9:1945:32 | ... <<= ... | | file://:0:0:0:0 | () | -| main.rs:1945:28:1945:32 | 50i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1947:17:1947:30 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1947:34:1947:38 | 51i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1948:9:1948:22 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1948:9:1948:32 | ... >>= ... | | file://:0:0:0:0 | () | -| main.rs:1948:28:1948:32 | 52i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1950:13:1950:19 | i64_neg | | {EXTERNAL LOCATION} | i64 | -| main.rs:1950:23:1950:28 | - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1950:24:1950:28 | 53i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1951:13:1951:19 | i64_not | | {EXTERNAL LOCATION} | i64 | -| main.rs:1951:23:1951:28 | ! ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1951:24:1951:28 | 54i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1954:13:1954:14 | v1 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1954:18:1954:36 | Vec2 {...} | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1954:28:1954:28 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1954:28:1954:28 | 1 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1954:34:1954:34 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1954:34:1954:34 | 2 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1955:13:1955:14 | v2 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1955:18:1955:36 | Vec2 {...} | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1955:28:1955:28 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1955:28:1955:28 | 3 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1955:34:1955:34 | 4 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1955:34:1955:34 | 4 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1958:13:1958:19 | vec2_eq | | {EXTERNAL LOCATION} | bool | -| main.rs:1958:23:1958:24 | v1 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1958:23:1958:30 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1958:29:1958:30 | v2 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1959:13:1959:19 | vec2_ne | | {EXTERNAL LOCATION} | bool | -| main.rs:1959:23:1959:24 | v1 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1959:23:1959:30 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1959:29:1959:30 | v2 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1960:13:1960:19 | vec2_lt | | {EXTERNAL LOCATION} | bool | -| main.rs:1960:23:1960:24 | v1 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1960:23:1960:29 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1960:28:1960:29 | v2 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1961:13:1961:19 | vec2_le | | {EXTERNAL LOCATION} | bool | -| main.rs:1961:23:1961:24 | v1 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1961:23:1961:30 | ... <= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1961:29:1961:30 | v2 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1962:13:1962:19 | vec2_gt | | {EXTERNAL LOCATION} | bool | -| main.rs:1962:23:1962:24 | v1 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1962:23:1962:29 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1962:28:1962:29 | v2 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1963:13:1963:19 | vec2_ge | | {EXTERNAL LOCATION} | bool | -| main.rs:1963:23:1963:24 | v1 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1963:23:1963:30 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1963:29:1963:30 | v2 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1966:13:1966:20 | vec2_add | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1966:24:1966:25 | v1 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1966:24:1966:30 | ... + ... | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1966:29:1966:30 | v2 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1967:13:1967:20 | vec2_sub | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1967:24:1967:25 | v1 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1967:24:1967:30 | ... - ... | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1967:29:1967:30 | v2 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1968:13:1968:20 | vec2_mul | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1968:24:1968:25 | v1 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1968:24:1968:30 | ... * ... | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1968:29:1968:30 | v2 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1969:13:1969:20 | vec2_div | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1969:24:1969:25 | v1 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1969:24:1969:30 | ... / ... | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1969:29:1969:30 | v2 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1970:13:1970:20 | vec2_rem | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1970:24:1970:25 | v1 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1970:24:1970:30 | ... % ... | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1970:29:1970:30 | v2 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1973:17:1973:31 | vec2_add_assign | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1973:35:1973:36 | v1 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1974:9:1974:23 | vec2_add_assign | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1974:9:1974:29 | ... += ... | | file://:0:0:0:0 | () | -| main.rs:1974:28:1974:29 | v2 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1976:17:1976:31 | vec2_sub_assign | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1976:35:1976:36 | v1 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1977:9:1977:23 | vec2_sub_assign | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1977:9:1977:29 | ... -= ... | | file://:0:0:0:0 | () | -| main.rs:1977:28:1977:29 | v2 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1979:17:1979:31 | vec2_mul_assign | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1979:35:1979:36 | v1 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1980:9:1980:23 | vec2_mul_assign | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1980:9:1980:29 | ... *= ... | | file://:0:0:0:0 | () | -| main.rs:1980:28:1980:29 | v2 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1982:17:1982:31 | vec2_div_assign | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1982:35:1982:36 | v1 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1983:9:1983:23 | vec2_div_assign | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1983:9:1983:29 | ... /= ... | | file://:0:0:0:0 | () | -| main.rs:1983:28:1983:29 | v2 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1985:17:1985:31 | vec2_rem_assign | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1985:35:1985:36 | v1 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1986:9:1986:23 | vec2_rem_assign | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1986:9:1986:29 | ... %= ... | | file://:0:0:0:0 | () | -| main.rs:1986:28:1986:29 | v2 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1989:13:1989:23 | vec2_bitand | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1989:27:1989:28 | v1 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1989:27:1989:33 | ... & ... | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1989:32:1989:33 | v2 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1990:13:1990:22 | vec2_bitor | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1990:26:1990:27 | v1 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1990:26:1990:32 | ... \| ... | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1990:31:1990:32 | v2 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1991:13:1991:23 | vec2_bitxor | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1991:27:1991:28 | v1 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1991:27:1991:33 | ... ^ ... | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1991:32:1991:33 | v2 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1992:13:1992:20 | vec2_shl | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1992:24:1992:25 | v1 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1992:24:1992:33 | ... << ... | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1992:30:1992:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:1993:13:1993:20 | vec2_shr | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1993:24:1993:25 | v1 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1993:24:1993:33 | ... >> ... | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1993:30:1993:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:1996:17:1996:34 | vec2_bitand_assign | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1996:38:1996:39 | v1 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1997:9:1997:26 | vec2_bitand_assign | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1997:9:1997:32 | ... &= ... | | file://:0:0:0:0 | () | -| main.rs:1997:31:1997:32 | v2 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1999:17:1999:33 | vec2_bitor_assign | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:1999:37:1999:38 | v1 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:2000:9:2000:25 | vec2_bitor_assign | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:2000:9:2000:31 | ... \|= ... | | file://:0:0:0:0 | () | -| main.rs:2000:30:2000:31 | v2 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:2002:17:2002:34 | vec2_bitxor_assign | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:2002:38:2002:39 | v1 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:2003:9:2003:26 | vec2_bitxor_assign | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:2003:9:2003:32 | ... ^= ... | | file://:0:0:0:0 | () | -| main.rs:2003:31:2003:32 | v2 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:2005:17:2005:31 | vec2_shl_assign | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:2005:35:2005:36 | v1 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:2006:9:2006:23 | vec2_shl_assign | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:2006:9:2006:32 | ... <<= ... | | file://:0:0:0:0 | () | -| main.rs:2006:29:2006:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2008:17:2008:31 | vec2_shr_assign | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:2008:35:2008:36 | v1 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:2009:9:2009:23 | vec2_shr_assign | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:2009:9:2009:32 | ... >>= ... | | file://:0:0:0:0 | () | -| main.rs:2009:29:2009:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2012:13:2012:20 | vec2_neg | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:2012:24:2012:26 | - ... | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:2012:25:2012:26 | v1 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:2013:13:2013:20 | vec2_not | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:2013:24:2013:26 | ! ... | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:2013:25:2013:26 | v1 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:2016:13:2016:24 | default_vec2 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:2016:28:2016:45 | ...::default(...) | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:2017:13:2017:26 | vec2_zero_plus | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:2017:30:2017:48 | Vec2 {...} | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:2017:30:2017:63 | ... + ... | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:2017:40:2017:40 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2017:40:2017:40 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2017:46:2017:46 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2017:46:2017:46 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2017:52:2017:63 | default_vec2 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:2021:13:2021:24 | default_vec2 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:2021:28:2021:45 | ...::default(...) | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:2022:13:2022:26 | vec2_zero_plus | | {EXTERNAL LOCATION} | bool | -| main.rs:2022:30:2022:48 | Vec2 {...} | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:2022:30:2022:64 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2022:40:2022:40 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2022:40:2022:40 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2022:46:2022:46 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2022:46:2022:46 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2022:53:2022:64 | default_vec2 | | main.rs:1651:5:1656:5 | Vec2 | -| main.rs:2032:18:2032:21 | SelfParam | | main.rs:2029:5:2029:14 | S1 | -| main.rs:2035:25:2037:5 | { ... } | | main.rs:2029:5:2029:14 | S1 | -| main.rs:2036:9:2036:10 | S1 | | main.rs:2029:5:2029:14 | S1 | -| main.rs:2039:41:2041:5 | { ... } | | main.rs:2039:16:2039:39 | impl ... | -| main.rs:2040:9:2040:20 | { ... } | | {EXTERNAL LOCATION} | trait Future | -| main.rs:2040:9:2040:20 | { ... } | Output | main.rs:2029:5:2029:14 | S1 | -| main.rs:2040:17:2040:18 | S1 | | main.rs:2029:5:2029:14 | S1 | -| main.rs:2049:13:2049:42 | SelfParam | | {EXTERNAL LOCATION} | Pin | -| main.rs:2049:13:2049:42 | SelfParam | Ptr | file://:0:0:0:0 | & | -| main.rs:2049:13:2049:42 | SelfParam | Ptr.&T | main.rs:2043:5:2043:14 | S2 | -| main.rs:2050:13:2050:15 | _cx | | file://:0:0:0:0 | & | -| main.rs:2050:13:2050:15 | _cx | &T | {EXTERNAL LOCATION} | Context | -| main.rs:2051:44:2053:9 | { ... } | | {EXTERNAL LOCATION} | Poll | -| main.rs:2051:44:2053:9 | { ... } | T | main.rs:2029:5:2029:14 | S1 | -| main.rs:2052:13:2052:38 | ...::Ready(...) | | {EXTERNAL LOCATION} | Poll | -| main.rs:2052:13:2052:38 | ...::Ready(...) | T | main.rs:2029:5:2029:14 | S1 | -| main.rs:2052:36:2052:37 | S1 | | main.rs:2029:5:2029:14 | S1 | -| main.rs:2056:41:2058:5 | { ... } | | main.rs:2056:16:2056:39 | impl ... | -| main.rs:2057:9:2057:10 | S2 | | main.rs:2043:5:2043:14 | S2 | -| main.rs:2057:9:2057:10 | S2 | | main.rs:2056:16:2056:39 | impl ... | -| main.rs:2061:9:2061:12 | f1(...) | | {EXTERNAL LOCATION} | trait Future | -| main.rs:2061:9:2061:12 | f1(...) | Output | main.rs:2029:5:2029:14 | S1 | -| main.rs:2061:9:2061:18 | await ... | | main.rs:2029:5:2029:14 | S1 | -| main.rs:2062:9:2062:12 | f2(...) | | main.rs:2039:16:2039:39 | impl ... | -| main.rs:2062:9:2062:18 | await ... | | main.rs:2029:5:2029:14 | S1 | -| main.rs:2063:9:2063:12 | f3(...) | | main.rs:2056:16:2056:39 | impl ... | -| main.rs:2063:9:2063:18 | await ... | | main.rs:2029:5:2029:14 | S1 | -| main.rs:2064:9:2064:10 | S2 | | main.rs:2043:5:2043:14 | S2 | -| main.rs:2064:9:2064:16 | await S2 | | main.rs:2029:5:2029:14 | S1 | -| main.rs:2065:13:2065:13 | b | | {EXTERNAL LOCATION} | trait Future | -| main.rs:2065:13:2065:13 | b | Output | main.rs:2029:5:2029:14 | S1 | -| main.rs:2065:17:2065:28 | { ... } | | {EXTERNAL LOCATION} | trait Future | -| main.rs:2065:17:2065:28 | { ... } | Output | main.rs:2029:5:2029:14 | S1 | -| main.rs:2065:25:2065:26 | S1 | | main.rs:2029:5:2029:14 | S1 | -| main.rs:2066:9:2066:9 | b | | {EXTERNAL LOCATION} | trait Future | -| main.rs:2066:9:2066:9 | b | Output | main.rs:2029:5:2029:14 | S1 | -| main.rs:2066:9:2066:15 | await b | | main.rs:2029:5:2029:14 | S1 | -| main.rs:2077:15:2077:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2077:15:2077:19 | SelfParam | &T | main.rs:2076:5:2078:5 | Self [trait Trait1] | -| main.rs:2081:15:2081:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2081:15:2081:19 | SelfParam | &T | main.rs:2080:5:2082:5 | Self [trait Trait2] | -| main.rs:2085:15:2085:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2085:15:2085:19 | SelfParam | &T | main.rs:2071:5:2072:14 | S1 | -| main.rs:2089:15:2089:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2089:15:2089:19 | SelfParam | &T | main.rs:2071:5:2072:14 | S1 | -| main.rs:2092:37:2094:5 | { ... } | | main.rs:2092:16:2092:35 | impl ... + ... | -| main.rs:2093:9:2093:10 | S1 | | main.rs:2071:5:2072:14 | S1 | -| main.rs:2093:9:2093:10 | S1 | | main.rs:2092:16:2092:35 | impl ... + ... | -| main.rs:2097:18:2097:22 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2097:18:2097:22 | SelfParam | &T | main.rs:2096:5:2098:5 | Self [trait MyTrait] | -| main.rs:2101:18:2101:22 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2101:18:2101:22 | SelfParam | &T | main.rs:2071:5:2072:14 | S1 | -| main.rs:2101:31:2103:9 | { ... } | | main.rs:2073:5:2073:14 | S2 | -| main.rs:2102:13:2102:14 | S2 | | main.rs:2073:5:2073:14 | S2 | -| main.rs:2107:18:2107:22 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2107:18:2107:22 | SelfParam | &T | main.rs:2074:5:2074:22 | S3 | -| main.rs:2107:18:2107:22 | SelfParam | &T.T3 | main.rs:2106:10:2106:17 | T | -| main.rs:2107:30:2110:9 | { ... } | | main.rs:2106:10:2106:17 | T | -| main.rs:2108:17:2108:21 | S3(...) | | file://:0:0:0:0 | & | -| main.rs:2108:17:2108:21 | S3(...) | | main.rs:2074:5:2074:22 | S3 | -| main.rs:2108:17:2108:21 | S3(...) | &T | main.rs:2074:5:2074:22 | S3 | -| main.rs:2108:17:2108:21 | S3(...) | &T.T3 | main.rs:2106:10:2106:17 | T | -| main.rs:2108:25:2108:28 | self | | file://:0:0:0:0 | & | -| main.rs:2108:25:2108:28 | self | &T | main.rs:2074:5:2074:22 | S3 | -| main.rs:2108:25:2108:28 | self | &T.T3 | main.rs:2106:10:2106:17 | T | -| main.rs:2109:13:2109:21 | t.clone() | | main.rs:2106:10:2106:17 | T | -| main.rs:2113:45:2115:5 | { ... } | | main.rs:2113:28:2113:43 | impl ... | -| main.rs:2114:9:2114:10 | S1 | | main.rs:2071:5:2072:14 | S1 | -| main.rs:2114:9:2114:10 | S1 | | main.rs:2113:28:2113:43 | impl ... | -| main.rs:2117:41:2117:41 | t | | main.rs:2117:26:2117:38 | B | -| main.rs:2117:52:2119:5 | { ... } | | main.rs:2117:23:2117:23 | A | -| main.rs:2118:9:2118:9 | t | | main.rs:2117:26:2117:38 | B | -| main.rs:2118:9:2118:17 | t.get_a() | | main.rs:2117:23:2117:23 | A | -| main.rs:2121:34:2121:34 | x | | main.rs:2121:24:2121:31 | T | -| main.rs:2121:59:2123:5 | { ... } | | main.rs:2121:43:2121:57 | impl ... | -| main.rs:2121:59:2123:5 | { ... } | impl(T) | main.rs:2121:24:2121:31 | T | -| main.rs:2122:9:2122:13 | S3(...) | | main.rs:2074:5:2074:22 | S3 | -| main.rs:2122:9:2122:13 | S3(...) | | main.rs:2121:43:2121:57 | impl ... | -| main.rs:2122:9:2122:13 | S3(...) | T3 | main.rs:2121:24:2121:31 | T | -| main.rs:2122:9:2122:13 | S3(...) | impl(T) | main.rs:2121:24:2121:31 | T | -| main.rs:2122:12:2122:12 | x | | main.rs:2121:24:2121:31 | T | -| main.rs:2125:34:2125:34 | x | | main.rs:2125:24:2125:31 | T | -| main.rs:2125:67:2127:5 | { ... } | | {EXTERNAL LOCATION} | Option | -| main.rs:2125:67:2127:5 | { ... } | T | main.rs:2125:50:2125:64 | impl ... | -| main.rs:2125:67:2127:5 | { ... } | T.impl(T) | main.rs:2125:24:2125:31 | T | -| main.rs:2126:9:2126:19 | Some(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2126:9:2126:19 | Some(...) | T | main.rs:2074:5:2074:22 | S3 | -| main.rs:2126:9:2126:19 | Some(...) | T | main.rs:2125:50:2125:64 | impl ... | -| main.rs:2126:9:2126:19 | Some(...) | T.T3 | main.rs:2125:24:2125:31 | T | -| main.rs:2126:9:2126:19 | Some(...) | T.impl(T) | main.rs:2125:24:2125:31 | T | -| main.rs:2126:14:2126:18 | S3(...) | | main.rs:2074:5:2074:22 | S3 | -| main.rs:2126:14:2126:18 | S3(...) | | main.rs:2125:50:2125:64 | impl ... | -| main.rs:2126:14:2126:18 | S3(...) | T3 | main.rs:2125:24:2125:31 | T | -| main.rs:2126:14:2126:18 | S3(...) | impl(T) | main.rs:2125:24:2125:31 | T | -| main.rs:2126:17:2126:17 | x | | main.rs:2125:24:2125:31 | T | -| main.rs:2129:34:2129:34 | x | | main.rs:2129:24:2129:31 | T | -| main.rs:2129:78:2131:5 | { ... } | | file://:0:0:0:0 | (T_2) | -| main.rs:2129:78:2131:5 | { ... } | 0(2) | main.rs:2129:44:2129:58 | impl ... | -| main.rs:2129:78:2131:5 | { ... } | 0(2).impl(T) | main.rs:2129:24:2129:31 | T | -| main.rs:2129:78:2131:5 | { ... } | 1(2) | main.rs:2129:61:2129:75 | impl ... | -| main.rs:2129:78:2131:5 | { ... } | 1(2).impl(T) | main.rs:2129:24:2129:31 | T | -| main.rs:2130:9:2130:30 | TupleExpr | | file://:0:0:0:0 | (T_2) | -| main.rs:2130:9:2130:30 | TupleExpr | 0(2) | main.rs:2074:5:2074:22 | S3 | -| main.rs:2130:9:2130:30 | TupleExpr | 0(2) | main.rs:2129:44:2129:58 | impl ... | -| main.rs:2130:9:2130:30 | TupleExpr | 0(2).T3 | main.rs:2129:24:2129:31 | T | -| main.rs:2130:9:2130:30 | TupleExpr | 0(2).impl(T) | main.rs:2129:24:2129:31 | T | -| main.rs:2130:9:2130:30 | TupleExpr | 1(2) | main.rs:2074:5:2074:22 | S3 | -| main.rs:2130:9:2130:30 | TupleExpr | 1(2) | main.rs:2129:61:2129:75 | impl ... | -| main.rs:2130:9:2130:30 | TupleExpr | 1(2).T3 | main.rs:2129:24:2129:31 | T | -| main.rs:2130:9:2130:30 | TupleExpr | 1(2).impl(T) | main.rs:2129:24:2129:31 | T | -| main.rs:2130:10:2130:22 | S3(...) | | main.rs:2074:5:2074:22 | S3 | -| main.rs:2130:10:2130:22 | S3(...) | | main.rs:2129:44:2129:58 | impl ... | -| main.rs:2130:10:2130:22 | S3(...) | T3 | main.rs:2129:24:2129:31 | T | -| main.rs:2130:10:2130:22 | S3(...) | impl(T) | main.rs:2129:24:2129:31 | T | -| main.rs:2130:13:2130:13 | x | | main.rs:2129:24:2129:31 | T | -| main.rs:2130:13:2130:21 | x.clone() | | main.rs:2129:24:2129:31 | T | -| main.rs:2130:25:2130:29 | S3(...) | | main.rs:2074:5:2074:22 | S3 | -| main.rs:2130:25:2130:29 | S3(...) | | main.rs:2129:61:2129:75 | impl ... | -| main.rs:2130:25:2130:29 | S3(...) | T3 | main.rs:2129:24:2129:31 | T | -| main.rs:2130:25:2130:29 | S3(...) | impl(T) | main.rs:2129:24:2129:31 | T | -| main.rs:2130:28:2130:28 | x | | main.rs:2129:24:2129:31 | T | -| main.rs:2133:26:2133:26 | t | | main.rs:2133:29:2133:43 | impl ... | -| main.rs:2133:51:2135:5 | { ... } | | main.rs:2133:23:2133:23 | A | -| main.rs:2134:9:2134:9 | t | | main.rs:2133:29:2133:43 | impl ... | -| main.rs:2134:9:2134:17 | t.get_a() | | main.rs:2133:23:2133:23 | A | -| main.rs:2138:13:2138:13 | x | | main.rs:2092:16:2092:35 | impl ... + ... | -| main.rs:2138:17:2138:20 | f1(...) | | main.rs:2092:16:2092:35 | impl ... + ... | -| main.rs:2139:9:2139:9 | x | | main.rs:2092:16:2092:35 | impl ... + ... | -| main.rs:2140:9:2140:9 | x | | main.rs:2092:16:2092:35 | impl ... + ... | -| main.rs:2141:13:2141:13 | a | | main.rs:2113:28:2113:43 | impl ... | -| main.rs:2141:17:2141:32 | get_a_my_trait(...) | | main.rs:2113:28:2113:43 | impl ... | -| main.rs:2142:13:2142:13 | b | | main.rs:2073:5:2073:14 | S2 | -| main.rs:2142:17:2142:33 | uses_my_trait1(...) | | main.rs:2073:5:2073:14 | S2 | -| main.rs:2142:32:2142:32 | a | | main.rs:2113:28:2113:43 | impl ... | -| main.rs:2143:13:2143:13 | a | | main.rs:2113:28:2113:43 | impl ... | -| main.rs:2143:17:2143:32 | get_a_my_trait(...) | | main.rs:2113:28:2113:43 | impl ... | -| main.rs:2144:13:2144:13 | c | | main.rs:2073:5:2073:14 | S2 | -| main.rs:2144:17:2144:33 | uses_my_trait2(...) | | main.rs:2073:5:2073:14 | S2 | -| main.rs:2144:32:2144:32 | a | | main.rs:2113:28:2113:43 | impl ... | -| main.rs:2145:13:2145:13 | d | | main.rs:2073:5:2073:14 | S2 | -| main.rs:2145:17:2145:34 | uses_my_trait2(...) | | main.rs:2073:5:2073:14 | S2 | -| main.rs:2145:32:2145:33 | S1 | | main.rs:2071:5:2072:14 | S1 | -| main.rs:2146:13:2146:13 | e | | main.rs:2071:5:2072:14 | S1 | -| main.rs:2146:17:2146:35 | get_a_my_trait2(...) | | main.rs:2121:43:2121:57 | impl ... | -| main.rs:2146:17:2146:35 | get_a_my_trait2(...) | impl(T) | main.rs:2071:5:2072:14 | S1 | -| main.rs:2146:17:2146:43 | ... .get_a() | | main.rs:2071:5:2072:14 | S1 | -| main.rs:2146:33:2146:34 | S1 | | main.rs:2071:5:2072:14 | S1 | -| main.rs:2149:13:2149:13 | f | | main.rs:2071:5:2072:14 | S1 | -| main.rs:2149:17:2149:35 | get_a_my_trait3(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2149:17:2149:35 | get_a_my_trait3(...) | T | main.rs:2125:50:2125:64 | impl ... | -| main.rs:2149:17:2149:35 | get_a_my_trait3(...) | T.impl(T) | main.rs:2071:5:2072:14 | S1 | -| main.rs:2149:17:2149:44 | ... .unwrap() | | main.rs:2125:50:2125:64 | impl ... | -| main.rs:2149:17:2149:44 | ... .unwrap() | impl(T) | main.rs:2071:5:2072:14 | S1 | -| main.rs:2149:17:2149:52 | ... .get_a() | | main.rs:2071:5:2072:14 | S1 | -| main.rs:2149:33:2149:34 | S1 | | main.rs:2071:5:2072:14 | S1 | -| main.rs:2150:13:2150:13 | g | | main.rs:2071:5:2072:14 | S1 | -| main.rs:2150:17:2150:35 | get_a_my_trait4(...) | | file://:0:0:0:0 | (T_2) | -| main.rs:2150:17:2150:35 | get_a_my_trait4(...) | 0(2) | main.rs:2129:44:2129:58 | impl ... | -| main.rs:2150:17:2150:35 | get_a_my_trait4(...) | 0(2).impl(T) | main.rs:2071:5:2072:14 | S1 | -| main.rs:2150:17:2150:35 | get_a_my_trait4(...) | 1(2) | main.rs:2129:61:2129:75 | impl ... | -| main.rs:2150:17:2150:35 | get_a_my_trait4(...) | 1(2).impl(T) | main.rs:2071:5:2072:14 | S1 | -| main.rs:2150:17:2150:37 | ... .0 | | main.rs:2129:44:2129:58 | impl ... | -| main.rs:2150:17:2150:37 | ... .0 | impl(T) | main.rs:2071:5:2072:14 | S1 | -| main.rs:2150:17:2150:45 | ... .get_a() | | main.rs:2071:5:2072:14 | S1 | -| main.rs:2150:33:2150:34 | S1 | | main.rs:2071:5:2072:14 | S1 | -| main.rs:2161:16:2161:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2161:16:2161:20 | SelfParam | &T | main.rs:2157:5:2158:13 | S | -| main.rs:2161:31:2163:9 | { ... } | | main.rs:2157:5:2158:13 | S | -| main.rs:2162:13:2162:13 | S | | main.rs:2157:5:2158:13 | S | -| main.rs:2172:26:2174:9 | { ... } | | main.rs:2166:5:2169:5 | MyVec | -| main.rs:2172:26:2174:9 | { ... } | T | main.rs:2171:10:2171:10 | T | -| main.rs:2173:13:2173:38 | MyVec {...} | | main.rs:2166:5:2169:5 | MyVec | -| main.rs:2173:13:2173:38 | MyVec {...} | T | main.rs:2171:10:2171:10 | T | -| main.rs:2173:27:2173:36 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2173:27:2173:36 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2173:27:2173:36 | ...::new(...) | T | main.rs:2171:10:2171:10 | T | -| main.rs:2176:17:2176:25 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2176:17:2176:25 | SelfParam | &T | main.rs:2166:5:2169:5 | MyVec | -| main.rs:2176:17:2176:25 | SelfParam | &T.T | main.rs:2171:10:2171:10 | T | -| main.rs:2176:28:2176:32 | value | | main.rs:2171:10:2171:10 | T | -| main.rs:2177:13:2177:16 | self | | file://:0:0:0:0 | & | -| main.rs:2177:13:2177:16 | self | &T | main.rs:2166:5:2169:5 | MyVec | -| main.rs:2177:13:2177:16 | self | &T.T | main.rs:2171:10:2171:10 | T | -| main.rs:2177:13:2177:21 | self.data | | {EXTERNAL LOCATION} | Vec | -| main.rs:2177:13:2177:21 | self.data | A | {EXTERNAL LOCATION} | Global | -| main.rs:2177:13:2177:21 | self.data | T | main.rs:2171:10:2171:10 | T | -| main.rs:2177:28:2177:32 | value | | main.rs:2171:10:2171:10 | T | -| main.rs:2185:18:2185:22 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2185:18:2185:22 | SelfParam | &T | main.rs:2166:5:2169:5 | MyVec | -| main.rs:2185:18:2185:22 | SelfParam | &T.T | main.rs:2181:10:2181:10 | T | -| main.rs:2185:25:2185:29 | index | | {EXTERNAL LOCATION} | usize | -| main.rs:2185:56:2187:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:2185:56:2187:9 | { ... } | &T | main.rs:2181:10:2181:10 | T | -| main.rs:2186:13:2186:29 | &... | | file://:0:0:0:0 | & | -| main.rs:2186:13:2186:29 | &... | &T | main.rs:2181:10:2181:10 | T | -| main.rs:2186:14:2186:17 | self | | file://:0:0:0:0 | & | -| main.rs:2186:14:2186:17 | self | &T | main.rs:2166:5:2169:5 | MyVec | -| main.rs:2186:14:2186:17 | self | &T.T | main.rs:2181:10:2181:10 | T | -| main.rs:2186:14:2186:22 | self.data | | {EXTERNAL LOCATION} | Vec | -| main.rs:2186:14:2186:22 | self.data | A | {EXTERNAL LOCATION} | Global | -| main.rs:2186:14:2186:22 | self.data | T | main.rs:2181:10:2181:10 | T | -| main.rs:2186:14:2186:29 | ...[index] | | main.rs:2181:10:2181:10 | T | -| main.rs:2186:24:2186:28 | index | | {EXTERNAL LOCATION} | usize | -| main.rs:2190:22:2190:26 | slice | | file://:0:0:0:0 | & | -| main.rs:2190:22:2190:26 | slice | &T | file://:0:0:0:0 | [] | -| main.rs:2190:22:2190:26 | slice | &T.[T] | main.rs:2157:5:2158:13 | S | -| main.rs:2191:13:2191:13 | x | | main.rs:2157:5:2158:13 | S | -| main.rs:2191:17:2191:21 | slice | | file://:0:0:0:0 | & | -| main.rs:2191:17:2191:21 | slice | &T | file://:0:0:0:0 | [] | -| main.rs:2191:17:2191:21 | slice | &T.[T] | main.rs:2157:5:2158:13 | S | -| main.rs:2191:17:2191:24 | slice[0] | | main.rs:2157:5:2158:13 | S | -| main.rs:2191:17:2191:30 | ... .foo() | | main.rs:2157:5:2158:13 | S | -| main.rs:2191:23:2191:23 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2194:37:2194:37 | a | | main.rs:2194:20:2194:34 | T | -| main.rs:2194:43:2194:43 | b | | {EXTERNAL LOCATION} | usize | -| main.rs:2197:5:2199:5 | { ... } | | {EXTERNAL LOCATION} | Output | -| main.rs:2198:9:2198:9 | a | | main.rs:2194:20:2194:34 | T | -| main.rs:2198:9:2198:12 | a[b] | | {EXTERNAL LOCATION} | Output | -| main.rs:2198:11:2198:11 | b | | {EXTERNAL LOCATION} | usize | -| main.rs:2202:17:2202:19 | vec | | main.rs:2166:5:2169:5 | MyVec | -| main.rs:2202:17:2202:19 | vec | T | main.rs:2157:5:2158:13 | S | -| main.rs:2202:23:2202:34 | ...::new(...) | | main.rs:2166:5:2169:5 | MyVec | -| main.rs:2202:23:2202:34 | ...::new(...) | T | main.rs:2157:5:2158:13 | S | -| main.rs:2203:9:2203:11 | vec | | main.rs:2166:5:2169:5 | MyVec | -| main.rs:2203:9:2203:11 | vec | T | main.rs:2157:5:2158:13 | S | -| main.rs:2203:18:2203:18 | S | | main.rs:2157:5:2158:13 | S | -| main.rs:2204:9:2204:11 | vec | | main.rs:2166:5:2169:5 | MyVec | -| main.rs:2204:9:2204:11 | vec | T | main.rs:2157:5:2158:13 | S | -| main.rs:2204:9:2204:14 | vec[0] | | main.rs:2157:5:2158:13 | S | -| main.rs:2204:9:2204:20 | ... .foo() | | main.rs:2157:5:2158:13 | S | -| main.rs:2204:13:2204:13 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2204:13:2204:13 | 0 | | {EXTERNAL LOCATION} | usize | -| main.rs:2206:13:2206:14 | xs | | file://:0:0:0:0 | [] | -| main.rs:2206:13:2206:14 | xs | [T;...] | main.rs:2157:5:2158:13 | S | -| main.rs:2206:21:2206:21 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2206:26:2206:28 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2206:26:2206:28 | [...] | [T;...] | main.rs:2157:5:2158:13 | S | -| main.rs:2206:27:2206:27 | S | | main.rs:2157:5:2158:13 | S | -| main.rs:2207:13:2207:13 | x | | main.rs:2157:5:2158:13 | S | -| main.rs:2207:17:2207:18 | xs | | file://:0:0:0:0 | [] | -| main.rs:2207:17:2207:18 | xs | [T;...] | main.rs:2157:5:2158:13 | S | -| main.rs:2207:17:2207:21 | xs[0] | | main.rs:2157:5:2158:13 | S | -| main.rs:2207:17:2207:27 | ... .foo() | | main.rs:2157:5:2158:13 | S | -| main.rs:2207:20:2207:20 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2209:29:2209:31 | vec | | main.rs:2166:5:2169:5 | MyVec | -| main.rs:2209:29:2209:31 | vec | T | main.rs:2157:5:2158:13 | S | -| main.rs:2209:34:2209:34 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2209:34:2209:34 | 0 | | {EXTERNAL LOCATION} | usize | -| main.rs:2211:23:2211:25 | &xs | | file://:0:0:0:0 | & | -| main.rs:2211:23:2211:25 | &xs | &T | file://:0:0:0:0 | [] | -| main.rs:2211:23:2211:25 | &xs | &T | file://:0:0:0:0 | [] | -| main.rs:2211:23:2211:25 | &xs | &T.[T;...] | main.rs:2157:5:2158:13 | S | -| main.rs:2211:23:2211:25 | &xs | &T.[T] | main.rs:2157:5:2158:13 | S | -| main.rs:2211:24:2211:25 | xs | | file://:0:0:0:0 | [] | -| main.rs:2211:24:2211:25 | xs | [T;...] | main.rs:2157:5:2158:13 | S | -| main.rs:2217:13:2217:13 | x | | {EXTERNAL LOCATION} | String | -| main.rs:2217:17:2217:46 | MacroExpr | | {EXTERNAL LOCATION} | String | -| main.rs:2217:25:2217:35 | "Hello, {}" | | file://:0:0:0:0 | & | -| main.rs:2217:25:2217:35 | "Hello, {}" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2217:25:2217:45 | ...::format(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2217:25:2217:45 | ...::must_use(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2217:25:2217:45 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2217:25:2217:45 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2217:25:2217:45 | { ... } | | {EXTERNAL LOCATION} | String | -| main.rs:2217:38:2217:45 | "World!" | | file://:0:0:0:0 | & | -| main.rs:2217:38:2217:45 | "World!" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2226:19:2226:22 | SelfParam | | main.rs:2222:5:2227:5 | Self [trait MyAdd] | -| main.rs:2226:25:2226:27 | rhs | | main.rs:2222:17:2222:26 | Rhs | -| main.rs:2233:19:2233:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | -| main.rs:2233:25:2233:29 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2233:45:2235:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2234:13:2234:17 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2242:19:2242:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | -| main.rs:2242:25:2242:29 | value | | file://:0:0:0:0 | & | -| main.rs:2242:25:2242:29 | value | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:2242:46:2244:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2243:13:2243:18 | * ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2243:14:2243:18 | value | | file://:0:0:0:0 | & | -| main.rs:2243:14:2243:18 | value | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:2251:19:2251:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | -| main.rs:2251:25:2251:29 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2251:46:2257:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2252:13:2256:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | -| main.rs:2252:13:2256:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | -| main.rs:2252:16:2252:20 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2252:22:2254:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2252:22:2254:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2253:17:2253:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2253:17:2253:17 | 1 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2254:20:2256:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2254:20:2256:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2255:17:2255:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2255:17:2255:17 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2266:19:2266:22 | SelfParam | | main.rs:2260:5:2260:19 | S | -| main.rs:2266:19:2266:22 | SelfParam | T | main.rs:2262:10:2262:17 | T | -| main.rs:2266:25:2266:29 | other | | main.rs:2260:5:2260:19 | S | -| main.rs:2266:25:2266:29 | other | T | main.rs:2262:10:2262:17 | T | -| main.rs:2266:54:2268:9 | { ... } | | main.rs:2260:5:2260:19 | S | -| main.rs:2266:54:2268:9 | { ... } | T | main.rs:2223:9:2223:20 | Output | -| main.rs:2267:13:2267:39 | S(...) | | main.rs:2260:5:2260:19 | S | -| main.rs:2267:13:2267:39 | S(...) | T | main.rs:2223:9:2223:20 | Output | -| main.rs:2267:15:2267:22 | (...) | | main.rs:2262:10:2262:17 | T | -| main.rs:2267:15:2267:38 | ... .my_add(...) | | main.rs:2223:9:2223:20 | Output | -| main.rs:2267:16:2267:19 | self | | main.rs:2260:5:2260:19 | S | -| main.rs:2267:16:2267:19 | self | T | main.rs:2262:10:2262:17 | T | -| main.rs:2267:16:2267:21 | self.0 | | main.rs:2262:10:2262:17 | T | -| main.rs:2267:31:2267:35 | other | | main.rs:2260:5:2260:19 | S | -| main.rs:2267:31:2267:35 | other | T | main.rs:2262:10:2262:17 | T | -| main.rs:2267:31:2267:37 | other.0 | | main.rs:2222:5:2227:5 | Self [trait MyAdd] | -| main.rs:2267:31:2267:37 | other.0 | | main.rs:2262:10:2262:17 | T | -| main.rs:2275:19:2275:22 | SelfParam | | main.rs:2260:5:2260:19 | S | -| main.rs:2275:19:2275:22 | SelfParam | T | main.rs:2271:10:2271:17 | T | -| main.rs:2275:25:2275:29 | other | | main.rs:2271:10:2271:17 | T | -| main.rs:2275:51:2277:9 | { ... } | | main.rs:2260:5:2260:19 | S | -| main.rs:2275:51:2277:9 | { ... } | T | main.rs:2223:9:2223:20 | Output | -| main.rs:2276:13:2276:37 | S(...) | | main.rs:2260:5:2260:19 | S | -| main.rs:2276:13:2276:37 | S(...) | T | main.rs:2223:9:2223:20 | Output | -| main.rs:2276:15:2276:22 | (...) | | main.rs:2271:10:2271:17 | T | -| main.rs:2276:15:2276:36 | ... .my_add(...) | | main.rs:2223:9:2223:20 | Output | -| main.rs:2276:16:2276:19 | self | | main.rs:2260:5:2260:19 | S | -| main.rs:2276:16:2276:19 | self | T | main.rs:2271:10:2271:17 | T | -| main.rs:2276:16:2276:21 | self.0 | | main.rs:2271:10:2271:17 | T | -| main.rs:2276:31:2276:35 | other | | main.rs:2271:10:2271:17 | T | -| main.rs:2287:19:2287:22 | SelfParam | | main.rs:2260:5:2260:19 | S | -| main.rs:2287:19:2287:22 | SelfParam | T | main.rs:2280:14:2280:14 | T | -| main.rs:2287:25:2287:29 | other | | file://:0:0:0:0 | & | -| main.rs:2287:25:2287:29 | other | &T | main.rs:2280:14:2280:14 | T | -| main.rs:2287:55:2289:9 | { ... } | | main.rs:2260:5:2260:19 | S | -| main.rs:2288:13:2288:37 | S(...) | | main.rs:2260:5:2260:19 | S | -| main.rs:2288:15:2288:22 | (...) | | main.rs:2280:14:2280:14 | T | -| main.rs:2288:16:2288:19 | self | | main.rs:2260:5:2260:19 | S | -| main.rs:2288:16:2288:19 | self | T | main.rs:2280:14:2280:14 | T | -| main.rs:2288:16:2288:21 | self.0 | | main.rs:2280:14:2280:14 | T | -| main.rs:2288:31:2288:35 | other | | file://:0:0:0:0 | & | -| main.rs:2288:31:2288:35 | other | &T | main.rs:2280:14:2280:14 | T | -| main.rs:2294:20:2294:24 | value | | main.rs:2292:18:2292:18 | T | -| main.rs:2299:20:2299:24 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2299:40:2301:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2300:13:2300:17 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2306:20:2306:24 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2306:41:2312:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2307:13:2311:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | -| main.rs:2307:13:2311:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | -| main.rs:2307:16:2307:20 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2307:22:2309:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2307:22:2309:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2308:17:2308:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2308:17:2308:17 | 1 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2309:20:2311:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2309:20:2311:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2310:17:2310:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2310:17:2310:17 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2317:21:2317:25 | value | | main.rs:2315:19:2315:19 | T | -| main.rs:2317:31:2317:31 | x | | main.rs:2315:5:2318:5 | Self [trait MyFrom2] | -| main.rs:2322:21:2322:25 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2322:33:2322:33 | _ | | {EXTERNAL LOCATION} | i64 | -| main.rs:2322:48:2324:9 | { ... } | | file://:0:0:0:0 | () | -| main.rs:2323:13:2323:17 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2329:21:2329:25 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2329:34:2329:34 | _ | | {EXTERNAL LOCATION} | i64 | -| main.rs:2329:49:2335:9 | { ... } | | file://:0:0:0:0 | () | -| main.rs:2330:13:2334:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | -| main.rs:2330:16:2330:20 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2330:22:2332:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2331:17:2331:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2332:20:2334:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2333:17:2333:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2340:15:2340:15 | x | | main.rs:2338:5:2344:5 | Self [trait MySelfTrait] | -| main.rs:2343:15:2343:15 | x | | main.rs:2338:5:2344:5 | Self [trait MySelfTrait] | -| main.rs:2348:15:2348:15 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2348:31:2350:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2349:13:2349:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2349:13:2349:17 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2349:17:2349:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2353:15:2353:15 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2353:32:2355:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2354:13:2354:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2354:13:2354:17 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2354:17:2354:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2360:15:2360:15 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:2360:31:2362:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2361:13:2361:13 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2361:13:2361:13 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2365:15:2365:15 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:2365:32:2367:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2366:13:2366:13 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:2371:13:2371:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2371:22:2371:23 | 73 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2371:22:2371:23 | 73 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2372:9:2372:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2372:9:2372:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2372:18:2372:21 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2373:9:2373:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2373:9:2373:23 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2373:18:2373:22 | &5i64 | | file://:0:0:0:0 | & | -| main.rs:2373:18:2373:22 | &5i64 | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:2373:19:2373:22 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2374:9:2374:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2374:9:2374:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2374:18:2374:21 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2376:9:2376:15 | S(...) | | main.rs:2260:5:2260:19 | S | -| main.rs:2376:9:2376:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | -| main.rs:2376:9:2376:31 | ... .my_add(...) | | main.rs:2260:5:2260:19 | S | -| main.rs:2376:11:2376:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2376:24:2376:30 | S(...) | | main.rs:2260:5:2260:19 | S | -| main.rs:2376:24:2376:30 | S(...) | T | {EXTERNAL LOCATION} | i64 | -| main.rs:2376:26:2376:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2377:9:2377:15 | S(...) | | main.rs:2260:5:2260:19 | S | -| main.rs:2377:9:2377:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | -| main.rs:2377:11:2377:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2377:24:2377:27 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2378:9:2378:15 | S(...) | | main.rs:2260:5:2260:19 | S | -| main.rs:2378:9:2378:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | -| main.rs:2378:9:2378:29 | ... .my_add(...) | | main.rs:2260:5:2260:19 | S | -| main.rs:2378:11:2378:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2378:24:2378:28 | &3i64 | | file://:0:0:0:0 | & | -| main.rs:2378:24:2378:28 | &3i64 | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:2378:25:2378:28 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2380:13:2380:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2380:17:2380:35 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2380:30:2380:34 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2381:13:2381:13 | y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2381:17:2381:34 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2381:30:2381:33 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2382:13:2382:13 | z | | {EXTERNAL LOCATION} | i64 | -| main.rs:2382:22:2382:43 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2382:38:2382:42 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2383:9:2383:34 | ...::my_from2(...) | | file://:0:0:0:0 | () | -| main.rs:2383:23:2383:27 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2383:30:2383:33 | 0i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2384:9:2384:33 | ...::my_from2(...) | | file://:0:0:0:0 | () | -| main.rs:2384:23:2384:26 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2384:29:2384:32 | 0i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2385:9:2385:38 | ...::my_from2(...) | | file://:0:0:0:0 | () | -| main.rs:2385:27:2385:31 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2385:34:2385:37 | 0i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2387:9:2387:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2387:17:2387:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2388:9:2388:22 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2388:17:2388:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2389:9:2389:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2389:18:2389:21 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2390:9:2390:22 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2390:18:2390:21 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2391:9:2391:30 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2391:25:2391:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2392:9:2392:30 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2392:25:2392:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2393:9:2393:29 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2393:25:2393:28 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2394:9:2394:29 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2394:25:2394:28 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2402:26:2404:9 | { ... } | | main.rs:2399:5:2399:24 | MyCallable | -| main.rs:2403:13:2403:25 | MyCallable {...} | | main.rs:2399:5:2399:24 | MyCallable | -| main.rs:2406:17:2406:21 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2406:17:2406:21 | SelfParam | &T | main.rs:2399:5:2399:24 | MyCallable | -| main.rs:2406:31:2408:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2407:13:2407:13 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2407:13:2407:13 | 1 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2414:13:2414:13 | i | | {EXTERNAL LOCATION} | i32 | -| main.rs:2414:18:2414:26 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2414:18:2414:26 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2414:19:2414:19 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2414:22:2414:22 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2414:25:2414:25 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2415:18:2415:26 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2415:18:2415:26 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2415:18:2415:41 | ... .map(...) | | file://:0:0:0:0 | [] | -| main.rs:2415:19:2415:19 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2415:22:2415:22 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2415:25:2415:25 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2415:32:2415:40 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | -| main.rs:2415:32:2415:40 | \|...\| ... | dyn(Args) | file://:0:0:0:0 | (T_1) | -| main.rs:2415:40:2415:40 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2416:13:2416:13 | i | | {EXTERNAL LOCATION} | Item | -| main.rs:2416:13:2416:13 | i | | {EXTERNAL LOCATION} | i32 | -| main.rs:2416:18:2416:26 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2416:18:2416:26 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2416:18:2416:38 | ... .into_iter() | | {EXTERNAL LOCATION} | IntoIter | -| main.rs:2416:18:2416:38 | ... .into_iter() | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2416:19:2416:19 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2416:22:2416:22 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2416:25:2416:25 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2418:13:2418:17 | vals1 | | file://:0:0:0:0 | [] | -| main.rs:2418:13:2418:17 | vals1 | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2418:13:2418:17 | vals1 | [T;...] | {EXTERNAL LOCATION} | u8 | -| main.rs:2418:21:2418:31 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2418:21:2418:31 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2418:21:2418:31 | [...] | [T;...] | {EXTERNAL LOCATION} | u8 | -| main.rs:2418:22:2418:24 | 1u8 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2418:27:2418:27 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2418:27:2418:27 | 2 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2418:30:2418:30 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2418:30:2418:30 | 3 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2419:13:2419:13 | u | | {EXTERNAL LOCATION} | i32 | -| main.rs:2419:13:2419:13 | u | | {EXTERNAL LOCATION} | u8 | -| main.rs:2419:18:2419:22 | vals1 | | file://:0:0:0:0 | [] | -| main.rs:2419:18:2419:22 | vals1 | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2419:18:2419:22 | vals1 | [T;...] | {EXTERNAL LOCATION} | u8 | -| main.rs:2421:13:2421:17 | vals2 | | file://:0:0:0:0 | [] | -| main.rs:2421:13:2421:17 | vals2 | [T;...] | {EXTERNAL LOCATION} | u16 | -| main.rs:2421:21:2421:29 | [1u16; 3] | | file://:0:0:0:0 | [] | -| main.rs:2421:21:2421:29 | [1u16; 3] | [T;...] | {EXTERNAL LOCATION} | u16 | -| main.rs:2421:22:2421:25 | 1u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2421:28:2421:28 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2422:13:2422:13 | u | | {EXTERNAL LOCATION} | u16 | -| main.rs:2422:18:2422:22 | vals2 | | file://:0:0:0:0 | [] | -| main.rs:2422:18:2422:22 | vals2 | [T;...] | {EXTERNAL LOCATION} | u16 | -| main.rs:2424:13:2424:17 | vals3 | | file://:0:0:0:0 | [] | -| main.rs:2424:13:2424:17 | vals3 | [T;...] | {EXTERNAL LOCATION} | u32 | -| main.rs:2424:26:2424:26 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2424:31:2424:39 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2424:31:2424:39 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2424:31:2424:39 | [...] | [T;...] | {EXTERNAL LOCATION} | u32 | -| main.rs:2424:32:2424:32 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2424:32:2424:32 | 1 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2424:35:2424:35 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2424:35:2424:35 | 2 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2424:38:2424:38 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2424:38:2424:38 | 3 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2425:13:2425:13 | u | | {EXTERNAL LOCATION} | u32 | -| main.rs:2425:18:2425:22 | vals3 | | file://:0:0:0:0 | [] | -| main.rs:2425:18:2425:22 | vals3 | [T;...] | {EXTERNAL LOCATION} | u32 | -| main.rs:2427:13:2427:17 | vals4 | | file://:0:0:0:0 | [] | -| main.rs:2427:13:2427:17 | vals4 | [T;...] | {EXTERNAL LOCATION} | u64 | -| main.rs:2427:26:2427:26 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2427:31:2427:36 | [1; 3] | | file://:0:0:0:0 | [] | -| main.rs:2427:31:2427:36 | [1; 3] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2427:31:2427:36 | [1; 3] | [T;...] | {EXTERNAL LOCATION} | u64 | -| main.rs:2427:32:2427:32 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2427:32:2427:32 | 1 | | {EXTERNAL LOCATION} | u64 | -| main.rs:2427:35:2427:35 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2428:13:2428:13 | u | | {EXTERNAL LOCATION} | u64 | -| main.rs:2428:18:2428:22 | vals4 | | file://:0:0:0:0 | [] | -| main.rs:2428:18:2428:22 | vals4 | [T;...] | {EXTERNAL LOCATION} | u64 | -| main.rs:2430:17:2430:24 | strings1 | | file://:0:0:0:0 | [] | -| main.rs:2430:17:2430:24 | strings1 | [T;...] | file://:0:0:0:0 | & | -| main.rs:2430:17:2430:24 | strings1 | [T;...].&T | {EXTERNAL LOCATION} | str | -| main.rs:2430:28:2430:48 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2430:28:2430:48 | [...] | [T;...] | file://:0:0:0:0 | & | -| main.rs:2430:28:2430:48 | [...] | [T;...].&T | {EXTERNAL LOCATION} | str | -| main.rs:2430:29:2430:33 | "foo" | | file://:0:0:0:0 | & | -| main.rs:2430:29:2430:33 | "foo" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2430:36:2430:40 | "bar" | | file://:0:0:0:0 | & | -| main.rs:2430:36:2430:40 | "bar" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2430:43:2430:47 | "baz" | | file://:0:0:0:0 | & | -| main.rs:2430:43:2430:47 | "baz" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2431:13:2431:13 | s | | {EXTERNAL LOCATION} | Item | -| main.rs:2431:13:2431:13 | s | | file://:0:0:0:0 | & | -| main.rs:2431:13:2431:13 | s | &T | file://:0:0:0:0 | & | -| main.rs:2431:13:2431:13 | s | &T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2431:18:2431:26 | &strings1 | | file://:0:0:0:0 | & | -| main.rs:2431:18:2431:26 | &strings1 | &T | file://:0:0:0:0 | [] | -| main.rs:2431:18:2431:26 | &strings1 | &T.[T;...] | file://:0:0:0:0 | & | -| main.rs:2431:18:2431:26 | &strings1 | &T.[T;...].&T | {EXTERNAL LOCATION} | str | -| main.rs:2431:19:2431:26 | strings1 | | file://:0:0:0:0 | [] | -| main.rs:2431:19:2431:26 | strings1 | [T;...] | file://:0:0:0:0 | & | -| main.rs:2431:19:2431:26 | strings1 | [T;...].&T | {EXTERNAL LOCATION} | str | -| main.rs:2432:13:2432:13 | s | | {EXTERNAL LOCATION} | Item | -| main.rs:2432:13:2432:13 | s | | file://:0:0:0:0 | & | -| main.rs:2432:13:2432:13 | s | &T | file://:0:0:0:0 | & | -| main.rs:2432:13:2432:13 | s | &T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2432:18:2432:30 | &mut strings1 | | file://:0:0:0:0 | & | -| main.rs:2432:18:2432:30 | &mut strings1 | &T | file://:0:0:0:0 | [] | -| main.rs:2432:18:2432:30 | &mut strings1 | &T.[T;...] | file://:0:0:0:0 | & | -| main.rs:2432:18:2432:30 | &mut strings1 | &T.[T;...].&T | {EXTERNAL LOCATION} | str | -| main.rs:2432:23:2432:30 | strings1 | | file://:0:0:0:0 | [] | -| main.rs:2432:23:2432:30 | strings1 | [T;...] | file://:0:0:0:0 | & | -| main.rs:2432:23:2432:30 | strings1 | [T;...].&T | {EXTERNAL LOCATION} | str | -| main.rs:2433:13:2433:13 | s | | file://:0:0:0:0 | & | -| main.rs:2433:13:2433:13 | s | &T | {EXTERNAL LOCATION} | str | -| main.rs:2433:18:2433:25 | strings1 | | file://:0:0:0:0 | [] | -| main.rs:2433:18:2433:25 | strings1 | [T;...] | file://:0:0:0:0 | & | -| main.rs:2433:18:2433:25 | strings1 | [T;...].&T | {EXTERNAL LOCATION} | str | -| main.rs:2435:13:2435:20 | strings2 | | file://:0:0:0:0 | [] | -| main.rs:2435:13:2435:20 | strings2 | [T;...] | {EXTERNAL LOCATION} | String | -| main.rs:2436:9:2440:9 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2436:9:2440:9 | [...] | [T;...] | {EXTERNAL LOCATION} | String | -| main.rs:2437:13:2437:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2437:26:2437:30 | "foo" | | file://:0:0:0:0 | & | -| main.rs:2437:26:2437:30 | "foo" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2438:13:2438:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2438:26:2438:30 | "bar" | | file://:0:0:0:0 | & | -| main.rs:2438:26:2438:30 | "bar" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2439:13:2439:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2439:26:2439:30 | "baz" | | file://:0:0:0:0 | & | -| main.rs:2439:26:2439:30 | "baz" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2441:13:2441:13 | s | | {EXTERNAL LOCATION} | String | -| main.rs:2441:18:2441:25 | strings2 | | file://:0:0:0:0 | [] | -| main.rs:2441:18:2441:25 | strings2 | [T;...] | {EXTERNAL LOCATION} | String | -| main.rs:2443:13:2443:20 | strings3 | | file://:0:0:0:0 | & | -| main.rs:2443:13:2443:20 | strings3 | &T | file://:0:0:0:0 | [] | -| main.rs:2443:13:2443:20 | strings3 | &T.[T;...] | {EXTERNAL LOCATION} | String | -| main.rs:2444:9:2448:9 | &... | | file://:0:0:0:0 | & | -| main.rs:2444:9:2448:9 | &... | &T | file://:0:0:0:0 | [] | -| main.rs:2444:9:2448:9 | &... | &T.[T;...] | {EXTERNAL LOCATION} | String | -| main.rs:2444:10:2448:9 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2444:10:2448:9 | [...] | [T;...] | {EXTERNAL LOCATION} | String | -| main.rs:2445:13:2445:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2445:26:2445:30 | "foo" | | file://:0:0:0:0 | & | -| main.rs:2445:26:2445:30 | "foo" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2446:13:2446:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2446:26:2446:30 | "bar" | | file://:0:0:0:0 | & | -| main.rs:2446:26:2446:30 | "bar" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2447:13:2447:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2447:26:2447:30 | "baz" | | file://:0:0:0:0 | & | -| main.rs:2447:26:2447:30 | "baz" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2449:13:2449:13 | s | | {EXTERNAL LOCATION} | Item | -| main.rs:2449:13:2449:13 | s | | file://:0:0:0:0 | & | -| main.rs:2449:13:2449:13 | s | &T | {EXTERNAL LOCATION} | String | -| main.rs:2449:18:2449:25 | strings3 | | file://:0:0:0:0 | & | -| main.rs:2449:18:2449:25 | strings3 | &T | file://:0:0:0:0 | [] | -| main.rs:2449:18:2449:25 | strings3 | &T.[T;...] | {EXTERNAL LOCATION} | String | -| main.rs:2451:13:2451:21 | callables | | file://:0:0:0:0 | [] | -| main.rs:2451:13:2451:21 | callables | [T;...] | main.rs:2399:5:2399:24 | MyCallable | -| main.rs:2451:25:2451:81 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2451:25:2451:81 | [...] | [T;...] | main.rs:2399:5:2399:24 | MyCallable | -| main.rs:2451:26:2451:42 | ...::new(...) | | main.rs:2399:5:2399:24 | MyCallable | -| main.rs:2451:45:2451:61 | ...::new(...) | | main.rs:2399:5:2399:24 | MyCallable | -| main.rs:2451:64:2451:80 | ...::new(...) | | main.rs:2399:5:2399:24 | MyCallable | -| main.rs:2452:13:2452:13 | c | | main.rs:2399:5:2399:24 | MyCallable | -| main.rs:2453:12:2453:20 | callables | | file://:0:0:0:0 | [] | -| main.rs:2453:12:2453:20 | callables | [T;...] | main.rs:2399:5:2399:24 | MyCallable | -| main.rs:2455:17:2455:22 | result | | {EXTERNAL LOCATION} | i64 | -| main.rs:2455:26:2455:26 | c | | main.rs:2399:5:2399:24 | MyCallable | -| main.rs:2455:26:2455:33 | c.call() | | {EXTERNAL LOCATION} | i64 | -| main.rs:2460:13:2460:13 | i | | {EXTERNAL LOCATION} | Item | -| main.rs:2460:13:2460:13 | i | | {EXTERNAL LOCATION} | i32 | -| main.rs:2460:18:2460:18 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2460:18:2460:22 | 0..10 | | {EXTERNAL LOCATION} | Range | -| main.rs:2460:18:2460:22 | 0..10 | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2460:21:2460:22 | 10 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2461:13:2461:13 | u | | {EXTERNAL LOCATION} | Range | -| main.rs:2461:13:2461:13 | u | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2461:13:2461:13 | u | Idx | {EXTERNAL LOCATION} | u8 | +| main.rs:1876:13:1876:26 | ... >>= ... | | file://:0:0:0:0 | () | +| main.rs:1876:24:1876:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1877:13:1877:16 | self | | file://:0:0:0:0 | & | +| main.rs:1877:13:1877:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1877:13:1877:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1877:13:1877:26 | ... >>= ... | | file://:0:0:0:0 | () | +| main.rs:1877:24:1877:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1883:16:1883:19 | SelfParam | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1883:30:1888:9 | { ... } | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1884:13:1887:13 | Vec2 {...} | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1885:20:1885:26 | - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1885:21:1885:24 | self | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1885:21:1885:26 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1886:20:1886:26 | - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1886:21:1886:24 | self | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1886:21:1886:26 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1893:16:1893:19 | SelfParam | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1893:30:1898:9 | { ... } | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1894:13:1897:13 | Vec2 {...} | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1895:20:1895:26 | ! ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1895:21:1895:24 | self | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1895:21:1895:26 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1896:20:1896:26 | ! ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1896:21:1896:24 | self | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1896:21:1896:26 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1902:15:1902:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1902:15:1902:19 | SelfParam | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1902:22:1902:26 | other | | file://:0:0:0:0 | & | +| main.rs:1902:22:1902:26 | other | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1902:44:1904:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1903:13:1903:16 | self | | file://:0:0:0:0 | & | +| main.rs:1903:13:1903:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1903:13:1903:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1903:13:1903:29 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1903:13:1903:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1903:23:1903:27 | other | | file://:0:0:0:0 | & | +| main.rs:1903:23:1903:27 | other | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1903:23:1903:29 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1903:34:1903:37 | self | | file://:0:0:0:0 | & | +| main.rs:1903:34:1903:37 | self | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1903:34:1903:39 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1903:34:1903:50 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1903:44:1903:48 | other | | file://:0:0:0:0 | & | +| main.rs:1903:44:1903:48 | other | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1903:44:1903:50 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1906:15:1906:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1906:15:1906:19 | SelfParam | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1906:22:1906:26 | other | | file://:0:0:0:0 | & | +| main.rs:1906:22:1906:26 | other | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1906:44:1908:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1907:13:1907:16 | self | | file://:0:0:0:0 | & | +| main.rs:1907:13:1907:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1907:13:1907:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1907:13:1907:29 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1907:13:1907:50 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1907:23:1907:27 | other | | file://:0:0:0:0 | & | +| main.rs:1907:23:1907:27 | other | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1907:23:1907:29 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1907:34:1907:37 | self | | file://:0:0:0:0 | & | +| main.rs:1907:34:1907:37 | self | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1907:34:1907:39 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1907:34:1907:50 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1907:44:1907:48 | other | | file://:0:0:0:0 | & | +| main.rs:1907:44:1907:48 | other | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1907:44:1907:50 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1912:24:1912:28 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1912:24:1912:28 | SelfParam | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1912:31:1912:35 | other | | file://:0:0:0:0 | & | +| main.rs:1912:31:1912:35 | other | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1912:75:1914:9 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:1912:75:1914:9 | { ... } | T | {EXTERNAL LOCATION} | Ordering | +| main.rs:1913:13:1913:29 | (...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:1913:13:1913:63 | ... .partial_cmp(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:1913:13:1913:63 | ... .partial_cmp(...) | T | {EXTERNAL LOCATION} | Ordering | +| main.rs:1913:14:1913:17 | self | | file://:0:0:0:0 | & | +| main.rs:1913:14:1913:17 | self | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1913:14:1913:19 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1913:14:1913:28 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1913:23:1913:26 | self | | file://:0:0:0:0 | & | +| main.rs:1913:23:1913:26 | self | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1913:23:1913:28 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1913:43:1913:62 | &... | | file://:0:0:0:0 | & | +| main.rs:1913:43:1913:62 | &... | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:1913:44:1913:62 | (...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:1913:45:1913:49 | other | | file://:0:0:0:0 | & | +| main.rs:1913:45:1913:49 | other | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1913:45:1913:51 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1913:45:1913:61 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1913:55:1913:59 | other | | file://:0:0:0:0 | & | +| main.rs:1913:55:1913:59 | other | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1913:55:1913:61 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1916:15:1916:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1916:15:1916:19 | SelfParam | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1916:22:1916:26 | other | | file://:0:0:0:0 | & | +| main.rs:1916:22:1916:26 | other | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1916:44:1918:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1917:13:1917:16 | self | | file://:0:0:0:0 | & | +| main.rs:1917:13:1917:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1917:13:1917:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1917:13:1917:28 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1917:13:1917:48 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1917:22:1917:26 | other | | file://:0:0:0:0 | & | +| main.rs:1917:22:1917:26 | other | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1917:22:1917:28 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1917:33:1917:36 | self | | file://:0:0:0:0 | & | +| main.rs:1917:33:1917:36 | self | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1917:33:1917:38 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1917:33:1917:48 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1917:42:1917:46 | other | | file://:0:0:0:0 | & | +| main.rs:1917:42:1917:46 | other | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1917:42:1917:48 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1920:15:1920:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1920:15:1920:19 | SelfParam | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1920:22:1920:26 | other | | file://:0:0:0:0 | & | +| main.rs:1920:22:1920:26 | other | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1920:44:1922:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1921:13:1921:16 | self | | file://:0:0:0:0 | & | +| main.rs:1921:13:1921:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1921:13:1921:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1921:13:1921:29 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1921:13:1921:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1921:23:1921:27 | other | | file://:0:0:0:0 | & | +| main.rs:1921:23:1921:27 | other | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1921:23:1921:29 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1921:34:1921:37 | self | | file://:0:0:0:0 | & | +| main.rs:1921:34:1921:37 | self | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1921:34:1921:39 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1921:34:1921:50 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1921:44:1921:48 | other | | file://:0:0:0:0 | & | +| main.rs:1921:44:1921:48 | other | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1921:44:1921:50 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1924:15:1924:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1924:15:1924:19 | SelfParam | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1924:22:1924:26 | other | | file://:0:0:0:0 | & | +| main.rs:1924:22:1924:26 | other | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1924:44:1926:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1925:13:1925:16 | self | | file://:0:0:0:0 | & | +| main.rs:1925:13:1925:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1925:13:1925:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1925:13:1925:28 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1925:13:1925:48 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1925:22:1925:26 | other | | file://:0:0:0:0 | & | +| main.rs:1925:22:1925:26 | other | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1925:22:1925:28 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1925:33:1925:36 | self | | file://:0:0:0:0 | & | +| main.rs:1925:33:1925:36 | self | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1925:33:1925:38 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1925:33:1925:48 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1925:42:1925:46 | other | | file://:0:0:0:0 | & | +| main.rs:1925:42:1925:46 | other | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1925:42:1925:48 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1928:15:1928:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1928:15:1928:19 | SelfParam | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1928:22:1928:26 | other | | file://:0:0:0:0 | & | +| main.rs:1928:22:1928:26 | other | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1928:44:1930:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1929:13:1929:16 | self | | file://:0:0:0:0 | & | +| main.rs:1929:13:1929:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1929:13:1929:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1929:13:1929:29 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1929:13:1929:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1929:23:1929:27 | other | | file://:0:0:0:0 | & | +| main.rs:1929:23:1929:27 | other | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1929:23:1929:29 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1929:34:1929:37 | self | | file://:0:0:0:0 | & | +| main.rs:1929:34:1929:37 | self | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1929:34:1929:39 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1929:34:1929:50 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1929:44:1929:48 | other | | file://:0:0:0:0 | & | +| main.rs:1929:44:1929:48 | other | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1929:44:1929:50 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1933:26:1933:26 | a | | main.rs:1933:18:1933:23 | T | +| main.rs:1933:32:1933:32 | b | | main.rs:1933:18:1933:23 | T | +| main.rs:1933:51:1935:5 | { ... } | | {EXTERNAL LOCATION} | Output | +| main.rs:1934:9:1934:9 | a | | main.rs:1933:18:1933:23 | T | +| main.rs:1934:9:1934:13 | ... + ... | | {EXTERNAL LOCATION} | Output | +| main.rs:1934:13:1934:13 | b | | main.rs:1933:18:1933:23 | T | +| main.rs:1941:13:1941:18 | i64_eq | | {EXTERNAL LOCATION} | bool | +| main.rs:1941:22:1941:35 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:1941:23:1941:26 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1941:23:1941:34 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1941:31:1941:34 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1942:13:1942:18 | i64_ne | | {EXTERNAL LOCATION} | bool | +| main.rs:1942:22:1942:35 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:1942:23:1942:26 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1942:23:1942:34 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1942:31:1942:34 | 4i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1943:13:1943:18 | i64_lt | | {EXTERNAL LOCATION} | bool | +| main.rs:1943:22:1943:34 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:1943:23:1943:26 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1943:23:1943:33 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1943:30:1943:33 | 6i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1944:13:1944:18 | i64_le | | {EXTERNAL LOCATION} | bool | +| main.rs:1944:22:1944:35 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:1944:23:1944:26 | 7i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1944:23:1944:34 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1944:31:1944:34 | 8i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1945:13:1945:18 | i64_gt | | {EXTERNAL LOCATION} | bool | +| main.rs:1945:22:1945:35 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:1945:23:1945:26 | 9i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1945:23:1945:34 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1945:30:1945:34 | 10i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1946:13:1946:18 | i64_ge | | {EXTERNAL LOCATION} | bool | +| main.rs:1946:22:1946:37 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:1946:23:1946:27 | 11i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1946:23:1946:36 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1946:32:1946:36 | 12i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1949:13:1949:19 | i64_add | | {EXTERNAL LOCATION} | i64 | +| main.rs:1949:23:1949:27 | 13i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1949:23:1949:35 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1949:31:1949:35 | 14i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1950:13:1950:19 | i64_sub | | {EXTERNAL LOCATION} | i64 | +| main.rs:1950:23:1950:27 | 15i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1950:23:1950:35 | ... - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1950:31:1950:35 | 16i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1951:13:1951:19 | i64_mul | | {EXTERNAL LOCATION} | i64 | +| main.rs:1951:23:1951:27 | 17i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1951:23:1951:35 | ... * ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1951:31:1951:35 | 18i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1952:13:1952:19 | i64_div | | {EXTERNAL LOCATION} | i64 | +| main.rs:1952:23:1952:27 | 19i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1952:23:1952:35 | ... / ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1952:31:1952:35 | 20i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1953:13:1953:19 | i64_rem | | {EXTERNAL LOCATION} | i64 | +| main.rs:1953:23:1953:27 | 21i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1953:23:1953:35 | ... % ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1953:31:1953:35 | 22i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1954:39:1954:42 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1954:45:1954:48 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1957:17:1957:30 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1957:34:1957:38 | 23i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1958:9:1958:22 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1958:9:1958:31 | ... += ... | | file://:0:0:0:0 | () | +| main.rs:1958:27:1958:31 | 24i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1960:17:1960:30 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1960:34:1960:38 | 25i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1961:9:1961:22 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1961:9:1961:31 | ... -= ... | | file://:0:0:0:0 | () | +| main.rs:1961:27:1961:31 | 26i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1963:17:1963:30 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1963:34:1963:38 | 27i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1964:9:1964:22 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1964:9:1964:31 | ... *= ... | | file://:0:0:0:0 | () | +| main.rs:1964:27:1964:31 | 28i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1966:17:1966:30 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1966:34:1966:38 | 29i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1967:9:1967:22 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1967:9:1967:31 | ... /= ... | | file://:0:0:0:0 | () | +| main.rs:1967:27:1967:31 | 30i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1969:17:1969:30 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1969:34:1969:38 | 31i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1970:9:1970:22 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1970:9:1970:31 | ... %= ... | | file://:0:0:0:0 | () | +| main.rs:1970:27:1970:31 | 32i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1973:13:1973:22 | i64_bitand | | {EXTERNAL LOCATION} | i64 | +| main.rs:1973:26:1973:30 | 33i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1973:26:1973:38 | ... & ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1973:34:1973:38 | 34i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1974:13:1974:21 | i64_bitor | | {EXTERNAL LOCATION} | i64 | +| main.rs:1974:25:1974:29 | 35i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1974:25:1974:37 | ... \| ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1974:33:1974:37 | 36i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1975:13:1975:22 | i64_bitxor | | {EXTERNAL LOCATION} | i64 | +| main.rs:1975:26:1975:30 | 37i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1975:26:1975:38 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1975:34:1975:38 | 38i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1976:13:1976:19 | i64_shl | | {EXTERNAL LOCATION} | i64 | +| main.rs:1976:23:1976:27 | 39i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1976:23:1976:36 | ... << ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1976:32:1976:36 | 40i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1977:13:1977:19 | i64_shr | | {EXTERNAL LOCATION} | i64 | +| main.rs:1977:23:1977:27 | 41i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1977:23:1977:36 | ... >> ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1977:32:1977:36 | 42i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1980:17:1980:33 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1980:37:1980:41 | 43i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1981:9:1981:25 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1981:9:1981:34 | ... &= ... | | file://:0:0:0:0 | () | +| main.rs:1981:30:1981:34 | 44i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1983:17:1983:32 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1983:36:1983:40 | 45i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1984:9:1984:24 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1984:9:1984:33 | ... \|= ... | | file://:0:0:0:0 | () | +| main.rs:1984:29:1984:33 | 46i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1986:17:1986:33 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1986:37:1986:41 | 47i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1987:9:1987:25 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1987:9:1987:34 | ... ^= ... | | file://:0:0:0:0 | () | +| main.rs:1987:30:1987:34 | 48i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1989:17:1989:30 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1989:34:1989:38 | 49i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1990:9:1990:22 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1990:9:1990:32 | ... <<= ... | | file://:0:0:0:0 | () | +| main.rs:1990:28:1990:32 | 50i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1992:17:1992:30 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1992:34:1992:38 | 51i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1993:9:1993:22 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1993:9:1993:32 | ... >>= ... | | file://:0:0:0:0 | () | +| main.rs:1993:28:1993:32 | 52i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1995:13:1995:19 | i64_neg | | {EXTERNAL LOCATION} | i64 | +| main.rs:1995:23:1995:28 | - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1995:24:1995:28 | 53i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1996:13:1996:19 | i64_not | | {EXTERNAL LOCATION} | i64 | +| main.rs:1996:23:1996:28 | ! ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1996:24:1996:28 | 54i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1999:13:1999:14 | v1 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1999:18:1999:36 | Vec2 {...} | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1999:28:1999:28 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1999:28:1999:28 | 1 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1999:34:1999:34 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1999:34:1999:34 | 2 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2000:13:2000:14 | v2 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2000:18:2000:36 | Vec2 {...} | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2000:28:2000:28 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2000:28:2000:28 | 3 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2000:34:2000:34 | 4 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2000:34:2000:34 | 4 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2003:13:2003:19 | vec2_eq | | {EXTERNAL LOCATION} | bool | +| main.rs:2003:23:2003:24 | v1 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2003:23:2003:30 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2003:29:2003:30 | v2 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2004:13:2004:19 | vec2_ne | | {EXTERNAL LOCATION} | bool | +| main.rs:2004:23:2004:24 | v1 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2004:23:2004:30 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2004:29:2004:30 | v2 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2005:13:2005:19 | vec2_lt | | {EXTERNAL LOCATION} | bool | +| main.rs:2005:23:2005:24 | v1 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2005:23:2005:29 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2005:28:2005:29 | v2 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2006:13:2006:19 | vec2_le | | {EXTERNAL LOCATION} | bool | +| main.rs:2006:23:2006:24 | v1 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2006:23:2006:30 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2006:29:2006:30 | v2 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2007:13:2007:19 | vec2_gt | | {EXTERNAL LOCATION} | bool | +| main.rs:2007:23:2007:24 | v1 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2007:23:2007:29 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2007:28:2007:29 | v2 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2008:13:2008:19 | vec2_ge | | {EXTERNAL LOCATION} | bool | +| main.rs:2008:23:2008:24 | v1 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2008:23:2008:30 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2008:29:2008:30 | v2 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2011:13:2011:20 | vec2_add | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2011:24:2011:25 | v1 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2011:24:2011:30 | ... + ... | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2011:29:2011:30 | v2 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2012:13:2012:20 | vec2_sub | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2012:24:2012:25 | v1 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2012:24:2012:30 | ... - ... | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2012:29:2012:30 | v2 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2013:13:2013:20 | vec2_mul | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2013:24:2013:25 | v1 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2013:24:2013:30 | ... * ... | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2013:29:2013:30 | v2 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2014:13:2014:20 | vec2_div | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2014:24:2014:25 | v1 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2014:24:2014:30 | ... / ... | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2014:29:2014:30 | v2 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2015:13:2015:20 | vec2_rem | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2015:24:2015:25 | v1 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2015:24:2015:30 | ... % ... | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2015:29:2015:30 | v2 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2018:17:2018:31 | vec2_add_assign | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2018:35:2018:36 | v1 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2019:9:2019:23 | vec2_add_assign | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2019:9:2019:29 | ... += ... | | file://:0:0:0:0 | () | +| main.rs:2019:28:2019:29 | v2 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2021:17:2021:31 | vec2_sub_assign | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2021:35:2021:36 | v1 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2022:9:2022:23 | vec2_sub_assign | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2022:9:2022:29 | ... -= ... | | file://:0:0:0:0 | () | +| main.rs:2022:28:2022:29 | v2 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2024:17:2024:31 | vec2_mul_assign | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2024:35:2024:36 | v1 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2025:9:2025:23 | vec2_mul_assign | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2025:9:2025:29 | ... *= ... | | file://:0:0:0:0 | () | +| main.rs:2025:28:2025:29 | v2 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2027:17:2027:31 | vec2_div_assign | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2027:35:2027:36 | v1 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2028:9:2028:23 | vec2_div_assign | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2028:9:2028:29 | ... /= ... | | file://:0:0:0:0 | () | +| main.rs:2028:28:2028:29 | v2 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2030:17:2030:31 | vec2_rem_assign | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2030:35:2030:36 | v1 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2031:9:2031:23 | vec2_rem_assign | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2031:9:2031:29 | ... %= ... | | file://:0:0:0:0 | () | +| main.rs:2031:28:2031:29 | v2 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2034:13:2034:23 | vec2_bitand | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2034:27:2034:28 | v1 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2034:27:2034:33 | ... & ... | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2034:32:2034:33 | v2 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2035:13:2035:22 | vec2_bitor | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2035:26:2035:27 | v1 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2035:26:2035:32 | ... \| ... | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2035:31:2035:32 | v2 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2036:13:2036:23 | vec2_bitxor | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2036:27:2036:28 | v1 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2036:27:2036:33 | ... ^ ... | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2036:32:2036:33 | v2 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2037:13:2037:20 | vec2_shl | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2037:24:2037:25 | v1 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2037:24:2037:33 | ... << ... | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2037:30:2037:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2038:13:2038:20 | vec2_shr | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2038:24:2038:25 | v1 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2038:24:2038:33 | ... >> ... | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2038:30:2038:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2041:17:2041:34 | vec2_bitand_assign | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2041:38:2041:39 | v1 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2042:9:2042:26 | vec2_bitand_assign | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2042:9:2042:32 | ... &= ... | | file://:0:0:0:0 | () | +| main.rs:2042:31:2042:32 | v2 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2044:17:2044:33 | vec2_bitor_assign | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2044:37:2044:38 | v1 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2045:9:2045:25 | vec2_bitor_assign | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2045:9:2045:31 | ... \|= ... | | file://:0:0:0:0 | () | +| main.rs:2045:30:2045:31 | v2 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2047:17:2047:34 | vec2_bitxor_assign | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2047:38:2047:39 | v1 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2048:9:2048:26 | vec2_bitxor_assign | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2048:9:2048:32 | ... ^= ... | | file://:0:0:0:0 | () | +| main.rs:2048:31:2048:32 | v2 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2050:17:2050:31 | vec2_shl_assign | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2050:35:2050:36 | v1 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2051:9:2051:23 | vec2_shl_assign | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2051:9:2051:32 | ... <<= ... | | file://:0:0:0:0 | () | +| main.rs:2051:29:2051:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2053:17:2053:31 | vec2_shr_assign | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2053:35:2053:36 | v1 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2054:9:2054:23 | vec2_shr_assign | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2054:9:2054:32 | ... >>= ... | | file://:0:0:0:0 | () | +| main.rs:2054:29:2054:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2057:13:2057:20 | vec2_neg | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2057:24:2057:26 | - ... | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2057:25:2057:26 | v1 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2058:13:2058:20 | vec2_not | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2058:24:2058:26 | ! ... | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2058:25:2058:26 | v1 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2061:13:2061:24 | default_vec2 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2061:28:2061:45 | ...::default(...) | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2062:13:2062:26 | vec2_zero_plus | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2062:30:2062:48 | Vec2 {...} | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2062:30:2062:63 | ... + ... | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2062:40:2062:40 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2062:40:2062:40 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2062:46:2062:46 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2062:46:2062:46 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2062:52:2062:63 | default_vec2 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2066:13:2066:24 | default_vec2 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2066:28:2066:45 | ...::default(...) | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2067:13:2067:26 | vec2_zero_plus | | {EXTERNAL LOCATION} | bool | +| main.rs:2067:30:2067:48 | Vec2 {...} | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2067:30:2067:64 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2067:40:2067:40 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2067:40:2067:40 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2067:46:2067:46 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2067:46:2067:46 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2067:53:2067:64 | default_vec2 | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:2077:18:2077:21 | SelfParam | | main.rs:2074:5:2074:14 | S1 | +| main.rs:2080:25:2082:5 | { ... } | | main.rs:2074:5:2074:14 | S1 | +| main.rs:2081:9:2081:10 | S1 | | main.rs:2074:5:2074:14 | S1 | +| main.rs:2084:41:2086:5 | { ... } | | main.rs:2084:16:2084:39 | impl ... | +| main.rs:2085:9:2085:20 | { ... } | | {EXTERNAL LOCATION} | trait Future | +| main.rs:2085:9:2085:20 | { ... } | Output | main.rs:2074:5:2074:14 | S1 | +| main.rs:2085:17:2085:18 | S1 | | main.rs:2074:5:2074:14 | S1 | +| main.rs:2094:13:2094:42 | SelfParam | | {EXTERNAL LOCATION} | Pin | +| main.rs:2094:13:2094:42 | SelfParam | Ptr | file://:0:0:0:0 | & | +| main.rs:2094:13:2094:42 | SelfParam | Ptr.&T | main.rs:2088:5:2088:14 | S2 | +| main.rs:2095:13:2095:15 | _cx | | file://:0:0:0:0 | & | +| main.rs:2095:13:2095:15 | _cx | &T | {EXTERNAL LOCATION} | Context | +| main.rs:2096:44:2098:9 | { ... } | | {EXTERNAL LOCATION} | Poll | +| main.rs:2096:44:2098:9 | { ... } | T | main.rs:2074:5:2074:14 | S1 | +| main.rs:2097:13:2097:38 | ...::Ready(...) | | {EXTERNAL LOCATION} | Poll | +| main.rs:2097:13:2097:38 | ...::Ready(...) | T | main.rs:2074:5:2074:14 | S1 | +| main.rs:2097:36:2097:37 | S1 | | main.rs:2074:5:2074:14 | S1 | +| main.rs:2101:41:2103:5 | { ... } | | main.rs:2101:16:2101:39 | impl ... | +| main.rs:2102:9:2102:10 | S2 | | main.rs:2088:5:2088:14 | S2 | +| main.rs:2102:9:2102:10 | S2 | | main.rs:2101:16:2101:39 | impl ... | +| main.rs:2106:9:2106:12 | f1(...) | | {EXTERNAL LOCATION} | trait Future | +| main.rs:2106:9:2106:12 | f1(...) | Output | main.rs:2074:5:2074:14 | S1 | +| main.rs:2106:9:2106:18 | await ... | | main.rs:2074:5:2074:14 | S1 | +| main.rs:2107:9:2107:12 | f2(...) | | main.rs:2084:16:2084:39 | impl ... | +| main.rs:2107:9:2107:18 | await ... | | main.rs:2074:5:2074:14 | S1 | +| main.rs:2108:9:2108:12 | f3(...) | | main.rs:2101:16:2101:39 | impl ... | +| main.rs:2108:9:2108:18 | await ... | | main.rs:2074:5:2074:14 | S1 | +| main.rs:2109:9:2109:10 | S2 | | main.rs:2088:5:2088:14 | S2 | +| main.rs:2109:9:2109:16 | await S2 | | main.rs:2074:5:2074:14 | S1 | +| main.rs:2110:13:2110:13 | b | | {EXTERNAL LOCATION} | trait Future | +| main.rs:2110:13:2110:13 | b | Output | main.rs:2074:5:2074:14 | S1 | +| main.rs:2110:17:2110:28 | { ... } | | {EXTERNAL LOCATION} | trait Future | +| main.rs:2110:17:2110:28 | { ... } | Output | main.rs:2074:5:2074:14 | S1 | +| main.rs:2110:25:2110:26 | S1 | | main.rs:2074:5:2074:14 | S1 | +| main.rs:2111:9:2111:9 | b | | {EXTERNAL LOCATION} | trait Future | +| main.rs:2111:9:2111:9 | b | Output | main.rs:2074:5:2074:14 | S1 | +| main.rs:2111:9:2111:15 | await b | | main.rs:2074:5:2074:14 | S1 | +| main.rs:2122:15:2122:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2122:15:2122:19 | SelfParam | &T | main.rs:2121:5:2123:5 | Self [trait Trait1] | +| main.rs:2126:15:2126:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2126:15:2126:19 | SelfParam | &T | main.rs:2125:5:2127:5 | Self [trait Trait2] | +| main.rs:2130:15:2130:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2130:15:2130:19 | SelfParam | &T | main.rs:2116:5:2117:14 | S1 | +| main.rs:2134:15:2134:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2134:15:2134:19 | SelfParam | &T | main.rs:2116:5:2117:14 | S1 | +| main.rs:2137:37:2139:5 | { ... } | | main.rs:2137:16:2137:35 | impl ... + ... | +| main.rs:2138:9:2138:10 | S1 | | main.rs:2116:5:2117:14 | S1 | +| main.rs:2138:9:2138:10 | S1 | | main.rs:2137:16:2137:35 | impl ... + ... | +| main.rs:2142:18:2142:22 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2142:18:2142:22 | SelfParam | &T | main.rs:2141:5:2143:5 | Self [trait MyTrait] | +| main.rs:2146:18:2146:22 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2146:18:2146:22 | SelfParam | &T | main.rs:2116:5:2117:14 | S1 | +| main.rs:2146:31:2148:9 | { ... } | | main.rs:2118:5:2118:14 | S2 | +| main.rs:2147:13:2147:14 | S2 | | main.rs:2118:5:2118:14 | S2 | +| main.rs:2152:18:2152:22 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2152:18:2152:22 | SelfParam | &T | main.rs:2119:5:2119:22 | S3 | +| main.rs:2152:18:2152:22 | SelfParam | &T.T3 | main.rs:2151:10:2151:17 | T | +| main.rs:2152:30:2155:9 | { ... } | | main.rs:2151:10:2151:17 | T | +| main.rs:2153:17:2153:21 | S3(...) | | file://:0:0:0:0 | & | +| main.rs:2153:17:2153:21 | S3(...) | | main.rs:2119:5:2119:22 | S3 | +| main.rs:2153:17:2153:21 | S3(...) | &T | main.rs:2119:5:2119:22 | S3 | +| main.rs:2153:17:2153:21 | S3(...) | &T.T3 | main.rs:2151:10:2151:17 | T | +| main.rs:2153:25:2153:28 | self | | file://:0:0:0:0 | & | +| main.rs:2153:25:2153:28 | self | &T | main.rs:2119:5:2119:22 | S3 | +| main.rs:2153:25:2153:28 | self | &T.T3 | main.rs:2151:10:2151:17 | T | +| main.rs:2154:13:2154:21 | t.clone() | | main.rs:2151:10:2151:17 | T | +| main.rs:2158:45:2160:5 | { ... } | | main.rs:2158:28:2158:43 | impl ... | +| main.rs:2159:9:2159:10 | S1 | | main.rs:2116:5:2117:14 | S1 | +| main.rs:2159:9:2159:10 | S1 | | main.rs:2158:28:2158:43 | impl ... | +| main.rs:2162:41:2162:41 | t | | main.rs:2162:26:2162:38 | B | +| main.rs:2162:52:2164:5 | { ... } | | main.rs:2162:23:2162:23 | A | +| main.rs:2163:9:2163:9 | t | | main.rs:2162:26:2162:38 | B | +| main.rs:2163:9:2163:17 | t.get_a() | | main.rs:2162:23:2162:23 | A | +| main.rs:2166:34:2166:34 | x | | main.rs:2166:24:2166:31 | T | +| main.rs:2166:59:2168:5 | { ... } | | main.rs:2166:43:2166:57 | impl ... | +| main.rs:2166:59:2168:5 | { ... } | impl(T) | main.rs:2166:24:2166:31 | T | +| main.rs:2167:9:2167:13 | S3(...) | | main.rs:2119:5:2119:22 | S3 | +| main.rs:2167:9:2167:13 | S3(...) | | main.rs:2166:43:2166:57 | impl ... | +| main.rs:2167:9:2167:13 | S3(...) | T3 | main.rs:2166:24:2166:31 | T | +| main.rs:2167:9:2167:13 | S3(...) | impl(T) | main.rs:2166:24:2166:31 | T | +| main.rs:2167:12:2167:12 | x | | main.rs:2166:24:2166:31 | T | +| main.rs:2170:34:2170:34 | x | | main.rs:2170:24:2170:31 | T | +| main.rs:2170:67:2172:5 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:2170:67:2172:5 | { ... } | T | main.rs:2170:50:2170:64 | impl ... | +| main.rs:2170:67:2172:5 | { ... } | T.impl(T) | main.rs:2170:24:2170:31 | T | +| main.rs:2171:9:2171:19 | Some(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2171:9:2171:19 | Some(...) | T | main.rs:2119:5:2119:22 | S3 | +| main.rs:2171:9:2171:19 | Some(...) | T | main.rs:2170:50:2170:64 | impl ... | +| main.rs:2171:9:2171:19 | Some(...) | T.T3 | main.rs:2170:24:2170:31 | T | +| main.rs:2171:9:2171:19 | Some(...) | T.impl(T) | main.rs:2170:24:2170:31 | T | +| main.rs:2171:14:2171:18 | S3(...) | | main.rs:2119:5:2119:22 | S3 | +| main.rs:2171:14:2171:18 | S3(...) | | main.rs:2170:50:2170:64 | impl ... | +| main.rs:2171:14:2171:18 | S3(...) | T3 | main.rs:2170:24:2170:31 | T | +| main.rs:2171:14:2171:18 | S3(...) | impl(T) | main.rs:2170:24:2170:31 | T | +| main.rs:2171:17:2171:17 | x | | main.rs:2170:24:2170:31 | T | +| main.rs:2174:34:2174:34 | x | | main.rs:2174:24:2174:31 | T | +| main.rs:2174:78:2176:5 | { ... } | | file://:0:0:0:0 | (T_2) | +| main.rs:2174:78:2176:5 | { ... } | 0(2) | main.rs:2174:44:2174:58 | impl ... | +| main.rs:2174:78:2176:5 | { ... } | 0(2).impl(T) | main.rs:2174:24:2174:31 | T | +| main.rs:2174:78:2176:5 | { ... } | 1(2) | main.rs:2174:61:2174:75 | impl ... | +| main.rs:2174:78:2176:5 | { ... } | 1(2).impl(T) | main.rs:2174:24:2174:31 | T | +| main.rs:2175:9:2175:30 | TupleExpr | | file://:0:0:0:0 | (T_2) | +| main.rs:2175:9:2175:30 | TupleExpr | 0(2) | main.rs:2119:5:2119:22 | S3 | +| main.rs:2175:9:2175:30 | TupleExpr | 0(2) | main.rs:2174:44:2174:58 | impl ... | +| main.rs:2175:9:2175:30 | TupleExpr | 0(2).T3 | main.rs:2174:24:2174:31 | T | +| main.rs:2175:9:2175:30 | TupleExpr | 0(2).impl(T) | main.rs:2174:24:2174:31 | T | +| main.rs:2175:9:2175:30 | TupleExpr | 1(2) | main.rs:2119:5:2119:22 | S3 | +| main.rs:2175:9:2175:30 | TupleExpr | 1(2) | main.rs:2174:61:2174:75 | impl ... | +| main.rs:2175:9:2175:30 | TupleExpr | 1(2).T3 | main.rs:2174:24:2174:31 | T | +| main.rs:2175:9:2175:30 | TupleExpr | 1(2).impl(T) | main.rs:2174:24:2174:31 | T | +| main.rs:2175:10:2175:22 | S3(...) | | main.rs:2119:5:2119:22 | S3 | +| main.rs:2175:10:2175:22 | S3(...) | | main.rs:2174:44:2174:58 | impl ... | +| main.rs:2175:10:2175:22 | S3(...) | T3 | main.rs:2174:24:2174:31 | T | +| main.rs:2175:10:2175:22 | S3(...) | impl(T) | main.rs:2174:24:2174:31 | T | +| main.rs:2175:13:2175:13 | x | | main.rs:2174:24:2174:31 | T | +| main.rs:2175:13:2175:21 | x.clone() | | main.rs:2174:24:2174:31 | T | +| main.rs:2175:25:2175:29 | S3(...) | | main.rs:2119:5:2119:22 | S3 | +| main.rs:2175:25:2175:29 | S3(...) | | main.rs:2174:61:2174:75 | impl ... | +| main.rs:2175:25:2175:29 | S3(...) | T3 | main.rs:2174:24:2174:31 | T | +| main.rs:2175:25:2175:29 | S3(...) | impl(T) | main.rs:2174:24:2174:31 | T | +| main.rs:2175:28:2175:28 | x | | main.rs:2174:24:2174:31 | T | +| main.rs:2178:26:2178:26 | t | | main.rs:2178:29:2178:43 | impl ... | +| main.rs:2178:51:2180:5 | { ... } | | main.rs:2178:23:2178:23 | A | +| main.rs:2179:9:2179:9 | t | | main.rs:2178:29:2178:43 | impl ... | +| main.rs:2179:9:2179:17 | t.get_a() | | main.rs:2178:23:2178:23 | A | +| main.rs:2183:13:2183:13 | x | | main.rs:2137:16:2137:35 | impl ... + ... | +| main.rs:2183:17:2183:20 | f1(...) | | main.rs:2137:16:2137:35 | impl ... + ... | +| main.rs:2184:9:2184:9 | x | | main.rs:2137:16:2137:35 | impl ... + ... | +| main.rs:2185:9:2185:9 | x | | main.rs:2137:16:2137:35 | impl ... + ... | +| main.rs:2186:13:2186:13 | a | | main.rs:2158:28:2158:43 | impl ... | +| main.rs:2186:17:2186:32 | get_a_my_trait(...) | | main.rs:2158:28:2158:43 | impl ... | +| main.rs:2187:13:2187:13 | b | | main.rs:2118:5:2118:14 | S2 | +| main.rs:2187:17:2187:33 | uses_my_trait1(...) | | main.rs:2118:5:2118:14 | S2 | +| main.rs:2187:32:2187:32 | a | | main.rs:2158:28:2158:43 | impl ... | +| main.rs:2188:13:2188:13 | a | | main.rs:2158:28:2158:43 | impl ... | +| main.rs:2188:17:2188:32 | get_a_my_trait(...) | | main.rs:2158:28:2158:43 | impl ... | +| main.rs:2189:13:2189:13 | c | | main.rs:2118:5:2118:14 | S2 | +| main.rs:2189:17:2189:33 | uses_my_trait2(...) | | main.rs:2118:5:2118:14 | S2 | +| main.rs:2189:32:2189:32 | a | | main.rs:2158:28:2158:43 | impl ... | +| main.rs:2190:13:2190:13 | d | | main.rs:2118:5:2118:14 | S2 | +| main.rs:2190:17:2190:34 | uses_my_trait2(...) | | main.rs:2118:5:2118:14 | S2 | +| main.rs:2190:32:2190:33 | S1 | | main.rs:2116:5:2117:14 | S1 | +| main.rs:2191:13:2191:13 | e | | main.rs:2116:5:2117:14 | S1 | +| main.rs:2191:17:2191:35 | get_a_my_trait2(...) | | main.rs:2166:43:2166:57 | impl ... | +| main.rs:2191:17:2191:35 | get_a_my_trait2(...) | impl(T) | main.rs:2116:5:2117:14 | S1 | +| main.rs:2191:17:2191:43 | ... .get_a() | | main.rs:2116:5:2117:14 | S1 | +| main.rs:2191:33:2191:34 | S1 | | main.rs:2116:5:2117:14 | S1 | +| main.rs:2194:13:2194:13 | f | | main.rs:2116:5:2117:14 | S1 | +| main.rs:2194:17:2194:35 | get_a_my_trait3(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2194:17:2194:35 | get_a_my_trait3(...) | T | main.rs:2170:50:2170:64 | impl ... | +| main.rs:2194:17:2194:35 | get_a_my_trait3(...) | T.impl(T) | main.rs:2116:5:2117:14 | S1 | +| main.rs:2194:17:2194:44 | ... .unwrap() | | main.rs:2170:50:2170:64 | impl ... | +| main.rs:2194:17:2194:44 | ... .unwrap() | impl(T) | main.rs:2116:5:2117:14 | S1 | +| main.rs:2194:17:2194:52 | ... .get_a() | | main.rs:2116:5:2117:14 | S1 | +| main.rs:2194:33:2194:34 | S1 | | main.rs:2116:5:2117:14 | S1 | +| main.rs:2195:13:2195:13 | g | | main.rs:2116:5:2117:14 | S1 | +| main.rs:2195:17:2195:35 | get_a_my_trait4(...) | | file://:0:0:0:0 | (T_2) | +| main.rs:2195:17:2195:35 | get_a_my_trait4(...) | 0(2) | main.rs:2174:44:2174:58 | impl ... | +| main.rs:2195:17:2195:35 | get_a_my_trait4(...) | 0(2).impl(T) | main.rs:2116:5:2117:14 | S1 | +| main.rs:2195:17:2195:35 | get_a_my_trait4(...) | 1(2) | main.rs:2174:61:2174:75 | impl ... | +| main.rs:2195:17:2195:35 | get_a_my_trait4(...) | 1(2).impl(T) | main.rs:2116:5:2117:14 | S1 | +| main.rs:2195:17:2195:37 | ... .0 | | main.rs:2174:44:2174:58 | impl ... | +| main.rs:2195:17:2195:37 | ... .0 | impl(T) | main.rs:2116:5:2117:14 | S1 | +| main.rs:2195:17:2195:45 | ... .get_a() | | main.rs:2116:5:2117:14 | S1 | +| main.rs:2195:33:2195:34 | S1 | | main.rs:2116:5:2117:14 | S1 | +| main.rs:2206:16:2206:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2206:16:2206:20 | SelfParam | &T | main.rs:2202:5:2203:13 | S | +| main.rs:2206:31:2208:9 | { ... } | | main.rs:2202:5:2203:13 | S | +| main.rs:2207:13:2207:13 | S | | main.rs:2202:5:2203:13 | S | +| main.rs:2217:26:2219:9 | { ... } | | main.rs:2211:5:2214:5 | MyVec | +| main.rs:2217:26:2219:9 | { ... } | T | main.rs:2216:10:2216:10 | T | +| main.rs:2218:13:2218:38 | MyVec {...} | | main.rs:2211:5:2214:5 | MyVec | +| main.rs:2218:13:2218:38 | MyVec {...} | T | main.rs:2216:10:2216:10 | T | +| main.rs:2218:27:2218:36 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2218:27:2218:36 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2218:27:2218:36 | ...::new(...) | T | main.rs:2216:10:2216:10 | T | +| main.rs:2221:17:2221:25 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2221:17:2221:25 | SelfParam | &T | main.rs:2211:5:2214:5 | MyVec | +| main.rs:2221:17:2221:25 | SelfParam | &T.T | main.rs:2216:10:2216:10 | T | +| main.rs:2221:28:2221:32 | value | | main.rs:2216:10:2216:10 | T | +| main.rs:2222:13:2222:16 | self | | file://:0:0:0:0 | & | +| main.rs:2222:13:2222:16 | self | &T | main.rs:2211:5:2214:5 | MyVec | +| main.rs:2222:13:2222:16 | self | &T.T | main.rs:2216:10:2216:10 | T | +| main.rs:2222:13:2222:21 | self.data | | {EXTERNAL LOCATION} | Vec | +| main.rs:2222:13:2222:21 | self.data | A | {EXTERNAL LOCATION} | Global | +| main.rs:2222:13:2222:21 | self.data | T | main.rs:2216:10:2216:10 | T | +| main.rs:2222:28:2222:32 | value | | main.rs:2216:10:2216:10 | T | +| main.rs:2230:18:2230:22 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2230:18:2230:22 | SelfParam | &T | main.rs:2211:5:2214:5 | MyVec | +| main.rs:2230:18:2230:22 | SelfParam | &T.T | main.rs:2226:10:2226:10 | T | +| main.rs:2230:25:2230:29 | index | | {EXTERNAL LOCATION} | usize | +| main.rs:2230:56:2232:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:2230:56:2232:9 | { ... } | &T | main.rs:2226:10:2226:10 | T | +| main.rs:2231:13:2231:29 | &... | | file://:0:0:0:0 | & | +| main.rs:2231:13:2231:29 | &... | &T | main.rs:2226:10:2226:10 | T | +| main.rs:2231:14:2231:17 | self | | file://:0:0:0:0 | & | +| main.rs:2231:14:2231:17 | self | &T | main.rs:2211:5:2214:5 | MyVec | +| main.rs:2231:14:2231:17 | self | &T.T | main.rs:2226:10:2226:10 | T | +| main.rs:2231:14:2231:22 | self.data | | {EXTERNAL LOCATION} | Vec | +| main.rs:2231:14:2231:22 | self.data | A | {EXTERNAL LOCATION} | Global | +| main.rs:2231:14:2231:22 | self.data | T | main.rs:2226:10:2226:10 | T | +| main.rs:2231:14:2231:29 | ...[index] | | main.rs:2226:10:2226:10 | T | +| main.rs:2231:24:2231:28 | index | | {EXTERNAL LOCATION} | usize | +| main.rs:2235:22:2235:26 | slice | | file://:0:0:0:0 | & | +| main.rs:2235:22:2235:26 | slice | &T | file://:0:0:0:0 | [] | +| main.rs:2235:22:2235:26 | slice | &T.[T] | main.rs:2202:5:2203:13 | S | +| main.rs:2236:13:2236:13 | x | | main.rs:2202:5:2203:13 | S | +| main.rs:2236:17:2236:21 | slice | | file://:0:0:0:0 | & | +| main.rs:2236:17:2236:21 | slice | &T | file://:0:0:0:0 | [] | +| main.rs:2236:17:2236:21 | slice | &T.[T] | main.rs:2202:5:2203:13 | S | +| main.rs:2236:17:2236:24 | slice[0] | | main.rs:2202:5:2203:13 | S | +| main.rs:2236:17:2236:30 | ... .foo() | | main.rs:2202:5:2203:13 | S | +| main.rs:2236:23:2236:23 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2239:37:2239:37 | a | | main.rs:2239:20:2239:34 | T | +| main.rs:2239:43:2239:43 | b | | {EXTERNAL LOCATION} | usize | +| main.rs:2242:5:2244:5 | { ... } | | {EXTERNAL LOCATION} | Output | +| main.rs:2243:9:2243:9 | a | | main.rs:2239:20:2239:34 | T | +| main.rs:2243:9:2243:12 | a[b] | | {EXTERNAL LOCATION} | Output | +| main.rs:2243:11:2243:11 | b | | {EXTERNAL LOCATION} | usize | +| main.rs:2247:17:2247:19 | vec | | main.rs:2211:5:2214:5 | MyVec | +| main.rs:2247:17:2247:19 | vec | T | main.rs:2202:5:2203:13 | S | +| main.rs:2247:23:2247:34 | ...::new(...) | | main.rs:2211:5:2214:5 | MyVec | +| main.rs:2247:23:2247:34 | ...::new(...) | T | main.rs:2202:5:2203:13 | S | +| main.rs:2248:9:2248:11 | vec | | main.rs:2211:5:2214:5 | MyVec | +| main.rs:2248:9:2248:11 | vec | T | main.rs:2202:5:2203:13 | S | +| main.rs:2248:18:2248:18 | S | | main.rs:2202:5:2203:13 | S | +| main.rs:2249:9:2249:11 | vec | | main.rs:2211:5:2214:5 | MyVec | +| main.rs:2249:9:2249:11 | vec | T | main.rs:2202:5:2203:13 | S | +| main.rs:2249:9:2249:14 | vec[0] | | main.rs:2202:5:2203:13 | S | +| main.rs:2249:9:2249:20 | ... .foo() | | main.rs:2202:5:2203:13 | S | +| main.rs:2249:13:2249:13 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2249:13:2249:13 | 0 | | {EXTERNAL LOCATION} | usize | +| main.rs:2251:13:2251:14 | xs | | file://:0:0:0:0 | [] | +| main.rs:2251:13:2251:14 | xs | [T;...] | main.rs:2202:5:2203:13 | S | +| main.rs:2251:21:2251:21 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2251:26:2251:28 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2251:26:2251:28 | [...] | [T;...] | main.rs:2202:5:2203:13 | S | +| main.rs:2251:27:2251:27 | S | | main.rs:2202:5:2203:13 | S | +| main.rs:2252:13:2252:13 | x | | main.rs:2202:5:2203:13 | S | +| main.rs:2252:17:2252:18 | xs | | file://:0:0:0:0 | [] | +| main.rs:2252:17:2252:18 | xs | [T;...] | main.rs:2202:5:2203:13 | S | +| main.rs:2252:17:2252:21 | xs[0] | | main.rs:2202:5:2203:13 | S | +| main.rs:2252:17:2252:27 | ... .foo() | | main.rs:2202:5:2203:13 | S | +| main.rs:2252:20:2252:20 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2254:29:2254:31 | vec | | main.rs:2211:5:2214:5 | MyVec | +| main.rs:2254:29:2254:31 | vec | T | main.rs:2202:5:2203:13 | S | +| main.rs:2254:34:2254:34 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2254:34:2254:34 | 0 | | {EXTERNAL LOCATION} | usize | +| main.rs:2256:23:2256:25 | &xs | | file://:0:0:0:0 | & | +| main.rs:2256:23:2256:25 | &xs | &T | file://:0:0:0:0 | [] | +| main.rs:2256:23:2256:25 | &xs | &T | file://:0:0:0:0 | [] | +| main.rs:2256:23:2256:25 | &xs | &T.[T;...] | main.rs:2202:5:2203:13 | S | +| main.rs:2256:23:2256:25 | &xs | &T.[T] | main.rs:2202:5:2203:13 | S | +| main.rs:2256:24:2256:25 | xs | | file://:0:0:0:0 | [] | +| main.rs:2256:24:2256:25 | xs | [T;...] | main.rs:2202:5:2203:13 | S | +| main.rs:2262:13:2262:13 | x | | {EXTERNAL LOCATION} | String | +| main.rs:2262:17:2262:46 | MacroExpr | | {EXTERNAL LOCATION} | String | +| main.rs:2262:25:2262:35 | "Hello, {}" | | file://:0:0:0:0 | & | +| main.rs:2262:25:2262:35 | "Hello, {}" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2262:25:2262:45 | ...::format(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2262:25:2262:45 | ...::must_use(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2262:25:2262:45 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2262:25:2262:45 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2262:25:2262:45 | { ... } | | {EXTERNAL LOCATION} | String | +| main.rs:2262:38:2262:45 | "World!" | | file://:0:0:0:0 | & | +| main.rs:2262:38:2262:45 | "World!" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2271:19:2271:22 | SelfParam | | main.rs:2267:5:2272:5 | Self [trait MyAdd] | +| main.rs:2271:25:2271:27 | rhs | | main.rs:2267:17:2267:26 | Rhs | +| main.rs:2278:19:2278:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | +| main.rs:2278:25:2278:29 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2278:45:2280:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2279:13:2279:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2287:19:2287:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | +| main.rs:2287:25:2287:29 | value | | file://:0:0:0:0 | & | +| main.rs:2287:25:2287:29 | value | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:2287:46:2289:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2288:13:2288:18 | * ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2288:14:2288:18 | value | | file://:0:0:0:0 | & | +| main.rs:2288:14:2288:18 | value | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:2296:19:2296:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | +| main.rs:2296:25:2296:29 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2296:46:2302:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2297:13:2301:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | +| main.rs:2297:13:2301:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | +| main.rs:2297:16:2297:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2297:22:2299:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2297:22:2299:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2298:17:2298:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2298:17:2298:17 | 1 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2299:20:2301:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2299:20:2301:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2300:17:2300:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2300:17:2300:17 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2311:19:2311:22 | SelfParam | | main.rs:2305:5:2305:19 | S | +| main.rs:2311:19:2311:22 | SelfParam | T | main.rs:2307:10:2307:17 | T | +| main.rs:2311:25:2311:29 | other | | main.rs:2305:5:2305:19 | S | +| main.rs:2311:25:2311:29 | other | T | main.rs:2307:10:2307:17 | T | +| main.rs:2311:54:2313:9 | { ... } | | main.rs:2305:5:2305:19 | S | +| main.rs:2311:54:2313:9 | { ... } | T | main.rs:2268:9:2268:20 | Output | +| main.rs:2312:13:2312:39 | S(...) | | main.rs:2305:5:2305:19 | S | +| main.rs:2312:13:2312:39 | S(...) | T | main.rs:2268:9:2268:20 | Output | +| main.rs:2312:15:2312:22 | (...) | | main.rs:2307:10:2307:17 | T | +| main.rs:2312:15:2312:38 | ... .my_add(...) | | main.rs:2268:9:2268:20 | Output | +| main.rs:2312:16:2312:19 | self | | main.rs:2305:5:2305:19 | S | +| main.rs:2312:16:2312:19 | self | T | main.rs:2307:10:2307:17 | T | +| main.rs:2312:16:2312:21 | self.0 | | main.rs:2307:10:2307:17 | T | +| main.rs:2312:31:2312:35 | other | | main.rs:2305:5:2305:19 | S | +| main.rs:2312:31:2312:35 | other | T | main.rs:2307:10:2307:17 | T | +| main.rs:2312:31:2312:37 | other.0 | | main.rs:2267:5:2272:5 | Self [trait MyAdd] | +| main.rs:2312:31:2312:37 | other.0 | | main.rs:2307:10:2307:17 | T | +| main.rs:2320:19:2320:22 | SelfParam | | main.rs:2305:5:2305:19 | S | +| main.rs:2320:19:2320:22 | SelfParam | T | main.rs:2316:10:2316:17 | T | +| main.rs:2320:25:2320:29 | other | | main.rs:2316:10:2316:17 | T | +| main.rs:2320:51:2322:9 | { ... } | | main.rs:2305:5:2305:19 | S | +| main.rs:2320:51:2322:9 | { ... } | T | main.rs:2268:9:2268:20 | Output | +| main.rs:2321:13:2321:37 | S(...) | | main.rs:2305:5:2305:19 | S | +| main.rs:2321:13:2321:37 | S(...) | T | main.rs:2268:9:2268:20 | Output | +| main.rs:2321:15:2321:22 | (...) | | main.rs:2316:10:2316:17 | T | +| main.rs:2321:15:2321:36 | ... .my_add(...) | | main.rs:2268:9:2268:20 | Output | +| main.rs:2321:16:2321:19 | self | | main.rs:2305:5:2305:19 | S | +| main.rs:2321:16:2321:19 | self | T | main.rs:2316:10:2316:17 | T | +| main.rs:2321:16:2321:21 | self.0 | | main.rs:2316:10:2316:17 | T | +| main.rs:2321:31:2321:35 | other | | main.rs:2316:10:2316:17 | T | +| main.rs:2332:19:2332:22 | SelfParam | | main.rs:2305:5:2305:19 | S | +| main.rs:2332:19:2332:22 | SelfParam | T | main.rs:2325:14:2325:14 | T | +| main.rs:2332:25:2332:29 | other | | file://:0:0:0:0 | & | +| main.rs:2332:25:2332:29 | other | &T | main.rs:2325:14:2325:14 | T | +| main.rs:2332:55:2334:9 | { ... } | | main.rs:2305:5:2305:19 | S | +| main.rs:2333:13:2333:37 | S(...) | | main.rs:2305:5:2305:19 | S | +| main.rs:2333:15:2333:22 | (...) | | main.rs:2325:14:2325:14 | T | +| main.rs:2333:16:2333:19 | self | | main.rs:2305:5:2305:19 | S | +| main.rs:2333:16:2333:19 | self | T | main.rs:2325:14:2325:14 | T | +| main.rs:2333:16:2333:21 | self.0 | | main.rs:2325:14:2325:14 | T | +| main.rs:2333:31:2333:35 | other | | file://:0:0:0:0 | & | +| main.rs:2333:31:2333:35 | other | &T | main.rs:2325:14:2325:14 | T | +| main.rs:2339:20:2339:24 | value | | main.rs:2337:18:2337:18 | T | +| main.rs:2344:20:2344:24 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2344:40:2346:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2345:13:2345:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2351:20:2351:24 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2351:41:2357:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2352:13:2356:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | +| main.rs:2352:13:2356:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | +| main.rs:2352:16:2352:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2352:22:2354:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2352:22:2354:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2353:17:2353:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2353:17:2353:17 | 1 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2354:20:2356:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2354:20:2356:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2355:17:2355:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2355:17:2355:17 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2362:21:2362:25 | value | | main.rs:2360:19:2360:19 | T | +| main.rs:2362:31:2362:31 | x | | main.rs:2360:5:2363:5 | Self [trait MyFrom2] | +| main.rs:2367:21:2367:25 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2367:33:2367:33 | _ | | {EXTERNAL LOCATION} | i64 | +| main.rs:2367:48:2369:9 | { ... } | | file://:0:0:0:0 | () | +| main.rs:2368:13:2368:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2374:21:2374:25 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2374:34:2374:34 | _ | | {EXTERNAL LOCATION} | i64 | +| main.rs:2374:49:2380:9 | { ... } | | file://:0:0:0:0 | () | +| main.rs:2375:13:2379:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | +| main.rs:2375:16:2375:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2375:22:2377:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2376:17:2376:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2377:20:2379:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2378:17:2378:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2385:15:2385:15 | x | | main.rs:2383:5:2389:5 | Self [trait MySelfTrait] | +| main.rs:2388:15:2388:15 | x | | main.rs:2383:5:2389:5 | Self [trait MySelfTrait] | +| main.rs:2393:15:2393:15 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2393:31:2395:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2394:13:2394:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2394:13:2394:17 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2394:17:2394:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2398:15:2398:15 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2398:32:2400:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2399:13:2399:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2399:13:2399:17 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2399:17:2399:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2405:15:2405:15 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:2405:31:2407:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2406:13:2406:13 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2406:13:2406:13 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2410:15:2410:15 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:2410:32:2412:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2411:13:2411:13 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:2416:13:2416:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2416:22:2416:23 | 73 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2416:22:2416:23 | 73 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2417:9:2417:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2417:9:2417:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2417:18:2417:21 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2418:9:2418:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2418:9:2418:23 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2418:18:2418:22 | &5i64 | | file://:0:0:0:0 | & | +| main.rs:2418:18:2418:22 | &5i64 | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:2418:19:2418:22 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2419:9:2419:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2419:9:2419:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2419:18:2419:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2421:9:2421:15 | S(...) | | main.rs:2305:5:2305:19 | S | +| main.rs:2421:9:2421:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | +| main.rs:2421:9:2421:31 | ... .my_add(...) | | main.rs:2305:5:2305:19 | S | +| main.rs:2421:11:2421:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2421:24:2421:30 | S(...) | | main.rs:2305:5:2305:19 | S | +| main.rs:2421:24:2421:30 | S(...) | T | {EXTERNAL LOCATION} | i64 | +| main.rs:2421:26:2421:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2422:9:2422:15 | S(...) | | main.rs:2305:5:2305:19 | S | +| main.rs:2422:9:2422:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | +| main.rs:2422:11:2422:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2422:24:2422:27 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2423:9:2423:15 | S(...) | | main.rs:2305:5:2305:19 | S | +| main.rs:2423:9:2423:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | +| main.rs:2423:9:2423:29 | ... .my_add(...) | | main.rs:2305:5:2305:19 | S | +| main.rs:2423:11:2423:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2423:24:2423:28 | &3i64 | | file://:0:0:0:0 | & | +| main.rs:2423:24:2423:28 | &3i64 | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:2423:25:2423:28 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2425:13:2425:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2425:17:2425:35 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2425:30:2425:34 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2426:13:2426:13 | y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2426:17:2426:34 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2426:30:2426:33 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2427:13:2427:13 | z | | {EXTERNAL LOCATION} | i64 | +| main.rs:2427:22:2427:43 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2427:38:2427:42 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2428:9:2428:34 | ...::my_from2(...) | | file://:0:0:0:0 | () | +| main.rs:2428:23:2428:27 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2428:30:2428:33 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2429:9:2429:33 | ...::my_from2(...) | | file://:0:0:0:0 | () | +| main.rs:2429:23:2429:26 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2429:29:2429:32 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2430:9:2430:38 | ...::my_from2(...) | | file://:0:0:0:0 | () | +| main.rs:2430:27:2430:31 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2430:34:2430:37 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2432:9:2432:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2432:17:2432:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2433:9:2433:22 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2433:17:2433:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2434:9:2434:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2434:18:2434:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2435:9:2435:22 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2435:18:2435:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2436:9:2436:30 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2436:25:2436:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2437:9:2437:30 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2437:25:2437:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2438:9:2438:29 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2438:25:2438:28 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2439:9:2439:29 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2439:25:2439:28 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2447:26:2449:9 | { ... } | | main.rs:2444:5:2444:24 | MyCallable | +| main.rs:2448:13:2448:25 | MyCallable {...} | | main.rs:2444:5:2444:24 | MyCallable | +| main.rs:2451:17:2451:21 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2451:17:2451:21 | SelfParam | &T | main.rs:2444:5:2444:24 | MyCallable | +| main.rs:2451:31:2453:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2452:13:2452:13 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2452:13:2452:13 | 1 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2459:13:2459:13 | i | | {EXTERNAL LOCATION} | i32 | +| main.rs:2459:18:2459:26 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2459:18:2459:26 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2459:19:2459:19 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2459:22:2459:22 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2459:25:2459:25 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2460:18:2460:26 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2460:18:2460:26 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2460:18:2460:41 | ... .map(...) | | file://:0:0:0:0 | [] | +| main.rs:2460:19:2460:19 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2460:22:2460:22 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2460:25:2460:25 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2460:32:2460:40 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | +| main.rs:2460:32:2460:40 | \|...\| ... | dyn(Args) | file://:0:0:0:0 | (T_1) | +| main.rs:2460:40:2460:40 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2461:13:2461:13 | i | | {EXTERNAL LOCATION} | Item | +| main.rs:2461:13:2461:13 | i | | {EXTERNAL LOCATION} | i32 | | main.rs:2461:18:2461:26 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2461:18:2461:26 | [...] | [T;...] | {EXTERNAL LOCATION} | Range | -| main.rs:2461:18:2461:26 | [...] | [T;...].Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2461:18:2461:26 | [...] | [T;...].Idx | {EXTERNAL LOCATION} | u8 | -| main.rs:2461:19:2461:21 | 0u8 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2461:19:2461:25 | 0u8..10 | | {EXTERNAL LOCATION} | Range | -| main.rs:2461:19:2461:25 | 0u8..10 | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2461:19:2461:25 | 0u8..10 | Idx | {EXTERNAL LOCATION} | u8 | -| main.rs:2461:24:2461:25 | 10 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2461:24:2461:25 | 10 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2462:13:2462:17 | range | | {EXTERNAL LOCATION} | Range | -| main.rs:2462:13:2462:17 | range | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2462:21:2462:21 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2462:21:2462:25 | 0..10 | | {EXTERNAL LOCATION} | Range | -| main.rs:2462:21:2462:25 | 0..10 | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2462:24:2462:25 | 10 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2463:13:2463:13 | i | | {EXTERNAL LOCATION} | Item | -| main.rs:2463:13:2463:13 | i | | {EXTERNAL LOCATION} | i32 | -| main.rs:2463:18:2463:22 | range | | {EXTERNAL LOCATION} | Range | -| main.rs:2463:18:2463:22 | range | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2464:13:2464:22 | range_full | | {EXTERNAL LOCATION} | RangeFull | -| main.rs:2464:26:2464:27 | .. | | {EXTERNAL LOCATION} | RangeFull | -| main.rs:2465:13:2465:13 | i | | {EXTERNAL LOCATION} | Item | -| main.rs:2465:18:2465:48 | &... | | file://:0:0:0:0 | & | -| main.rs:2465:19:2465:36 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2465:19:2465:36 | [...] | [T;...] | {EXTERNAL LOCATION} | i64 | -| main.rs:2465:20:2465:23 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2465:26:2465:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2465:32:2465:35 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2465:38:2465:47 | range_full | | {EXTERNAL LOCATION} | RangeFull | -| main.rs:2467:13:2467:18 | range1 | | {EXTERNAL LOCATION} | Range | -| main.rs:2467:13:2467:18 | range1 | Idx | {EXTERNAL LOCATION} | u16 | -| main.rs:2468:9:2471:9 | ...::Range {...} | | {EXTERNAL LOCATION} | Range | -| main.rs:2468:9:2471:9 | ...::Range {...} | Idx | {EXTERNAL LOCATION} | u16 | -| main.rs:2469:20:2469:23 | 0u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2470:18:2470:22 | 10u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2472:13:2472:13 | u | | {EXTERNAL LOCATION} | Item | -| main.rs:2472:13:2472:13 | u | | {EXTERNAL LOCATION} | u16 | -| main.rs:2472:18:2472:23 | range1 | | {EXTERNAL LOCATION} | Range | -| main.rs:2472:18:2472:23 | range1 | Idx | {EXTERNAL LOCATION} | u16 | -| main.rs:2476:26:2476:26 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2476:29:2476:29 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2476:32:2476:32 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2479:13:2479:18 | vals4a | | {EXTERNAL LOCATION} | Vec | -| main.rs:2479:13:2479:18 | vals4a | A | {EXTERNAL LOCATION} | Global | -| main.rs:2479:13:2479:18 | vals4a | T | {EXTERNAL LOCATION} | u16 | -| main.rs:2479:32:2479:43 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2479:32:2479:43 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2479:32:2479:43 | [...] | [T;...] | {EXTERNAL LOCATION} | u16 | -| main.rs:2479:32:2479:52 | ... .to_vec() | | {EXTERNAL LOCATION} | Vec | -| main.rs:2479:32:2479:52 | ... .to_vec() | A | {EXTERNAL LOCATION} | Global | -| main.rs:2479:32:2479:52 | ... .to_vec() | T | {EXTERNAL LOCATION} | u16 | -| main.rs:2479:33:2479:36 | 1u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2479:39:2479:39 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2479:42:2479:42 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2480:13:2480:13 | u | | {EXTERNAL LOCATION} | u16 | -| main.rs:2480:13:2480:13 | u | | file://:0:0:0:0 | & | -| main.rs:2480:18:2480:23 | vals4a | | {EXTERNAL LOCATION} | Vec | -| main.rs:2480:18:2480:23 | vals4a | A | {EXTERNAL LOCATION} | Global | -| main.rs:2480:18:2480:23 | vals4a | T | {EXTERNAL LOCATION} | u16 | -| main.rs:2482:22:2482:33 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2482:22:2482:33 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2482:22:2482:33 | [...] | [T;...] | {EXTERNAL LOCATION} | u16 | -| main.rs:2482:23:2482:26 | 1u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2482:29:2482:29 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2482:32:2482:32 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2485:13:2485:17 | vals5 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2485:13:2485:17 | vals5 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2485:13:2485:17 | vals5 | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2485:13:2485:17 | vals5 | T | {EXTERNAL LOCATION} | u32 | -| main.rs:2485:21:2485:43 | ...::from(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2485:21:2485:43 | ...::from(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2485:21:2485:43 | ...::from(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2485:21:2485:43 | ...::from(...) | T | {EXTERNAL LOCATION} | u32 | -| main.rs:2485:31:2485:42 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2485:31:2485:42 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2485:31:2485:42 | [...] | [T;...] | {EXTERNAL LOCATION} | u32 | -| main.rs:2485:32:2485:35 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2485:38:2485:38 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2485:41:2485:41 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2486:13:2486:13 | u | | {EXTERNAL LOCATION} | i32 | -| main.rs:2486:13:2486:13 | u | | {EXTERNAL LOCATION} | u32 | -| main.rs:2486:13:2486:13 | u | | file://:0:0:0:0 | & | -| main.rs:2486:18:2486:22 | vals5 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2486:18:2486:22 | vals5 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2486:18:2486:22 | vals5 | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2486:18:2486:22 | vals5 | T | {EXTERNAL LOCATION} | u32 | -| main.rs:2488:13:2488:17 | vals6 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2488:13:2488:17 | vals6 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2488:13:2488:17 | vals6 | T | file://:0:0:0:0 | & | -| main.rs:2488:13:2488:17 | vals6 | T.&T | {EXTERNAL LOCATION} | u64 | -| main.rs:2488:32:2488:43 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2488:32:2488:43 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2488:32:2488:43 | [...] | [T;...] | {EXTERNAL LOCATION} | u64 | -| main.rs:2488:32:2488:60 | ... .collect() | | {EXTERNAL LOCATION} | Vec | -| main.rs:2488:32:2488:60 | ... .collect() | A | {EXTERNAL LOCATION} | Global | -| main.rs:2488:32:2488:60 | ... .collect() | T | file://:0:0:0:0 | & | -| main.rs:2488:32:2488:60 | ... .collect() | T.&T | {EXTERNAL LOCATION} | u64 | -| main.rs:2488:33:2488:36 | 1u64 | | {EXTERNAL LOCATION} | u64 | -| main.rs:2488:39:2488:39 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2488:42:2488:42 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2489:13:2489:13 | u | | file://:0:0:0:0 | & | -| main.rs:2489:13:2489:13 | u | &T | {EXTERNAL LOCATION} | u64 | -| main.rs:2489:18:2489:22 | vals6 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2489:18:2489:22 | vals6 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2489:18:2489:22 | vals6 | T | file://:0:0:0:0 | & | -| main.rs:2489:18:2489:22 | vals6 | T.&T | {EXTERNAL LOCATION} | u64 | -| main.rs:2491:17:2491:21 | vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2491:17:2491:21 | vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2491:17:2491:21 | vals7 | T | {EXTERNAL LOCATION} | u8 | -| main.rs:2491:25:2491:34 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2491:25:2491:34 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2491:25:2491:34 | ...::new(...) | T | {EXTERNAL LOCATION} | u8 | -| main.rs:2492:9:2492:13 | vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2492:9:2492:13 | vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2492:9:2492:13 | vals7 | T | {EXTERNAL LOCATION} | u8 | -| main.rs:2492:20:2492:22 | 1u8 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2493:13:2493:13 | u | | {EXTERNAL LOCATION} | u8 | -| main.rs:2493:13:2493:13 | u | | file://:0:0:0:0 | & | -| main.rs:2493:18:2493:22 | vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2493:18:2493:22 | vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2493:18:2493:22 | vals7 | T | {EXTERNAL LOCATION} | u8 | -| main.rs:2495:33:2495:33 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2495:36:2495:36 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2495:45:2495:45 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2495:48:2495:48 | 4 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2502:17:2502:20 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2502:17:2502:20 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2502:17:2502:20 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2502:17:2502:20 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2502:17:2502:20 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2502:17:2502:20 | map1 | V.T | file://:0:0:0:0 | & | -| main.rs:2502:17:2502:20 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2502:24:2502:55 | ...::new(...) | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2502:24:2502:55 | ...::new(...) | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2502:24:2502:55 | ...::new(...) | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2502:24:2502:55 | ...::new(...) | V | {EXTERNAL LOCATION} | Box | -| main.rs:2502:24:2502:55 | ...::new(...) | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2502:24:2502:55 | ...::new(...) | V.T | file://:0:0:0:0 | & | -| main.rs:2502:24:2502:55 | ...::new(...) | V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2503:9:2503:12 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2503:9:2503:12 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2503:9:2503:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2503:9:2503:12 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2503:9:2503:12 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2503:9:2503:12 | map1 | V.T | file://:0:0:0:0 | & | -| main.rs:2503:9:2503:12 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2503:9:2503:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2503:9:2503:39 | map1.insert(...) | T | {EXTERNAL LOCATION} | Box | -| main.rs:2503:9:2503:39 | map1.insert(...) | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2503:9:2503:39 | map1.insert(...) | T.T | file://:0:0:0:0 | & | -| main.rs:2503:9:2503:39 | map1.insert(...) | T.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2503:21:2503:21 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2503:24:2503:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2503:24:2503:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2503:24:2503:38 | ...::new(...) | T | file://:0:0:0:0 | & | -| main.rs:2503:24:2503:38 | ...::new(...) | T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2503:33:2503:37 | "one" | | file://:0:0:0:0 | & | -| main.rs:2503:33:2503:37 | "one" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2504:9:2504:12 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2504:9:2504:12 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2504:9:2504:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2504:9:2504:12 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2504:9:2504:12 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2504:9:2504:12 | map1 | V.T | file://:0:0:0:0 | & | -| main.rs:2504:9:2504:12 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2504:9:2504:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2504:9:2504:39 | map1.insert(...) | T | {EXTERNAL LOCATION} | Box | -| main.rs:2504:9:2504:39 | map1.insert(...) | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2504:9:2504:39 | map1.insert(...) | T.T | file://:0:0:0:0 | & | -| main.rs:2504:9:2504:39 | map1.insert(...) | T.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2504:21:2504:21 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2504:24:2504:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2504:24:2504:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2504:24:2504:38 | ...::new(...) | T | file://:0:0:0:0 | & | -| main.rs:2504:24:2504:38 | ...::new(...) | T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2504:33:2504:37 | "two" | | file://:0:0:0:0 | & | -| main.rs:2504:33:2504:37 | "two" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2505:13:2505:15 | key | | {EXTERNAL LOCATION} | Item | -| main.rs:2505:13:2505:15 | key | | file://:0:0:0:0 | & | -| main.rs:2505:13:2505:15 | key | &T | {EXTERNAL LOCATION} | i32 | -| main.rs:2505:20:2505:23 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2505:20:2505:23 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2505:20:2505:23 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2505:20:2505:23 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2505:20:2505:23 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2505:20:2505:23 | map1 | V.T | file://:0:0:0:0 | & | -| main.rs:2505:20:2505:23 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2505:20:2505:30 | map1.keys() | | {EXTERNAL LOCATION} | Keys | -| main.rs:2505:20:2505:30 | map1.keys() | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2505:20:2505:30 | map1.keys() | V | {EXTERNAL LOCATION} | Box | -| main.rs:2505:20:2505:30 | map1.keys() | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2505:20:2505:30 | map1.keys() | V.T | file://:0:0:0:0 | & | -| main.rs:2505:20:2505:30 | map1.keys() | V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2506:13:2506:17 | value | | {EXTERNAL LOCATION} | Item | -| main.rs:2506:13:2506:17 | value | | file://:0:0:0:0 | & | -| main.rs:2506:13:2506:17 | value | &T | {EXTERNAL LOCATION} | Box | -| main.rs:2506:13:2506:17 | value | &T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2506:13:2506:17 | value | &T.T | file://:0:0:0:0 | & | -| main.rs:2506:13:2506:17 | value | &T.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2506:22:2506:25 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2506:22:2506:25 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2506:22:2506:25 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2506:22:2506:25 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2506:22:2506:25 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2506:22:2506:25 | map1 | V.T | file://:0:0:0:0 | & | -| main.rs:2506:22:2506:25 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2506:22:2506:34 | map1.values() | | {EXTERNAL LOCATION} | Values | -| main.rs:2506:22:2506:34 | map1.values() | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2506:22:2506:34 | map1.values() | V | {EXTERNAL LOCATION} | Box | -| main.rs:2506:22:2506:34 | map1.values() | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2506:22:2506:34 | map1.values() | V.T | file://:0:0:0:0 | & | -| main.rs:2506:22:2506:34 | map1.values() | V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2507:13:2507:24 | TuplePat | | file://:0:0:0:0 | (T_2) | -| main.rs:2507:13:2507:24 | TuplePat | 0(2) | file://:0:0:0:0 | & | -| main.rs:2507:13:2507:24 | TuplePat | 0(2).&T | {EXTERNAL LOCATION} | i32 | -| main.rs:2507:13:2507:24 | TuplePat | 1(2) | file://:0:0:0:0 | & | -| main.rs:2507:13:2507:24 | TuplePat | 1(2).&T | {EXTERNAL LOCATION} | Box | -| main.rs:2507:13:2507:24 | TuplePat | 1(2).&T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2507:13:2507:24 | TuplePat | 1(2).&T.T | file://:0:0:0:0 | & | -| main.rs:2507:13:2507:24 | TuplePat | 1(2).&T.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2507:14:2507:16 | key | | file://:0:0:0:0 | & | -| main.rs:2507:14:2507:16 | key | &T | {EXTERNAL LOCATION} | i32 | -| main.rs:2507:19:2507:23 | value | | file://:0:0:0:0 | & | -| main.rs:2507:19:2507:23 | value | &T | {EXTERNAL LOCATION} | Box | -| main.rs:2507:19:2507:23 | value | &T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2507:19:2507:23 | value | &T.T | file://:0:0:0:0 | & | -| main.rs:2507:19:2507:23 | value | &T.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2507:29:2507:32 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2507:29:2507:32 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2507:29:2507:32 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2507:29:2507:32 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2507:29:2507:32 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2507:29:2507:32 | map1 | V.T | file://:0:0:0:0 | & | -| main.rs:2507:29:2507:32 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2507:29:2507:39 | map1.iter() | | {EXTERNAL LOCATION} | Iter | -| main.rs:2507:29:2507:39 | map1.iter() | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2507:29:2507:39 | map1.iter() | V | {EXTERNAL LOCATION} | Box | -| main.rs:2507:29:2507:39 | map1.iter() | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2507:29:2507:39 | map1.iter() | V.T | file://:0:0:0:0 | & | -| main.rs:2507:29:2507:39 | map1.iter() | V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2508:13:2508:24 | TuplePat | | file://:0:0:0:0 | (T_2) | -| main.rs:2508:13:2508:24 | TuplePat | 0(2) | file://:0:0:0:0 | & | -| main.rs:2508:13:2508:24 | TuplePat | 0(2).&T | {EXTERNAL LOCATION} | i32 | -| main.rs:2508:13:2508:24 | TuplePat | 1(2) | file://:0:0:0:0 | & | -| main.rs:2508:13:2508:24 | TuplePat | 1(2).&T | {EXTERNAL LOCATION} | Box | -| main.rs:2508:13:2508:24 | TuplePat | 1(2).&T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2508:13:2508:24 | TuplePat | 1(2).&T.T | file://:0:0:0:0 | & | -| main.rs:2508:13:2508:24 | TuplePat | 1(2).&T.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2508:14:2508:16 | key | | file://:0:0:0:0 | & | -| main.rs:2508:14:2508:16 | key | &T | {EXTERNAL LOCATION} | i32 | -| main.rs:2508:19:2508:23 | value | | file://:0:0:0:0 | & | -| main.rs:2508:19:2508:23 | value | &T | {EXTERNAL LOCATION} | Box | -| main.rs:2508:19:2508:23 | value | &T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2508:19:2508:23 | value | &T.T | file://:0:0:0:0 | & | -| main.rs:2508:19:2508:23 | value | &T.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2508:29:2508:33 | &map1 | | file://:0:0:0:0 | & | -| main.rs:2508:29:2508:33 | &map1 | &T | {EXTERNAL LOCATION} | HashMap | -| main.rs:2508:29:2508:33 | &map1 | &T.K | {EXTERNAL LOCATION} | i32 | -| main.rs:2508:29:2508:33 | &map1 | &T.S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2508:29:2508:33 | &map1 | &T.V | {EXTERNAL LOCATION} | Box | -| main.rs:2508:29:2508:33 | &map1 | &T.V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2508:29:2508:33 | &map1 | &T.V.T | file://:0:0:0:0 | & | -| main.rs:2508:29:2508:33 | &map1 | &T.V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2508:30:2508:33 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2508:30:2508:33 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2508:30:2508:33 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2508:30:2508:33 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2508:30:2508:33 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2508:30:2508:33 | map1 | V.T | file://:0:0:0:0 | & | -| main.rs:2508:30:2508:33 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2512:17:2512:17 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2512:26:2512:26 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2512:26:2512:26 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2514:23:2514:23 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2514:23:2514:28 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2514:27:2514:28 | 10 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2514:27:2514:28 | 10 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2516:13:2516:13 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2516:13:2516:18 | ... += ... | | file://:0:0:0:0 | () | -| main.rs:2516:18:2516:18 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2528:40:2530:9 | { ... } | | {EXTERNAL LOCATION} | Option | -| main.rs:2528:40:2530:9 | { ... } | T | main.rs:2522:5:2522:20 | S1 | -| main.rs:2528:40:2530:9 | { ... } | T.T | main.rs:2527:10:2527:19 | T | -| main.rs:2529:13:2529:16 | None | | {EXTERNAL LOCATION} | Option | -| main.rs:2529:13:2529:16 | None | T | main.rs:2522:5:2522:20 | S1 | -| main.rs:2529:13:2529:16 | None | T.T | main.rs:2527:10:2527:19 | T | -| main.rs:2532:30:2534:9 | { ... } | | main.rs:2522:5:2522:20 | S1 | -| main.rs:2532:30:2534:9 | { ... } | T | main.rs:2527:10:2527:19 | T | -| main.rs:2533:13:2533:28 | S1(...) | | main.rs:2522:5:2522:20 | S1 | -| main.rs:2533:13:2533:28 | S1(...) | T | main.rs:2527:10:2527:19 | T | -| main.rs:2533:16:2533:27 | ...::default(...) | | main.rs:2527:10:2527:19 | T | -| main.rs:2536:19:2536:22 | SelfParam | | main.rs:2522:5:2522:20 | S1 | -| main.rs:2536:19:2536:22 | SelfParam | T | main.rs:2527:10:2527:19 | T | -| main.rs:2536:33:2538:9 | { ... } | | main.rs:2522:5:2522:20 | S1 | -| main.rs:2536:33:2538:9 | { ... } | T | main.rs:2527:10:2527:19 | T | -| main.rs:2537:13:2537:16 | self | | main.rs:2522:5:2522:20 | S1 | -| main.rs:2537:13:2537:16 | self | T | main.rs:2527:10:2527:19 | T | -| main.rs:2549:15:2549:15 | x | | main.rs:2549:12:2549:12 | T | -| main.rs:2549:26:2551:5 | { ... } | | main.rs:2549:12:2549:12 | T | -| main.rs:2550:9:2550:9 | x | | main.rs:2549:12:2549:12 | T | -| main.rs:2554:13:2554:14 | x1 | | {EXTERNAL LOCATION} | Option | -| main.rs:2554:13:2554:14 | x1 | T | main.rs:2522:5:2522:20 | S1 | -| main.rs:2554:13:2554:14 | x1 | T.T | main.rs:2524:5:2525:14 | S2 | -| main.rs:2554:34:2554:48 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2554:34:2554:48 | ...::assoc_fun(...) | T | main.rs:2522:5:2522:20 | S1 | -| main.rs:2554:34:2554:48 | ...::assoc_fun(...) | T.T | main.rs:2524:5:2525:14 | S2 | -| main.rs:2555:13:2555:14 | x2 | | {EXTERNAL LOCATION} | Option | -| main.rs:2555:13:2555:14 | x2 | T | main.rs:2522:5:2522:20 | S1 | -| main.rs:2555:13:2555:14 | x2 | T.T | main.rs:2524:5:2525:14 | S2 | -| main.rs:2555:18:2555:38 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2555:18:2555:38 | ...::assoc_fun(...) | T | main.rs:2522:5:2522:20 | S1 | -| main.rs:2555:18:2555:38 | ...::assoc_fun(...) | T.T | main.rs:2524:5:2525:14 | S2 | -| main.rs:2556:13:2556:14 | x3 | | {EXTERNAL LOCATION} | Option | -| main.rs:2556:13:2556:14 | x3 | T | main.rs:2522:5:2522:20 | S1 | -| main.rs:2556:13:2556:14 | x3 | T.T | main.rs:2524:5:2525:14 | S2 | -| main.rs:2556:18:2556:32 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2556:18:2556:32 | ...::assoc_fun(...) | T | main.rs:2522:5:2522:20 | S1 | -| main.rs:2556:18:2556:32 | ...::assoc_fun(...) | T.T | main.rs:2524:5:2525:14 | S2 | -| main.rs:2557:13:2557:14 | x4 | | main.rs:2522:5:2522:20 | S1 | -| main.rs:2557:13:2557:14 | x4 | T | main.rs:2524:5:2525:14 | S2 | -| main.rs:2557:18:2557:48 | ...::method(...) | | main.rs:2522:5:2522:20 | S1 | -| main.rs:2557:18:2557:48 | ...::method(...) | T | main.rs:2524:5:2525:14 | S2 | -| main.rs:2557:35:2557:47 | ...::default(...) | | main.rs:2522:5:2522:20 | S1 | -| main.rs:2557:35:2557:47 | ...::default(...) | T | main.rs:2524:5:2525:14 | S2 | -| main.rs:2558:13:2558:14 | x5 | | main.rs:2522:5:2522:20 | S1 | -| main.rs:2558:13:2558:14 | x5 | T | main.rs:2524:5:2525:14 | S2 | -| main.rs:2558:18:2558:42 | ...::method(...) | | main.rs:2522:5:2522:20 | S1 | -| main.rs:2558:18:2558:42 | ...::method(...) | T | main.rs:2524:5:2525:14 | S2 | -| main.rs:2558:29:2558:41 | ...::default(...) | | main.rs:2522:5:2522:20 | S1 | -| main.rs:2558:29:2558:41 | ...::default(...) | T | main.rs:2524:5:2525:14 | S2 | -| main.rs:2559:13:2559:14 | x6 | | main.rs:2543:5:2543:27 | S4 | -| main.rs:2559:13:2559:14 | x6 | T4 | main.rs:2524:5:2525:14 | S2 | -| main.rs:2559:18:2559:45 | S4::<...>(...) | | main.rs:2543:5:2543:27 | S4 | -| main.rs:2559:18:2559:45 | S4::<...>(...) | T4 | main.rs:2524:5:2525:14 | S2 | -| main.rs:2559:27:2559:44 | ...::default(...) | | main.rs:2524:5:2525:14 | S2 | -| main.rs:2560:13:2560:14 | x7 | | main.rs:2543:5:2543:27 | S4 | -| main.rs:2560:13:2560:14 | x7 | T4 | main.rs:2524:5:2525:14 | S2 | -| main.rs:2560:18:2560:23 | S4(...) | | main.rs:2543:5:2543:27 | S4 | -| main.rs:2560:18:2560:23 | S4(...) | T4 | main.rs:2524:5:2525:14 | S2 | -| main.rs:2560:21:2560:22 | S2 | | main.rs:2524:5:2525:14 | S2 | -| main.rs:2561:13:2561:14 | x8 | | main.rs:2543:5:2543:27 | S4 | -| main.rs:2561:13:2561:14 | x8 | T4 | {EXTERNAL LOCATION} | i32 | -| main.rs:2561:18:2561:22 | S4(...) | | main.rs:2543:5:2543:27 | S4 | -| main.rs:2561:18:2561:22 | S4(...) | T4 | {EXTERNAL LOCATION} | i32 | -| main.rs:2561:21:2561:21 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2562:13:2562:14 | x9 | | main.rs:2543:5:2543:27 | S4 | -| main.rs:2562:13:2562:14 | x9 | T4 | main.rs:2524:5:2525:14 | S2 | -| main.rs:2562:18:2562:34 | S4(...) | | main.rs:2543:5:2543:27 | S4 | -| main.rs:2562:18:2562:34 | S4(...) | T4 | main.rs:2524:5:2525:14 | S2 | -| main.rs:2562:21:2562:33 | ...::default(...) | | main.rs:2524:5:2525:14 | S2 | -| main.rs:2563:13:2563:15 | x10 | | main.rs:2545:5:2547:5 | S5 | -| main.rs:2563:13:2563:15 | x10 | T5 | main.rs:2524:5:2525:14 | S2 | -| main.rs:2563:19:2566:9 | S5::<...> {...} | | main.rs:2545:5:2547:5 | S5 | -| main.rs:2563:19:2566:9 | S5::<...> {...} | T5 | main.rs:2524:5:2525:14 | S2 | -| main.rs:2565:20:2565:37 | ...::default(...) | | main.rs:2524:5:2525:14 | S2 | -| main.rs:2567:13:2567:15 | x11 | | main.rs:2545:5:2547:5 | S5 | -| main.rs:2567:13:2567:15 | x11 | T5 | main.rs:2524:5:2525:14 | S2 | -| main.rs:2567:19:2567:34 | S5 {...} | | main.rs:2545:5:2547:5 | S5 | -| main.rs:2567:19:2567:34 | S5 {...} | T5 | main.rs:2524:5:2525:14 | S2 | -| main.rs:2567:31:2567:32 | S2 | | main.rs:2524:5:2525:14 | S2 | -| main.rs:2568:13:2568:15 | x12 | | main.rs:2545:5:2547:5 | S5 | -| main.rs:2568:13:2568:15 | x12 | T5 | {EXTERNAL LOCATION} | i32 | -| main.rs:2568:19:2568:33 | S5 {...} | | main.rs:2545:5:2547:5 | S5 | -| main.rs:2568:19:2568:33 | S5 {...} | T5 | {EXTERNAL LOCATION} | i32 | -| main.rs:2568:31:2568:31 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2569:13:2569:15 | x13 | | main.rs:2545:5:2547:5 | S5 | -| main.rs:2569:13:2569:15 | x13 | T5 | main.rs:2524:5:2525:14 | S2 | -| main.rs:2569:19:2572:9 | S5 {...} | | main.rs:2545:5:2547:5 | S5 | -| main.rs:2569:19:2572:9 | S5 {...} | T5 | main.rs:2524:5:2525:14 | S2 | -| main.rs:2571:20:2571:32 | ...::default(...) | | main.rs:2524:5:2525:14 | S2 | -| main.rs:2573:13:2573:15 | x14 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2573:19:2573:48 | foo::<...>(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:2573:30:2573:47 | ...::default(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:2574:13:2574:15 | x15 | | main.rs:2522:5:2522:20 | S1 | -| main.rs:2574:13:2574:15 | x15 | T | main.rs:2524:5:2525:14 | S2 | -| main.rs:2574:19:2574:37 | ...::default(...) | | main.rs:2522:5:2522:20 | S1 | -| main.rs:2574:19:2574:37 | ...::default(...) | T | main.rs:2524:5:2525:14 | S2 | -| main.rs:2583:35:2585:9 | { ... } | | file://:0:0:0:0 | (T_2) | -| main.rs:2583:35:2585:9 | { ... } | 0(2) | main.rs:2579:5:2580:16 | S1 | -| main.rs:2583:35:2585:9 | { ... } | 1(2) | main.rs:2579:5:2580:16 | S1 | -| main.rs:2584:13:2584:26 | TupleExpr | | file://:0:0:0:0 | (T_2) | -| main.rs:2584:13:2584:26 | TupleExpr | 0(2) | main.rs:2579:5:2580:16 | S1 | -| main.rs:2584:13:2584:26 | TupleExpr | 1(2) | main.rs:2579:5:2580:16 | S1 | -| main.rs:2584:14:2584:18 | S1 {...} | | main.rs:2579:5:2580:16 | S1 | -| main.rs:2584:21:2584:25 | S1 {...} | | main.rs:2579:5:2580:16 | S1 | -| main.rs:2586:16:2586:19 | SelfParam | | main.rs:2579:5:2580:16 | S1 | -| main.rs:2590:13:2590:13 | a | | file://:0:0:0:0 | (T_2) | -| main.rs:2590:13:2590:13 | a | 0(2) | main.rs:2579:5:2580:16 | S1 | -| main.rs:2590:13:2590:13 | a | 1(2) | main.rs:2579:5:2580:16 | S1 | -| main.rs:2590:17:2590:30 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | -| main.rs:2590:17:2590:30 | ...::get_pair(...) | 0(2) | main.rs:2579:5:2580:16 | S1 | -| main.rs:2590:17:2590:30 | ...::get_pair(...) | 1(2) | main.rs:2579:5:2580:16 | S1 | -| main.rs:2591:17:2591:17 | b | | file://:0:0:0:0 | (T_2) | -| main.rs:2591:17:2591:17 | b | 0(2) | main.rs:2579:5:2580:16 | S1 | -| main.rs:2591:17:2591:17 | b | 1(2) | main.rs:2579:5:2580:16 | S1 | -| main.rs:2591:21:2591:34 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | -| main.rs:2591:21:2591:34 | ...::get_pair(...) | 0(2) | main.rs:2579:5:2580:16 | S1 | -| main.rs:2591:21:2591:34 | ...::get_pair(...) | 1(2) | main.rs:2579:5:2580:16 | S1 | -| main.rs:2592:13:2592:18 | TuplePat | | file://:0:0:0:0 | (T_2) | -| main.rs:2592:13:2592:18 | TuplePat | 0(2) | main.rs:2579:5:2580:16 | S1 | -| main.rs:2592:13:2592:18 | TuplePat | 1(2) | main.rs:2579:5:2580:16 | S1 | -| main.rs:2592:14:2592:14 | c | | main.rs:2579:5:2580:16 | S1 | -| main.rs:2592:17:2592:17 | d | | main.rs:2579:5:2580:16 | S1 | -| main.rs:2592:22:2592:35 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | -| main.rs:2592:22:2592:35 | ...::get_pair(...) | 0(2) | main.rs:2579:5:2580:16 | S1 | -| main.rs:2592:22:2592:35 | ...::get_pair(...) | 1(2) | main.rs:2579:5:2580:16 | S1 | -| main.rs:2593:13:2593:22 | TuplePat | | file://:0:0:0:0 | (T_2) | -| main.rs:2593:13:2593:22 | TuplePat | 0(2) | main.rs:2579:5:2580:16 | S1 | -| main.rs:2593:13:2593:22 | TuplePat | 1(2) | main.rs:2579:5:2580:16 | S1 | -| main.rs:2593:18:2593:18 | e | | main.rs:2579:5:2580:16 | S1 | -| main.rs:2593:21:2593:21 | f | | main.rs:2579:5:2580:16 | S1 | -| main.rs:2593:26:2593:39 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | -| main.rs:2593:26:2593:39 | ...::get_pair(...) | 0(2) | main.rs:2579:5:2580:16 | S1 | -| main.rs:2593:26:2593:39 | ...::get_pair(...) | 1(2) | main.rs:2579:5:2580:16 | S1 | -| main.rs:2594:13:2594:26 | TuplePat | | file://:0:0:0:0 | (T_2) | -| main.rs:2594:13:2594:26 | TuplePat | 0(2) | main.rs:2579:5:2580:16 | S1 | -| main.rs:2594:13:2594:26 | TuplePat | 1(2) | main.rs:2579:5:2580:16 | S1 | -| main.rs:2594:18:2594:18 | g | | main.rs:2579:5:2580:16 | S1 | -| main.rs:2594:25:2594:25 | h | | main.rs:2579:5:2580:16 | S1 | -| main.rs:2594:30:2594:43 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | -| main.rs:2594:30:2594:43 | ...::get_pair(...) | 0(2) | main.rs:2579:5:2580:16 | S1 | -| main.rs:2594:30:2594:43 | ...::get_pair(...) | 1(2) | main.rs:2579:5:2580:16 | S1 | -| main.rs:2596:9:2596:9 | a | | file://:0:0:0:0 | (T_2) | -| main.rs:2596:9:2596:9 | a | 0(2) | main.rs:2579:5:2580:16 | S1 | -| main.rs:2596:9:2596:9 | a | 1(2) | main.rs:2579:5:2580:16 | S1 | -| main.rs:2596:9:2596:11 | a.0 | | main.rs:2579:5:2580:16 | S1 | -| main.rs:2597:9:2597:9 | b | | file://:0:0:0:0 | (T_2) | -| main.rs:2597:9:2597:9 | b | 0(2) | main.rs:2579:5:2580:16 | S1 | -| main.rs:2597:9:2597:9 | b | 1(2) | main.rs:2579:5:2580:16 | S1 | -| main.rs:2597:9:2597:11 | b.1 | | main.rs:2579:5:2580:16 | S1 | -| main.rs:2598:9:2598:9 | c | | main.rs:2579:5:2580:16 | S1 | -| main.rs:2599:9:2599:9 | d | | main.rs:2579:5:2580:16 | S1 | -| main.rs:2600:9:2600:9 | e | | main.rs:2579:5:2580:16 | S1 | -| main.rs:2601:9:2601:9 | f | | main.rs:2579:5:2580:16 | S1 | -| main.rs:2602:9:2602:9 | g | | main.rs:2579:5:2580:16 | S1 | -| main.rs:2603:9:2603:9 | h | | main.rs:2579:5:2580:16 | S1 | -| main.rs:2608:13:2608:13 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2608:17:2608:34 | ...::default(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2609:13:2609:13 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2609:17:2609:34 | ...::default(...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2610:13:2610:16 | pair | | file://:0:0:0:0 | (T_2) | -| main.rs:2610:13:2610:16 | pair | 0(2) | {EXTERNAL LOCATION} | i64 | -| main.rs:2610:13:2610:16 | pair | 1(2) | {EXTERNAL LOCATION} | bool | -| main.rs:2610:20:2610:25 | TupleExpr | | file://:0:0:0:0 | (T_2) | -| main.rs:2610:20:2610:25 | TupleExpr | 0(2) | {EXTERNAL LOCATION} | i64 | -| main.rs:2610:20:2610:25 | TupleExpr | 1(2) | {EXTERNAL LOCATION} | bool | -| main.rs:2610:21:2610:21 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2610:24:2610:24 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2611:13:2611:13 | i | | {EXTERNAL LOCATION} | i64 | -| main.rs:2611:22:2611:25 | pair | | file://:0:0:0:0 | (T_2) | -| main.rs:2611:22:2611:25 | pair | 0(2) | {EXTERNAL LOCATION} | i64 | -| main.rs:2611:22:2611:25 | pair | 1(2) | {EXTERNAL LOCATION} | bool | -| main.rs:2611:22:2611:27 | pair.0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2612:13:2612:13 | j | | {EXTERNAL LOCATION} | bool | -| main.rs:2612:23:2612:26 | pair | | file://:0:0:0:0 | (T_2) | -| main.rs:2612:23:2612:26 | pair | 0(2) | {EXTERNAL LOCATION} | i64 | -| main.rs:2612:23:2612:26 | pair | 1(2) | {EXTERNAL LOCATION} | bool | -| main.rs:2612:23:2612:28 | pair.1 | | {EXTERNAL LOCATION} | bool | -| main.rs:2614:13:2614:16 | pair | | file://:0:0:0:0 | (T_2) | -| main.rs:2614:13:2614:16 | pair | 0(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2614:13:2614:16 | pair | 1(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2614:20:2614:25 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2614:20:2614:25 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2614:20:2614:32 | ... .into() | | file://:0:0:0:0 | (T_2) | -| main.rs:2614:20:2614:32 | ... .into() | 0(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2614:20:2614:32 | ... .into() | 1(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2614:21:2614:21 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2614:24:2614:24 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2615:15:2615:18 | pair | | file://:0:0:0:0 | (T_2) | -| main.rs:2615:15:2615:18 | pair | 0(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2615:15:2615:18 | pair | 1(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2616:13:2616:18 | TuplePat | | file://:0:0:0:0 | (T_2) | -| main.rs:2616:13:2616:18 | TuplePat | 0(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2616:13:2616:18 | TuplePat | 1(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2616:14:2616:14 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2616:17:2616:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2616:30:2616:41 | "unexpected" | | file://:0:0:0:0 | & | -| main.rs:2616:30:2616:41 | "unexpected" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2616:30:2616:41 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2616:30:2616:41 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2617:13:2617:13 | _ | | file://:0:0:0:0 | (T_2) | -| main.rs:2617:13:2617:13 | _ | 0(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2617:13:2617:13 | _ | 1(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2617:25:2617:34 | "expected" | | file://:0:0:0:0 | & | -| main.rs:2617:25:2617:34 | "expected" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2617:25:2617:34 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2617:25:2617:34 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2619:13:2619:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:2619:17:2619:20 | pair | | file://:0:0:0:0 | (T_2) | -| main.rs:2619:17:2619:20 | pair | 0(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2619:17:2619:20 | pair | 1(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2619:17:2619:22 | pair.0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2621:13:2621:13 | y | | file://:0:0:0:0 | & | -| main.rs:2621:13:2621:13 | y | &T | file://:0:0:0:0 | (T_2) | -| main.rs:2621:13:2621:13 | y | &T.0(2) | main.rs:2579:5:2580:16 | S1 | -| main.rs:2621:13:2621:13 | y | &T.1(2) | main.rs:2579:5:2580:16 | S1 | -| main.rs:2621:17:2621:31 | &... | | file://:0:0:0:0 | & | -| main.rs:2621:17:2621:31 | &... | &T | file://:0:0:0:0 | (T_2) | -| main.rs:2621:17:2621:31 | &... | &T.0(2) | main.rs:2579:5:2580:16 | S1 | -| main.rs:2621:17:2621:31 | &... | &T.1(2) | main.rs:2579:5:2580:16 | S1 | -| main.rs:2621:18:2621:31 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | -| main.rs:2621:18:2621:31 | ...::get_pair(...) | 0(2) | main.rs:2579:5:2580:16 | S1 | -| main.rs:2621:18:2621:31 | ...::get_pair(...) | 1(2) | main.rs:2579:5:2580:16 | S1 | -| main.rs:2622:9:2622:9 | y | | file://:0:0:0:0 | & | -| main.rs:2622:9:2622:9 | y | &T | file://:0:0:0:0 | (T_2) | -| main.rs:2622:9:2622:9 | y | &T.0(2) | main.rs:2579:5:2580:16 | S1 | -| main.rs:2622:9:2622:9 | y | &T.1(2) | main.rs:2579:5:2580:16 | S1 | -| main.rs:2622:9:2622:11 | y.0 | | main.rs:2579:5:2580:16 | S1 | -| main.rs:2629:13:2629:23 | boxed_value | | {EXTERNAL LOCATION} | Box | -| main.rs:2629:13:2629:23 | boxed_value | A | {EXTERNAL LOCATION} | Global | -| main.rs:2629:13:2629:23 | boxed_value | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2629:27:2629:42 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2629:27:2629:42 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2629:27:2629:42 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2629:36:2629:41 | 100i32 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2632:15:2632:25 | boxed_value | | {EXTERNAL LOCATION} | Box | -| main.rs:2632:15:2632:25 | boxed_value | A | {EXTERNAL LOCATION} | Global | -| main.rs:2632:15:2632:25 | boxed_value | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2633:13:2633:19 | box 100 | | {EXTERNAL LOCATION} | Box | -| main.rs:2633:13:2633:19 | box 100 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2633:13:2633:19 | box 100 | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2633:17:2633:19 | 100 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2634:26:2634:36 | "Boxed 100\\n" | | file://:0:0:0:0 | & | -| main.rs:2634:26:2634:36 | "Boxed 100\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2634:26:2634:36 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2634:26:2634:36 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2636:13:2636:17 | box ... | | {EXTERNAL LOCATION} | Box | -| main.rs:2636:13:2636:17 | box ... | A | {EXTERNAL LOCATION} | Global | -| main.rs:2636:13:2636:17 | box ... | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2638:26:2638:42 | "Boxed value: {}\\n" | | file://:0:0:0:0 | & | -| main.rs:2638:26:2638:42 | "Boxed value: {}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2638:26:2638:51 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2638:26:2638:51 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2643:13:2643:22 | nested_box | | {EXTERNAL LOCATION} | Box | -| main.rs:2643:13:2643:22 | nested_box | A | {EXTERNAL LOCATION} | Global | -| main.rs:2643:13:2643:22 | nested_box | T | {EXTERNAL LOCATION} | Box | -| main.rs:2643:13:2643:22 | nested_box | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2643:13:2643:22 | nested_box | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2643:26:2643:50 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2643:26:2643:50 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2643:26:2643:50 | ...::new(...) | T | {EXTERNAL LOCATION} | Box | -| main.rs:2643:26:2643:50 | ...::new(...) | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2643:26:2643:50 | ...::new(...) | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2643:35:2643:49 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2643:35:2643:49 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2643:35:2643:49 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2643:44:2643:48 | 42i32 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2644:15:2644:24 | nested_box | | {EXTERNAL LOCATION} | Box | -| main.rs:2644:15:2644:24 | nested_box | A | {EXTERNAL LOCATION} | Global | -| main.rs:2644:15:2644:24 | nested_box | T | {EXTERNAL LOCATION} | Box | -| main.rs:2644:15:2644:24 | nested_box | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2644:15:2644:24 | nested_box | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2645:13:2645:21 | box ... | | {EXTERNAL LOCATION} | Box | -| main.rs:2645:13:2645:21 | box ... | A | {EXTERNAL LOCATION} | Global | -| main.rs:2645:13:2645:21 | box ... | T | {EXTERNAL LOCATION} | Box | -| main.rs:2645:13:2645:21 | box ... | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2645:13:2645:21 | box ... | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2647:26:2647:43 | "Nested boxed: {}\\n" | | file://:0:0:0:0 | & | -| main.rs:2647:26:2647:43 | "Nested boxed: {}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2647:26:2647:59 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2647:26:2647:59 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2659:36:2661:9 | { ... } | | main.rs:2656:5:2656:22 | Path | -| main.rs:2660:13:2660:19 | Path {...} | | main.rs:2656:5:2656:22 | Path | -| main.rs:2663:29:2663:33 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2663:29:2663:33 | SelfParam | &T | main.rs:2656:5:2656:22 | Path | -| main.rs:2663:59:2665:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:2663:59:2665:9 | { ... } | E | file://:0:0:0:0 | () | -| main.rs:2663:59:2665:9 | { ... } | T | main.rs:2668:5:2668:25 | PathBuf | -| main.rs:2664:13:2664:30 | Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:2664:13:2664:30 | Ok(...) | E | file://:0:0:0:0 | () | -| main.rs:2664:13:2664:30 | Ok(...) | T | main.rs:2668:5:2668:25 | PathBuf | -| main.rs:2664:16:2664:29 | ...::new(...) | | main.rs:2668:5:2668:25 | PathBuf | -| main.rs:2671:39:2673:9 | { ... } | | main.rs:2668:5:2668:25 | PathBuf | -| main.rs:2672:13:2672:22 | PathBuf {...} | | main.rs:2668:5:2668:25 | PathBuf | -| main.rs:2681:18:2681:22 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2681:18:2681:22 | SelfParam | &T | main.rs:2668:5:2668:25 | PathBuf | -| main.rs:2681:34:2685:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:2681:34:2685:9 | { ... } | &T | main.rs:2656:5:2656:22 | Path | -| main.rs:2683:33:2683:43 | ...::new(...) | | main.rs:2656:5:2656:22 | Path | -| main.rs:2684:13:2684:17 | &path | | file://:0:0:0:0 | & | -| main.rs:2684:13:2684:17 | &path | &T | main.rs:2656:5:2656:22 | Path | -| main.rs:2684:14:2684:17 | path | | main.rs:2656:5:2656:22 | Path | -| main.rs:2689:13:2689:17 | path1 | | main.rs:2656:5:2656:22 | Path | -| main.rs:2689:21:2689:31 | ...::new(...) | | main.rs:2656:5:2656:22 | Path | -| main.rs:2690:13:2690:17 | path2 | | {EXTERNAL LOCATION} | Result | -| main.rs:2690:13:2690:17 | path2 | E | file://:0:0:0:0 | () | -| main.rs:2690:13:2690:17 | path2 | T | main.rs:2668:5:2668:25 | PathBuf | -| main.rs:2690:21:2690:25 | path1 | | main.rs:2656:5:2656:22 | Path | -| main.rs:2690:21:2690:40 | path1.canonicalize() | | {EXTERNAL LOCATION} | Result | -| main.rs:2690:21:2690:40 | path1.canonicalize() | E | file://:0:0:0:0 | () | -| main.rs:2690:21:2690:40 | path1.canonicalize() | T | main.rs:2668:5:2668:25 | PathBuf | -| main.rs:2691:13:2691:17 | path3 | | main.rs:2668:5:2668:25 | PathBuf | -| main.rs:2691:21:2691:25 | path2 | | {EXTERNAL LOCATION} | Result | -| main.rs:2691:21:2691:25 | path2 | E | file://:0:0:0:0 | () | -| main.rs:2691:21:2691:25 | path2 | T | main.rs:2668:5:2668:25 | PathBuf | -| main.rs:2691:21:2691:34 | path2.unwrap() | | main.rs:2668:5:2668:25 | PathBuf | -| main.rs:2693:13:2693:20 | pathbuf1 | | main.rs:2668:5:2668:25 | PathBuf | -| main.rs:2693:24:2693:37 | ...::new(...) | | main.rs:2668:5:2668:25 | PathBuf | -| main.rs:2694:24:2694:31 | pathbuf1 | | main.rs:2668:5:2668:25 | PathBuf | -| main.rs:2701:14:2701:18 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2701:14:2701:18 | SelfParam | &T | main.rs:2700:5:2702:5 | Self [trait MyTrait] | -| main.rs:2708:14:2708:18 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2708:14:2708:18 | SelfParam | &T | main.rs:2704:5:2705:19 | S | -| main.rs:2708:14:2708:18 | SelfParam | &T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2708:28:2710:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2709:13:2709:16 | self | | file://:0:0:0:0 | & | -| main.rs:2709:13:2709:16 | self | &T | main.rs:2704:5:2705:19 | S | -| main.rs:2709:13:2709:16 | self | &T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2709:13:2709:18 | self.0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2714:14:2714:18 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2714:14:2714:18 | SelfParam | &T | main.rs:2704:5:2705:19 | S | -| main.rs:2714:14:2714:18 | SelfParam | &T.T | main.rs:2704:5:2705:19 | S | -| main.rs:2714:14:2714:18 | SelfParam | &T.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2714:28:2716:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2715:13:2715:16 | self | | file://:0:0:0:0 | & | -| main.rs:2715:13:2715:16 | self | &T | main.rs:2704:5:2705:19 | S | -| main.rs:2715:13:2715:16 | self | &T.T | main.rs:2704:5:2705:19 | S | -| main.rs:2715:13:2715:16 | self | &T.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2715:13:2715:18 | self.0 | | main.rs:2704:5:2705:19 | S | -| main.rs:2715:13:2715:18 | self.0 | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2715:13:2715:21 | ... .0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2720:15:2720:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2720:15:2720:19 | SelfParam | &T | main.rs:2704:5:2705:19 | S | -| main.rs:2720:15:2720:19 | SelfParam | &T.T | main.rs:2719:10:2719:16 | T | -| main.rs:2720:33:2722:9 | { ... } | | main.rs:2704:5:2705:19 | S | -| main.rs:2720:33:2722:9 | { ... } | T | main.rs:2704:5:2705:19 | S | -| main.rs:2720:33:2722:9 | { ... } | T.T | main.rs:2719:10:2719:16 | T | -| main.rs:2721:13:2721:24 | S(...) | | main.rs:2704:5:2705:19 | S | -| main.rs:2721:13:2721:24 | S(...) | T | main.rs:2704:5:2705:19 | S | -| main.rs:2721:13:2721:24 | S(...) | T.T | main.rs:2719:10:2719:16 | T | -| main.rs:2721:15:2721:23 | S(...) | | main.rs:2704:5:2705:19 | S | -| main.rs:2721:15:2721:23 | S(...) | T | main.rs:2719:10:2719:16 | T | -| main.rs:2721:17:2721:20 | self | | file://:0:0:0:0 | & | -| main.rs:2721:17:2721:20 | self | &T | main.rs:2704:5:2705:19 | S | -| main.rs:2721:17:2721:20 | self | &T.T | main.rs:2719:10:2719:16 | T | -| main.rs:2721:17:2721:22 | self.0 | | main.rs:2719:10:2719:16 | T | -| main.rs:2725:14:2725:14 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2725:48:2742:5 | { ... } | | {EXTERNAL LOCATION} | Box | -| main.rs:2725:48:2742:5 | { ... } | A | {EXTERNAL LOCATION} | Global | -| main.rs:2725:48:2742:5 | { ... } | T | main.rs:2700:5:2702:5 | dyn MyTrait | -| main.rs:2725:48:2742:5 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2726:13:2726:13 | x | | main.rs:2704:5:2705:19 | S | -| main.rs:2726:13:2726:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2726:17:2731:9 | if b {...} else {...} | | main.rs:2704:5:2705:19 | S | -| main.rs:2726:17:2731:9 | if b {...} else {...} | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2726:20:2726:20 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2726:22:2729:9 | { ... } | | main.rs:2704:5:2705:19 | S | -| main.rs:2726:22:2729:9 | { ... } | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2727:17:2727:17 | y | | main.rs:2704:5:2705:19 | S | -| main.rs:2727:17:2727:17 | y | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2727:21:2727:38 | ...::default(...) | | main.rs:2704:5:2705:19 | S | -| main.rs:2727:21:2727:38 | ...::default(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2728:13:2728:13 | y | | main.rs:2704:5:2705:19 | S | -| main.rs:2728:13:2728:13 | y | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2729:16:2731:9 | { ... } | | main.rs:2704:5:2705:19 | S | -| main.rs:2729:16:2731:9 | { ... } | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2730:13:2730:16 | S(...) | | main.rs:2704:5:2705:19 | S | -| main.rs:2730:13:2730:16 | S(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2730:15:2730:15 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2735:13:2735:13 | x | | main.rs:2700:5:2702:5 | dyn MyTrait | -| main.rs:2735:13:2735:13 | x | | main.rs:2704:5:2705:19 | S | -| main.rs:2735:13:2735:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2735:13:2735:13 | x | dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2735:17:2735:20 | S(...) | | main.rs:2700:5:2702:5 | dyn MyTrait | -| main.rs:2735:17:2735:20 | S(...) | | main.rs:2704:5:2705:19 | S | -| main.rs:2735:17:2735:20 | S(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2735:17:2735:20 | S(...) | dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2735:19:2735:19 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2736:9:2741:9 | if b {...} else {...} | | {EXTERNAL LOCATION} | Box | -| main.rs:2736:9:2741:9 | if b {...} else {...} | A | {EXTERNAL LOCATION} | Global | -| main.rs:2736:9:2741:9 | if b {...} else {...} | T | main.rs:2700:5:2702:5 | dyn MyTrait | -| main.rs:2736:9:2741:9 | if b {...} else {...} | T | main.rs:2704:5:2705:19 | S | -| main.rs:2736:9:2741:9 | if b {...} else {...} | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2736:9:2741:9 | if b {...} else {...} | T.T | main.rs:2704:5:2705:19 | S | -| main.rs:2736:9:2741:9 | if b {...} else {...} | T.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2736:9:2741:9 | if b {...} else {...} | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2736:12:2736:12 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2736:14:2739:9 | { ... } | | {EXTERNAL LOCATION} | Box | -| main.rs:2736:14:2739:9 | { ... } | A | {EXTERNAL LOCATION} | Global | -| main.rs:2736:14:2739:9 | { ... } | T | main.rs:2700:5:2702:5 | dyn MyTrait | -| main.rs:2736:14:2739:9 | { ... } | T | main.rs:2704:5:2705:19 | S | -| main.rs:2736:14:2739:9 | { ... } | T.T | main.rs:2704:5:2705:19 | S | -| main.rs:2736:14:2739:9 | { ... } | T.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2736:14:2739:9 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2737:17:2737:17 | x | | main.rs:2700:5:2702:5 | dyn MyTrait | -| main.rs:2737:17:2737:17 | x | | main.rs:2704:5:2705:19 | S | -| main.rs:2737:17:2737:17 | x | T | main.rs:2704:5:2705:19 | S | -| main.rs:2737:17:2737:17 | x | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2737:17:2737:17 | x | dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2737:21:2737:21 | x | | main.rs:2700:5:2702:5 | dyn MyTrait | -| main.rs:2737:21:2737:21 | x | | main.rs:2704:5:2705:19 | S | -| main.rs:2737:21:2737:21 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2737:21:2737:21 | x | dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2737:21:2737:26 | x.m2() | | main.rs:2700:5:2702:5 | dyn MyTrait | -| main.rs:2737:21:2737:26 | x.m2() | | main.rs:2704:5:2705:19 | S | -| main.rs:2737:21:2737:26 | x.m2() | T | main.rs:2704:5:2705:19 | S | -| main.rs:2737:21:2737:26 | x.m2() | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2737:21:2737:26 | x.m2() | dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2738:13:2738:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2738:13:2738:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2738:13:2738:23 | ...::new(...) | T | main.rs:2700:5:2702:5 | dyn MyTrait | -| main.rs:2738:13:2738:23 | ...::new(...) | T | main.rs:2704:5:2705:19 | S | -| main.rs:2738:13:2738:23 | ...::new(...) | T.T | main.rs:2704:5:2705:19 | S | -| main.rs:2738:13:2738:23 | ...::new(...) | T.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2738:13:2738:23 | ...::new(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2738:22:2738:22 | x | | main.rs:2700:5:2702:5 | dyn MyTrait | -| main.rs:2738:22:2738:22 | x | | main.rs:2704:5:2705:19 | S | -| main.rs:2738:22:2738:22 | x | T | main.rs:2704:5:2705:19 | S | -| main.rs:2738:22:2738:22 | x | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2738:22:2738:22 | x | dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2739:16:2741:9 | { ... } | | {EXTERNAL LOCATION} | Box | -| main.rs:2739:16:2741:9 | { ... } | A | {EXTERNAL LOCATION} | Global | -| main.rs:2739:16:2741:9 | { ... } | T | main.rs:2700:5:2702:5 | dyn MyTrait | -| main.rs:2739:16:2741:9 | { ... } | T | main.rs:2704:5:2705:19 | S | -| main.rs:2739:16:2741:9 | { ... } | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2739:16:2741:9 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2740:13:2740:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2740:13:2740:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2740:13:2740:23 | ...::new(...) | T | main.rs:2700:5:2702:5 | dyn MyTrait | -| main.rs:2740:13:2740:23 | ...::new(...) | T | main.rs:2704:5:2705:19 | S | -| main.rs:2740:13:2740:23 | ...::new(...) | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2740:13:2740:23 | ...::new(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2740:22:2740:22 | x | | main.rs:2700:5:2702:5 | dyn MyTrait | -| main.rs:2740:22:2740:22 | x | | main.rs:2704:5:2705:19 | S | -| main.rs:2740:22:2740:22 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2740:22:2740:22 | x | dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2752:5:2752:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:2753:5:2753:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:2753:20:2753:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:2753:41:2753:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:2769:5:2769:15 | ...::f(...) | | {EXTERNAL LOCATION} | trait Future | -| main.rs:2782:5:2782:20 | ...::f(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2782:5:2782:20 | ...::f(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2782:5:2782:20 | ...::f(...) | T | main.rs:2700:5:2702:5 | dyn MyTrait | -| main.rs:2782:5:2782:20 | ...::f(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2782:16:2782:19 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2461:18:2461:26 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2461:18:2461:38 | ... .into_iter() | | {EXTERNAL LOCATION} | IntoIter | +| main.rs:2461:18:2461:38 | ... .into_iter() | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2461:19:2461:19 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2461:22:2461:22 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2461:25:2461:25 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2463:13:2463:17 | vals1 | | file://:0:0:0:0 | [] | +| main.rs:2463:13:2463:17 | vals1 | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2463:13:2463:17 | vals1 | [T;...] | {EXTERNAL LOCATION} | u8 | +| main.rs:2463:21:2463:31 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2463:21:2463:31 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2463:21:2463:31 | [...] | [T;...] | {EXTERNAL LOCATION} | u8 | +| main.rs:2463:22:2463:24 | 1u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2463:27:2463:27 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2463:27:2463:27 | 2 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2463:30:2463:30 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2463:30:2463:30 | 3 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2464:13:2464:13 | u | | {EXTERNAL LOCATION} | i32 | +| main.rs:2464:13:2464:13 | u | | {EXTERNAL LOCATION} | u8 | +| main.rs:2464:18:2464:22 | vals1 | | file://:0:0:0:0 | [] | +| main.rs:2464:18:2464:22 | vals1 | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2464:18:2464:22 | vals1 | [T;...] | {EXTERNAL LOCATION} | u8 | +| main.rs:2466:13:2466:17 | vals2 | | file://:0:0:0:0 | [] | +| main.rs:2466:13:2466:17 | vals2 | [T;...] | {EXTERNAL LOCATION} | u16 | +| main.rs:2466:21:2466:29 | [1u16; 3] | | file://:0:0:0:0 | [] | +| main.rs:2466:21:2466:29 | [1u16; 3] | [T;...] | {EXTERNAL LOCATION} | u16 | +| main.rs:2466:22:2466:25 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2466:28:2466:28 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2467:13:2467:13 | u | | {EXTERNAL LOCATION} | u16 | +| main.rs:2467:18:2467:22 | vals2 | | file://:0:0:0:0 | [] | +| main.rs:2467:18:2467:22 | vals2 | [T;...] | {EXTERNAL LOCATION} | u16 | +| main.rs:2469:13:2469:17 | vals3 | | file://:0:0:0:0 | [] | +| main.rs:2469:13:2469:17 | vals3 | [T;...] | {EXTERNAL LOCATION} | u32 | +| main.rs:2469:26:2469:26 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2469:31:2469:39 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2469:31:2469:39 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2469:31:2469:39 | [...] | [T;...] | {EXTERNAL LOCATION} | u32 | +| main.rs:2469:32:2469:32 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2469:32:2469:32 | 1 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2469:35:2469:35 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2469:35:2469:35 | 2 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2469:38:2469:38 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2469:38:2469:38 | 3 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2470:13:2470:13 | u | | {EXTERNAL LOCATION} | u32 | +| main.rs:2470:18:2470:22 | vals3 | | file://:0:0:0:0 | [] | +| main.rs:2470:18:2470:22 | vals3 | [T;...] | {EXTERNAL LOCATION} | u32 | +| main.rs:2472:13:2472:17 | vals4 | | file://:0:0:0:0 | [] | +| main.rs:2472:13:2472:17 | vals4 | [T;...] | {EXTERNAL LOCATION} | u64 | +| main.rs:2472:26:2472:26 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2472:31:2472:36 | [1; 3] | | file://:0:0:0:0 | [] | +| main.rs:2472:31:2472:36 | [1; 3] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2472:31:2472:36 | [1; 3] | [T;...] | {EXTERNAL LOCATION} | u64 | +| main.rs:2472:32:2472:32 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2472:32:2472:32 | 1 | | {EXTERNAL LOCATION} | u64 | +| main.rs:2472:35:2472:35 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2473:13:2473:13 | u | | {EXTERNAL LOCATION} | u64 | +| main.rs:2473:18:2473:22 | vals4 | | file://:0:0:0:0 | [] | +| main.rs:2473:18:2473:22 | vals4 | [T;...] | {EXTERNAL LOCATION} | u64 | +| main.rs:2475:17:2475:24 | strings1 | | file://:0:0:0:0 | [] | +| main.rs:2475:17:2475:24 | strings1 | [T;...] | file://:0:0:0:0 | & | +| main.rs:2475:17:2475:24 | strings1 | [T;...].&T | {EXTERNAL LOCATION} | str | +| main.rs:2475:28:2475:48 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2475:28:2475:48 | [...] | [T;...] | file://:0:0:0:0 | & | +| main.rs:2475:28:2475:48 | [...] | [T;...].&T | {EXTERNAL LOCATION} | str | +| main.rs:2475:29:2475:33 | "foo" | | file://:0:0:0:0 | & | +| main.rs:2475:29:2475:33 | "foo" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2475:36:2475:40 | "bar" | | file://:0:0:0:0 | & | +| main.rs:2475:36:2475:40 | "bar" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2475:43:2475:47 | "baz" | | file://:0:0:0:0 | & | +| main.rs:2475:43:2475:47 | "baz" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2476:13:2476:13 | s | | {EXTERNAL LOCATION} | Item | +| main.rs:2476:13:2476:13 | s | | file://:0:0:0:0 | & | +| main.rs:2476:13:2476:13 | s | &T | file://:0:0:0:0 | & | +| main.rs:2476:13:2476:13 | s | &T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2476:18:2476:26 | &strings1 | | file://:0:0:0:0 | & | +| main.rs:2476:18:2476:26 | &strings1 | &T | file://:0:0:0:0 | [] | +| main.rs:2476:18:2476:26 | &strings1 | &T.[T;...] | file://:0:0:0:0 | & | +| main.rs:2476:18:2476:26 | &strings1 | &T.[T;...].&T | {EXTERNAL LOCATION} | str | +| main.rs:2476:19:2476:26 | strings1 | | file://:0:0:0:0 | [] | +| main.rs:2476:19:2476:26 | strings1 | [T;...] | file://:0:0:0:0 | & | +| main.rs:2476:19:2476:26 | strings1 | [T;...].&T | {EXTERNAL LOCATION} | str | +| main.rs:2477:13:2477:13 | s | | {EXTERNAL LOCATION} | Item | +| main.rs:2477:13:2477:13 | s | | file://:0:0:0:0 | & | +| main.rs:2477:13:2477:13 | s | &T | file://:0:0:0:0 | & | +| main.rs:2477:13:2477:13 | s | &T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2477:18:2477:30 | &mut strings1 | | file://:0:0:0:0 | & | +| main.rs:2477:18:2477:30 | &mut strings1 | &T | file://:0:0:0:0 | [] | +| main.rs:2477:18:2477:30 | &mut strings1 | &T.[T;...] | file://:0:0:0:0 | & | +| main.rs:2477:18:2477:30 | &mut strings1 | &T.[T;...].&T | {EXTERNAL LOCATION} | str | +| main.rs:2477:23:2477:30 | strings1 | | file://:0:0:0:0 | [] | +| main.rs:2477:23:2477:30 | strings1 | [T;...] | file://:0:0:0:0 | & | +| main.rs:2477:23:2477:30 | strings1 | [T;...].&T | {EXTERNAL LOCATION} | str | +| main.rs:2478:13:2478:13 | s | | file://:0:0:0:0 | & | +| main.rs:2478:13:2478:13 | s | &T | {EXTERNAL LOCATION} | str | +| main.rs:2478:18:2478:25 | strings1 | | file://:0:0:0:0 | [] | +| main.rs:2478:18:2478:25 | strings1 | [T;...] | file://:0:0:0:0 | & | +| main.rs:2478:18:2478:25 | strings1 | [T;...].&T | {EXTERNAL LOCATION} | str | +| main.rs:2480:13:2480:20 | strings2 | | file://:0:0:0:0 | [] | +| main.rs:2480:13:2480:20 | strings2 | [T;...] | {EXTERNAL LOCATION} | String | +| main.rs:2481:9:2485:9 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2481:9:2485:9 | [...] | [T;...] | {EXTERNAL LOCATION} | String | +| main.rs:2482:13:2482:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2482:26:2482:30 | "foo" | | file://:0:0:0:0 | & | +| main.rs:2482:26:2482:30 | "foo" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2483:13:2483:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2483:26:2483:30 | "bar" | | file://:0:0:0:0 | & | +| main.rs:2483:26:2483:30 | "bar" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2484:13:2484:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2484:26:2484:30 | "baz" | | file://:0:0:0:0 | & | +| main.rs:2484:26:2484:30 | "baz" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2486:13:2486:13 | s | | {EXTERNAL LOCATION} | String | +| main.rs:2486:18:2486:25 | strings2 | | file://:0:0:0:0 | [] | +| main.rs:2486:18:2486:25 | strings2 | [T;...] | {EXTERNAL LOCATION} | String | +| main.rs:2488:13:2488:20 | strings3 | | file://:0:0:0:0 | & | +| main.rs:2488:13:2488:20 | strings3 | &T | file://:0:0:0:0 | [] | +| main.rs:2488:13:2488:20 | strings3 | &T.[T;...] | {EXTERNAL LOCATION} | String | +| main.rs:2489:9:2493:9 | &... | | file://:0:0:0:0 | & | +| main.rs:2489:9:2493:9 | &... | &T | file://:0:0:0:0 | [] | +| main.rs:2489:9:2493:9 | &... | &T.[T;...] | {EXTERNAL LOCATION} | String | +| main.rs:2489:10:2493:9 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2489:10:2493:9 | [...] | [T;...] | {EXTERNAL LOCATION} | String | +| main.rs:2490:13:2490:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2490:26:2490:30 | "foo" | | file://:0:0:0:0 | & | +| main.rs:2490:26:2490:30 | "foo" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2491:13:2491:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2491:26:2491:30 | "bar" | | file://:0:0:0:0 | & | +| main.rs:2491:26:2491:30 | "bar" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2492:13:2492:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2492:26:2492:30 | "baz" | | file://:0:0:0:0 | & | +| main.rs:2492:26:2492:30 | "baz" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2494:13:2494:13 | s | | {EXTERNAL LOCATION} | Item | +| main.rs:2494:13:2494:13 | s | | file://:0:0:0:0 | & | +| main.rs:2494:13:2494:13 | s | &T | {EXTERNAL LOCATION} | String | +| main.rs:2494:18:2494:25 | strings3 | | file://:0:0:0:0 | & | +| main.rs:2494:18:2494:25 | strings3 | &T | file://:0:0:0:0 | [] | +| main.rs:2494:18:2494:25 | strings3 | &T.[T;...] | {EXTERNAL LOCATION} | String | +| main.rs:2496:13:2496:21 | callables | | file://:0:0:0:0 | [] | +| main.rs:2496:13:2496:21 | callables | [T;...] | main.rs:2444:5:2444:24 | MyCallable | +| main.rs:2496:25:2496:81 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2496:25:2496:81 | [...] | [T;...] | main.rs:2444:5:2444:24 | MyCallable | +| main.rs:2496:26:2496:42 | ...::new(...) | | main.rs:2444:5:2444:24 | MyCallable | +| main.rs:2496:45:2496:61 | ...::new(...) | | main.rs:2444:5:2444:24 | MyCallable | +| main.rs:2496:64:2496:80 | ...::new(...) | | main.rs:2444:5:2444:24 | MyCallable | +| main.rs:2497:13:2497:13 | c | | main.rs:2444:5:2444:24 | MyCallable | +| main.rs:2498:12:2498:20 | callables | | file://:0:0:0:0 | [] | +| main.rs:2498:12:2498:20 | callables | [T;...] | main.rs:2444:5:2444:24 | MyCallable | +| main.rs:2500:17:2500:22 | result | | {EXTERNAL LOCATION} | i64 | +| main.rs:2500:26:2500:26 | c | | main.rs:2444:5:2444:24 | MyCallable | +| main.rs:2500:26:2500:33 | c.call() | | {EXTERNAL LOCATION} | i64 | +| main.rs:2505:13:2505:13 | i | | {EXTERNAL LOCATION} | Item | +| main.rs:2505:13:2505:13 | i | | {EXTERNAL LOCATION} | i32 | +| main.rs:2505:18:2505:18 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2505:18:2505:22 | 0..10 | | {EXTERNAL LOCATION} | Range | +| main.rs:2505:18:2505:22 | 0..10 | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2505:21:2505:22 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2506:13:2506:13 | u | | {EXTERNAL LOCATION} | Range | +| main.rs:2506:13:2506:13 | u | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2506:13:2506:13 | u | Idx | {EXTERNAL LOCATION} | u8 | +| main.rs:2506:18:2506:26 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2506:18:2506:26 | [...] | [T;...] | {EXTERNAL LOCATION} | Range | +| main.rs:2506:18:2506:26 | [...] | [T;...].Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2506:18:2506:26 | [...] | [T;...].Idx | {EXTERNAL LOCATION} | u8 | +| main.rs:2506:19:2506:21 | 0u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2506:19:2506:25 | 0u8..10 | | {EXTERNAL LOCATION} | Range | +| main.rs:2506:19:2506:25 | 0u8..10 | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2506:19:2506:25 | 0u8..10 | Idx | {EXTERNAL LOCATION} | u8 | +| main.rs:2506:24:2506:25 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2506:24:2506:25 | 10 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2507:13:2507:17 | range | | {EXTERNAL LOCATION} | Range | +| main.rs:2507:13:2507:17 | range | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2507:21:2507:21 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2507:21:2507:25 | 0..10 | | {EXTERNAL LOCATION} | Range | +| main.rs:2507:21:2507:25 | 0..10 | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2507:24:2507:25 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2508:13:2508:13 | i | | {EXTERNAL LOCATION} | Item | +| main.rs:2508:13:2508:13 | i | | {EXTERNAL LOCATION} | i32 | +| main.rs:2508:18:2508:22 | range | | {EXTERNAL LOCATION} | Range | +| main.rs:2508:18:2508:22 | range | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2509:13:2509:22 | range_full | | {EXTERNAL LOCATION} | RangeFull | +| main.rs:2509:26:2509:27 | .. | | {EXTERNAL LOCATION} | RangeFull | +| main.rs:2510:13:2510:13 | i | | {EXTERNAL LOCATION} | Item | +| main.rs:2510:18:2510:48 | &... | | file://:0:0:0:0 | & | +| main.rs:2510:19:2510:36 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2510:19:2510:36 | [...] | [T;...] | {EXTERNAL LOCATION} | i64 | +| main.rs:2510:20:2510:23 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2510:26:2510:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2510:32:2510:35 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2510:38:2510:47 | range_full | | {EXTERNAL LOCATION} | RangeFull | +| main.rs:2512:13:2512:18 | range1 | | {EXTERNAL LOCATION} | Range | +| main.rs:2512:13:2512:18 | range1 | Idx | {EXTERNAL LOCATION} | u16 | +| main.rs:2513:9:2516:9 | ...::Range {...} | | {EXTERNAL LOCATION} | Range | +| main.rs:2513:9:2516:9 | ...::Range {...} | Idx | {EXTERNAL LOCATION} | u16 | +| main.rs:2514:20:2514:23 | 0u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2515:18:2515:22 | 10u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2517:13:2517:13 | u | | {EXTERNAL LOCATION} | Item | +| main.rs:2517:13:2517:13 | u | | {EXTERNAL LOCATION} | u16 | +| main.rs:2517:18:2517:23 | range1 | | {EXTERNAL LOCATION} | Range | +| main.rs:2517:18:2517:23 | range1 | Idx | {EXTERNAL LOCATION} | u16 | +| main.rs:2521:26:2521:26 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2521:29:2521:29 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2521:32:2521:32 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2524:13:2524:18 | vals4a | | {EXTERNAL LOCATION} | Vec | +| main.rs:2524:13:2524:18 | vals4a | A | {EXTERNAL LOCATION} | Global | +| main.rs:2524:13:2524:18 | vals4a | T | {EXTERNAL LOCATION} | u16 | +| main.rs:2524:32:2524:43 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2524:32:2524:43 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2524:32:2524:43 | [...] | [T;...] | {EXTERNAL LOCATION} | u16 | +| main.rs:2524:32:2524:52 | ... .to_vec() | | {EXTERNAL LOCATION} | Vec | +| main.rs:2524:32:2524:52 | ... .to_vec() | A | {EXTERNAL LOCATION} | Global | +| main.rs:2524:32:2524:52 | ... .to_vec() | T | {EXTERNAL LOCATION} | u16 | +| main.rs:2524:33:2524:36 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2524:39:2524:39 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2524:42:2524:42 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2525:13:2525:13 | u | | {EXTERNAL LOCATION} | u16 | +| main.rs:2525:13:2525:13 | u | | file://:0:0:0:0 | & | +| main.rs:2525:18:2525:23 | vals4a | | {EXTERNAL LOCATION} | Vec | +| main.rs:2525:18:2525:23 | vals4a | A | {EXTERNAL LOCATION} | Global | +| main.rs:2525:18:2525:23 | vals4a | T | {EXTERNAL LOCATION} | u16 | +| main.rs:2527:22:2527:33 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2527:22:2527:33 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2527:22:2527:33 | [...] | [T;...] | {EXTERNAL LOCATION} | u16 | +| main.rs:2527:23:2527:26 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2527:29:2527:29 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2527:32:2527:32 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2530:13:2530:17 | vals5 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2530:13:2530:17 | vals5 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2530:13:2530:17 | vals5 | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2530:13:2530:17 | vals5 | T | {EXTERNAL LOCATION} | u32 | +| main.rs:2530:21:2530:43 | ...::from(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2530:21:2530:43 | ...::from(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2530:21:2530:43 | ...::from(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2530:21:2530:43 | ...::from(...) | T | {EXTERNAL LOCATION} | u32 | +| main.rs:2530:31:2530:42 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2530:31:2530:42 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2530:31:2530:42 | [...] | [T;...] | {EXTERNAL LOCATION} | u32 | +| main.rs:2530:32:2530:35 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2530:38:2530:38 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2530:41:2530:41 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2531:13:2531:13 | u | | {EXTERNAL LOCATION} | i32 | +| main.rs:2531:13:2531:13 | u | | {EXTERNAL LOCATION} | u32 | +| main.rs:2531:13:2531:13 | u | | file://:0:0:0:0 | & | +| main.rs:2531:18:2531:22 | vals5 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2531:18:2531:22 | vals5 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2531:18:2531:22 | vals5 | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2531:18:2531:22 | vals5 | T | {EXTERNAL LOCATION} | u32 | +| main.rs:2533:13:2533:17 | vals6 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2533:13:2533:17 | vals6 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2533:13:2533:17 | vals6 | T | file://:0:0:0:0 | & | +| main.rs:2533:13:2533:17 | vals6 | T.&T | {EXTERNAL LOCATION} | u64 | +| main.rs:2533:32:2533:43 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2533:32:2533:43 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2533:32:2533:43 | [...] | [T;...] | {EXTERNAL LOCATION} | u64 | +| main.rs:2533:32:2533:60 | ... .collect() | | {EXTERNAL LOCATION} | Vec | +| main.rs:2533:32:2533:60 | ... .collect() | A | {EXTERNAL LOCATION} | Global | +| main.rs:2533:32:2533:60 | ... .collect() | T | file://:0:0:0:0 | & | +| main.rs:2533:32:2533:60 | ... .collect() | T.&T | {EXTERNAL LOCATION} | u64 | +| main.rs:2533:33:2533:36 | 1u64 | | {EXTERNAL LOCATION} | u64 | +| main.rs:2533:39:2533:39 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2533:42:2533:42 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2534:13:2534:13 | u | | file://:0:0:0:0 | & | +| main.rs:2534:13:2534:13 | u | &T | {EXTERNAL LOCATION} | u64 | +| main.rs:2534:18:2534:22 | vals6 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2534:18:2534:22 | vals6 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2534:18:2534:22 | vals6 | T | file://:0:0:0:0 | & | +| main.rs:2534:18:2534:22 | vals6 | T.&T | {EXTERNAL LOCATION} | u64 | +| main.rs:2536:17:2536:21 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2536:17:2536:21 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2536:17:2536:21 | vals7 | T | {EXTERNAL LOCATION} | u8 | +| main.rs:2536:25:2536:34 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2536:25:2536:34 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2536:25:2536:34 | ...::new(...) | T | {EXTERNAL LOCATION} | u8 | +| main.rs:2537:9:2537:13 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2537:9:2537:13 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2537:9:2537:13 | vals7 | T | {EXTERNAL LOCATION} | u8 | +| main.rs:2537:20:2537:22 | 1u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2538:13:2538:13 | u | | {EXTERNAL LOCATION} | u8 | +| main.rs:2538:13:2538:13 | u | | file://:0:0:0:0 | & | +| main.rs:2538:18:2538:22 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2538:18:2538:22 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2538:18:2538:22 | vals7 | T | {EXTERNAL LOCATION} | u8 | +| main.rs:2540:33:2540:33 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2540:36:2540:36 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2540:45:2540:45 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2540:48:2540:48 | 4 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2547:17:2547:20 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2547:17:2547:20 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2547:17:2547:20 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2547:17:2547:20 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2547:17:2547:20 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2547:17:2547:20 | map1 | V.T | file://:0:0:0:0 | & | +| main.rs:2547:17:2547:20 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2547:24:2547:55 | ...::new(...) | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2547:24:2547:55 | ...::new(...) | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2547:24:2547:55 | ...::new(...) | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2547:24:2547:55 | ...::new(...) | V | {EXTERNAL LOCATION} | Box | +| main.rs:2547:24:2547:55 | ...::new(...) | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2547:24:2547:55 | ...::new(...) | V.T | file://:0:0:0:0 | & | +| main.rs:2547:24:2547:55 | ...::new(...) | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2548:9:2548:12 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2548:9:2548:12 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2548:9:2548:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2548:9:2548:12 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2548:9:2548:12 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2548:9:2548:12 | map1 | V.T | file://:0:0:0:0 | & | +| main.rs:2548:9:2548:12 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2548:9:2548:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2548:9:2548:39 | map1.insert(...) | T | {EXTERNAL LOCATION} | Box | +| main.rs:2548:9:2548:39 | map1.insert(...) | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2548:9:2548:39 | map1.insert(...) | T.T | file://:0:0:0:0 | & | +| main.rs:2548:9:2548:39 | map1.insert(...) | T.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2548:21:2548:21 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2548:24:2548:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2548:24:2548:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2548:24:2548:38 | ...::new(...) | T | file://:0:0:0:0 | & | +| main.rs:2548:24:2548:38 | ...::new(...) | T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2548:33:2548:37 | "one" | | file://:0:0:0:0 | & | +| main.rs:2548:33:2548:37 | "one" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2549:9:2549:12 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2549:9:2549:12 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2549:9:2549:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2549:9:2549:12 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2549:9:2549:12 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2549:9:2549:12 | map1 | V.T | file://:0:0:0:0 | & | +| main.rs:2549:9:2549:12 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2549:9:2549:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2549:9:2549:39 | map1.insert(...) | T | {EXTERNAL LOCATION} | Box | +| main.rs:2549:9:2549:39 | map1.insert(...) | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2549:9:2549:39 | map1.insert(...) | T.T | file://:0:0:0:0 | & | +| main.rs:2549:9:2549:39 | map1.insert(...) | T.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2549:21:2549:21 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2549:24:2549:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2549:24:2549:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2549:24:2549:38 | ...::new(...) | T | file://:0:0:0:0 | & | +| main.rs:2549:24:2549:38 | ...::new(...) | T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2549:33:2549:37 | "two" | | file://:0:0:0:0 | & | +| main.rs:2549:33:2549:37 | "two" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2550:13:2550:15 | key | | {EXTERNAL LOCATION} | Item | +| main.rs:2550:13:2550:15 | key | | file://:0:0:0:0 | & | +| main.rs:2550:13:2550:15 | key | &T | {EXTERNAL LOCATION} | i32 | +| main.rs:2550:20:2550:23 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2550:20:2550:23 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2550:20:2550:23 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2550:20:2550:23 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2550:20:2550:23 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2550:20:2550:23 | map1 | V.T | file://:0:0:0:0 | & | +| main.rs:2550:20:2550:23 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2550:20:2550:30 | map1.keys() | | {EXTERNAL LOCATION} | Keys | +| main.rs:2550:20:2550:30 | map1.keys() | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2550:20:2550:30 | map1.keys() | V | {EXTERNAL LOCATION} | Box | +| main.rs:2550:20:2550:30 | map1.keys() | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2550:20:2550:30 | map1.keys() | V.T | file://:0:0:0:0 | & | +| main.rs:2550:20:2550:30 | map1.keys() | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2551:13:2551:17 | value | | {EXTERNAL LOCATION} | Item | +| main.rs:2551:13:2551:17 | value | | file://:0:0:0:0 | & | +| main.rs:2551:13:2551:17 | value | &T | {EXTERNAL LOCATION} | Box | +| main.rs:2551:13:2551:17 | value | &T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2551:13:2551:17 | value | &T.T | file://:0:0:0:0 | & | +| main.rs:2551:13:2551:17 | value | &T.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2551:22:2551:25 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2551:22:2551:25 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2551:22:2551:25 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2551:22:2551:25 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2551:22:2551:25 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2551:22:2551:25 | map1 | V.T | file://:0:0:0:0 | & | +| main.rs:2551:22:2551:25 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2551:22:2551:34 | map1.values() | | {EXTERNAL LOCATION} | Values | +| main.rs:2551:22:2551:34 | map1.values() | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2551:22:2551:34 | map1.values() | V | {EXTERNAL LOCATION} | Box | +| main.rs:2551:22:2551:34 | map1.values() | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2551:22:2551:34 | map1.values() | V.T | file://:0:0:0:0 | & | +| main.rs:2551:22:2551:34 | map1.values() | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2552:13:2552:24 | TuplePat | | file://:0:0:0:0 | (T_2) | +| main.rs:2552:13:2552:24 | TuplePat | 0(2) | file://:0:0:0:0 | & | +| main.rs:2552:13:2552:24 | TuplePat | 0(2).&T | {EXTERNAL LOCATION} | i32 | +| main.rs:2552:13:2552:24 | TuplePat | 1(2) | file://:0:0:0:0 | & | +| main.rs:2552:13:2552:24 | TuplePat | 1(2).&T | {EXTERNAL LOCATION} | Box | +| main.rs:2552:13:2552:24 | TuplePat | 1(2).&T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2552:13:2552:24 | TuplePat | 1(2).&T.T | file://:0:0:0:0 | & | +| main.rs:2552:13:2552:24 | TuplePat | 1(2).&T.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2552:14:2552:16 | key | | file://:0:0:0:0 | & | +| main.rs:2552:14:2552:16 | key | &T | {EXTERNAL LOCATION} | i32 | +| main.rs:2552:19:2552:23 | value | | file://:0:0:0:0 | & | +| main.rs:2552:19:2552:23 | value | &T | {EXTERNAL LOCATION} | Box | +| main.rs:2552:19:2552:23 | value | &T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2552:19:2552:23 | value | &T.T | file://:0:0:0:0 | & | +| main.rs:2552:19:2552:23 | value | &T.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2552:29:2552:32 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2552:29:2552:32 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2552:29:2552:32 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2552:29:2552:32 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2552:29:2552:32 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2552:29:2552:32 | map1 | V.T | file://:0:0:0:0 | & | +| main.rs:2552:29:2552:32 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2552:29:2552:39 | map1.iter() | | {EXTERNAL LOCATION} | Iter | +| main.rs:2552:29:2552:39 | map1.iter() | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2552:29:2552:39 | map1.iter() | V | {EXTERNAL LOCATION} | Box | +| main.rs:2552:29:2552:39 | map1.iter() | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2552:29:2552:39 | map1.iter() | V.T | file://:0:0:0:0 | & | +| main.rs:2552:29:2552:39 | map1.iter() | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2553:13:2553:24 | TuplePat | | file://:0:0:0:0 | (T_2) | +| main.rs:2553:13:2553:24 | TuplePat | 0(2) | file://:0:0:0:0 | & | +| main.rs:2553:13:2553:24 | TuplePat | 0(2).&T | {EXTERNAL LOCATION} | i32 | +| main.rs:2553:13:2553:24 | TuplePat | 1(2) | file://:0:0:0:0 | & | +| main.rs:2553:13:2553:24 | TuplePat | 1(2).&T | {EXTERNAL LOCATION} | Box | +| main.rs:2553:13:2553:24 | TuplePat | 1(2).&T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2553:13:2553:24 | TuplePat | 1(2).&T.T | file://:0:0:0:0 | & | +| main.rs:2553:13:2553:24 | TuplePat | 1(2).&T.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2553:14:2553:16 | key | | file://:0:0:0:0 | & | +| main.rs:2553:14:2553:16 | key | &T | {EXTERNAL LOCATION} | i32 | +| main.rs:2553:19:2553:23 | value | | file://:0:0:0:0 | & | +| main.rs:2553:19:2553:23 | value | &T | {EXTERNAL LOCATION} | Box | +| main.rs:2553:19:2553:23 | value | &T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2553:19:2553:23 | value | &T.T | file://:0:0:0:0 | & | +| main.rs:2553:19:2553:23 | value | &T.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2553:29:2553:33 | &map1 | | file://:0:0:0:0 | & | +| main.rs:2553:29:2553:33 | &map1 | &T | {EXTERNAL LOCATION} | HashMap | +| main.rs:2553:29:2553:33 | &map1 | &T.K | {EXTERNAL LOCATION} | i32 | +| main.rs:2553:29:2553:33 | &map1 | &T.S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2553:29:2553:33 | &map1 | &T.V | {EXTERNAL LOCATION} | Box | +| main.rs:2553:29:2553:33 | &map1 | &T.V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2553:29:2553:33 | &map1 | &T.V.T | file://:0:0:0:0 | & | +| main.rs:2553:29:2553:33 | &map1 | &T.V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2553:30:2553:33 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2553:30:2553:33 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2553:30:2553:33 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2553:30:2553:33 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2553:30:2553:33 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2553:30:2553:33 | map1 | V.T | file://:0:0:0:0 | & | +| main.rs:2553:30:2553:33 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2557:17:2557:17 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2557:26:2557:26 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2557:26:2557:26 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2559:23:2559:23 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2559:23:2559:28 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2559:27:2559:28 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2559:27:2559:28 | 10 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2561:13:2561:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2561:13:2561:18 | ... += ... | | file://:0:0:0:0 | () | +| main.rs:2561:18:2561:18 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2573:40:2575:9 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:2573:40:2575:9 | { ... } | T | main.rs:2567:5:2567:20 | S1 | +| main.rs:2573:40:2575:9 | { ... } | T.T | main.rs:2572:10:2572:19 | T | +| main.rs:2574:13:2574:16 | None | | {EXTERNAL LOCATION} | Option | +| main.rs:2574:13:2574:16 | None | T | main.rs:2567:5:2567:20 | S1 | +| main.rs:2574:13:2574:16 | None | T.T | main.rs:2572:10:2572:19 | T | +| main.rs:2577:30:2579:9 | { ... } | | main.rs:2567:5:2567:20 | S1 | +| main.rs:2577:30:2579:9 | { ... } | T | main.rs:2572:10:2572:19 | T | +| main.rs:2578:13:2578:28 | S1(...) | | main.rs:2567:5:2567:20 | S1 | +| main.rs:2578:13:2578:28 | S1(...) | T | main.rs:2572:10:2572:19 | T | +| main.rs:2578:16:2578:27 | ...::default(...) | | main.rs:2572:10:2572:19 | T | +| main.rs:2581:19:2581:22 | SelfParam | | main.rs:2567:5:2567:20 | S1 | +| main.rs:2581:19:2581:22 | SelfParam | T | main.rs:2572:10:2572:19 | T | +| main.rs:2581:33:2583:9 | { ... } | | main.rs:2567:5:2567:20 | S1 | +| main.rs:2581:33:2583:9 | { ... } | T | main.rs:2572:10:2572:19 | T | +| main.rs:2582:13:2582:16 | self | | main.rs:2567:5:2567:20 | S1 | +| main.rs:2582:13:2582:16 | self | T | main.rs:2572:10:2572:19 | T | +| main.rs:2594:15:2594:15 | x | | main.rs:2594:12:2594:12 | T | +| main.rs:2594:26:2596:5 | { ... } | | main.rs:2594:12:2594:12 | T | +| main.rs:2595:9:2595:9 | x | | main.rs:2594:12:2594:12 | T | +| main.rs:2599:13:2599:14 | x1 | | {EXTERNAL LOCATION} | Option | +| main.rs:2599:13:2599:14 | x1 | T | main.rs:2567:5:2567:20 | S1 | +| main.rs:2599:13:2599:14 | x1 | T.T | main.rs:2569:5:2570:14 | S2 | +| main.rs:2599:34:2599:48 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2599:34:2599:48 | ...::assoc_fun(...) | T | main.rs:2567:5:2567:20 | S1 | +| main.rs:2599:34:2599:48 | ...::assoc_fun(...) | T.T | main.rs:2569:5:2570:14 | S2 | +| main.rs:2600:13:2600:14 | x2 | | {EXTERNAL LOCATION} | Option | +| main.rs:2600:13:2600:14 | x2 | T | main.rs:2567:5:2567:20 | S1 | +| main.rs:2600:13:2600:14 | x2 | T.T | main.rs:2569:5:2570:14 | S2 | +| main.rs:2600:18:2600:38 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2600:18:2600:38 | ...::assoc_fun(...) | T | main.rs:2567:5:2567:20 | S1 | +| main.rs:2600:18:2600:38 | ...::assoc_fun(...) | T.T | main.rs:2569:5:2570:14 | S2 | +| main.rs:2601:13:2601:14 | x3 | | {EXTERNAL LOCATION} | Option | +| main.rs:2601:13:2601:14 | x3 | T | main.rs:2567:5:2567:20 | S1 | +| main.rs:2601:13:2601:14 | x3 | T.T | main.rs:2569:5:2570:14 | S2 | +| main.rs:2601:18:2601:32 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2601:18:2601:32 | ...::assoc_fun(...) | T | main.rs:2567:5:2567:20 | S1 | +| main.rs:2601:18:2601:32 | ...::assoc_fun(...) | T.T | main.rs:2569:5:2570:14 | S2 | +| main.rs:2602:13:2602:14 | x4 | | main.rs:2567:5:2567:20 | S1 | +| main.rs:2602:13:2602:14 | x4 | T | main.rs:2569:5:2570:14 | S2 | +| main.rs:2602:18:2602:48 | ...::method(...) | | main.rs:2567:5:2567:20 | S1 | +| main.rs:2602:18:2602:48 | ...::method(...) | T | main.rs:2569:5:2570:14 | S2 | +| main.rs:2602:35:2602:47 | ...::default(...) | | main.rs:2567:5:2567:20 | S1 | +| main.rs:2602:35:2602:47 | ...::default(...) | T | main.rs:2569:5:2570:14 | S2 | +| main.rs:2603:13:2603:14 | x5 | | main.rs:2567:5:2567:20 | S1 | +| main.rs:2603:13:2603:14 | x5 | T | main.rs:2569:5:2570:14 | S2 | +| main.rs:2603:18:2603:42 | ...::method(...) | | main.rs:2567:5:2567:20 | S1 | +| main.rs:2603:18:2603:42 | ...::method(...) | T | main.rs:2569:5:2570:14 | S2 | +| main.rs:2603:29:2603:41 | ...::default(...) | | main.rs:2567:5:2567:20 | S1 | +| main.rs:2603:29:2603:41 | ...::default(...) | T | main.rs:2569:5:2570:14 | S2 | +| main.rs:2604:13:2604:14 | x6 | | main.rs:2588:5:2588:27 | S4 | +| main.rs:2604:13:2604:14 | x6 | T4 | main.rs:2569:5:2570:14 | S2 | +| main.rs:2604:18:2604:45 | S4::<...>(...) | | main.rs:2588:5:2588:27 | S4 | +| main.rs:2604:18:2604:45 | S4::<...>(...) | T4 | main.rs:2569:5:2570:14 | S2 | +| main.rs:2604:27:2604:44 | ...::default(...) | | main.rs:2569:5:2570:14 | S2 | +| main.rs:2605:13:2605:14 | x7 | | main.rs:2588:5:2588:27 | S4 | +| main.rs:2605:13:2605:14 | x7 | T4 | main.rs:2569:5:2570:14 | S2 | +| main.rs:2605:18:2605:23 | S4(...) | | main.rs:2588:5:2588:27 | S4 | +| main.rs:2605:18:2605:23 | S4(...) | T4 | main.rs:2569:5:2570:14 | S2 | +| main.rs:2605:21:2605:22 | S2 | | main.rs:2569:5:2570:14 | S2 | +| main.rs:2606:13:2606:14 | x8 | | main.rs:2588:5:2588:27 | S4 | +| main.rs:2606:13:2606:14 | x8 | T4 | {EXTERNAL LOCATION} | i32 | +| main.rs:2606:18:2606:22 | S4(...) | | main.rs:2588:5:2588:27 | S4 | +| main.rs:2606:18:2606:22 | S4(...) | T4 | {EXTERNAL LOCATION} | i32 | +| main.rs:2606:21:2606:21 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2607:13:2607:14 | x9 | | main.rs:2588:5:2588:27 | S4 | +| main.rs:2607:13:2607:14 | x9 | T4 | main.rs:2569:5:2570:14 | S2 | +| main.rs:2607:18:2607:34 | S4(...) | | main.rs:2588:5:2588:27 | S4 | +| main.rs:2607:18:2607:34 | S4(...) | T4 | main.rs:2569:5:2570:14 | S2 | +| main.rs:2607:21:2607:33 | ...::default(...) | | main.rs:2569:5:2570:14 | S2 | +| main.rs:2608:13:2608:15 | x10 | | main.rs:2590:5:2592:5 | S5 | +| main.rs:2608:13:2608:15 | x10 | T5 | main.rs:2569:5:2570:14 | S2 | +| main.rs:2608:19:2611:9 | S5::<...> {...} | | main.rs:2590:5:2592:5 | S5 | +| main.rs:2608:19:2611:9 | S5::<...> {...} | T5 | main.rs:2569:5:2570:14 | S2 | +| main.rs:2610:20:2610:37 | ...::default(...) | | main.rs:2569:5:2570:14 | S2 | +| main.rs:2612:13:2612:15 | x11 | | main.rs:2590:5:2592:5 | S5 | +| main.rs:2612:13:2612:15 | x11 | T5 | main.rs:2569:5:2570:14 | S2 | +| main.rs:2612:19:2612:34 | S5 {...} | | main.rs:2590:5:2592:5 | S5 | +| main.rs:2612:19:2612:34 | S5 {...} | T5 | main.rs:2569:5:2570:14 | S2 | +| main.rs:2612:31:2612:32 | S2 | | main.rs:2569:5:2570:14 | S2 | +| main.rs:2613:13:2613:15 | x12 | | main.rs:2590:5:2592:5 | S5 | +| main.rs:2613:13:2613:15 | x12 | T5 | {EXTERNAL LOCATION} | i32 | +| main.rs:2613:19:2613:33 | S5 {...} | | main.rs:2590:5:2592:5 | S5 | +| main.rs:2613:19:2613:33 | S5 {...} | T5 | {EXTERNAL LOCATION} | i32 | +| main.rs:2613:31:2613:31 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2614:13:2614:15 | x13 | | main.rs:2590:5:2592:5 | S5 | +| main.rs:2614:13:2614:15 | x13 | T5 | main.rs:2569:5:2570:14 | S2 | +| main.rs:2614:19:2617:9 | S5 {...} | | main.rs:2590:5:2592:5 | S5 | +| main.rs:2614:19:2617:9 | S5 {...} | T5 | main.rs:2569:5:2570:14 | S2 | +| main.rs:2616:20:2616:32 | ...::default(...) | | main.rs:2569:5:2570:14 | S2 | +| main.rs:2618:13:2618:15 | x14 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2618:19:2618:48 | foo::<...>(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:2618:30:2618:47 | ...::default(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:2619:13:2619:15 | x15 | | main.rs:2567:5:2567:20 | S1 | +| main.rs:2619:13:2619:15 | x15 | T | main.rs:2569:5:2570:14 | S2 | +| main.rs:2619:19:2619:37 | ...::default(...) | | main.rs:2567:5:2567:20 | S1 | +| main.rs:2619:19:2619:37 | ...::default(...) | T | main.rs:2569:5:2570:14 | S2 | +| main.rs:2628:35:2630:9 | { ... } | | file://:0:0:0:0 | (T_2) | +| main.rs:2628:35:2630:9 | { ... } | 0(2) | main.rs:2624:5:2625:16 | S1 | +| main.rs:2628:35:2630:9 | { ... } | 1(2) | main.rs:2624:5:2625:16 | S1 | +| main.rs:2629:13:2629:26 | TupleExpr | | file://:0:0:0:0 | (T_2) | +| main.rs:2629:13:2629:26 | TupleExpr | 0(2) | main.rs:2624:5:2625:16 | S1 | +| main.rs:2629:13:2629:26 | TupleExpr | 1(2) | main.rs:2624:5:2625:16 | S1 | +| main.rs:2629:14:2629:18 | S1 {...} | | main.rs:2624:5:2625:16 | S1 | +| main.rs:2629:21:2629:25 | S1 {...} | | main.rs:2624:5:2625:16 | S1 | +| main.rs:2631:16:2631:19 | SelfParam | | main.rs:2624:5:2625:16 | S1 | +| main.rs:2635:13:2635:13 | a | | file://:0:0:0:0 | (T_2) | +| main.rs:2635:13:2635:13 | a | 0(2) | main.rs:2624:5:2625:16 | S1 | +| main.rs:2635:13:2635:13 | a | 1(2) | main.rs:2624:5:2625:16 | S1 | +| main.rs:2635:17:2635:30 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | +| main.rs:2635:17:2635:30 | ...::get_pair(...) | 0(2) | main.rs:2624:5:2625:16 | S1 | +| main.rs:2635:17:2635:30 | ...::get_pair(...) | 1(2) | main.rs:2624:5:2625:16 | S1 | +| main.rs:2636:17:2636:17 | b | | file://:0:0:0:0 | (T_2) | +| main.rs:2636:17:2636:17 | b | 0(2) | main.rs:2624:5:2625:16 | S1 | +| main.rs:2636:17:2636:17 | b | 1(2) | main.rs:2624:5:2625:16 | S1 | +| main.rs:2636:21:2636:34 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | +| main.rs:2636:21:2636:34 | ...::get_pair(...) | 0(2) | main.rs:2624:5:2625:16 | S1 | +| main.rs:2636:21:2636:34 | ...::get_pair(...) | 1(2) | main.rs:2624:5:2625:16 | S1 | +| main.rs:2637:13:2637:18 | TuplePat | | file://:0:0:0:0 | (T_2) | +| main.rs:2637:13:2637:18 | TuplePat | 0(2) | main.rs:2624:5:2625:16 | S1 | +| main.rs:2637:13:2637:18 | TuplePat | 1(2) | main.rs:2624:5:2625:16 | S1 | +| main.rs:2637:14:2637:14 | c | | main.rs:2624:5:2625:16 | S1 | +| main.rs:2637:17:2637:17 | d | | main.rs:2624:5:2625:16 | S1 | +| main.rs:2637:22:2637:35 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | +| main.rs:2637:22:2637:35 | ...::get_pair(...) | 0(2) | main.rs:2624:5:2625:16 | S1 | +| main.rs:2637:22:2637:35 | ...::get_pair(...) | 1(2) | main.rs:2624:5:2625:16 | S1 | +| main.rs:2638:13:2638:22 | TuplePat | | file://:0:0:0:0 | (T_2) | +| main.rs:2638:13:2638:22 | TuplePat | 0(2) | main.rs:2624:5:2625:16 | S1 | +| main.rs:2638:13:2638:22 | TuplePat | 1(2) | main.rs:2624:5:2625:16 | S1 | +| main.rs:2638:18:2638:18 | e | | main.rs:2624:5:2625:16 | S1 | +| main.rs:2638:21:2638:21 | f | | main.rs:2624:5:2625:16 | S1 | +| main.rs:2638:26:2638:39 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | +| main.rs:2638:26:2638:39 | ...::get_pair(...) | 0(2) | main.rs:2624:5:2625:16 | S1 | +| main.rs:2638:26:2638:39 | ...::get_pair(...) | 1(2) | main.rs:2624:5:2625:16 | S1 | +| main.rs:2639:13:2639:26 | TuplePat | | file://:0:0:0:0 | (T_2) | +| main.rs:2639:13:2639:26 | TuplePat | 0(2) | main.rs:2624:5:2625:16 | S1 | +| main.rs:2639:13:2639:26 | TuplePat | 1(2) | main.rs:2624:5:2625:16 | S1 | +| main.rs:2639:18:2639:18 | g | | main.rs:2624:5:2625:16 | S1 | +| main.rs:2639:25:2639:25 | h | | main.rs:2624:5:2625:16 | S1 | +| main.rs:2639:30:2639:43 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | +| main.rs:2639:30:2639:43 | ...::get_pair(...) | 0(2) | main.rs:2624:5:2625:16 | S1 | +| main.rs:2639:30:2639:43 | ...::get_pair(...) | 1(2) | main.rs:2624:5:2625:16 | S1 | +| main.rs:2641:9:2641:9 | a | | file://:0:0:0:0 | (T_2) | +| main.rs:2641:9:2641:9 | a | 0(2) | main.rs:2624:5:2625:16 | S1 | +| main.rs:2641:9:2641:9 | a | 1(2) | main.rs:2624:5:2625:16 | S1 | +| main.rs:2641:9:2641:11 | a.0 | | main.rs:2624:5:2625:16 | S1 | +| main.rs:2642:9:2642:9 | b | | file://:0:0:0:0 | (T_2) | +| main.rs:2642:9:2642:9 | b | 0(2) | main.rs:2624:5:2625:16 | S1 | +| main.rs:2642:9:2642:9 | b | 1(2) | main.rs:2624:5:2625:16 | S1 | +| main.rs:2642:9:2642:11 | b.1 | | main.rs:2624:5:2625:16 | S1 | +| main.rs:2643:9:2643:9 | c | | main.rs:2624:5:2625:16 | S1 | +| main.rs:2644:9:2644:9 | d | | main.rs:2624:5:2625:16 | S1 | +| main.rs:2645:9:2645:9 | e | | main.rs:2624:5:2625:16 | S1 | +| main.rs:2646:9:2646:9 | f | | main.rs:2624:5:2625:16 | S1 | +| main.rs:2647:9:2647:9 | g | | main.rs:2624:5:2625:16 | S1 | +| main.rs:2648:9:2648:9 | h | | main.rs:2624:5:2625:16 | S1 | +| main.rs:2653:13:2653:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2653:17:2653:34 | ...::default(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2654:13:2654:13 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2654:17:2654:34 | ...::default(...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2655:13:2655:16 | pair | | file://:0:0:0:0 | (T_2) | +| main.rs:2655:13:2655:16 | pair | 0(2) | {EXTERNAL LOCATION} | i64 | +| main.rs:2655:13:2655:16 | pair | 1(2) | {EXTERNAL LOCATION} | bool | +| main.rs:2655:20:2655:25 | TupleExpr | | file://:0:0:0:0 | (T_2) | +| main.rs:2655:20:2655:25 | TupleExpr | 0(2) | {EXTERNAL LOCATION} | i64 | +| main.rs:2655:20:2655:25 | TupleExpr | 1(2) | {EXTERNAL LOCATION} | bool | +| main.rs:2655:21:2655:21 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2655:24:2655:24 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2656:13:2656:13 | i | | {EXTERNAL LOCATION} | i64 | +| main.rs:2656:22:2656:25 | pair | | file://:0:0:0:0 | (T_2) | +| main.rs:2656:22:2656:25 | pair | 0(2) | {EXTERNAL LOCATION} | i64 | +| main.rs:2656:22:2656:25 | pair | 1(2) | {EXTERNAL LOCATION} | bool | +| main.rs:2656:22:2656:27 | pair.0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2657:13:2657:13 | j | | {EXTERNAL LOCATION} | bool | +| main.rs:2657:23:2657:26 | pair | | file://:0:0:0:0 | (T_2) | +| main.rs:2657:23:2657:26 | pair | 0(2) | {EXTERNAL LOCATION} | i64 | +| main.rs:2657:23:2657:26 | pair | 1(2) | {EXTERNAL LOCATION} | bool | +| main.rs:2657:23:2657:28 | pair.1 | | {EXTERNAL LOCATION} | bool | +| main.rs:2659:13:2659:16 | pair | | file://:0:0:0:0 | (T_2) | +| main.rs:2659:13:2659:16 | pair | 0(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2659:13:2659:16 | pair | 1(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2659:20:2659:25 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2659:20:2659:25 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2659:20:2659:32 | ... .into() | | file://:0:0:0:0 | (T_2) | +| main.rs:2659:20:2659:32 | ... .into() | 0(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2659:20:2659:32 | ... .into() | 1(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2659:21:2659:21 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2659:24:2659:24 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2660:15:2660:18 | pair | | file://:0:0:0:0 | (T_2) | +| main.rs:2660:15:2660:18 | pair | 0(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2660:15:2660:18 | pair | 1(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2661:13:2661:18 | TuplePat | | file://:0:0:0:0 | (T_2) | +| main.rs:2661:13:2661:18 | TuplePat | 0(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2661:13:2661:18 | TuplePat | 1(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2661:14:2661:14 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2661:17:2661:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2661:30:2661:41 | "unexpected" | | file://:0:0:0:0 | & | +| main.rs:2661:30:2661:41 | "unexpected" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2661:30:2661:41 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2661:30:2661:41 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2662:13:2662:13 | _ | | file://:0:0:0:0 | (T_2) | +| main.rs:2662:13:2662:13 | _ | 0(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2662:13:2662:13 | _ | 1(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2662:25:2662:34 | "expected" | | file://:0:0:0:0 | & | +| main.rs:2662:25:2662:34 | "expected" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2662:25:2662:34 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2662:25:2662:34 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2664:13:2664:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2664:17:2664:20 | pair | | file://:0:0:0:0 | (T_2) | +| main.rs:2664:17:2664:20 | pair | 0(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2664:17:2664:20 | pair | 1(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2664:17:2664:22 | pair.0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2666:13:2666:13 | y | | file://:0:0:0:0 | & | +| main.rs:2666:13:2666:13 | y | &T | file://:0:0:0:0 | (T_2) | +| main.rs:2666:13:2666:13 | y | &T.0(2) | main.rs:2624:5:2625:16 | S1 | +| main.rs:2666:13:2666:13 | y | &T.1(2) | main.rs:2624:5:2625:16 | S1 | +| main.rs:2666:17:2666:31 | &... | | file://:0:0:0:0 | & | +| main.rs:2666:17:2666:31 | &... | &T | file://:0:0:0:0 | (T_2) | +| main.rs:2666:17:2666:31 | &... | &T.0(2) | main.rs:2624:5:2625:16 | S1 | +| main.rs:2666:17:2666:31 | &... | &T.1(2) | main.rs:2624:5:2625:16 | S1 | +| main.rs:2666:18:2666:31 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | +| main.rs:2666:18:2666:31 | ...::get_pair(...) | 0(2) | main.rs:2624:5:2625:16 | S1 | +| main.rs:2666:18:2666:31 | ...::get_pair(...) | 1(2) | main.rs:2624:5:2625:16 | S1 | +| main.rs:2667:9:2667:9 | y | | file://:0:0:0:0 | & | +| main.rs:2667:9:2667:9 | y | &T | file://:0:0:0:0 | (T_2) | +| main.rs:2667:9:2667:9 | y | &T.0(2) | main.rs:2624:5:2625:16 | S1 | +| main.rs:2667:9:2667:9 | y | &T.1(2) | main.rs:2624:5:2625:16 | S1 | +| main.rs:2667:9:2667:11 | y.0 | | main.rs:2624:5:2625:16 | S1 | +| main.rs:2674:13:2674:23 | boxed_value | | {EXTERNAL LOCATION} | Box | +| main.rs:2674:13:2674:23 | boxed_value | A | {EXTERNAL LOCATION} | Global | +| main.rs:2674:13:2674:23 | boxed_value | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2674:27:2674:42 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2674:27:2674:42 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2674:27:2674:42 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2674:36:2674:41 | 100i32 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2677:15:2677:25 | boxed_value | | {EXTERNAL LOCATION} | Box | +| main.rs:2677:15:2677:25 | boxed_value | A | {EXTERNAL LOCATION} | Global | +| main.rs:2677:15:2677:25 | boxed_value | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2678:13:2678:19 | box 100 | | {EXTERNAL LOCATION} | Box | +| main.rs:2678:13:2678:19 | box 100 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2678:13:2678:19 | box 100 | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2678:17:2678:19 | 100 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2679:26:2679:36 | "Boxed 100\\n" | | file://:0:0:0:0 | & | +| main.rs:2679:26:2679:36 | "Boxed 100\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2679:26:2679:36 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2679:26:2679:36 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2681:13:2681:17 | box ... | | {EXTERNAL LOCATION} | Box | +| main.rs:2681:13:2681:17 | box ... | A | {EXTERNAL LOCATION} | Global | +| main.rs:2681:13:2681:17 | box ... | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2683:26:2683:42 | "Boxed value: {}\\n" | | file://:0:0:0:0 | & | +| main.rs:2683:26:2683:42 | "Boxed value: {}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2683:26:2683:51 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2683:26:2683:51 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2688:13:2688:22 | nested_box | | {EXTERNAL LOCATION} | Box | +| main.rs:2688:13:2688:22 | nested_box | A | {EXTERNAL LOCATION} | Global | +| main.rs:2688:13:2688:22 | nested_box | T | {EXTERNAL LOCATION} | Box | +| main.rs:2688:13:2688:22 | nested_box | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2688:13:2688:22 | nested_box | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2688:26:2688:50 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2688:26:2688:50 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2688:26:2688:50 | ...::new(...) | T | {EXTERNAL LOCATION} | Box | +| main.rs:2688:26:2688:50 | ...::new(...) | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2688:26:2688:50 | ...::new(...) | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2688:35:2688:49 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2688:35:2688:49 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2688:35:2688:49 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2688:44:2688:48 | 42i32 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2689:15:2689:24 | nested_box | | {EXTERNAL LOCATION} | Box | +| main.rs:2689:15:2689:24 | nested_box | A | {EXTERNAL LOCATION} | Global | +| main.rs:2689:15:2689:24 | nested_box | T | {EXTERNAL LOCATION} | Box | +| main.rs:2689:15:2689:24 | nested_box | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2689:15:2689:24 | nested_box | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2690:13:2690:21 | box ... | | {EXTERNAL LOCATION} | Box | +| main.rs:2690:13:2690:21 | box ... | A | {EXTERNAL LOCATION} | Global | +| main.rs:2690:13:2690:21 | box ... | T | {EXTERNAL LOCATION} | Box | +| main.rs:2690:13:2690:21 | box ... | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2690:13:2690:21 | box ... | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2692:26:2692:43 | "Nested boxed: {}\\n" | | file://:0:0:0:0 | & | +| main.rs:2692:26:2692:43 | "Nested boxed: {}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2692:26:2692:59 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2692:26:2692:59 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2704:36:2706:9 | { ... } | | main.rs:2701:5:2701:22 | Path | +| main.rs:2705:13:2705:19 | Path {...} | | main.rs:2701:5:2701:22 | Path | +| main.rs:2708:29:2708:33 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2708:29:2708:33 | SelfParam | &T | main.rs:2701:5:2701:22 | Path | +| main.rs:2708:59:2710:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:2708:59:2710:9 | { ... } | E | file://:0:0:0:0 | () | +| main.rs:2708:59:2710:9 | { ... } | T | main.rs:2713:5:2713:25 | PathBuf | +| main.rs:2709:13:2709:30 | Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:2709:13:2709:30 | Ok(...) | E | file://:0:0:0:0 | () | +| main.rs:2709:13:2709:30 | Ok(...) | T | main.rs:2713:5:2713:25 | PathBuf | +| main.rs:2709:16:2709:29 | ...::new(...) | | main.rs:2713:5:2713:25 | PathBuf | +| main.rs:2716:39:2718:9 | { ... } | | main.rs:2713:5:2713:25 | PathBuf | +| main.rs:2717:13:2717:22 | PathBuf {...} | | main.rs:2713:5:2713:25 | PathBuf | +| main.rs:2726:18:2726:22 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2726:18:2726:22 | SelfParam | &T | main.rs:2713:5:2713:25 | PathBuf | +| main.rs:2726:34:2730:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:2726:34:2730:9 | { ... } | &T | main.rs:2701:5:2701:22 | Path | +| main.rs:2728:33:2728:43 | ...::new(...) | | main.rs:2701:5:2701:22 | Path | +| main.rs:2729:13:2729:17 | &path | | file://:0:0:0:0 | & | +| main.rs:2729:13:2729:17 | &path | &T | main.rs:2701:5:2701:22 | Path | +| main.rs:2729:14:2729:17 | path | | main.rs:2701:5:2701:22 | Path | +| main.rs:2734:13:2734:17 | path1 | | main.rs:2701:5:2701:22 | Path | +| main.rs:2734:21:2734:31 | ...::new(...) | | main.rs:2701:5:2701:22 | Path | +| main.rs:2735:13:2735:17 | path2 | | {EXTERNAL LOCATION} | Result | +| main.rs:2735:13:2735:17 | path2 | E | file://:0:0:0:0 | () | +| main.rs:2735:13:2735:17 | path2 | T | main.rs:2713:5:2713:25 | PathBuf | +| main.rs:2735:21:2735:25 | path1 | | main.rs:2701:5:2701:22 | Path | +| main.rs:2735:21:2735:40 | path1.canonicalize() | | {EXTERNAL LOCATION} | Result | +| main.rs:2735:21:2735:40 | path1.canonicalize() | E | file://:0:0:0:0 | () | +| main.rs:2735:21:2735:40 | path1.canonicalize() | T | main.rs:2713:5:2713:25 | PathBuf | +| main.rs:2736:13:2736:17 | path3 | | main.rs:2713:5:2713:25 | PathBuf | +| main.rs:2736:21:2736:25 | path2 | | {EXTERNAL LOCATION} | Result | +| main.rs:2736:21:2736:25 | path2 | E | file://:0:0:0:0 | () | +| main.rs:2736:21:2736:25 | path2 | T | main.rs:2713:5:2713:25 | PathBuf | +| main.rs:2736:21:2736:34 | path2.unwrap() | | main.rs:2713:5:2713:25 | PathBuf | +| main.rs:2738:13:2738:20 | pathbuf1 | | main.rs:2713:5:2713:25 | PathBuf | +| main.rs:2738:24:2738:37 | ...::new(...) | | main.rs:2713:5:2713:25 | PathBuf | +| main.rs:2739:24:2739:31 | pathbuf1 | | main.rs:2713:5:2713:25 | PathBuf | +| main.rs:2746:14:2746:18 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2746:14:2746:18 | SelfParam | &T | main.rs:2745:5:2747:5 | Self [trait MyTrait] | +| main.rs:2753:14:2753:18 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2753:14:2753:18 | SelfParam | &T | main.rs:2749:5:2750:19 | S | +| main.rs:2753:14:2753:18 | SelfParam | &T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2753:28:2755:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2754:13:2754:16 | self | | file://:0:0:0:0 | & | +| main.rs:2754:13:2754:16 | self | &T | main.rs:2749:5:2750:19 | S | +| main.rs:2754:13:2754:16 | self | &T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2754:13:2754:18 | self.0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2759:14:2759:18 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2759:14:2759:18 | SelfParam | &T | main.rs:2749:5:2750:19 | S | +| main.rs:2759:14:2759:18 | SelfParam | &T.T | main.rs:2749:5:2750:19 | S | +| main.rs:2759:14:2759:18 | SelfParam | &T.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2759:28:2761:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2760:13:2760:16 | self | | file://:0:0:0:0 | & | +| main.rs:2760:13:2760:16 | self | &T | main.rs:2749:5:2750:19 | S | +| main.rs:2760:13:2760:16 | self | &T.T | main.rs:2749:5:2750:19 | S | +| main.rs:2760:13:2760:16 | self | &T.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2760:13:2760:18 | self.0 | | main.rs:2749:5:2750:19 | S | +| main.rs:2760:13:2760:18 | self.0 | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2760:13:2760:21 | ... .0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2765:15:2765:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2765:15:2765:19 | SelfParam | &T | main.rs:2749:5:2750:19 | S | +| main.rs:2765:15:2765:19 | SelfParam | &T.T | main.rs:2764:10:2764:16 | T | +| main.rs:2765:33:2767:9 | { ... } | | main.rs:2749:5:2750:19 | S | +| main.rs:2765:33:2767:9 | { ... } | T | main.rs:2749:5:2750:19 | S | +| main.rs:2765:33:2767:9 | { ... } | T.T | main.rs:2764:10:2764:16 | T | +| main.rs:2766:13:2766:24 | S(...) | | main.rs:2749:5:2750:19 | S | +| main.rs:2766:13:2766:24 | S(...) | T | main.rs:2749:5:2750:19 | S | +| main.rs:2766:13:2766:24 | S(...) | T.T | main.rs:2764:10:2764:16 | T | +| main.rs:2766:15:2766:23 | S(...) | | main.rs:2749:5:2750:19 | S | +| main.rs:2766:15:2766:23 | S(...) | T | main.rs:2764:10:2764:16 | T | +| main.rs:2766:17:2766:20 | self | | file://:0:0:0:0 | & | +| main.rs:2766:17:2766:20 | self | &T | main.rs:2749:5:2750:19 | S | +| main.rs:2766:17:2766:20 | self | &T.T | main.rs:2764:10:2764:16 | T | +| main.rs:2766:17:2766:22 | self.0 | | main.rs:2764:10:2764:16 | T | +| main.rs:2770:14:2770:14 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2770:48:2787:5 | { ... } | | {EXTERNAL LOCATION} | Box | +| main.rs:2770:48:2787:5 | { ... } | A | {EXTERNAL LOCATION} | Global | +| main.rs:2770:48:2787:5 | { ... } | T | main.rs:2745:5:2747:5 | dyn MyTrait | +| main.rs:2770:48:2787:5 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2771:13:2771:13 | x | | main.rs:2749:5:2750:19 | S | +| main.rs:2771:13:2771:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2771:17:2776:9 | if b {...} else {...} | | main.rs:2749:5:2750:19 | S | +| main.rs:2771:17:2776:9 | if b {...} else {...} | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2771:20:2771:20 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2771:22:2774:9 | { ... } | | main.rs:2749:5:2750:19 | S | +| main.rs:2771:22:2774:9 | { ... } | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2772:17:2772:17 | y | | main.rs:2749:5:2750:19 | S | +| main.rs:2772:17:2772:17 | y | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2772:21:2772:38 | ...::default(...) | | main.rs:2749:5:2750:19 | S | +| main.rs:2772:21:2772:38 | ...::default(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2773:13:2773:13 | y | | main.rs:2749:5:2750:19 | S | +| main.rs:2773:13:2773:13 | y | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2774:16:2776:9 | { ... } | | main.rs:2749:5:2750:19 | S | +| main.rs:2774:16:2776:9 | { ... } | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2775:13:2775:16 | S(...) | | main.rs:2749:5:2750:19 | S | +| main.rs:2775:13:2775:16 | S(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2775:15:2775:15 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2780:13:2780:13 | x | | main.rs:2745:5:2747:5 | dyn MyTrait | +| main.rs:2780:13:2780:13 | x | | main.rs:2749:5:2750:19 | S | +| main.rs:2780:13:2780:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2780:13:2780:13 | x | dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2780:17:2780:20 | S(...) | | main.rs:2745:5:2747:5 | dyn MyTrait | +| main.rs:2780:17:2780:20 | S(...) | | main.rs:2749:5:2750:19 | S | +| main.rs:2780:17:2780:20 | S(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2780:17:2780:20 | S(...) | dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2780:19:2780:19 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2781:9:2786:9 | if b {...} else {...} | | {EXTERNAL LOCATION} | Box | +| main.rs:2781:9:2786:9 | if b {...} else {...} | A | {EXTERNAL LOCATION} | Global | +| main.rs:2781:9:2786:9 | if b {...} else {...} | T | main.rs:2745:5:2747:5 | dyn MyTrait | +| main.rs:2781:9:2786:9 | if b {...} else {...} | T | main.rs:2749:5:2750:19 | S | +| main.rs:2781:9:2786:9 | if b {...} else {...} | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2781:9:2786:9 | if b {...} else {...} | T.T | main.rs:2749:5:2750:19 | S | +| main.rs:2781:9:2786:9 | if b {...} else {...} | T.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2781:9:2786:9 | if b {...} else {...} | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2781:12:2781:12 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2781:14:2784:9 | { ... } | | {EXTERNAL LOCATION} | Box | +| main.rs:2781:14:2784:9 | { ... } | A | {EXTERNAL LOCATION} | Global | +| main.rs:2781:14:2784:9 | { ... } | T | main.rs:2745:5:2747:5 | dyn MyTrait | +| main.rs:2781:14:2784:9 | { ... } | T | main.rs:2749:5:2750:19 | S | +| main.rs:2781:14:2784:9 | { ... } | T.T | main.rs:2749:5:2750:19 | S | +| main.rs:2781:14:2784:9 | { ... } | T.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2781:14:2784:9 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2782:17:2782:17 | x | | main.rs:2745:5:2747:5 | dyn MyTrait | +| main.rs:2782:17:2782:17 | x | | main.rs:2749:5:2750:19 | S | +| main.rs:2782:17:2782:17 | x | T | main.rs:2749:5:2750:19 | S | +| main.rs:2782:17:2782:17 | x | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2782:17:2782:17 | x | dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2782:21:2782:21 | x | | main.rs:2745:5:2747:5 | dyn MyTrait | +| main.rs:2782:21:2782:21 | x | | main.rs:2749:5:2750:19 | S | +| main.rs:2782:21:2782:21 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2782:21:2782:21 | x | dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2782:21:2782:26 | x.m2() | | main.rs:2745:5:2747:5 | dyn MyTrait | +| main.rs:2782:21:2782:26 | x.m2() | | main.rs:2749:5:2750:19 | S | +| main.rs:2782:21:2782:26 | x.m2() | T | main.rs:2749:5:2750:19 | S | +| main.rs:2782:21:2782:26 | x.m2() | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2782:21:2782:26 | x.m2() | dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2783:13:2783:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2783:13:2783:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2783:13:2783:23 | ...::new(...) | T | main.rs:2745:5:2747:5 | dyn MyTrait | +| main.rs:2783:13:2783:23 | ...::new(...) | T | main.rs:2749:5:2750:19 | S | +| main.rs:2783:13:2783:23 | ...::new(...) | T.T | main.rs:2749:5:2750:19 | S | +| main.rs:2783:13:2783:23 | ...::new(...) | T.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2783:13:2783:23 | ...::new(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2783:22:2783:22 | x | | main.rs:2745:5:2747:5 | dyn MyTrait | +| main.rs:2783:22:2783:22 | x | | main.rs:2749:5:2750:19 | S | +| main.rs:2783:22:2783:22 | x | T | main.rs:2749:5:2750:19 | S | +| main.rs:2783:22:2783:22 | x | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2783:22:2783:22 | x | dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2784:16:2786:9 | { ... } | | {EXTERNAL LOCATION} | Box | +| main.rs:2784:16:2786:9 | { ... } | A | {EXTERNAL LOCATION} | Global | +| main.rs:2784:16:2786:9 | { ... } | T | main.rs:2745:5:2747:5 | dyn MyTrait | +| main.rs:2784:16:2786:9 | { ... } | T | main.rs:2749:5:2750:19 | S | +| main.rs:2784:16:2786:9 | { ... } | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2784:16:2786:9 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2785:13:2785:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2785:13:2785:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2785:13:2785:23 | ...::new(...) | T | main.rs:2745:5:2747:5 | dyn MyTrait | +| main.rs:2785:13:2785:23 | ...::new(...) | T | main.rs:2749:5:2750:19 | S | +| main.rs:2785:13:2785:23 | ...::new(...) | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2785:13:2785:23 | ...::new(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2785:22:2785:22 | x | | main.rs:2745:5:2747:5 | dyn MyTrait | +| main.rs:2785:22:2785:22 | x | | main.rs:2749:5:2750:19 | S | +| main.rs:2785:22:2785:22 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2785:22:2785:22 | x | dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2797:5:2797:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:2798:5:2798:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:2798:20:2798:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:2798:41:2798:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:2815:5:2815:15 | ...::f(...) | | {EXTERNAL LOCATION} | trait Future | +| main.rs:2828:5:2828:20 | ...::f(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2828:5:2828:20 | ...::f(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2828:5:2828:20 | ...::f(...) | T | main.rs:2745:5:2747:5 | dyn MyTrait | +| main.rs:2828:5:2828:20 | ...::f(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2828:16:2828:19 | true | | {EXTERNAL LOCATION} | bool | | pattern_matching.rs:13:26:133:1 | { ... } | | {EXTERNAL LOCATION} | Option | | pattern_matching.rs:13:26:133:1 | { ... } | T | file://:0:0:0:0 | () | | pattern_matching.rs:14:9:14:13 | value | | {EXTERNAL LOCATION} | Option | From 9022f996e8cb09f051d80395919eaa59bf0622bc Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Wed, 29 Oct 2025 10:07:59 +0100 Subject: [PATCH 118/126] Rust: Improve handling of occurrences of the `Self` type parameter --- .../lib/codeql/rust/internal/TypeMention.qll | 73 ++++++++++++++++--- .../test/library-tests/type-inference/main.rs | 6 +- .../type-inference/type-inference.expected | 13 ++-- 3 files changed, 70 insertions(+), 22 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/TypeMention.qll b/rust/ql/lib/codeql/rust/internal/TypeMention.qll index d015a0bf656..b7aa7c42de2 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeMention.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeMention.qll @@ -151,25 +151,61 @@ class NonAliasPathTypeMention extends PathTypeMention { result = this.getQualifier().getSegment().getGenericArgList().getTypeArg(i) } - private TypeMention getPositionalTypeArgument(int i) { - result = this.getPositionalTypeArgument0(i) + /** + * Gets the type mention that instantiates the implicit `Self` type parameter + * for this path, if it occurs in the position of a trait bound. + */ + private TypeMention getSelfTypeParameter() { + exists(ImplItemNode impl | this = impl.getTraitPath() and result = impl.(Impl).getSelfTy()) or + exists(Trait subTrait | + this = subTrait.getATypeBound().getTypeRepr().(PathTypeRepr).getPath() and + result.(SelfTypeParameterMention).getTrait() = subTrait + ) + or + exists(TypeParamItemNode tp | this = tp.getABoundPath() and result = tp) + } + + private Type getPositionalTypeArgument(int i, TypePath path) { + result = this.getPositionalTypeArgument0(i).resolveTypeAt(path) + or + result = this.getDefaultPositionalTypeArgument(i, path) + } + + private Type getDefaultPositionalTypeArgument(int i, TypePath path) { // If a type argument is not given in the path, then we use the default for // the type parameter if one exists for the type. not exists(this.getPositionalTypeArgument0(i)) and - result = this.resolveRootType().getTypeParameterDefault(i) and // Defaults only apply to type mentions in type annotations - this = any(PathTypeRepr ptp).getPath().getQualifier*() + this = any(PathTypeRepr ptp).getPath().getQualifier*() and + exists(Type ty, TypePath prefix | + ty = this.resolveRootType().getTypeParameterDefault(i).resolveTypeAt(prefix) and + if not ty = TSelfTypeParameter(resolved) + then result = ty and path = prefix + else + // When a default contains an implicit `Self` type parameter, it should + // be substituted for the type that implements the trait. + exists(TypePath suffix | + path = prefix.append(suffix) and + result = this.getSelfTypeParameter().resolveTypeAt(suffix) + ) + ) + } + + /** + * Gets the type for this path for the type parameter `tp` at `path`, when the + * type parameter does not correspond directly to a type mention. + */ + private Type getTypeForTypeParameterAt(TypeParameter tp, TypePath path) { + exists(int i | + result = this.getPositionalTypeArgument(pragma[only_bind_into](i), path) and + tp = this.resolveRootType().getPositionalTypeParameter(pragma[only_bind_into](i)) + ) } /** Gets the type mention in this path for the type parameter `tp`, if any. */ pragma[nomagic] private TypeMention getTypeMentionForTypeParameter(TypeParameter tp) { - exists(int i | - result = this.getPositionalTypeArgument(pragma[only_bind_into](i)) and - tp = this.resolveRootType().getPositionalTypeParameter(pragma[only_bind_into](i)) - ) - or exists(TypeAlias alias | result = this.getAnAssocTypeArgument(alias) and tp = TAssociatedTypeTypeParameter(alias) @@ -237,9 +273,17 @@ class NonAliasPathTypeMention extends PathTypeMention { typePath.isEmpty() and result = this.resolveRootType() or - exists(TypeParameter tp, TypePath suffix | - result = this.getTypeMentionForTypeParameter(tp).resolveTypeAt(suffix) and - typePath = TypePath::cons(tp, suffix) + exists(TypeParameter tp, TypePath suffix | typePath = TypePath::cons(tp, suffix) | + result = this.getTypeForTypeParameterAt(tp, suffix) + or + result = this.getTypeMentionForTypeParameter(tp).resolveTypeAt(suffix) + ) + or + // When the path refers to a trait, then the implicit `Self` type parameter + // should be instantiated from the context. + exists(TypePath suffix | + result = this.getSelfTypeParameter().resolveTypeAt(suffix) and + typePath = TypePath::cons(TSelfTypeParameter(resolved), suffix) ) } } @@ -296,6 +340,11 @@ class TraitMention extends TypeMention instanceof TraitItemNode { typePath.isEmpty() and result = TTrait(this) or + // The implicit `Self` type parameter occurs at the `Self` type parameter + // position. + typePath = TypePath::singleton(TSelfTypeParameter(this)) and + result = TSelfTypeParameter(this) + or exists(TypeAlias alias | alias = super.getAnAssocItem() and typePath = TypePath::singleton(result) and diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index 7dec2061a32..c124f8d219c 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -666,7 +666,7 @@ mod trait_default_self_type_parameter { // The trait bound on `T` uses the default for `A` which contains `Self` fn tp_uses_default(thing: S) -> i64 { - let _ms = thing.get_a(); // $ target=TraitWithSelfTp::get_a MISSING: type=_ms:T.S + let _ms = thing.get_a(); // $ target=TraitWithSelfTp::get_a type=_ms:T.S 0 } @@ -675,7 +675,7 @@ mod trait_default_self_type_parameter { fn get_a_through_tp(thing: &S) { // `thing` is a `TraitWithSelfTp` through the trait hierarchy - let _ms = get_a(thing); // $ target=get_a MISSING: type=_ms:T.S + let _ms = get_a(thing); // $ target=get_a type=_ms:T.S } struct MyStruct { @@ -693,7 +693,7 @@ mod trait_default_self_type_parameter { pub fn test() { let s = MyStruct { value: 0 }; - let _ms = get_a(&s); // $ target=get_a MISSING: type=_ms:T.MyStruct + let _ms = get_a(&s); // $ target=get_a type=_ms:T.MyStruct } } 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 8e8e76ebde4..829f15bc01a 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -2013,18 +2013,18 @@ inferType | main.rs:668:44:668:48 | thing | | main.rs:668:24:668:41 | S | | main.rs:668:61:671:5 | { ... } | | {EXTERNAL LOCATION} | i64 | | main.rs:669:13:669:15 | _ms | | {EXTERNAL LOCATION} | Option | -| main.rs:669:13:669:15 | _ms | T | main.rs:656:5:661:5 | Self [trait TraitWithSelfTp] | +| main.rs:669:13:669:15 | _ms | T | main.rs:668:24:668:41 | S | | main.rs:669:19:669:23 | thing | | main.rs:668:24:668:41 | S | | main.rs:669:19:669:31 | thing.get_a() | | {EXTERNAL LOCATION} | Option | -| main.rs:669:19:669:31 | thing.get_a() | T | main.rs:656:5:661:5 | Self [trait TraitWithSelfTp] | +| main.rs:669:19:669:31 | thing.get_a() | T | main.rs:668:24:668:41 | S | | main.rs:670:9:670:9 | 0 | | {EXTERNAL LOCATION} | i32 | | main.rs:670:9:670:9 | 0 | | {EXTERNAL LOCATION} | i64 | | main.rs:676:55:676:59 | thing | | file://:0:0:0:0 | & | | main.rs:676:55:676:59 | thing | &T | main.rs:676:25:676:52 | S | | main.rs:678:13:678:15 | _ms | | {EXTERNAL LOCATION} | Option | -| main.rs:678:13:678:15 | _ms | T | main.rs:656:5:661:5 | Self [trait TraitWithSelfTp] | +| main.rs:678:13:678:15 | _ms | T | main.rs:676:25:676:52 | S | | main.rs:678:19:678:30 | get_a(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:678:19:678:30 | get_a(...) | T | main.rs:656:5:661:5 | Self [trait TraitWithSelfTp] | +| main.rs:678:19:678:30 | get_a(...) | T | main.rs:676:25:676:52 | S | | main.rs:678:25:678:29 | thing | | file://:0:0:0:0 | & | | main.rs:678:25:678:29 | thing | &T | main.rs:676:25:676:52 | S | | main.rs:687:18:687:22 | SelfParam | | file://:0:0:0:0 | & | @@ -2041,9 +2041,9 @@ inferType | main.rs:695:17:695:37 | MyStruct {...} | | main.rs:681:5:683:5 | MyStruct | | main.rs:695:35:695:35 | 0 | | {EXTERNAL LOCATION} | i32 | | main.rs:696:13:696:15 | _ms | | {EXTERNAL LOCATION} | Option | -| main.rs:696:13:696:15 | _ms | T | main.rs:656:5:661:5 | Self [trait TraitWithSelfTp] | +| main.rs:696:13:696:15 | _ms | T | main.rs:681:5:683:5 | MyStruct | | main.rs:696:19:696:27 | get_a(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:696:19:696:27 | get_a(...) | T | main.rs:656:5:661:5 | Self [trait TraitWithSelfTp] | +| main.rs:696:19:696:27 | get_a(...) | T | main.rs:681:5:683:5 | MyStruct | | main.rs:696:25:696:26 | &s | | file://:0:0:0:0 | & | | main.rs:696:25:696:26 | &s | &T | main.rs:681:5:683:5 | MyStruct | | main.rs:696:26:696:26 | s | | main.rs:681:5:683:5 | MyStruct | @@ -4776,7 +4776,6 @@ inferType | main.rs:2312:16:2312:21 | self.0 | | main.rs:2307:10:2307:17 | T | | main.rs:2312:31:2312:35 | other | | main.rs:2305:5:2305:19 | S | | main.rs:2312:31:2312:35 | other | T | main.rs:2307:10:2307:17 | T | -| main.rs:2312:31:2312:37 | other.0 | | main.rs:2267:5:2272:5 | Self [trait MyAdd] | | main.rs:2312:31:2312:37 | other.0 | | main.rs:2307:10:2307:17 | T | | main.rs:2320:19:2320:22 | SelfParam | | main.rs:2305:5:2305:19 | S | | main.rs:2320:19:2320:22 | SelfParam | T | main.rs:2316:10:2316:17 | T | From 9f498df9fa78d298d1dd8bf4d74290857726ec88 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Wed, 29 Oct 2025 10:42:59 +0100 Subject: [PATCH 119/126] Swift: Do not include the embedded resources --- swift/third_party/load.bzl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/swift/third_party/load.bzl b/swift/third_party/load.bzl index d19345a1880..d13c127102d 100644 --- a/swift/third_party/load.bzl +++ b/swift/third_party/load.bzl @@ -5,6 +5,8 @@ load("//misc/bazel:lfs.bzl", "lfs_archive", "lfs_files") _override = { # these are used to test new artifacts. Must be empty before merging to main + "resource-dir-macOS-swift-6.2-RELEASE-128.zip": "64ac7f77b2d8b9112e0126ff69afb1a033ae940ff18bb8732be982a723610f2e", + "resource-dir-Linux-swift-6.2-RELEASE-128.zip": "44888a0c944227bfcfa47f0e052f59c93b947e56ab070da877b0b0b4d79cdecb", } _staging_url = "https://github.com/dsp-testing/codeql-swift-artifacts/releases/download/staging-{}/{}" From 2505c8f3e39dc75f417e74dedb151d6431c80c07 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Wed, 29 Oct 2025 11:06:50 +0100 Subject: [PATCH 120/126] Swift: Improve docs --- docs/codeql/codeql-overview/system-requirements.rst | 4 ++++ docs/codeql/reusables/supported-versions-compilers.rst | 7 ++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/docs/codeql/codeql-overview/system-requirements.rst b/docs/codeql/codeql-overview/system-requirements.rst index 100b75445b2..6ade30b4901 100644 --- a/docs/codeql/codeql-overview/system-requirements.rst +++ b/docs/codeql/codeql-overview/system-requirements.rst @@ -46,6 +46,10 @@ For Rust extraction: - ``rustup`` and ``cargo`` must be installed. +For Swift extraction: + +- Only macOS is supported. + For Java extraction: - There must be a ``java`` or ``java.exe`` executable available on the ``PATH``, and the ``JAVA_HOME`` environment variable must point to the corresponding JDK's home directory. diff --git a/docs/codeql/reusables/supported-versions-compilers.rst b/docs/codeql/reusables/supported-versions-compilers.rst index 0c729748dd4..fb204bc4685 100644 --- a/docs/codeql/reusables/supported-versions-compilers.rst +++ b/docs/codeql/reusables/supported-versions-compilers.rst @@ -26,8 +26,8 @@ Python [9]_,"2.7, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13",Not applicable,``.py`` Ruby [10]_,"up to 3.3",Not applicable,"``.rb``, ``.erb``, ``.gemspec``, ``Gemfile``" Rust [11]_,"Rust editions 2021 and 2024","Rust compiler","``.rs``, ``Cargo.toml``" - Swift [12]_,"Swift 5.4-6.1","Swift compiler","``.swift``" - TypeScript [13]_,"2.6-5.9",Standard TypeScript compiler,"``.ts``, ``.tsx``, ``.mts``, ``.cts``" + Swift [12]_ [13]_,"Swift 5.4-6.1","Swift compiler","``.swift``" + TypeScript [14]_,"2.6-5.9",Standard TypeScript compiler,"``.ts``, ``.tsx``, ``.mts``, ``.cts``" .. container:: footnote-group @@ -43,4 +43,5 @@ .. [10] Requires glibc 2.17. .. [11] Requires ``rustup`` and ``cargo`` to be installed. Features from nightly toolchains are not supported. .. [12] Support for the analysis of Swift requires macOS. - .. [13] TypeScript analysis is performed by running the JavaScript extractor with TypeScript enabled. This is the default. + .. [13] Embedded Swift is not supported. + .. [14] TypeScript analysis is performed by running the JavaScript extractor with TypeScript enabled. This is the default. From 6906c88781dc2ad268345359cebdb536c9f28652 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Wed, 29 Oct 2025 11:08:16 +0100 Subject: [PATCH 121/126] Swift: Update change note --- swift/ql/lib/change-notes/2025-10-22-swift-6.2.md | 1 + 1 file changed, 1 insertion(+) diff --git a/swift/ql/lib/change-notes/2025-10-22-swift-6.2.md b/swift/ql/lib/change-notes/2025-10-22-swift-6.2.md index 145037125dd..97f3e45d6f8 100644 --- a/swift/ql/lib/change-notes/2025-10-22-swift-6.2.md +++ b/swift/ql/lib/change-notes/2025-10-22-swift-6.2.md @@ -2,3 +2,4 @@ category: majorAnalysis --- * Upgraded to allow analysis of Swift 6.2. +* Support for experimental Embedded Swift has been dropped. From ce8cffc331b128d5a11e93bbd44132e5ad08e2d9 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Wed, 29 Oct 2025 11:18:02 +0100 Subject: [PATCH 122/126] Rust: Address comments --- .../lib/codeql/rust/internal/TypeMention.qll | 26 +- .../PathResolutionConsistency.expected | 4 +- .../test/library-tests/type-inference/main.rs | 1 - .../type-inference/type-inference.expected | 7374 ++++++++--------- 4 files changed, 3704 insertions(+), 3701 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/TypeMention.qll b/rust/ql/lib/codeql/rust/internal/TypeMention.qll index b7aa7c42de2..3a91a55e3fb 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeMention.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeMention.qll @@ -143,7 +143,11 @@ class NonAliasPathTypeMention extends PathTypeMention { ) } - private TypeMention getPositionalTypeArgument0(int i) { + /** + * Gets the positional type argument at index `i` that occurs in this path, if + * any. + */ + private TypeMention getPathPositionalTypeArgument(int i) { result = this.getSegment().getGenericArgList().getTypeArg(i) or // `Option::::Some` is valid in addition to `Option::Some::` @@ -155,7 +159,7 @@ class NonAliasPathTypeMention extends PathTypeMention { * Gets the type mention that instantiates the implicit `Self` type parameter * for this path, if it occurs in the position of a trait bound. */ - private TypeMention getSelfTypeParameter() { + private TypeMention getSelfTraitBoundArg() { exists(ImplItemNode impl | this = impl.getTraitPath() and result = impl.(Impl).getSelfTy()) or exists(Trait subTrait | @@ -166,16 +170,10 @@ class NonAliasPathTypeMention extends PathTypeMention { exists(TypeParamItemNode tp | this = tp.getABoundPath() and result = tp) } - private Type getPositionalTypeArgument(int i, TypePath path) { - result = this.getPositionalTypeArgument0(i).resolveTypeAt(path) - or - result = this.getDefaultPositionalTypeArgument(i, path) - } - private Type getDefaultPositionalTypeArgument(int i, TypePath path) { // If a type argument is not given in the path, then we use the default for // the type parameter if one exists for the type. - not exists(this.getPositionalTypeArgument0(i)) and + not exists(this.getPathPositionalTypeArgument(i)) and // Defaults only apply to type mentions in type annotations this = any(PathTypeRepr ptp).getPath().getQualifier*() and exists(Type ty, TypePath prefix | @@ -187,11 +185,17 @@ class NonAliasPathTypeMention extends PathTypeMention { // be substituted for the type that implements the trait. exists(TypePath suffix | path = prefix.append(suffix) and - result = this.getSelfTypeParameter().resolveTypeAt(suffix) + result = this.getSelfTraitBoundArg().resolveTypeAt(suffix) ) ) } + private Type getPositionalTypeArgument(int i, TypePath path) { + result = this.getPathPositionalTypeArgument(i).resolveTypeAt(path) + or + result = this.getDefaultPositionalTypeArgument(i, path) + } + /** * Gets the type for this path for the type parameter `tp` at `path`, when the * type parameter does not correspond directly to a type mention. @@ -282,7 +286,7 @@ class NonAliasPathTypeMention extends PathTypeMention { // When the path refers to a trait, then the implicit `Self` type parameter // should be instantiated from the context. exists(TypePath suffix | - result = this.getSelfTypeParameter().resolveTypeAt(suffix) and + result = this.getSelfTraitBoundArg().resolveTypeAt(suffix) and typePath = TypePath::cons(TSelfTypeParameter(resolved), suffix) ) } 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 28098e14514..78f5d853e13 100644 --- a/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected @@ -5,9 +5,9 @@ multipleCallTargets | dereference.rs:184:17:184:30 | ... .foo() | | dereference.rs:186:17:186:25 | S.bar(...) | | dereference.rs:187:17:187:29 | S.bar(...) | +| main.rs:2481:13:2481:31 | ...::from(...) | | main.rs:2482:13:2482:31 | ...::from(...) | | main.rs:2483:13:2483:31 | ...::from(...) | -| main.rs:2484:13:2484:31 | ...::from(...) | +| main.rs:2489:13:2489:31 | ...::from(...) | | main.rs:2490:13:2490:31 | ...::from(...) | | main.rs:2491:13:2491:31 | ...::from(...) | -| main.rs:2492:13:2492:31 | ...::from(...) | diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index c124f8d219c..ecf74fbd7bb 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -654,7 +654,6 @@ mod type_parameter_bounds { mod trait_default_self_type_parameter { // A trait with a type parameter that defaults to `Self`. - // trait TraitWithSelfTp { trait TraitWithSelfTp> { // TraitWithSelfTp::get_a fn get_a(&self) -> A; 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 829f15bc01a..05ee936cf25 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -2002,3246 +2002,3265 @@ inferType | main.rs:651:18:651:37 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | | main.rs:651:32:651:33 | s1 | | {EXTERNAL LOCATION} | u8 | | main.rs:651:36:651:37 | s2 | | {EXTERNAL LOCATION} | i64 | -| main.rs:660:18:660:22 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:660:18:660:22 | SelfParam | &T | main.rs:656:5:661:5 | Self [trait TraitWithSelfTp] | -| main.rs:663:40:663:44 | thing | | file://:0:0:0:0 | & | -| main.rs:663:40:663:44 | thing | &T | main.rs:663:17:663:37 | T | -| main.rs:663:56:665:5 | { ... } | | main.rs:663:14:663:14 | A | -| main.rs:664:9:664:13 | thing | | file://:0:0:0:0 | & | -| main.rs:664:9:664:13 | thing | &T | main.rs:663:17:663:37 | T | -| main.rs:664:9:664:21 | thing.get_a() | | main.rs:663:14:663:14 | A | -| main.rs:668:44:668:48 | thing | | main.rs:668:24:668:41 | S | -| main.rs:668:61:671:5 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:669:13:669:15 | _ms | | {EXTERNAL LOCATION} | Option | -| main.rs:669:13:669:15 | _ms | T | main.rs:668:24:668:41 | S | -| main.rs:669:19:669:23 | thing | | main.rs:668:24:668:41 | S | -| main.rs:669:19:669:31 | thing.get_a() | | {EXTERNAL LOCATION} | Option | -| main.rs:669:19:669:31 | thing.get_a() | T | main.rs:668:24:668:41 | S | -| main.rs:670:9:670:9 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:670:9:670:9 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:676:55:676:59 | thing | | file://:0:0:0:0 | & | -| main.rs:676:55:676:59 | thing | &T | main.rs:676:25:676:52 | S | -| main.rs:678:13:678:15 | _ms | | {EXTERNAL LOCATION} | Option | -| main.rs:678:13:678:15 | _ms | T | main.rs:676:25:676:52 | S | -| main.rs:678:19:678:30 | get_a(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:678:19:678:30 | get_a(...) | T | main.rs:676:25:676:52 | S | -| main.rs:678:25:678:29 | thing | | file://:0:0:0:0 | & | -| main.rs:678:25:678:29 | thing | &T | main.rs:676:25:676:52 | S | -| main.rs:687:18:687:22 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:687:18:687:22 | SelfParam | &T | main.rs:681:5:683:5 | MyStruct | -| main.rs:687:41:689:9 | { ... } | | {EXTERNAL LOCATION} | Option | -| main.rs:687:41:689:9 | { ... } | T | main.rs:681:5:683:5 | MyStruct | -| main.rs:688:13:688:48 | Some(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:688:13:688:48 | Some(...) | T | main.rs:681:5:683:5 | MyStruct | -| main.rs:688:18:688:47 | MyStruct {...} | | main.rs:681:5:683:5 | MyStruct | -| main.rs:688:36:688:39 | self | | file://:0:0:0:0 | & | -| main.rs:688:36:688:39 | self | &T | main.rs:681:5:683:5 | MyStruct | -| main.rs:688:36:688:45 | self.value | | {EXTERNAL LOCATION} | i32 | -| main.rs:695:13:695:13 | s | | main.rs:681:5:683:5 | MyStruct | -| main.rs:695:17:695:37 | MyStruct {...} | | main.rs:681:5:683:5 | MyStruct | -| main.rs:695:35:695:35 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:696:13:696:15 | _ms | | {EXTERNAL LOCATION} | Option | -| main.rs:696:13:696:15 | _ms | T | main.rs:681:5:683:5 | MyStruct | -| main.rs:696:19:696:27 | get_a(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:696:19:696:27 | get_a(...) | T | main.rs:681:5:683:5 | MyStruct | -| main.rs:696:25:696:26 | &s | | file://:0:0:0:0 | & | -| main.rs:696:25:696:26 | &s | &T | main.rs:681:5:683:5 | MyStruct | -| main.rs:696:26:696:26 | s | | main.rs:681:5:683:5 | MyStruct | -| main.rs:712:15:712:18 | SelfParam | | main.rs:711:5:722:5 | Self [trait MyTrait] | -| main.rs:714:15:714:18 | SelfParam | | main.rs:711:5:722:5 | Self [trait MyTrait] | -| main.rs:717:9:719:9 | { ... } | | main.rs:711:19:711:19 | A | -| main.rs:718:13:718:16 | self | | main.rs:711:5:722:5 | Self [trait MyTrait] | -| main.rs:718:13:718:21 | self.m1() | | main.rs:711:19:711:19 | A | -| main.rs:721:18:721:18 | x | | main.rs:711:5:722:5 | Self [trait MyTrait] | -| main.rs:726:50:726:50 | x | | main.rs:726:26:726:47 | T2 | -| main.rs:726:63:729:5 | { ... } | | main.rs:726:22:726:23 | T1 | -| main.rs:727:9:727:9 | x | | main.rs:726:26:726:47 | T2 | -| main.rs:727:9:727:14 | x.m1() | | main.rs:726:22:726:23 | T1 | -| main.rs:728:9:728:9 | x | | main.rs:726:26:726:47 | T2 | -| main.rs:728:9:728:14 | x.m1() | | main.rs:726:22:726:23 | T1 | -| main.rs:730:52:730:52 | x | | main.rs:730:28:730:49 | T2 | -| main.rs:730:65:734:5 | { ... } | | main.rs:730:24:730:25 | T1 | -| main.rs:731:13:731:13 | y | | main.rs:730:24:730:25 | T1 | -| main.rs:731:17:731:25 | ...::m1(...) | | main.rs:730:24:730:25 | T1 | -| main.rs:731:24:731:24 | x | | main.rs:730:28:730:49 | T2 | -| main.rs:732:9:732:9 | y | | main.rs:730:24:730:25 | T1 | -| main.rs:733:9:733:17 | ...::m1(...) | | main.rs:730:24:730:25 | T1 | -| main.rs:733:16:733:16 | x | | main.rs:730:28:730:49 | T2 | -| main.rs:735:52:735:52 | x | | main.rs:735:28:735:49 | T2 | -| main.rs:735:65:739:5 | { ... } | | main.rs:735:24:735:25 | T1 | -| main.rs:736:13:736:13 | y | | main.rs:735:24:735:25 | T1 | -| main.rs:736:17:736:30 | ...::m1(...) | | main.rs:735:24:735:25 | T1 | -| main.rs:736:29:736:29 | x | | main.rs:735:28:735:49 | T2 | -| main.rs:737:9:737:9 | y | | main.rs:735:24:735:25 | T1 | -| main.rs:738:9:738:22 | ...::m1(...) | | main.rs:735:24:735:25 | T1 | -| main.rs:738:21:738:21 | x | | main.rs:735:28:735:49 | T2 | -| main.rs:740:55:740:55 | x | | main.rs:740:31:740:52 | T2 | -| main.rs:740:68:744:5 | { ... } | | main.rs:740:27:740:28 | T1 | -| main.rs:741:13:741:13 | y | | main.rs:740:27:740:28 | T1 | -| main.rs:741:17:741:28 | ...::assoc(...) | | main.rs:740:27:740:28 | T1 | -| main.rs:741:27:741:27 | x | | main.rs:740:31:740:52 | T2 | -| main.rs:742:9:742:9 | y | | main.rs:740:27:740:28 | T1 | -| main.rs:743:9:743:20 | ...::assoc(...) | | main.rs:740:27:740:28 | T1 | -| main.rs:743:19:743:19 | x | | main.rs:740:31:740:52 | T2 | -| main.rs:745:55:745:55 | x | | main.rs:745:31:745:52 | T2 | -| main.rs:745:68:749:5 | { ... } | | main.rs:745:27:745:28 | T1 | -| main.rs:746:13:746:13 | y | | main.rs:745:27:745:28 | T1 | -| main.rs:746:17:746:33 | ...::assoc(...) | | main.rs:745:27:745:28 | T1 | -| main.rs:746:32:746:32 | x | | main.rs:745:31:745:52 | T2 | -| main.rs:747:9:747:9 | y | | main.rs:745:27:745:28 | T1 | -| main.rs:748:9:748:25 | ...::assoc(...) | | main.rs:745:27:745:28 | T1 | -| main.rs:748:24:748:24 | x | | main.rs:745:31:745:52 | T2 | -| main.rs:753:49:753:49 | x | | main.rs:701:5:704:5 | MyThing | -| main.rs:753:49:753:49 | x | T | main.rs:753:32:753:46 | T2 | -| main.rs:753:71:755:5 | { ... } | | main.rs:753:28:753:29 | T1 | -| main.rs:754:9:754:9 | x | | main.rs:701:5:704:5 | MyThing | -| main.rs:754:9:754:9 | x | T | main.rs:753:32:753:46 | T2 | -| main.rs:754:9:754:11 | x.a | | main.rs:753:32:753:46 | T2 | -| main.rs:754:9:754:16 | ... .m1() | | main.rs:753:28:753:29 | T1 | -| main.rs:756:51:756:51 | x | | main.rs:701:5:704:5 | MyThing | -| main.rs:756:51:756:51 | x | T | main.rs:756:34:756:48 | T2 | -| main.rs:756:73:758:5 | { ... } | | main.rs:756:30:756:31 | T1 | -| main.rs:757:9:757:19 | ...::m1(...) | | main.rs:756:30:756:31 | T1 | -| main.rs:757:16:757:16 | x | | main.rs:701:5:704:5 | MyThing | -| main.rs:757:16:757:16 | x | T | main.rs:756:34:756:48 | T2 | -| main.rs:757:16:757:18 | x.a | | main.rs:756:34:756:48 | T2 | -| main.rs:759:51:759:51 | x | | main.rs:701:5:704:5 | MyThing | -| main.rs:759:51:759:51 | x | T | main.rs:759:34:759:48 | T2 | -| main.rs:759:73:761:5 | { ... } | | main.rs:759:30:759:31 | T1 | -| main.rs:760:9:760:24 | ...::m1(...) | | main.rs:759:30:759:31 | T1 | -| main.rs:760:21:760:21 | x | | main.rs:701:5:704:5 | MyThing | -| main.rs:760:21:760:21 | x | T | main.rs:759:34:759:48 | T2 | -| main.rs:760:21:760:23 | x.a | | main.rs:759:34:759:48 | T2 | -| main.rs:764:15:764:18 | SelfParam | | main.rs:701:5:704:5 | MyThing | -| main.rs:764:15:764:18 | SelfParam | T | main.rs:763:10:763:10 | T | -| main.rs:764:26:766:9 | { ... } | | main.rs:763:10:763:10 | T | -| main.rs:765:13:765:16 | self | | main.rs:701:5:704:5 | MyThing | -| main.rs:765:13:765:16 | self | T | main.rs:763:10:763:10 | T | -| main.rs:765:13:765:18 | self.a | | main.rs:763:10:763:10 | T | -| main.rs:768:18:768:18 | x | | main.rs:701:5:704:5 | MyThing | -| main.rs:768:18:768:18 | x | T | main.rs:763:10:763:10 | T | -| main.rs:768:32:770:9 | { ... } | | main.rs:763:10:763:10 | T | -| main.rs:769:13:769:13 | x | | main.rs:701:5:704:5 | MyThing | -| main.rs:769:13:769:13 | x | T | main.rs:763:10:763:10 | T | -| main.rs:769:13:769:15 | x.a | | main.rs:763:10:763:10 | T | -| main.rs:774:13:774:13 | x | | main.rs:701:5:704:5 | MyThing | -| main.rs:774:13:774:13 | x | T | main.rs:706:5:707:14 | S1 | -| main.rs:774:17:774:33 | MyThing {...} | | main.rs:701:5:704:5 | MyThing | -| main.rs:774:17:774:33 | MyThing {...} | T | main.rs:706:5:707:14 | S1 | -| main.rs:774:30:774:31 | S1 | | main.rs:706:5:707:14 | S1 | -| main.rs:775:13:775:13 | y | | main.rs:701:5:704:5 | MyThing | -| main.rs:775:13:775:13 | y | T | main.rs:708:5:709:14 | S2 | -| main.rs:775:17:775:33 | MyThing {...} | | main.rs:701:5:704:5 | MyThing | -| main.rs:775:17:775:33 | MyThing {...} | T | main.rs:708:5:709:14 | S2 | -| main.rs:775:30:775:31 | S2 | | main.rs:708:5:709:14 | S2 | +| main.rs:659:18:659:22 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:659:18:659:22 | SelfParam | &T | main.rs:656:5:660:5 | Self [trait TraitWithSelfTp] | +| main.rs:662:40:662:44 | thing | | file://:0:0:0:0 | & | +| main.rs:662:40:662:44 | thing | &T | main.rs:662:17:662:37 | T | +| main.rs:662:56:664:5 | { ... } | | main.rs:662:14:662:14 | A | +| main.rs:663:9:663:13 | thing | | file://:0:0:0:0 | & | +| main.rs:663:9:663:13 | thing | &T | main.rs:662:17:662:37 | T | +| main.rs:663:9:663:21 | thing.get_a() | | main.rs:662:14:662:14 | A | +| main.rs:667:44:667:48 | thing | | main.rs:667:24:667:41 | S | +| main.rs:667:61:670:5 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:668:13:668:15 | _ms | | {EXTERNAL LOCATION} | Option | +| main.rs:668:13:668:15 | _ms | T | main.rs:667:24:667:41 | S | +| main.rs:668:19:668:23 | thing | | main.rs:667:24:667:41 | S | +| main.rs:668:19:668:31 | thing.get_a() | | {EXTERNAL LOCATION} | Option | +| main.rs:668:19:668:31 | thing.get_a() | T | main.rs:667:24:667:41 | S | +| main.rs:669:9:669:9 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:669:9:669:9 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:675:55:675:59 | thing | | file://:0:0:0:0 | & | +| main.rs:675:55:675:59 | thing | &T | main.rs:675:25:675:52 | S | +| main.rs:677:13:677:15 | _ms | | {EXTERNAL LOCATION} | Option | +| main.rs:677:13:677:15 | _ms | T | main.rs:675:25:675:52 | S | +| main.rs:677:19:677:30 | get_a(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:677:19:677:30 | get_a(...) | T | main.rs:675:25:675:52 | S | +| main.rs:677:25:677:29 | thing | | file://:0:0:0:0 | & | +| main.rs:677:25:677:29 | thing | &T | main.rs:675:25:675:52 | S | +| main.rs:686:18:686:22 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:686:18:686:22 | SelfParam | &T | main.rs:680:5:682:5 | MyStruct | +| main.rs:686:41:688:9 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:686:41:688:9 | { ... } | T | main.rs:680:5:682:5 | MyStruct | +| main.rs:687:13:687:48 | Some(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:687:13:687:48 | Some(...) | T | main.rs:680:5:682:5 | MyStruct | +| main.rs:687:18:687:47 | MyStruct {...} | | main.rs:680:5:682:5 | MyStruct | +| main.rs:687:36:687:39 | self | | file://:0:0:0:0 | & | +| main.rs:687:36:687:39 | self | &T | main.rs:680:5:682:5 | MyStruct | +| main.rs:687:36:687:45 | self.value | | {EXTERNAL LOCATION} | i32 | +| main.rs:694:13:694:13 | s | | main.rs:680:5:682:5 | MyStruct | +| main.rs:694:17:694:37 | MyStruct {...} | | main.rs:680:5:682:5 | MyStruct | +| main.rs:694:35:694:35 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:695:13:695:15 | _ms | | {EXTERNAL LOCATION} | Option | +| main.rs:695:13:695:15 | _ms | T | main.rs:680:5:682:5 | MyStruct | +| main.rs:695:19:695:27 | get_a(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:695:19:695:27 | get_a(...) | T | main.rs:680:5:682:5 | MyStruct | +| main.rs:695:25:695:26 | &s | | file://:0:0:0:0 | & | +| main.rs:695:25:695:26 | &s | &T | main.rs:680:5:682:5 | MyStruct | +| main.rs:695:26:695:26 | s | | main.rs:680:5:682:5 | MyStruct | +| main.rs:711:15:711:18 | SelfParam | | main.rs:710:5:721:5 | Self [trait MyTrait] | +| main.rs:713:15:713:18 | SelfParam | | main.rs:710:5:721:5 | Self [trait MyTrait] | +| main.rs:716:9:718:9 | { ... } | | main.rs:710:19:710:19 | A | +| main.rs:717:13:717:16 | self | | main.rs:710:5:721:5 | Self [trait MyTrait] | +| main.rs:717:13:717:21 | self.m1() | | main.rs:710:19:710:19 | A | +| main.rs:720:18:720:18 | x | | main.rs:710:5:721:5 | Self [trait MyTrait] | +| main.rs:725:50:725:50 | x | | main.rs:725:26:725:47 | T2 | +| main.rs:725:63:728:5 | { ... } | | main.rs:725:22:725:23 | T1 | +| main.rs:726:9:726:9 | x | | main.rs:725:26:725:47 | T2 | +| main.rs:726:9:726:14 | x.m1() | | main.rs:725:22:725:23 | T1 | +| main.rs:727:9:727:9 | x | | main.rs:725:26:725:47 | T2 | +| main.rs:727:9:727:14 | x.m1() | | main.rs:725:22:725:23 | T1 | +| main.rs:729:52:729:52 | x | | main.rs:729:28:729:49 | T2 | +| main.rs:729:65:733:5 | { ... } | | main.rs:729:24:729:25 | T1 | +| main.rs:730:13:730:13 | y | | main.rs:729:24:729:25 | T1 | +| main.rs:730:17:730:25 | ...::m1(...) | | main.rs:729:24:729:25 | T1 | +| main.rs:730:24:730:24 | x | | main.rs:729:28:729:49 | T2 | +| main.rs:731:9:731:9 | y | | main.rs:729:24:729:25 | T1 | +| main.rs:732:9:732:17 | ...::m1(...) | | main.rs:729:24:729:25 | T1 | +| main.rs:732:16:732:16 | x | | main.rs:729:28:729:49 | T2 | +| main.rs:734:52:734:52 | x | | main.rs:734:28:734:49 | T2 | +| main.rs:734:65:738:5 | { ... } | | main.rs:734:24:734:25 | T1 | +| main.rs:735:13:735:13 | y | | main.rs:734:24:734:25 | T1 | +| main.rs:735:17:735:30 | ...::m1(...) | | main.rs:734:24:734:25 | T1 | +| main.rs:735:29:735:29 | x | | main.rs:734:28:734:49 | T2 | +| main.rs:736:9:736:9 | y | | main.rs:734:24:734:25 | T1 | +| main.rs:737:9:737:22 | ...::m1(...) | | main.rs:734:24:734:25 | T1 | +| main.rs:737:21:737:21 | x | | main.rs:734:28:734:49 | T2 | +| main.rs:739:55:739:55 | x | | main.rs:739:31:739:52 | T2 | +| main.rs:739:68:743:5 | { ... } | | main.rs:739:27:739:28 | T1 | +| main.rs:740:13:740:13 | y | | main.rs:739:27:739:28 | T1 | +| main.rs:740:17:740:28 | ...::assoc(...) | | main.rs:739:27:739:28 | T1 | +| main.rs:740:27:740:27 | x | | main.rs:739:31:739:52 | T2 | +| main.rs:741:9:741:9 | y | | main.rs:739:27:739:28 | T1 | +| main.rs:742:9:742:20 | ...::assoc(...) | | main.rs:739:27:739:28 | T1 | +| main.rs:742:19:742:19 | x | | main.rs:739:31:739:52 | T2 | +| main.rs:744:55:744:55 | x | | main.rs:744:31:744:52 | T2 | +| main.rs:744:68:748:5 | { ... } | | main.rs:744:27:744:28 | T1 | +| main.rs:745:13:745:13 | y | | main.rs:744:27:744:28 | T1 | +| main.rs:745:17:745:33 | ...::assoc(...) | | main.rs:744:27:744:28 | T1 | +| main.rs:745:32:745:32 | x | | main.rs:744:31:744:52 | T2 | +| main.rs:746:9:746:9 | y | | main.rs:744:27:744:28 | T1 | +| main.rs:747:9:747:25 | ...::assoc(...) | | main.rs:744:27:744:28 | T1 | +| main.rs:747:24:747:24 | x | | main.rs:744:31:744:52 | T2 | +| main.rs:752:49:752:49 | x | | main.rs:700:5:703:5 | MyThing | +| main.rs:752:49:752:49 | x | T | main.rs:752:32:752:46 | T2 | +| main.rs:752:71:754:5 | { ... } | | main.rs:752:28:752:29 | T1 | +| main.rs:753:9:753:9 | x | | main.rs:700:5:703:5 | MyThing | +| main.rs:753:9:753:9 | x | T | main.rs:752:32:752:46 | T2 | +| main.rs:753:9:753:11 | x.a | | main.rs:752:32:752:46 | T2 | +| main.rs:753:9:753:16 | ... .m1() | | main.rs:752:28:752:29 | T1 | +| main.rs:755:51:755:51 | x | | main.rs:700:5:703:5 | MyThing | +| main.rs:755:51:755:51 | x | T | main.rs:755:34:755:48 | T2 | +| main.rs:755:73:757:5 | { ... } | | main.rs:755:30:755:31 | T1 | +| main.rs:756:9:756:19 | ...::m1(...) | | main.rs:755:30:755:31 | T1 | +| main.rs:756:16:756:16 | x | | main.rs:700:5:703:5 | MyThing | +| main.rs:756:16:756:16 | x | T | main.rs:755:34:755:48 | T2 | +| main.rs:756:16:756:18 | x.a | | main.rs:755:34:755:48 | T2 | +| main.rs:758:51:758:51 | x | | main.rs:700:5:703:5 | MyThing | +| main.rs:758:51:758:51 | x | T | main.rs:758:34:758:48 | T2 | +| main.rs:758:73:760:5 | { ... } | | main.rs:758:30:758:31 | T1 | +| main.rs:759:9:759:24 | ...::m1(...) | | main.rs:758:30:758:31 | T1 | +| main.rs:759:21:759:21 | x | | main.rs:700:5:703:5 | MyThing | +| main.rs:759:21:759:21 | x | T | main.rs:758:34:758:48 | T2 | +| main.rs:759:21:759:23 | x.a | | main.rs:758:34:758:48 | T2 | +| main.rs:763:15:763:18 | SelfParam | | main.rs:700:5:703:5 | MyThing | +| main.rs:763:15:763:18 | SelfParam | T | main.rs:762:10:762:10 | T | +| main.rs:763:26:765:9 | { ... } | | main.rs:762:10:762:10 | T | +| main.rs:764:13:764:16 | self | | main.rs:700:5:703:5 | MyThing | +| main.rs:764:13:764:16 | self | T | main.rs:762:10:762:10 | T | +| main.rs:764:13:764:18 | self.a | | main.rs:762:10:762:10 | T | +| main.rs:767:18:767:18 | x | | main.rs:700:5:703:5 | MyThing | +| main.rs:767:18:767:18 | x | T | main.rs:762:10:762:10 | T | +| main.rs:767:32:769:9 | { ... } | | main.rs:762:10:762:10 | T | +| main.rs:768:13:768:13 | x | | main.rs:700:5:703:5 | MyThing | +| main.rs:768:13:768:13 | x | T | main.rs:762:10:762:10 | T | +| main.rs:768:13:768:15 | x.a | | main.rs:762:10:762:10 | T | +| main.rs:773:13:773:13 | x | | main.rs:700:5:703:5 | MyThing | +| main.rs:773:13:773:13 | x | T | main.rs:705:5:706:14 | S1 | +| main.rs:773:17:773:33 | MyThing {...} | | main.rs:700:5:703:5 | MyThing | +| main.rs:773:17:773:33 | MyThing {...} | T | main.rs:705:5:706:14 | S1 | +| main.rs:773:30:773:31 | S1 | | main.rs:705:5:706:14 | S1 | +| main.rs:774:13:774:13 | y | | main.rs:700:5:703:5 | MyThing | +| main.rs:774:13:774:13 | y | T | main.rs:707:5:708:14 | S2 | +| main.rs:774:17:774:33 | MyThing {...} | | main.rs:700:5:703:5 | MyThing | +| main.rs:774:17:774:33 | MyThing {...} | T | main.rs:707:5:708:14 | S2 | +| main.rs:774:30:774:31 | S2 | | main.rs:707:5:708:14 | S2 | +| main.rs:776:18:776:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:776:18:776:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:776:18:776:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:776:18:776:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:776:26:776:26 | x | | main.rs:700:5:703:5 | MyThing | +| main.rs:776:26:776:26 | x | T | main.rs:705:5:706:14 | S1 | +| main.rs:776:26:776:31 | x.m1() | | main.rs:705:5:706:14 | S1 | | main.rs:777:18:777:23 | "{:?}\\n" | | file://:0:0:0:0 | & | | main.rs:777:18:777:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | | main.rs:777:18:777:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | | main.rs:777:18:777:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:777:26:777:26 | x | | main.rs:701:5:704:5 | MyThing | -| main.rs:777:26:777:26 | x | T | main.rs:706:5:707:14 | S1 | -| main.rs:777:26:777:31 | x.m1() | | main.rs:706:5:707:14 | S1 | -| main.rs:778:18:778:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:778:18:778:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:778:18:778:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:778:18:778:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:778:26:778:26 | y | | main.rs:701:5:704:5 | MyThing | -| main.rs:778:26:778:26 | y | T | main.rs:708:5:709:14 | S2 | -| main.rs:778:26:778:31 | y.m1() | | main.rs:708:5:709:14 | S2 | -| main.rs:780:13:780:13 | x | | main.rs:701:5:704:5 | MyThing | -| main.rs:780:13:780:13 | x | T | main.rs:706:5:707:14 | S1 | -| main.rs:780:17:780:33 | MyThing {...} | | main.rs:701:5:704:5 | MyThing | -| main.rs:780:17:780:33 | MyThing {...} | T | main.rs:706:5:707:14 | S1 | -| main.rs:780:30:780:31 | S1 | | main.rs:706:5:707:14 | S1 | -| main.rs:781:13:781:13 | y | | main.rs:701:5:704:5 | MyThing | -| main.rs:781:13:781:13 | y | T | main.rs:708:5:709:14 | S2 | -| main.rs:781:17:781:33 | MyThing {...} | | main.rs:701:5:704:5 | MyThing | -| main.rs:781:17:781:33 | MyThing {...} | T | main.rs:708:5:709:14 | S2 | -| main.rs:781:30:781:31 | S2 | | main.rs:708:5:709:14 | S2 | +| main.rs:777:26:777:26 | y | | main.rs:700:5:703:5 | MyThing | +| main.rs:777:26:777:26 | y | T | main.rs:707:5:708:14 | S2 | +| main.rs:777:26:777:31 | y.m1() | | main.rs:707:5:708:14 | S2 | +| main.rs:779:13:779:13 | x | | main.rs:700:5:703:5 | MyThing | +| main.rs:779:13:779:13 | x | T | main.rs:705:5:706:14 | S1 | +| main.rs:779:17:779:33 | MyThing {...} | | main.rs:700:5:703:5 | MyThing | +| main.rs:779:17:779:33 | MyThing {...} | T | main.rs:705:5:706:14 | S1 | +| main.rs:779:30:779:31 | S1 | | main.rs:705:5:706:14 | S1 | +| main.rs:780:13:780:13 | y | | main.rs:700:5:703:5 | MyThing | +| main.rs:780:13:780:13 | y | T | main.rs:707:5:708:14 | S2 | +| main.rs:780:17:780:33 | MyThing {...} | | main.rs:700:5:703:5 | MyThing | +| main.rs:780:17:780:33 | MyThing {...} | T | main.rs:707:5:708:14 | S2 | +| main.rs:780:30:780:31 | S2 | | main.rs:707:5:708:14 | S2 | +| main.rs:782:18:782:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:782:18:782:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:782:18:782:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:782:18:782:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:782:26:782:26 | x | | main.rs:700:5:703:5 | MyThing | +| main.rs:782:26:782:26 | x | T | main.rs:705:5:706:14 | S1 | +| main.rs:782:26:782:31 | x.m2() | | main.rs:705:5:706:14 | S1 | | main.rs:783:18:783:23 | "{:?}\\n" | | file://:0:0:0:0 | & | | main.rs:783:18:783:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | | main.rs:783:18:783:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | | main.rs:783:18:783:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:783:26:783:26 | x | | main.rs:701:5:704:5 | MyThing | -| main.rs:783:26:783:26 | x | T | main.rs:706:5:707:14 | S1 | -| main.rs:783:26:783:31 | x.m2() | | main.rs:706:5:707:14 | S1 | -| main.rs:784:18:784:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:784:18:784:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:784:18:784:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:784:18:784:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:784:26:784:26 | y | | main.rs:701:5:704:5 | MyThing | -| main.rs:784:26:784:26 | y | T | main.rs:708:5:709:14 | S2 | -| main.rs:784:26:784:31 | y.m2() | | main.rs:708:5:709:14 | S2 | -| main.rs:786:13:786:14 | x2 | | main.rs:701:5:704:5 | MyThing | -| main.rs:786:13:786:14 | x2 | T | main.rs:706:5:707:14 | S1 | -| main.rs:786:18:786:34 | MyThing {...} | | main.rs:701:5:704:5 | MyThing | -| main.rs:786:18:786:34 | MyThing {...} | T | main.rs:706:5:707:14 | S1 | -| main.rs:786:31:786:32 | S1 | | main.rs:706:5:707:14 | S1 | -| main.rs:787:13:787:14 | y2 | | main.rs:701:5:704:5 | MyThing | -| main.rs:787:13:787:14 | y2 | T | main.rs:708:5:709:14 | S2 | -| main.rs:787:18:787:34 | MyThing {...} | | main.rs:701:5:704:5 | MyThing | -| main.rs:787:18:787:34 | MyThing {...} | T | main.rs:708:5:709:14 | S2 | -| main.rs:787:31:787:32 | S2 | | main.rs:708:5:709:14 | S2 | -| main.rs:789:13:789:13 | a | | main.rs:706:5:707:14 | S1 | -| main.rs:789:17:789:33 | call_trait_m1(...) | | main.rs:706:5:707:14 | S1 | -| main.rs:789:31:789:32 | x2 | | main.rs:701:5:704:5 | MyThing | -| main.rs:789:31:789:32 | x2 | T | main.rs:706:5:707:14 | S1 | -| main.rs:790:18:790:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:790:18:790:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:790:18:790:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:790:18:790:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:790:26:790:26 | a | | main.rs:706:5:707:14 | S1 | -| main.rs:791:13:791:13 | a | | main.rs:706:5:707:14 | S1 | -| main.rs:791:17:791:35 | call_trait_m1_2(...) | | main.rs:706:5:707:14 | S1 | -| main.rs:791:33:791:34 | x2 | | main.rs:701:5:704:5 | MyThing | -| main.rs:791:33:791:34 | x2 | T | main.rs:706:5:707:14 | S1 | -| main.rs:792:18:792:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:792:18:792:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:792:18:792:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:792:18:792:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:792:26:792:26 | a | | main.rs:706:5:707:14 | S1 | -| main.rs:793:13:793:13 | a | | main.rs:706:5:707:14 | S1 | -| main.rs:793:17:793:35 | call_trait_m1_3(...) | | main.rs:706:5:707:14 | S1 | -| main.rs:793:33:793:34 | x2 | | main.rs:701:5:704:5 | MyThing | -| main.rs:793:33:793:34 | x2 | T | main.rs:706:5:707:14 | S1 | -| main.rs:794:18:794:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:794:18:794:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:794:18:794:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:794:18:794:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:794:26:794:26 | a | | main.rs:706:5:707:14 | S1 | -| main.rs:795:13:795:13 | a | | main.rs:708:5:709:14 | S2 | -| main.rs:795:17:795:33 | call_trait_m1(...) | | main.rs:708:5:709:14 | S2 | -| main.rs:795:31:795:32 | y2 | | main.rs:701:5:704:5 | MyThing | -| main.rs:795:31:795:32 | y2 | T | main.rs:708:5:709:14 | S2 | -| main.rs:796:18:796:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:796:18:796:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:796:18:796:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:796:18:796:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:796:26:796:26 | a | | main.rs:708:5:709:14 | S2 | -| main.rs:797:13:797:13 | a | | main.rs:708:5:709:14 | S2 | -| main.rs:797:17:797:35 | call_trait_m1_2(...) | | main.rs:708:5:709:14 | S2 | -| main.rs:797:33:797:34 | y2 | | main.rs:701:5:704:5 | MyThing | -| main.rs:797:33:797:34 | y2 | T | main.rs:708:5:709:14 | S2 | -| main.rs:798:18:798:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:798:18:798:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:798:18:798:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:798:18:798:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:798:26:798:26 | a | | main.rs:708:5:709:14 | S2 | -| main.rs:799:13:799:13 | a | | main.rs:708:5:709:14 | S2 | -| main.rs:799:17:799:35 | call_trait_m1_3(...) | | main.rs:708:5:709:14 | S2 | -| main.rs:799:33:799:34 | y2 | | main.rs:701:5:704:5 | MyThing | -| main.rs:799:33:799:34 | y2 | T | main.rs:708:5:709:14 | S2 | -| main.rs:800:18:800:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:800:18:800:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:800:18:800:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:800:18:800:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:800:26:800:26 | a | | main.rs:708:5:709:14 | S2 | -| main.rs:801:13:801:13 | a | | main.rs:706:5:707:14 | S1 | -| main.rs:801:17:801:38 | call_trait_assoc_1(...) | | main.rs:706:5:707:14 | S1 | -| main.rs:801:36:801:37 | x2 | | main.rs:701:5:704:5 | MyThing | -| main.rs:801:36:801:37 | x2 | T | main.rs:706:5:707:14 | S1 | -| main.rs:802:18:802:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:802:18:802:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:802:18:802:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:802:18:802:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:802:26:802:26 | a | | main.rs:706:5:707:14 | S1 | -| main.rs:803:13:803:13 | a | | main.rs:706:5:707:14 | S1 | -| main.rs:803:17:803:38 | call_trait_assoc_2(...) | | main.rs:706:5:707:14 | S1 | -| main.rs:803:36:803:37 | x2 | | main.rs:701:5:704:5 | MyThing | -| main.rs:803:36:803:37 | x2 | T | main.rs:706:5:707:14 | S1 | -| main.rs:804:18:804:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:804:18:804:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:804:18:804:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:804:18:804:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:804:26:804:26 | a | | main.rs:706:5:707:14 | S1 | -| main.rs:805:13:805:13 | a | | main.rs:708:5:709:14 | S2 | -| main.rs:805:17:805:38 | call_trait_assoc_1(...) | | main.rs:708:5:709:14 | S2 | -| main.rs:805:36:805:37 | y2 | | main.rs:701:5:704:5 | MyThing | -| main.rs:805:36:805:37 | y2 | T | main.rs:708:5:709:14 | S2 | -| main.rs:806:18:806:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:806:18:806:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:806:18:806:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:806:18:806:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:806:26:806:26 | a | | main.rs:708:5:709:14 | S2 | -| main.rs:807:13:807:13 | a | | main.rs:708:5:709:14 | S2 | -| main.rs:807:17:807:38 | call_trait_assoc_2(...) | | main.rs:708:5:709:14 | S2 | -| main.rs:807:36:807:37 | y2 | | main.rs:701:5:704:5 | MyThing | -| main.rs:807:36:807:37 | y2 | T | main.rs:708:5:709:14 | S2 | -| main.rs:808:18:808:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:808:18:808:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:808:18:808:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:808:18:808:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:808:26:808:26 | a | | main.rs:708:5:709:14 | S2 | -| main.rs:810:13:810:14 | x3 | | main.rs:701:5:704:5 | MyThing | -| main.rs:810:13:810:14 | x3 | T | main.rs:701:5:704:5 | MyThing | -| main.rs:810:13:810:14 | x3 | T.T | main.rs:706:5:707:14 | S1 | -| main.rs:810:18:812:9 | MyThing {...} | | main.rs:701:5:704:5 | MyThing | -| main.rs:810:18:812:9 | MyThing {...} | T | main.rs:701:5:704:5 | MyThing | -| main.rs:810:18:812:9 | MyThing {...} | T.T | main.rs:706:5:707:14 | S1 | -| main.rs:811:16:811:32 | MyThing {...} | | main.rs:701:5:704:5 | MyThing | -| main.rs:811:16:811:32 | MyThing {...} | T | main.rs:706:5:707:14 | S1 | -| main.rs:811:29:811:30 | S1 | | main.rs:706:5:707:14 | S1 | -| main.rs:813:13:813:14 | y3 | | main.rs:701:5:704:5 | MyThing | -| main.rs:813:13:813:14 | y3 | T | main.rs:701:5:704:5 | MyThing | -| main.rs:813:13:813:14 | y3 | T.T | main.rs:708:5:709:14 | S2 | -| main.rs:813:18:815:9 | MyThing {...} | | main.rs:701:5:704:5 | MyThing | -| main.rs:813:18:815:9 | MyThing {...} | T | main.rs:701:5:704:5 | MyThing | -| main.rs:813:18:815:9 | MyThing {...} | T.T | main.rs:708:5:709:14 | S2 | -| main.rs:814:16:814:32 | MyThing {...} | | main.rs:701:5:704:5 | MyThing | -| main.rs:814:16:814:32 | MyThing {...} | T | main.rs:708:5:709:14 | S2 | -| main.rs:814:29:814:30 | S2 | | main.rs:708:5:709:14 | S2 | -| main.rs:817:13:817:13 | a | | main.rs:706:5:707:14 | S1 | -| main.rs:817:17:817:39 | call_trait_thing_m1(...) | | main.rs:706:5:707:14 | S1 | -| main.rs:817:37:817:38 | x3 | | main.rs:701:5:704:5 | MyThing | -| main.rs:817:37:817:38 | x3 | T | main.rs:701:5:704:5 | MyThing | -| main.rs:817:37:817:38 | x3 | T.T | main.rs:706:5:707:14 | S1 | -| main.rs:818:18:818:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:818:18:818:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:818:18:818:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:818:18:818:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:818:26:818:26 | a | | main.rs:706:5:707:14 | S1 | -| main.rs:819:13:819:13 | a | | main.rs:706:5:707:14 | S1 | -| main.rs:819:17:819:41 | call_trait_thing_m1_2(...) | | main.rs:706:5:707:14 | S1 | -| main.rs:819:39:819:40 | x3 | | main.rs:701:5:704:5 | MyThing | -| main.rs:819:39:819:40 | x3 | T | main.rs:701:5:704:5 | MyThing | -| main.rs:819:39:819:40 | x3 | T.T | main.rs:706:5:707:14 | S1 | -| main.rs:820:18:820:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:820:18:820:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:820:18:820:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:820:18:820:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:820:26:820:26 | a | | main.rs:706:5:707:14 | S1 | -| main.rs:821:13:821:13 | a | | main.rs:706:5:707:14 | S1 | -| main.rs:821:17:821:41 | call_trait_thing_m1_3(...) | | main.rs:706:5:707:14 | S1 | -| main.rs:821:39:821:40 | x3 | | main.rs:701:5:704:5 | MyThing | -| main.rs:821:39:821:40 | x3 | T | main.rs:701:5:704:5 | MyThing | -| main.rs:821:39:821:40 | x3 | T.T | main.rs:706:5:707:14 | S1 | -| main.rs:822:18:822:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:822:18:822:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:822:18:822:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:822:18:822:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:822:26:822:26 | a | | main.rs:706:5:707:14 | S1 | -| main.rs:823:13:823:13 | b | | main.rs:708:5:709:14 | S2 | -| main.rs:823:17:823:39 | call_trait_thing_m1(...) | | main.rs:708:5:709:14 | S2 | -| main.rs:823:37:823:38 | y3 | | main.rs:701:5:704:5 | MyThing | -| main.rs:823:37:823:38 | y3 | T | main.rs:701:5:704:5 | MyThing | -| main.rs:823:37:823:38 | y3 | T.T | main.rs:708:5:709:14 | S2 | -| main.rs:824:18:824:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:824:18:824:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:824:18:824:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:824:18:824:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:824:26:824:26 | b | | main.rs:708:5:709:14 | S2 | -| main.rs:825:13:825:13 | b | | main.rs:708:5:709:14 | S2 | -| main.rs:825:17:825:41 | call_trait_thing_m1_2(...) | | main.rs:708:5:709:14 | S2 | -| main.rs:825:39:825:40 | y3 | | main.rs:701:5:704:5 | MyThing | -| main.rs:825:39:825:40 | y3 | T | main.rs:701:5:704:5 | MyThing | -| main.rs:825:39:825:40 | y3 | T.T | main.rs:708:5:709:14 | S2 | -| main.rs:826:18:826:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:826:18:826:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:826:18:826:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:826:18:826:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:826:26:826:26 | b | | main.rs:708:5:709:14 | S2 | -| main.rs:827:13:827:13 | b | | main.rs:708:5:709:14 | S2 | -| main.rs:827:17:827:41 | call_trait_thing_m1_3(...) | | main.rs:708:5:709:14 | S2 | -| main.rs:827:39:827:40 | y3 | | main.rs:701:5:704:5 | MyThing | -| main.rs:827:39:827:40 | y3 | T | main.rs:701:5:704:5 | MyThing | -| main.rs:827:39:827:40 | y3 | T.T | main.rs:708:5:709:14 | S2 | -| main.rs:828:18:828:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:828:18:828:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:828:18:828:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:828:18:828:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:828:26:828:26 | b | | main.rs:708:5:709:14 | S2 | -| main.rs:839:19:839:22 | SelfParam | | main.rs:833:5:836:5 | Wrapper | -| main.rs:839:19:839:22 | SelfParam | A | main.rs:838:10:838:10 | A | -| main.rs:839:30:841:9 | { ... } | | main.rs:838:10:838:10 | A | -| main.rs:840:13:840:16 | self | | main.rs:833:5:836:5 | Wrapper | -| main.rs:840:13:840:16 | self | A | main.rs:838:10:838:10 | A | -| main.rs:840:13:840:22 | self.field | | main.rs:838:10:838:10 | A | -| main.rs:848:15:848:18 | SelfParam | | main.rs:844:5:858:5 | Self [trait MyTrait] | -| main.rs:850:15:850:18 | SelfParam | | main.rs:844:5:858:5 | Self [trait MyTrait] | -| main.rs:854:9:857:9 | { ... } | | main.rs:845:9:845:28 | AssociatedType | -| main.rs:855:13:855:16 | self | | main.rs:844:5:858:5 | Self [trait MyTrait] | -| main.rs:855:13:855:21 | self.m1() | | main.rs:845:9:845:28 | AssociatedType | -| main.rs:856:13:856:43 | ...::default(...) | | main.rs:845:9:845:28 | AssociatedType | -| main.rs:864:19:864:23 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:864:19:864:23 | SelfParam | &T | main.rs:860:5:870:5 | Self [trait MyTraitAssoc2] | -| main.rs:864:26:864:26 | a | | main.rs:864:16:864:16 | A | -| main.rs:866:22:866:26 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:866:22:866:26 | SelfParam | &T | main.rs:860:5:870:5 | Self [trait MyTraitAssoc2] | -| main.rs:866:29:866:29 | a | | main.rs:866:19:866:19 | A | -| main.rs:866:35:866:35 | b | | main.rs:866:19:866:19 | A | -| main.rs:866:75:869:9 | { ... } | | main.rs:861:9:861:52 | GenericAssociatedType | +| main.rs:783:26:783:26 | y | | main.rs:700:5:703:5 | MyThing | +| main.rs:783:26:783:26 | y | T | main.rs:707:5:708:14 | S2 | +| main.rs:783:26:783:31 | y.m2() | | main.rs:707:5:708:14 | S2 | +| main.rs:785:13:785:14 | x2 | | main.rs:700:5:703:5 | MyThing | +| main.rs:785:13:785:14 | x2 | T | main.rs:705:5:706:14 | S1 | +| main.rs:785:18:785:34 | MyThing {...} | | main.rs:700:5:703:5 | MyThing | +| main.rs:785:18:785:34 | MyThing {...} | T | main.rs:705:5:706:14 | S1 | +| main.rs:785:31:785:32 | S1 | | main.rs:705:5:706:14 | S1 | +| main.rs:786:13:786:14 | y2 | | main.rs:700:5:703:5 | MyThing | +| main.rs:786:13:786:14 | y2 | T | main.rs:707:5:708:14 | S2 | +| main.rs:786:18:786:34 | MyThing {...} | | main.rs:700:5:703:5 | MyThing | +| main.rs:786:18:786:34 | MyThing {...} | T | main.rs:707:5:708:14 | S2 | +| main.rs:786:31:786:32 | S2 | | main.rs:707:5:708:14 | S2 | +| main.rs:788:13:788:13 | a | | main.rs:705:5:706:14 | S1 | +| main.rs:788:17:788:33 | call_trait_m1(...) | | main.rs:705:5:706:14 | S1 | +| main.rs:788:31:788:32 | x2 | | main.rs:700:5:703:5 | MyThing | +| main.rs:788:31:788:32 | x2 | T | main.rs:705:5:706:14 | S1 | +| main.rs:789:18:789:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:789:18:789:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:789:18:789:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:789:18:789:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:789:26:789:26 | a | | main.rs:705:5:706:14 | S1 | +| main.rs:790:13:790:13 | a | | main.rs:705:5:706:14 | S1 | +| main.rs:790:17:790:35 | call_trait_m1_2(...) | | main.rs:705:5:706:14 | S1 | +| main.rs:790:33:790:34 | x2 | | main.rs:700:5:703:5 | MyThing | +| main.rs:790:33:790:34 | x2 | T | main.rs:705:5:706:14 | S1 | +| main.rs:791:18:791:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:791:18:791:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:791:18:791:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:791:18:791:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:791:26:791:26 | a | | main.rs:705:5:706:14 | S1 | +| main.rs:792:13:792:13 | a | | main.rs:705:5:706:14 | S1 | +| main.rs:792:17:792:35 | call_trait_m1_3(...) | | main.rs:705:5:706:14 | S1 | +| main.rs:792:33:792:34 | x2 | | main.rs:700:5:703:5 | MyThing | +| main.rs:792:33:792:34 | x2 | T | main.rs:705:5:706:14 | S1 | +| main.rs:793:18:793:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:793:18:793:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:793:18:793:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:793:18:793:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:793:26:793:26 | a | | main.rs:705:5:706:14 | S1 | +| main.rs:794:13:794:13 | a | | main.rs:707:5:708:14 | S2 | +| main.rs:794:17:794:33 | call_trait_m1(...) | | main.rs:707:5:708:14 | S2 | +| main.rs:794:31:794:32 | y2 | | main.rs:700:5:703:5 | MyThing | +| main.rs:794:31:794:32 | y2 | T | main.rs:707:5:708:14 | S2 | +| main.rs:795:18:795:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:795:18:795:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:795:18:795:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:795:18:795:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:795:26:795:26 | a | | main.rs:707:5:708:14 | S2 | +| main.rs:796:13:796:13 | a | | main.rs:707:5:708:14 | S2 | +| main.rs:796:17:796:35 | call_trait_m1_2(...) | | main.rs:707:5:708:14 | S2 | +| main.rs:796:33:796:34 | y2 | | main.rs:700:5:703:5 | MyThing | +| main.rs:796:33:796:34 | y2 | T | main.rs:707:5:708:14 | S2 | +| main.rs:797:18:797:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:797:18:797:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:797:18:797:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:797:18:797:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:797:26:797:26 | a | | main.rs:707:5:708:14 | S2 | +| main.rs:798:13:798:13 | a | | main.rs:707:5:708:14 | S2 | +| main.rs:798:17:798:35 | call_trait_m1_3(...) | | main.rs:707:5:708:14 | S2 | +| main.rs:798:33:798:34 | y2 | | main.rs:700:5:703:5 | MyThing | +| main.rs:798:33:798:34 | y2 | T | main.rs:707:5:708:14 | S2 | +| main.rs:799:18:799:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:799:18:799:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:799:18:799:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:799:18:799:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:799:26:799:26 | a | | main.rs:707:5:708:14 | S2 | +| main.rs:800:13:800:13 | a | | main.rs:705:5:706:14 | S1 | +| main.rs:800:17:800:38 | call_trait_assoc_1(...) | | main.rs:705:5:706:14 | S1 | +| main.rs:800:36:800:37 | x2 | | main.rs:700:5:703:5 | MyThing | +| main.rs:800:36:800:37 | x2 | T | main.rs:705:5:706:14 | S1 | +| main.rs:801:18:801:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:801:18:801:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:801:18:801:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:801:18:801:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:801:26:801:26 | a | | main.rs:705:5:706:14 | S1 | +| main.rs:802:13:802:13 | a | | main.rs:705:5:706:14 | S1 | +| main.rs:802:17:802:38 | call_trait_assoc_2(...) | | main.rs:705:5:706:14 | S1 | +| main.rs:802:36:802:37 | x2 | | main.rs:700:5:703:5 | MyThing | +| main.rs:802:36:802:37 | x2 | T | main.rs:705:5:706:14 | S1 | +| main.rs:803:18:803:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:803:18:803:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:803:18:803:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:803:18:803:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:803:26:803:26 | a | | main.rs:705:5:706:14 | S1 | +| main.rs:804:13:804:13 | a | | main.rs:707:5:708:14 | S2 | +| main.rs:804:17:804:38 | call_trait_assoc_1(...) | | main.rs:707:5:708:14 | S2 | +| main.rs:804:36:804:37 | y2 | | main.rs:700:5:703:5 | MyThing | +| main.rs:804:36:804:37 | y2 | T | main.rs:707:5:708:14 | S2 | +| main.rs:805:18:805:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:805:18:805:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:805:18:805:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:805:18:805:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:805:26:805:26 | a | | main.rs:707:5:708:14 | S2 | +| main.rs:806:13:806:13 | a | | main.rs:707:5:708:14 | S2 | +| main.rs:806:17:806:38 | call_trait_assoc_2(...) | | main.rs:707:5:708:14 | S2 | +| main.rs:806:36:806:37 | y2 | | main.rs:700:5:703:5 | MyThing | +| main.rs:806:36:806:37 | y2 | T | main.rs:707:5:708:14 | S2 | +| main.rs:807:18:807:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:807:18:807:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:807:18:807:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:807:18:807:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:807:26:807:26 | a | | main.rs:707:5:708:14 | S2 | +| main.rs:809:13:809:14 | x3 | | main.rs:700:5:703:5 | MyThing | +| main.rs:809:13:809:14 | x3 | T | main.rs:700:5:703:5 | MyThing | +| main.rs:809:13:809:14 | x3 | T.T | main.rs:705:5:706:14 | S1 | +| main.rs:809:18:811:9 | MyThing {...} | | main.rs:700:5:703:5 | MyThing | +| main.rs:809:18:811:9 | MyThing {...} | T | main.rs:700:5:703:5 | MyThing | +| main.rs:809:18:811:9 | MyThing {...} | T.T | main.rs:705:5:706:14 | S1 | +| main.rs:810:16:810:32 | MyThing {...} | | main.rs:700:5:703:5 | MyThing | +| main.rs:810:16:810:32 | MyThing {...} | T | main.rs:705:5:706:14 | S1 | +| main.rs:810:29:810:30 | S1 | | main.rs:705:5:706:14 | S1 | +| main.rs:812:13:812:14 | y3 | | main.rs:700:5:703:5 | MyThing | +| main.rs:812:13:812:14 | y3 | T | main.rs:700:5:703:5 | MyThing | +| main.rs:812:13:812:14 | y3 | T.T | main.rs:707:5:708:14 | S2 | +| main.rs:812:18:814:9 | MyThing {...} | | main.rs:700:5:703:5 | MyThing | +| main.rs:812:18:814:9 | MyThing {...} | T | main.rs:700:5:703:5 | MyThing | +| main.rs:812:18:814:9 | MyThing {...} | T.T | main.rs:707:5:708:14 | S2 | +| main.rs:813:16:813:32 | MyThing {...} | | main.rs:700:5:703:5 | MyThing | +| main.rs:813:16:813:32 | MyThing {...} | T | main.rs:707:5:708:14 | S2 | +| main.rs:813:29:813:30 | S2 | | main.rs:707:5:708:14 | S2 | +| main.rs:816:13:816:13 | a | | main.rs:705:5:706:14 | S1 | +| main.rs:816:17:816:39 | call_trait_thing_m1(...) | | main.rs:705:5:706:14 | S1 | +| main.rs:816:37:816:38 | x3 | | main.rs:700:5:703:5 | MyThing | +| main.rs:816:37:816:38 | x3 | T | main.rs:700:5:703:5 | MyThing | +| main.rs:816:37:816:38 | x3 | T.T | main.rs:705:5:706:14 | S1 | +| main.rs:817:18:817:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:817:18:817:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:817:18:817:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:817:18:817:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:817:26:817:26 | a | | main.rs:705:5:706:14 | S1 | +| main.rs:818:13:818:13 | a | | main.rs:705:5:706:14 | S1 | +| main.rs:818:17:818:41 | call_trait_thing_m1_2(...) | | main.rs:705:5:706:14 | S1 | +| main.rs:818:39:818:40 | x3 | | main.rs:700:5:703:5 | MyThing | +| main.rs:818:39:818:40 | x3 | T | main.rs:700:5:703:5 | MyThing | +| main.rs:818:39:818:40 | x3 | T.T | main.rs:705:5:706:14 | S1 | +| main.rs:819:18:819:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:819:18:819:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:819:18:819:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:819:18:819:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:819:26:819:26 | a | | main.rs:705:5:706:14 | S1 | +| main.rs:820:13:820:13 | a | | main.rs:705:5:706:14 | S1 | +| main.rs:820:17:820:41 | call_trait_thing_m1_3(...) | | main.rs:705:5:706:14 | S1 | +| main.rs:820:39:820:40 | x3 | | main.rs:700:5:703:5 | MyThing | +| main.rs:820:39:820:40 | x3 | T | main.rs:700:5:703:5 | MyThing | +| main.rs:820:39:820:40 | x3 | T.T | main.rs:705:5:706:14 | S1 | +| main.rs:821:18:821:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:821:18:821:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:821:18:821:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:821:18:821:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:821:26:821:26 | a | | main.rs:705:5:706:14 | S1 | +| main.rs:822:13:822:13 | b | | main.rs:707:5:708:14 | S2 | +| main.rs:822:17:822:39 | call_trait_thing_m1(...) | | main.rs:707:5:708:14 | S2 | +| main.rs:822:37:822:38 | y3 | | main.rs:700:5:703:5 | MyThing | +| main.rs:822:37:822:38 | y3 | T | main.rs:700:5:703:5 | MyThing | +| main.rs:822:37:822:38 | y3 | T.T | main.rs:707:5:708:14 | S2 | +| main.rs:823:18:823:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:823:18:823:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:823:18:823:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:823:18:823:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:823:26:823:26 | b | | main.rs:707:5:708:14 | S2 | +| main.rs:824:13:824:13 | b | | main.rs:707:5:708:14 | S2 | +| main.rs:824:17:824:41 | call_trait_thing_m1_2(...) | | main.rs:707:5:708:14 | S2 | +| main.rs:824:39:824:40 | y3 | | main.rs:700:5:703:5 | MyThing | +| main.rs:824:39:824:40 | y3 | T | main.rs:700:5:703:5 | MyThing | +| main.rs:824:39:824:40 | y3 | T.T | main.rs:707:5:708:14 | S2 | +| main.rs:825:18:825:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:825:18:825:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:825:18:825:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:825:18:825:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:825:26:825:26 | b | | main.rs:707:5:708:14 | S2 | +| main.rs:826:13:826:13 | b | | main.rs:707:5:708:14 | S2 | +| main.rs:826:17:826:41 | call_trait_thing_m1_3(...) | | main.rs:707:5:708:14 | S2 | +| main.rs:826:39:826:40 | y3 | | main.rs:700:5:703:5 | MyThing | +| main.rs:826:39:826:40 | y3 | T | main.rs:700:5:703:5 | MyThing | +| main.rs:826:39:826:40 | y3 | T.T | main.rs:707:5:708:14 | S2 | +| main.rs:827:18:827:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:827:18:827:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:827:18:827:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:827:18:827:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:827:26:827:26 | b | | main.rs:707:5:708:14 | S2 | +| main.rs:838:19:838:22 | SelfParam | | main.rs:832:5:835:5 | Wrapper | +| main.rs:838:19:838:22 | SelfParam | A | main.rs:837:10:837:10 | A | +| main.rs:838:30:840:9 | { ... } | | main.rs:837:10:837:10 | A | +| main.rs:839:13:839:16 | self | | main.rs:832:5:835:5 | Wrapper | +| main.rs:839:13:839:16 | self | A | main.rs:837:10:837:10 | A | +| main.rs:839:13:839:22 | self.field | | main.rs:837:10:837:10 | A | +| main.rs:847:15:847:18 | SelfParam | | main.rs:843:5:857:5 | Self [trait MyTrait] | +| main.rs:849:15:849:18 | SelfParam | | main.rs:843:5:857:5 | Self [trait MyTrait] | +| main.rs:853:9:856:9 | { ... } | | main.rs:844:9:844:28 | AssociatedType | +| main.rs:854:13:854:16 | self | | main.rs:843:5:857:5 | Self [trait MyTrait] | +| main.rs:854:13:854:21 | self.m1() | | main.rs:844:9:844:28 | AssociatedType | +| main.rs:855:13:855:43 | ...::default(...) | | main.rs:844:9:844:28 | AssociatedType | +| main.rs:863:19:863:23 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:863:19:863:23 | SelfParam | &T | main.rs:859:5:869:5 | Self [trait MyTraitAssoc2] | +| main.rs:863:26:863:26 | a | | main.rs:863:16:863:16 | A | +| main.rs:865:22:865:26 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:865:22:865:26 | SelfParam | &T | main.rs:859:5:869:5 | Self [trait MyTraitAssoc2] | +| main.rs:865:29:865:29 | a | | main.rs:865:19:865:19 | A | +| main.rs:865:35:865:35 | b | | main.rs:865:19:865:19 | A | +| main.rs:865:75:868:9 | { ... } | | main.rs:860:9:860:52 | GenericAssociatedType | +| main.rs:866:13:866:16 | self | | file://:0:0:0:0 | & | +| main.rs:866:13:866:16 | self | &T | main.rs:859:5:869:5 | Self [trait MyTraitAssoc2] | +| main.rs:866:13:866:23 | self.put(...) | | main.rs:860:9:860:52 | GenericAssociatedType | +| main.rs:866:22:866:22 | a | | main.rs:865:19:865:19 | A | | main.rs:867:13:867:16 | self | | file://:0:0:0:0 | & | -| main.rs:867:13:867:16 | self | &T | main.rs:860:5:870:5 | Self [trait MyTraitAssoc2] | -| main.rs:867:13:867:23 | self.put(...) | | main.rs:861:9:861:52 | GenericAssociatedType | -| main.rs:867:22:867:22 | a | | main.rs:866:19:866:19 | A | -| main.rs:868:13:868:16 | self | | file://:0:0:0:0 | & | -| main.rs:868:13:868:16 | self | &T | main.rs:860:5:870:5 | Self [trait MyTraitAssoc2] | -| main.rs:868:13:868:23 | self.put(...) | | main.rs:861:9:861:52 | GenericAssociatedType | -| main.rs:868:22:868:22 | b | | main.rs:866:19:866:19 | A | -| main.rs:877:21:877:25 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:877:21:877:25 | SelfParam | &T | main.rs:872:5:882:5 | Self [trait TraitMultipleAssoc] | -| main.rs:879:20:879:24 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:879:20:879:24 | SelfParam | &T | main.rs:872:5:882:5 | Self [trait TraitMultipleAssoc] | -| main.rs:881:20:881:24 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:881:20:881:24 | SelfParam | &T | main.rs:872:5:882:5 | Self [trait TraitMultipleAssoc] | -| main.rs:897:15:897:18 | SelfParam | | main.rs:884:5:885:13 | S | -| main.rs:897:45:899:9 | { ... } | | main.rs:890:5:891:14 | AT | -| main.rs:898:13:898:14 | AT | | main.rs:890:5:891:14 | AT | -| main.rs:907:19:907:23 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:907:19:907:23 | SelfParam | &T | main.rs:884:5:885:13 | S | -| main.rs:907:26:907:26 | a | | main.rs:907:16:907:16 | A | -| main.rs:907:46:909:9 | { ... } | | main.rs:833:5:836:5 | Wrapper | -| main.rs:907:46:909:9 | { ... } | A | main.rs:907:16:907:16 | A | -| main.rs:908:13:908:32 | Wrapper {...} | | main.rs:833:5:836:5 | Wrapper | -| main.rs:908:13:908:32 | Wrapper {...} | A | main.rs:907:16:907:16 | A | -| main.rs:908:30:908:30 | a | | main.rs:907:16:907:16 | A | -| main.rs:916:15:916:18 | SelfParam | | main.rs:887:5:888:14 | S2 | -| main.rs:916:45:918:9 | { ... } | | main.rs:833:5:836:5 | Wrapper | -| main.rs:916:45:918:9 | { ... } | A | main.rs:887:5:888:14 | S2 | -| main.rs:917:13:917:35 | Wrapper {...} | | main.rs:833:5:836:5 | Wrapper | -| main.rs:917:13:917:35 | Wrapper {...} | A | main.rs:887:5:888:14 | S2 | -| main.rs:917:30:917:33 | self | | main.rs:887:5:888:14 | S2 | -| main.rs:923:30:925:9 | { ... } | | main.rs:833:5:836:5 | Wrapper | -| main.rs:923:30:925:9 | { ... } | A | main.rs:887:5:888:14 | S2 | -| main.rs:924:13:924:33 | Wrapper {...} | | main.rs:833:5:836:5 | Wrapper | -| main.rs:924:13:924:33 | Wrapper {...} | A | main.rs:887:5:888:14 | S2 | -| main.rs:924:30:924:31 | S2 | | main.rs:887:5:888:14 | S2 | -| main.rs:930:22:930:26 | thing | | main.rs:930:10:930:19 | T | -| main.rs:931:9:931:13 | thing | | main.rs:930:10:930:19 | T | -| main.rs:938:21:938:25 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:938:21:938:25 | SelfParam | &T | main.rs:890:5:891:14 | AT | -| main.rs:938:34:940:9 | { ... } | | main.rs:890:5:891:14 | AT | -| main.rs:939:13:939:14 | AT | | main.rs:890:5:891:14 | AT | -| main.rs:942:20:942:24 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:942:20:942:24 | SelfParam | &T | main.rs:890:5:891:14 | AT | -| main.rs:942:43:944:9 | { ... } | | main.rs:884:5:885:13 | S | -| main.rs:943:13:943:13 | S | | main.rs:884:5:885:13 | S | -| main.rs:946:20:946:24 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:946:20:946:24 | SelfParam | &T | main.rs:890:5:891:14 | AT | -| main.rs:946:43:948:9 | { ... } | | main.rs:887:5:888:14 | S2 | -| main.rs:947:13:947:14 | S2 | | main.rs:887:5:888:14 | S2 | -| main.rs:952:13:952:14 | x1 | | main.rs:884:5:885:13 | S | -| main.rs:952:18:952:18 | S | | main.rs:884:5:885:13 | S | -| main.rs:954:18:954:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:954:18:954:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:954:18:954:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:954:18:954:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:954:26:954:27 | x1 | | main.rs:884:5:885:13 | S | -| main.rs:954:26:954:32 | x1.m1() | | main.rs:890:5:891:14 | AT | -| main.rs:956:13:956:14 | x2 | | main.rs:884:5:885:13 | S | -| main.rs:956:18:956:18 | S | | main.rs:884:5:885:13 | S | -| main.rs:958:13:958:13 | y | | main.rs:890:5:891:14 | AT | -| main.rs:958:17:958:18 | x2 | | main.rs:884:5:885:13 | S | -| main.rs:958:17:958:23 | x2.m2() | | main.rs:890:5:891:14 | AT | -| main.rs:959:18:959:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:959:18:959:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:959:18:959:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:959:18:959:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:959:26:959:26 | y | | main.rs:890:5:891:14 | AT | -| main.rs:961:13:961:14 | x3 | | main.rs:884:5:885:13 | S | -| main.rs:961:18:961:18 | S | | main.rs:884:5:885:13 | S | -| main.rs:963:18:963:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:963:18:963:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:963:18:963:43 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:963:18:963:43 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:963:26:963:27 | x3 | | main.rs:884:5:885:13 | S | -| main.rs:963:26:963:34 | x3.put(...) | | main.rs:833:5:836:5 | Wrapper | -| main.rs:963:26:963:34 | x3.put(...) | A | {EXTERNAL LOCATION} | i32 | -| main.rs:963:26:963:43 | ... .unwrap() | | {EXTERNAL LOCATION} | i32 | -| main.rs:963:33:963:33 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:966:18:966:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:966:18:966:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:966:18:966:49 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:966:18:966:49 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:966:26:966:27 | x3 | | main.rs:884:5:885:13 | S | -| main.rs:966:26:966:40 | x3.putTwo(...) | | main.rs:833:5:836:5 | Wrapper | -| main.rs:966:26:966:40 | x3.putTwo(...) | A | main.rs:904:36:904:50 | AssociatedParam | -| main.rs:966:26:966:49 | ... .unwrap() | | main.rs:904:36:904:50 | AssociatedParam | -| main.rs:966:36:966:36 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:966:39:966:39 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:968:20:968:20 | S | | main.rs:884:5:885:13 | S | -| main.rs:969:18:969:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:969:18:969:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:969:18:969:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:969:18:969:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:971:13:971:14 | x5 | | main.rs:887:5:888:14 | S2 | -| main.rs:971:18:971:19 | S2 | | main.rs:887:5:888:14 | S2 | -| main.rs:972:18:972:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:972:18:972:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:972:18:972:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:972:18:972:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:972:26:972:27 | x5 | | main.rs:887:5:888:14 | S2 | -| main.rs:972:26:972:32 | x5.m1() | | main.rs:833:5:836:5 | Wrapper | -| main.rs:972:26:972:32 | x5.m1() | A | main.rs:887:5:888:14 | S2 | -| main.rs:973:13:973:14 | x6 | | main.rs:887:5:888:14 | S2 | -| main.rs:973:18:973:19 | S2 | | main.rs:887:5:888:14 | S2 | -| main.rs:974:18:974:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:974:18:974:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:974:18:974:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:974:18:974:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:974:26:974:27 | x6 | | main.rs:887:5:888:14 | S2 | -| main.rs:974:26:974:32 | x6.m2() | | main.rs:833:5:836:5 | Wrapper | -| main.rs:974:26:974:32 | x6.m2() | A | main.rs:887:5:888:14 | S2 | -| main.rs:976:13:976:22 | assoc_zero | | main.rs:890:5:891:14 | AT | -| main.rs:976:26:976:27 | AT | | main.rs:890:5:891:14 | AT | -| main.rs:976:26:976:38 | AT.get_zero() | | main.rs:890:5:891:14 | AT | -| main.rs:977:13:977:21 | assoc_one | | main.rs:884:5:885:13 | S | -| main.rs:977:25:977:26 | AT | | main.rs:890:5:891:14 | AT | -| main.rs:977:25:977:36 | AT.get_one() | | main.rs:884:5:885:13 | S | -| main.rs:978:13:978:21 | assoc_two | | main.rs:887:5:888:14 | S2 | -| main.rs:978:25:978:26 | AT | | main.rs:890:5:891:14 | AT | -| main.rs:978:25:978:36 | AT.get_two() | | main.rs:887:5:888:14 | S2 | -| main.rs:986:19:986:23 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:986:19:986:23 | SelfParam | &T | main.rs:983:5:987:5 | Self [trait Supertrait] | -| main.rs:986:26:986:32 | content | | main.rs:984:9:984:21 | Content | -| main.rs:991:24:991:28 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:991:24:991:28 | SelfParam | &T | main.rs:989:5:992:5 | Self [trait Subtrait] | -| main.rs:1000:23:1000:27 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1000:23:1000:27 | SelfParam | &T | main.rs:994:5:1004:5 | Self [trait Subtrait2] | -| main.rs:1000:30:1000:31 | c1 | | main.rs:984:9:984:21 | Content | -| main.rs:1000:49:1000:50 | c2 | | main.rs:984:9:984:21 | Content | +| main.rs:867:13:867:16 | self | &T | main.rs:859:5:869:5 | Self [trait MyTraitAssoc2] | +| main.rs:867:13:867:23 | self.put(...) | | main.rs:860:9:860:52 | GenericAssociatedType | +| main.rs:867:22:867:22 | b | | main.rs:865:19:865:19 | A | +| main.rs:876:21:876:25 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:876:21:876:25 | SelfParam | &T | main.rs:871:5:881:5 | Self [trait TraitMultipleAssoc] | +| main.rs:878:20:878:24 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:878:20:878:24 | SelfParam | &T | main.rs:871:5:881:5 | Self [trait TraitMultipleAssoc] | +| main.rs:880:20:880:24 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:880:20:880:24 | SelfParam | &T | main.rs:871:5:881:5 | Self [trait TraitMultipleAssoc] | +| main.rs:896:15:896:18 | SelfParam | | main.rs:883:5:884:13 | S | +| main.rs:896:45:898:9 | { ... } | | main.rs:889:5:890:14 | AT | +| main.rs:897:13:897:14 | AT | | main.rs:889:5:890:14 | AT | +| main.rs:906:19:906:23 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:906:19:906:23 | SelfParam | &T | main.rs:883:5:884:13 | S | +| main.rs:906:26:906:26 | a | | main.rs:906:16:906:16 | A | +| main.rs:906:46:908:9 | { ... } | | main.rs:832:5:835:5 | Wrapper | +| main.rs:906:46:908:9 | { ... } | A | main.rs:906:16:906:16 | A | +| main.rs:907:13:907:32 | Wrapper {...} | | main.rs:832:5:835:5 | Wrapper | +| main.rs:907:13:907:32 | Wrapper {...} | A | main.rs:906:16:906:16 | A | +| main.rs:907:30:907:30 | a | | main.rs:906:16:906:16 | A | +| main.rs:915:15:915:18 | SelfParam | | main.rs:886:5:887:14 | S2 | +| main.rs:915:45:917:9 | { ... } | | main.rs:832:5:835:5 | Wrapper | +| main.rs:915:45:917:9 | { ... } | A | main.rs:886:5:887:14 | S2 | +| main.rs:916:13:916:35 | Wrapper {...} | | main.rs:832:5:835:5 | Wrapper | +| main.rs:916:13:916:35 | Wrapper {...} | A | main.rs:886:5:887:14 | S2 | +| main.rs:916:30:916:33 | self | | main.rs:886:5:887:14 | S2 | +| main.rs:922:30:924:9 | { ... } | | main.rs:832:5:835:5 | Wrapper | +| main.rs:922:30:924:9 | { ... } | A | main.rs:886:5:887:14 | S2 | +| main.rs:923:13:923:33 | Wrapper {...} | | main.rs:832:5:835:5 | Wrapper | +| main.rs:923:13:923:33 | Wrapper {...} | A | main.rs:886:5:887:14 | S2 | +| main.rs:923:30:923:31 | S2 | | main.rs:886:5:887:14 | S2 | +| main.rs:929:22:929:26 | thing | | main.rs:929:10:929:19 | T | +| main.rs:930:9:930:13 | thing | | main.rs:929:10:929:19 | T | +| main.rs:937:21:937:25 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:937:21:937:25 | SelfParam | &T | main.rs:889:5:890:14 | AT | +| main.rs:937:34:939:9 | { ... } | | main.rs:889:5:890:14 | AT | +| main.rs:938:13:938:14 | AT | | main.rs:889:5:890:14 | AT | +| main.rs:941:20:941:24 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:941:20:941:24 | SelfParam | &T | main.rs:889:5:890:14 | AT | +| main.rs:941:43:943:9 | { ... } | | main.rs:883:5:884:13 | S | +| main.rs:942:13:942:13 | S | | main.rs:883:5:884:13 | S | +| main.rs:945:20:945:24 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:945:20:945:24 | SelfParam | &T | main.rs:889:5:890:14 | AT | +| main.rs:945:43:947:9 | { ... } | | main.rs:886:5:887:14 | S2 | +| main.rs:946:13:946:14 | S2 | | main.rs:886:5:887:14 | S2 | +| main.rs:951:13:951:14 | x1 | | main.rs:883:5:884:13 | S | +| main.rs:951:18:951:18 | S | | main.rs:883:5:884:13 | S | +| main.rs:953:18:953:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:953:18:953:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:953:18:953:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:953:18:953:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:953:26:953:27 | x1 | | main.rs:883:5:884:13 | S | +| main.rs:953:26:953:32 | x1.m1() | | main.rs:889:5:890:14 | AT | +| main.rs:955:13:955:14 | x2 | | main.rs:883:5:884:13 | S | +| main.rs:955:18:955:18 | S | | main.rs:883:5:884:13 | S | +| main.rs:957:13:957:13 | y | | main.rs:889:5:890:14 | AT | +| main.rs:957:17:957:18 | x2 | | main.rs:883:5:884:13 | S | +| main.rs:957:17:957:23 | x2.m2() | | main.rs:889:5:890:14 | AT | +| main.rs:958:18:958:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:958:18:958:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:958:18:958:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:958:18:958:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:958:26:958:26 | y | | main.rs:889:5:890:14 | AT | +| main.rs:960:13:960:14 | x3 | | main.rs:883:5:884:13 | S | +| main.rs:960:18:960:18 | S | | main.rs:883:5:884:13 | S | +| main.rs:962:18:962:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:962:18:962:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:962:18:962:43 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:962:18:962:43 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:962:26:962:27 | x3 | | main.rs:883:5:884:13 | S | +| main.rs:962:26:962:34 | x3.put(...) | | main.rs:832:5:835:5 | Wrapper | +| main.rs:962:26:962:34 | x3.put(...) | A | {EXTERNAL LOCATION} | i32 | +| main.rs:962:26:962:43 | ... .unwrap() | | {EXTERNAL LOCATION} | i32 | +| main.rs:962:33:962:33 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:965:18:965:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:965:18:965:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:965:18:965:49 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:965:18:965:49 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:965:26:965:27 | x3 | | main.rs:883:5:884:13 | S | +| main.rs:965:26:965:40 | x3.putTwo(...) | | main.rs:832:5:835:5 | Wrapper | +| main.rs:965:26:965:40 | x3.putTwo(...) | A | main.rs:903:36:903:50 | AssociatedParam | +| main.rs:965:26:965:49 | ... .unwrap() | | main.rs:903:36:903:50 | AssociatedParam | +| main.rs:965:36:965:36 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:965:39:965:39 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:967:20:967:20 | S | | main.rs:883:5:884:13 | S | +| main.rs:968:18:968:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:968:18:968:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:968:18:968:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:968:18:968:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:970:13:970:14 | x5 | | main.rs:886:5:887:14 | S2 | +| main.rs:970:18:970:19 | S2 | | main.rs:886:5:887:14 | S2 | +| main.rs:971:18:971:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:971:18:971:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:971:18:971:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:971:18:971:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:971:26:971:27 | x5 | | main.rs:886:5:887:14 | S2 | +| main.rs:971:26:971:32 | x5.m1() | | main.rs:832:5:835:5 | Wrapper | +| main.rs:971:26:971:32 | x5.m1() | A | main.rs:886:5:887:14 | S2 | +| main.rs:972:13:972:14 | x6 | | main.rs:886:5:887:14 | S2 | +| main.rs:972:18:972:19 | S2 | | main.rs:886:5:887:14 | S2 | +| main.rs:973:18:973:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:973:18:973:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:973:18:973:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:973:18:973:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:973:26:973:27 | x6 | | main.rs:886:5:887:14 | S2 | +| main.rs:973:26:973:32 | x6.m2() | | main.rs:832:5:835:5 | Wrapper | +| main.rs:973:26:973:32 | x6.m2() | A | main.rs:886:5:887:14 | S2 | +| main.rs:975:13:975:22 | assoc_zero | | main.rs:889:5:890:14 | AT | +| main.rs:975:26:975:27 | AT | | main.rs:889:5:890:14 | AT | +| main.rs:975:26:975:38 | AT.get_zero() | | main.rs:889:5:890:14 | AT | +| main.rs:976:13:976:21 | assoc_one | | main.rs:883:5:884:13 | S | +| main.rs:976:25:976:26 | AT | | main.rs:889:5:890:14 | AT | +| main.rs:976:25:976:36 | AT.get_one() | | main.rs:883:5:884:13 | S | +| main.rs:977:13:977:21 | assoc_two | | main.rs:886:5:887:14 | S2 | +| main.rs:977:25:977:26 | AT | | main.rs:889:5:890:14 | AT | +| main.rs:977:25:977:36 | AT.get_two() | | main.rs:886:5:887:14 | S2 | +| main.rs:985:19:985:23 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:985:19:985:23 | SelfParam | &T | main.rs:982:5:986:5 | Self [trait Supertrait] | +| main.rs:985:26:985:32 | content | | main.rs:983:9:983:21 | Content | +| main.rs:990:24:990:28 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:990:24:990:28 | SelfParam | &T | main.rs:988:5:991:5 | Self [trait Subtrait] | +| main.rs:999:23:999:27 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:999:23:999:27 | SelfParam | &T | main.rs:993:5:1003:5 | Self [trait Subtrait2] | +| main.rs:999:30:999:31 | c1 | | main.rs:983:9:983:21 | Content | +| main.rs:999:49:999:50 | c2 | | main.rs:983:9:983:21 | Content | +| main.rs:1000:13:1000:16 | self | | file://:0:0:0:0 | & | +| main.rs:1000:13:1000:16 | self | &T | main.rs:993:5:1003:5 | Self [trait Subtrait2] | +| main.rs:1000:25:1000:26 | c1 | | main.rs:983:9:983:21 | Content | | main.rs:1001:13:1001:16 | self | | file://:0:0:0:0 | & | -| main.rs:1001:13:1001:16 | self | &T | main.rs:994:5:1004:5 | Self [trait Subtrait2] | -| main.rs:1001:25:1001:26 | c1 | | main.rs:984:9:984:21 | Content | -| main.rs:1002:13:1002:16 | self | | file://:0:0:0:0 | & | -| main.rs:1002:13:1002:16 | self | &T | main.rs:994:5:1004:5 | Self [trait Subtrait2] | -| main.rs:1002:25:1002:26 | c2 | | main.rs:984:9:984:21 | Content | -| main.rs:1010:19:1010:23 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1010:19:1010:23 | SelfParam | &T | main.rs:1006:5:1006:24 | MyType | -| main.rs:1010:19:1010:23 | SelfParam | &T.T | main.rs:1008:10:1008:10 | T | -| main.rs:1010:26:1010:33 | _content | | main.rs:1008:10:1008:10 | T | -| main.rs:1011:22:1011:42 | "Inserting content: \\n" | | file://:0:0:0:0 | & | -| main.rs:1011:22:1011:42 | "Inserting content: \\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1011:22:1011:42 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1011:22:1011:42 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1017:24:1017:28 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1017:24:1017:28 | SelfParam | &T | main.rs:1006:5:1006:24 | MyType | -| main.rs:1017:24:1017:28 | SelfParam | &T.T | main.rs:1015:10:1015:17 | T | -| main.rs:1017:48:1019:9 | { ... } | | main.rs:1015:10:1015:17 | T | -| main.rs:1018:13:1018:19 | (...) | | main.rs:1006:5:1006:24 | MyType | -| main.rs:1018:13:1018:19 | (...) | T | main.rs:1015:10:1015:17 | T | -| main.rs:1018:13:1018:21 | ... .0 | | main.rs:1015:10:1015:17 | T | -| main.rs:1018:13:1018:29 | ... .clone() | | main.rs:1015:10:1015:17 | T | -| main.rs:1018:14:1018:18 | * ... | | main.rs:1006:5:1006:24 | MyType | -| main.rs:1018:14:1018:18 | * ... | T | main.rs:1015:10:1015:17 | T | -| main.rs:1018:15:1018:18 | self | | file://:0:0:0:0 | & | -| main.rs:1018:15:1018:18 | self | &T | main.rs:1006:5:1006:24 | MyType | -| main.rs:1018:15:1018:18 | self | &T.T | main.rs:1015:10:1015:17 | T | -| main.rs:1022:33:1022:36 | item | | file://:0:0:0:0 | & | -| main.rs:1022:33:1022:36 | item | &T | main.rs:1022:20:1022:30 | T | -| main.rs:1022:57:1024:5 | { ... } | | main.rs:984:9:984:21 | Content | -| main.rs:1023:9:1023:12 | item | | file://:0:0:0:0 | & | -| main.rs:1023:9:1023:12 | item | &T | main.rs:1022:20:1022:30 | T | -| main.rs:1023:9:1023:26 | item.get_content() | | main.rs:984:9:984:21 | Content | -| main.rs:1026:35:1026:38 | item | | file://:0:0:0:0 | & | -| main.rs:1026:35:1026:38 | item | &T | main.rs:1026:21:1026:32 | T | -| main.rs:1026:45:1026:46 | c1 | | main.rs:984:9:984:21 | Content | -| main.rs:1026:61:1026:62 | c2 | | main.rs:984:9:984:21 | Content | -| main.rs:1026:77:1026:78 | c3 | | main.rs:984:9:984:21 | Content | +| main.rs:1001:13:1001:16 | self | &T | main.rs:993:5:1003:5 | Self [trait Subtrait2] | +| main.rs:1001:25:1001:26 | c2 | | main.rs:983:9:983:21 | Content | +| main.rs:1009:19:1009:23 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1009:19:1009:23 | SelfParam | &T | main.rs:1005:5:1005:24 | MyType | +| main.rs:1009:19:1009:23 | SelfParam | &T.T | main.rs:1007:10:1007:10 | T | +| main.rs:1009:26:1009:33 | _content | | main.rs:1007:10:1007:10 | T | +| main.rs:1010:22:1010:42 | "Inserting content: \\n" | | file://:0:0:0:0 | & | +| main.rs:1010:22:1010:42 | "Inserting content: \\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1010:22:1010:42 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1010:22:1010:42 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1016:24:1016:28 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1016:24:1016:28 | SelfParam | &T | main.rs:1005:5:1005:24 | MyType | +| main.rs:1016:24:1016:28 | SelfParam | &T.T | main.rs:1014:10:1014:17 | T | +| main.rs:1016:48:1018:9 | { ... } | | main.rs:1014:10:1014:17 | T | +| main.rs:1017:13:1017:19 | (...) | | main.rs:1005:5:1005:24 | MyType | +| main.rs:1017:13:1017:19 | (...) | T | main.rs:1014:10:1014:17 | T | +| main.rs:1017:13:1017:21 | ... .0 | | main.rs:1014:10:1014:17 | T | +| main.rs:1017:13:1017:29 | ... .clone() | | main.rs:1014:10:1014:17 | T | +| main.rs:1017:14:1017:18 | * ... | | main.rs:1005:5:1005:24 | MyType | +| main.rs:1017:14:1017:18 | * ... | T | main.rs:1014:10:1014:17 | T | +| main.rs:1017:15:1017:18 | self | | file://:0:0:0:0 | & | +| main.rs:1017:15:1017:18 | self | &T | main.rs:1005:5:1005:24 | MyType | +| main.rs:1017:15:1017:18 | self | &T.T | main.rs:1014:10:1014:17 | T | +| main.rs:1021:33:1021:36 | item | | file://:0:0:0:0 | & | +| main.rs:1021:33:1021:36 | item | &T | main.rs:1021:20:1021:30 | T | +| main.rs:1021:57:1023:5 | { ... } | | main.rs:983:9:983:21 | Content | +| main.rs:1022:9:1022:12 | item | | file://:0:0:0:0 | & | +| main.rs:1022:9:1022:12 | item | &T | main.rs:1021:20:1021:30 | T | +| main.rs:1022:9:1022:26 | item.get_content() | | main.rs:983:9:983:21 | Content | +| main.rs:1025:35:1025:38 | item | | file://:0:0:0:0 | & | +| main.rs:1025:35:1025:38 | item | &T | main.rs:1025:21:1025:32 | T | +| main.rs:1025:45:1025:46 | c1 | | main.rs:983:9:983:21 | Content | +| main.rs:1025:61:1025:62 | c2 | | main.rs:983:9:983:21 | Content | +| main.rs:1025:77:1025:78 | c3 | | main.rs:983:9:983:21 | Content | +| main.rs:1026:9:1026:12 | item | | file://:0:0:0:0 | & | +| main.rs:1026:9:1026:12 | item | &T | main.rs:1025:21:1025:32 | T | +| main.rs:1026:21:1026:22 | c1 | | main.rs:983:9:983:21 | Content | | main.rs:1027:9:1027:12 | item | | file://:0:0:0:0 | & | -| main.rs:1027:9:1027:12 | item | &T | main.rs:1026:21:1026:32 | T | -| main.rs:1027:21:1027:22 | c1 | | main.rs:984:9:984:21 | Content | -| main.rs:1028:9:1028:12 | item | | file://:0:0:0:0 | & | -| main.rs:1028:9:1028:12 | item | &T | main.rs:1026:21:1026:32 | T | -| main.rs:1028:25:1028:26 | c2 | | main.rs:984:9:984:21 | Content | -| main.rs:1028:29:1028:30 | c3 | | main.rs:984:9:984:21 | Content | -| main.rs:1032:13:1032:17 | item1 | | main.rs:1006:5:1006:24 | MyType | -| main.rs:1032:13:1032:17 | item1 | T | {EXTERNAL LOCATION} | i64 | -| main.rs:1032:21:1032:33 | MyType(...) | | main.rs:1006:5:1006:24 | MyType | -| main.rs:1032:21:1032:33 | MyType(...) | T | {EXTERNAL LOCATION} | i64 | -| main.rs:1032:28:1032:32 | 42i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1033:25:1033:29 | item1 | | main.rs:1006:5:1006:24 | MyType | -| main.rs:1033:25:1033:29 | item1 | T | {EXTERNAL LOCATION} | i64 | -| main.rs:1035:13:1035:17 | item2 | | main.rs:1006:5:1006:24 | MyType | -| main.rs:1035:13:1035:17 | item2 | T | {EXTERNAL LOCATION} | bool | -| main.rs:1035:21:1035:32 | MyType(...) | | main.rs:1006:5:1006:24 | MyType | -| main.rs:1035:21:1035:32 | MyType(...) | T | {EXTERNAL LOCATION} | bool | -| main.rs:1035:28:1035:31 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1036:37:1036:42 | &item2 | | file://:0:0:0:0 | & | -| main.rs:1036:37:1036:42 | &item2 | &T | main.rs:1006:5:1006:24 | MyType | -| main.rs:1036:37:1036:42 | &item2 | &T.T | {EXTERNAL LOCATION} | bool | -| main.rs:1036:38:1036:42 | item2 | | main.rs:1006:5:1006:24 | MyType | -| main.rs:1036:38:1036:42 | item2 | T | {EXTERNAL LOCATION} | bool | -| main.rs:1053:15:1053:18 | SelfParam | | main.rs:1041:5:1045:5 | MyEnum | -| main.rs:1053:15:1053:18 | SelfParam | A | main.rs:1052:10:1052:10 | T | -| main.rs:1053:26:1058:9 | { ... } | | main.rs:1052:10:1052:10 | T | -| main.rs:1054:13:1057:13 | match self { ... } | | main.rs:1052:10:1052:10 | T | -| main.rs:1054:19:1054:22 | self | | main.rs:1041:5:1045:5 | MyEnum | -| main.rs:1054:19:1054:22 | self | A | main.rs:1052:10:1052:10 | T | -| main.rs:1055:17:1055:29 | ...::C1(...) | | main.rs:1041:5:1045:5 | MyEnum | -| main.rs:1055:17:1055:29 | ...::C1(...) | A | main.rs:1052:10:1052:10 | T | -| main.rs:1055:28:1055:28 | a | | main.rs:1052:10:1052:10 | T | -| main.rs:1055:34:1055:34 | a | | main.rs:1052:10:1052:10 | T | -| main.rs:1056:17:1056:32 | ...::C2 {...} | | main.rs:1041:5:1045:5 | MyEnum | -| main.rs:1056:17:1056:32 | ...::C2 {...} | A | main.rs:1052:10:1052:10 | T | -| main.rs:1056:30:1056:30 | a | | main.rs:1052:10:1052:10 | T | -| main.rs:1056:37:1056:37 | a | | main.rs:1052:10:1052:10 | T | -| main.rs:1062:13:1062:13 | x | | main.rs:1041:5:1045:5 | MyEnum | -| main.rs:1062:13:1062:13 | x | A | main.rs:1047:5:1048:14 | S1 | -| main.rs:1062:17:1062:30 | ...::C1(...) | | main.rs:1041:5:1045:5 | MyEnum | -| main.rs:1062:17:1062:30 | ...::C1(...) | A | main.rs:1047:5:1048:14 | S1 | -| main.rs:1062:28:1062:29 | S1 | | main.rs:1047:5:1048:14 | S1 | -| main.rs:1063:13:1063:13 | y | | main.rs:1041:5:1045:5 | MyEnum | -| main.rs:1063:13:1063:13 | y | A | main.rs:1049:5:1050:14 | S2 | -| main.rs:1063:17:1063:36 | ...::C2 {...} | | main.rs:1041:5:1045:5 | MyEnum | -| main.rs:1063:17:1063:36 | ...::C2 {...} | A | main.rs:1049:5:1050:14 | S2 | -| main.rs:1063:33:1063:34 | S2 | | main.rs:1049:5:1050:14 | S2 | +| main.rs:1027:9:1027:12 | item | &T | main.rs:1025:21:1025:32 | T | +| main.rs:1027:25:1027:26 | c2 | | main.rs:983:9:983:21 | Content | +| main.rs:1027:29:1027:30 | c3 | | main.rs:983:9:983:21 | Content | +| main.rs:1031:13:1031:17 | item1 | | main.rs:1005:5:1005:24 | MyType | +| main.rs:1031:13:1031:17 | item1 | T | {EXTERNAL LOCATION} | i64 | +| main.rs:1031:21:1031:33 | MyType(...) | | main.rs:1005:5:1005:24 | MyType | +| main.rs:1031:21:1031:33 | MyType(...) | T | {EXTERNAL LOCATION} | i64 | +| main.rs:1031:28:1031:32 | 42i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1032:25:1032:29 | item1 | | main.rs:1005:5:1005:24 | MyType | +| main.rs:1032:25:1032:29 | item1 | T | {EXTERNAL LOCATION} | i64 | +| main.rs:1034:13:1034:17 | item2 | | main.rs:1005:5:1005:24 | MyType | +| main.rs:1034:13:1034:17 | item2 | T | {EXTERNAL LOCATION} | bool | +| main.rs:1034:21:1034:32 | MyType(...) | | main.rs:1005:5:1005:24 | MyType | +| main.rs:1034:21:1034:32 | MyType(...) | T | {EXTERNAL LOCATION} | bool | +| main.rs:1034:28:1034:31 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1035:37:1035:42 | &item2 | | file://:0:0:0:0 | & | +| main.rs:1035:37:1035:42 | &item2 | &T | main.rs:1005:5:1005:24 | MyType | +| main.rs:1035:37:1035:42 | &item2 | &T.T | {EXTERNAL LOCATION} | bool | +| main.rs:1035:38:1035:42 | item2 | | main.rs:1005:5:1005:24 | MyType | +| main.rs:1035:38:1035:42 | item2 | T | {EXTERNAL LOCATION} | bool | +| main.rs:1052:15:1052:18 | SelfParam | | main.rs:1040:5:1044:5 | MyEnum | +| main.rs:1052:15:1052:18 | SelfParam | A | main.rs:1051:10:1051:10 | T | +| main.rs:1052:26:1057:9 | { ... } | | main.rs:1051:10:1051:10 | T | +| main.rs:1053:13:1056:13 | match self { ... } | | main.rs:1051:10:1051:10 | T | +| main.rs:1053:19:1053:22 | self | | main.rs:1040:5:1044:5 | MyEnum | +| main.rs:1053:19:1053:22 | self | A | main.rs:1051:10:1051:10 | T | +| main.rs:1054:17:1054:29 | ...::C1(...) | | main.rs:1040:5:1044:5 | MyEnum | +| main.rs:1054:17:1054:29 | ...::C1(...) | A | main.rs:1051:10:1051:10 | T | +| main.rs:1054:28:1054:28 | a | | main.rs:1051:10:1051:10 | T | +| main.rs:1054:34:1054:34 | a | | main.rs:1051:10:1051:10 | T | +| main.rs:1055:17:1055:32 | ...::C2 {...} | | main.rs:1040:5:1044:5 | MyEnum | +| main.rs:1055:17:1055:32 | ...::C2 {...} | A | main.rs:1051:10:1051:10 | T | +| main.rs:1055:30:1055:30 | a | | main.rs:1051:10:1051:10 | T | +| main.rs:1055:37:1055:37 | a | | main.rs:1051:10:1051:10 | T | +| main.rs:1061:13:1061:13 | x | | main.rs:1040:5:1044:5 | MyEnum | +| main.rs:1061:13:1061:13 | x | A | main.rs:1046:5:1047:14 | S1 | +| main.rs:1061:17:1061:30 | ...::C1(...) | | main.rs:1040:5:1044:5 | MyEnum | +| main.rs:1061:17:1061:30 | ...::C1(...) | A | main.rs:1046:5:1047:14 | S1 | +| main.rs:1061:28:1061:29 | S1 | | main.rs:1046:5:1047:14 | S1 | +| main.rs:1062:13:1062:13 | y | | main.rs:1040:5:1044:5 | MyEnum | +| main.rs:1062:13:1062:13 | y | A | main.rs:1048:5:1049:14 | S2 | +| main.rs:1062:17:1062:36 | ...::C2 {...} | | main.rs:1040:5:1044:5 | MyEnum | +| main.rs:1062:17:1062:36 | ...::C2 {...} | A | main.rs:1048:5:1049:14 | S2 | +| main.rs:1062:33:1062:34 | S2 | | main.rs:1048:5:1049:14 | S2 | +| main.rs:1064:18:1064:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1064:18:1064:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1064:18:1064:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1064:18:1064:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1064:26:1064:26 | x | | main.rs:1040:5:1044:5 | MyEnum | +| main.rs:1064:26:1064:26 | x | A | main.rs:1046:5:1047:14 | S1 | +| main.rs:1064:26:1064:31 | x.m1() | | main.rs:1046:5:1047:14 | S1 | | main.rs:1065:18:1065:23 | "{:?}\\n" | | file://:0:0:0:0 | & | | main.rs:1065:18:1065:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | | main.rs:1065:18:1065:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | | main.rs:1065:18:1065:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1065:26:1065:26 | x | | main.rs:1041:5:1045:5 | MyEnum | -| main.rs:1065:26:1065:26 | x | A | main.rs:1047:5:1048:14 | S1 | -| main.rs:1065:26:1065:31 | x.m1() | | main.rs:1047:5:1048:14 | S1 | -| main.rs:1066:18:1066:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1066:18:1066:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1066:18:1066:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1066:18:1066:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1066:26:1066:26 | y | | main.rs:1041:5:1045:5 | MyEnum | -| main.rs:1066:26:1066:26 | y | A | main.rs:1049:5:1050:14 | S2 | -| main.rs:1066:26:1066:31 | y.m1() | | main.rs:1049:5:1050:14 | S2 | -| main.rs:1088:15:1088:18 | SelfParam | | main.rs:1086:5:1089:5 | Self [trait MyTrait1] | -| main.rs:1093:15:1093:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1093:15:1093:19 | SelfParam | &T | main.rs:1091:5:1103:5 | Self [trait MyTrait2] | -| main.rs:1096:9:1102:9 | { ... } | | main.rs:1091:20:1091:22 | Tr2 | -| main.rs:1097:13:1101:13 | if ... {...} else {...} | | main.rs:1091:20:1091:22 | Tr2 | -| main.rs:1097:16:1097:16 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1097:16:1097:20 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1097:20:1097:20 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1097:22:1099:13 | { ... } | | main.rs:1091:20:1091:22 | Tr2 | -| main.rs:1098:17:1098:20 | self | | file://:0:0:0:0 | & | -| main.rs:1098:17:1098:20 | self | &T | main.rs:1091:5:1103:5 | Self [trait MyTrait2] | -| main.rs:1098:17:1098:25 | self.m1() | | main.rs:1091:20:1091:22 | Tr2 | -| main.rs:1099:20:1101:13 | { ... } | | main.rs:1091:20:1091:22 | Tr2 | -| main.rs:1100:17:1100:31 | ...::m1(...) | | main.rs:1091:20:1091:22 | Tr2 | -| main.rs:1100:26:1100:30 | * ... | | main.rs:1091:5:1103:5 | Self [trait MyTrait2] | -| main.rs:1100:27:1100:30 | self | | file://:0:0:0:0 | & | -| main.rs:1100:27:1100:30 | self | &T | main.rs:1091:5:1103:5 | Self [trait MyTrait2] | -| main.rs:1107:15:1107:18 | SelfParam | | main.rs:1105:5:1117:5 | Self [trait MyTrait3] | -| main.rs:1110:9:1116:9 | { ... } | | main.rs:1105:20:1105:22 | Tr3 | -| main.rs:1111:13:1115:13 | if ... {...} else {...} | | main.rs:1105:20:1105:22 | Tr3 | -| main.rs:1111:16:1111:16 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1111:16:1111:20 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1111:20:1111:20 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1111:22:1113:13 | { ... } | | main.rs:1105:20:1105:22 | Tr3 | -| main.rs:1112:17:1112:20 | self | | main.rs:1105:5:1117:5 | Self [trait MyTrait3] | -| main.rs:1112:17:1112:25 | self.m2() | | main.rs:1071:5:1074:5 | MyThing | -| main.rs:1112:17:1112:25 | self.m2() | A | main.rs:1105:20:1105:22 | Tr3 | -| main.rs:1112:17:1112:27 | ... .a | | main.rs:1105:20:1105:22 | Tr3 | -| main.rs:1113:20:1115:13 | { ... } | | main.rs:1105:20:1105:22 | Tr3 | -| main.rs:1114:17:1114:31 | ...::m2(...) | | main.rs:1071:5:1074:5 | MyThing | -| main.rs:1114:17:1114:31 | ...::m2(...) | A | main.rs:1105:20:1105:22 | Tr3 | -| main.rs:1114:17:1114:33 | ... .a | | main.rs:1105:20:1105:22 | Tr3 | -| main.rs:1114:26:1114:30 | &self | | file://:0:0:0:0 | & | -| main.rs:1114:26:1114:30 | &self | &T | main.rs:1105:5:1117:5 | Self [trait MyTrait3] | -| main.rs:1114:27:1114:30 | self | | main.rs:1105:5:1117:5 | Self [trait MyTrait3] | -| main.rs:1121:15:1121:18 | SelfParam | | main.rs:1071:5:1074:5 | MyThing | -| main.rs:1121:15:1121:18 | SelfParam | A | main.rs:1119:10:1119:10 | T | -| main.rs:1121:26:1123:9 | { ... } | | main.rs:1119:10:1119:10 | T | -| main.rs:1122:13:1122:16 | self | | main.rs:1071:5:1074:5 | MyThing | -| main.rs:1122:13:1122:16 | self | A | main.rs:1119:10:1119:10 | T | -| main.rs:1122:13:1122:18 | self.a | | main.rs:1119:10:1119:10 | T | -| main.rs:1130:15:1130:18 | SelfParam | | main.rs:1076:5:1079:5 | MyThing2 | -| main.rs:1130:15:1130:18 | SelfParam | A | main.rs:1128:10:1128:10 | T | -| main.rs:1130:35:1132:9 | { ... } | | main.rs:1071:5:1074:5 | MyThing | -| main.rs:1130:35:1132:9 | { ... } | A | main.rs:1128:10:1128:10 | T | -| main.rs:1131:13:1131:33 | MyThing {...} | | main.rs:1071:5:1074:5 | MyThing | -| main.rs:1131:13:1131:33 | MyThing {...} | A | main.rs:1128:10:1128:10 | T | -| main.rs:1131:26:1131:29 | self | | main.rs:1076:5:1079:5 | MyThing2 | -| main.rs:1131:26:1131:29 | self | A | main.rs:1128:10:1128:10 | T | -| main.rs:1131:26:1131:31 | self.a | | main.rs:1128:10:1128:10 | T | -| main.rs:1139:44:1139:44 | x | | main.rs:1139:26:1139:41 | T2 | -| main.rs:1139:57:1141:5 | { ... } | | main.rs:1139:22:1139:23 | T1 | -| main.rs:1140:9:1140:9 | x | | main.rs:1139:26:1139:41 | T2 | -| main.rs:1140:9:1140:14 | x.m1() | | main.rs:1139:22:1139:23 | T1 | -| main.rs:1143:56:1143:56 | x | | main.rs:1143:39:1143:53 | T | -| main.rs:1145:13:1145:13 | a | | main.rs:1071:5:1074:5 | MyThing | -| main.rs:1145:13:1145:13 | a | A | main.rs:1081:5:1082:14 | S1 | -| main.rs:1145:17:1145:17 | x | | main.rs:1143:39:1143:53 | T | -| main.rs:1145:17:1145:22 | x.m1() | | main.rs:1071:5:1074:5 | MyThing | -| main.rs:1145:17:1145:22 | x.m1() | A | main.rs:1081:5:1082:14 | S1 | -| main.rs:1146:18:1146:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1146:18:1146:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1146:18:1146:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1146:18:1146:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1146:26:1146:26 | a | | main.rs:1071:5:1074:5 | MyThing | -| main.rs:1146:26:1146:26 | a | A | main.rs:1081:5:1082:14 | S1 | -| main.rs:1150:13:1150:13 | x | | main.rs:1071:5:1074:5 | MyThing | -| main.rs:1150:13:1150:13 | x | A | main.rs:1081:5:1082:14 | S1 | -| main.rs:1150:17:1150:33 | MyThing {...} | | main.rs:1071:5:1074:5 | MyThing | -| main.rs:1150:17:1150:33 | MyThing {...} | A | main.rs:1081:5:1082:14 | S1 | -| main.rs:1150:30:1150:31 | S1 | | main.rs:1081:5:1082:14 | S1 | -| main.rs:1151:13:1151:13 | y | | main.rs:1071:5:1074:5 | MyThing | -| main.rs:1151:13:1151:13 | y | A | main.rs:1083:5:1084:14 | S2 | -| main.rs:1151:17:1151:33 | MyThing {...} | | main.rs:1071:5:1074:5 | MyThing | -| main.rs:1151:17:1151:33 | MyThing {...} | A | main.rs:1083:5:1084:14 | S2 | -| main.rs:1151:30:1151:31 | S2 | | main.rs:1083:5:1084:14 | S2 | +| main.rs:1065:26:1065:26 | y | | main.rs:1040:5:1044:5 | MyEnum | +| main.rs:1065:26:1065:26 | y | A | main.rs:1048:5:1049:14 | S2 | +| main.rs:1065:26:1065:31 | y.m1() | | main.rs:1048:5:1049:14 | S2 | +| main.rs:1087:15:1087:18 | SelfParam | | main.rs:1085:5:1088:5 | Self [trait MyTrait1] | +| main.rs:1092:15:1092:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1092:15:1092:19 | SelfParam | &T | main.rs:1090:5:1102:5 | Self [trait MyTrait2] | +| main.rs:1095:9:1101:9 | { ... } | | main.rs:1090:20:1090:22 | Tr2 | +| main.rs:1096:13:1100:13 | if ... {...} else {...} | | main.rs:1090:20:1090:22 | Tr2 | +| main.rs:1096:16:1096:16 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1096:16:1096:20 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1096:20:1096:20 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1096:22:1098:13 | { ... } | | main.rs:1090:20:1090:22 | Tr2 | +| main.rs:1097:17:1097:20 | self | | file://:0:0:0:0 | & | +| main.rs:1097:17:1097:20 | self | &T | main.rs:1090:5:1102:5 | Self [trait MyTrait2] | +| main.rs:1097:17:1097:25 | self.m1() | | main.rs:1090:20:1090:22 | Tr2 | +| main.rs:1098:20:1100:13 | { ... } | | main.rs:1090:20:1090:22 | Tr2 | +| main.rs:1099:17:1099:31 | ...::m1(...) | | main.rs:1090:20:1090:22 | Tr2 | +| main.rs:1099:26:1099:30 | * ... | | main.rs:1090:5:1102:5 | Self [trait MyTrait2] | +| main.rs:1099:27:1099:30 | self | | file://:0:0:0:0 | & | +| main.rs:1099:27:1099:30 | self | &T | main.rs:1090:5:1102:5 | Self [trait MyTrait2] | +| main.rs:1106:15:1106:18 | SelfParam | | main.rs:1104:5:1116:5 | Self [trait MyTrait3] | +| main.rs:1109:9:1115:9 | { ... } | | main.rs:1104:20:1104:22 | Tr3 | +| main.rs:1110:13:1114:13 | if ... {...} else {...} | | main.rs:1104:20:1104:22 | Tr3 | +| main.rs:1110:16:1110:16 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1110:16:1110:20 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1110:20:1110:20 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1110:22:1112:13 | { ... } | | main.rs:1104:20:1104:22 | Tr3 | +| main.rs:1111:17:1111:20 | self | | main.rs:1104:5:1116:5 | Self [trait MyTrait3] | +| main.rs:1111:17:1111:25 | self.m2() | | main.rs:1070:5:1073:5 | MyThing | +| main.rs:1111:17:1111:25 | self.m2() | A | main.rs:1104:20:1104:22 | Tr3 | +| main.rs:1111:17:1111:27 | ... .a | | main.rs:1104:20:1104:22 | Tr3 | +| main.rs:1112:20:1114:13 | { ... } | | main.rs:1104:20:1104:22 | Tr3 | +| main.rs:1113:17:1113:31 | ...::m2(...) | | main.rs:1070:5:1073:5 | MyThing | +| main.rs:1113:17:1113:31 | ...::m2(...) | A | main.rs:1104:20:1104:22 | Tr3 | +| main.rs:1113:17:1113:33 | ... .a | | main.rs:1104:20:1104:22 | Tr3 | +| main.rs:1113:26:1113:30 | &self | | file://:0:0:0:0 | & | +| main.rs:1113:26:1113:30 | &self | &T | main.rs:1104:5:1116:5 | Self [trait MyTrait3] | +| main.rs:1113:27:1113:30 | self | | main.rs:1104:5:1116:5 | Self [trait MyTrait3] | +| main.rs:1120:15:1120:18 | SelfParam | | main.rs:1070:5:1073:5 | MyThing | +| main.rs:1120:15:1120:18 | SelfParam | A | main.rs:1118:10:1118:10 | T | +| main.rs:1120:26:1122:9 | { ... } | | main.rs:1118:10:1118:10 | T | +| main.rs:1121:13:1121:16 | self | | main.rs:1070:5:1073:5 | MyThing | +| main.rs:1121:13:1121:16 | self | A | main.rs:1118:10:1118:10 | T | +| main.rs:1121:13:1121:18 | self.a | | main.rs:1118:10:1118:10 | T | +| main.rs:1129:15:1129:18 | SelfParam | | main.rs:1075:5:1078:5 | MyThing2 | +| main.rs:1129:15:1129:18 | SelfParam | A | main.rs:1127:10:1127:10 | T | +| main.rs:1129:35:1131:9 | { ... } | | main.rs:1070:5:1073:5 | MyThing | +| main.rs:1129:35:1131:9 | { ... } | A | main.rs:1127:10:1127:10 | T | +| main.rs:1130:13:1130:33 | MyThing {...} | | main.rs:1070:5:1073:5 | MyThing | +| main.rs:1130:13:1130:33 | MyThing {...} | A | main.rs:1127:10:1127:10 | T | +| main.rs:1130:26:1130:29 | self | | main.rs:1075:5:1078:5 | MyThing2 | +| main.rs:1130:26:1130:29 | self | A | main.rs:1127:10:1127:10 | T | +| main.rs:1130:26:1130:31 | self.a | | main.rs:1127:10:1127:10 | T | +| main.rs:1138:44:1138:44 | x | | main.rs:1138:26:1138:41 | T2 | +| main.rs:1138:57:1140:5 | { ... } | | main.rs:1138:22:1138:23 | T1 | +| main.rs:1139:9:1139:9 | x | | main.rs:1138:26:1138:41 | T2 | +| main.rs:1139:9:1139:14 | x.m1() | | main.rs:1138:22:1138:23 | T1 | +| main.rs:1142:56:1142:56 | x | | main.rs:1142:39:1142:53 | T | +| main.rs:1144:13:1144:13 | a | | main.rs:1070:5:1073:5 | MyThing | +| main.rs:1144:13:1144:13 | a | A | main.rs:1080:5:1081:14 | S1 | +| main.rs:1144:17:1144:17 | x | | main.rs:1142:39:1142:53 | T | +| main.rs:1144:17:1144:22 | x.m1() | | main.rs:1070:5:1073:5 | MyThing | +| main.rs:1144:17:1144:22 | x.m1() | A | main.rs:1080:5:1081:14 | S1 | +| main.rs:1145:18:1145:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1145:18:1145:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1145:18:1145:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1145:18:1145:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1145:26:1145:26 | a | | main.rs:1070:5:1073:5 | MyThing | +| main.rs:1145:26:1145:26 | a | A | main.rs:1080:5:1081:14 | S1 | +| main.rs:1149:13:1149:13 | x | | main.rs:1070:5:1073:5 | MyThing | +| main.rs:1149:13:1149:13 | x | A | main.rs:1080:5:1081:14 | S1 | +| main.rs:1149:17:1149:33 | MyThing {...} | | main.rs:1070:5:1073:5 | MyThing | +| main.rs:1149:17:1149:33 | MyThing {...} | A | main.rs:1080:5:1081:14 | S1 | +| main.rs:1149:30:1149:31 | S1 | | main.rs:1080:5:1081:14 | S1 | +| main.rs:1150:13:1150:13 | y | | main.rs:1070:5:1073:5 | MyThing | +| main.rs:1150:13:1150:13 | y | A | main.rs:1082:5:1083:14 | S2 | +| main.rs:1150:17:1150:33 | MyThing {...} | | main.rs:1070:5:1073:5 | MyThing | +| main.rs:1150:17:1150:33 | MyThing {...} | A | main.rs:1082:5:1083:14 | S2 | +| main.rs:1150:30:1150:31 | S2 | | main.rs:1082:5:1083:14 | S2 | +| main.rs:1152:18:1152:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1152:18:1152:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1152:18:1152:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1152:18:1152:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1152:26:1152:26 | x | | main.rs:1070:5:1073:5 | MyThing | +| main.rs:1152:26:1152:26 | x | A | main.rs:1080:5:1081:14 | S1 | +| main.rs:1152:26:1152:31 | x.m1() | | main.rs:1080:5:1081:14 | S1 | | main.rs:1153:18:1153:23 | "{:?}\\n" | | file://:0:0:0:0 | & | | main.rs:1153:18:1153:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | | main.rs:1153:18:1153:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | | main.rs:1153:18:1153:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1153:26:1153:26 | x | | main.rs:1071:5:1074:5 | MyThing | -| main.rs:1153:26:1153:26 | x | A | main.rs:1081:5:1082:14 | S1 | -| main.rs:1153:26:1153:31 | x.m1() | | main.rs:1081:5:1082:14 | S1 | -| main.rs:1154:18:1154:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1154:18:1154:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1154:18:1154:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1154:18:1154:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1154:26:1154:26 | y | | main.rs:1071:5:1074:5 | MyThing | -| main.rs:1154:26:1154:26 | y | A | main.rs:1083:5:1084:14 | S2 | -| main.rs:1154:26:1154:31 | y.m1() | | main.rs:1083:5:1084:14 | S2 | -| main.rs:1156:13:1156:13 | x | | main.rs:1071:5:1074:5 | MyThing | -| main.rs:1156:13:1156:13 | x | A | main.rs:1081:5:1082:14 | S1 | -| main.rs:1156:17:1156:33 | MyThing {...} | | main.rs:1071:5:1074:5 | MyThing | -| main.rs:1156:17:1156:33 | MyThing {...} | A | main.rs:1081:5:1082:14 | S1 | -| main.rs:1156:30:1156:31 | S1 | | main.rs:1081:5:1082:14 | S1 | -| main.rs:1157:13:1157:13 | y | | main.rs:1071:5:1074:5 | MyThing | -| main.rs:1157:13:1157:13 | y | A | main.rs:1083:5:1084:14 | S2 | -| main.rs:1157:17:1157:33 | MyThing {...} | | main.rs:1071:5:1074:5 | MyThing | -| main.rs:1157:17:1157:33 | MyThing {...} | A | main.rs:1083:5:1084:14 | S2 | -| main.rs:1157:30:1157:31 | S2 | | main.rs:1083:5:1084:14 | S2 | +| main.rs:1153:26:1153:26 | y | | main.rs:1070:5:1073:5 | MyThing | +| main.rs:1153:26:1153:26 | y | A | main.rs:1082:5:1083:14 | S2 | +| main.rs:1153:26:1153:31 | y.m1() | | main.rs:1082:5:1083:14 | S2 | +| main.rs:1155:13:1155:13 | x | | main.rs:1070:5:1073:5 | MyThing | +| main.rs:1155:13:1155:13 | x | A | main.rs:1080:5:1081:14 | S1 | +| main.rs:1155:17:1155:33 | MyThing {...} | | main.rs:1070:5:1073:5 | MyThing | +| main.rs:1155:17:1155:33 | MyThing {...} | A | main.rs:1080:5:1081:14 | S1 | +| main.rs:1155:30:1155:31 | S1 | | main.rs:1080:5:1081:14 | S1 | +| main.rs:1156:13:1156:13 | y | | main.rs:1070:5:1073:5 | MyThing | +| main.rs:1156:13:1156:13 | y | A | main.rs:1082:5:1083:14 | S2 | +| main.rs:1156:17:1156:33 | MyThing {...} | | main.rs:1070:5:1073:5 | MyThing | +| main.rs:1156:17:1156:33 | MyThing {...} | A | main.rs:1082:5:1083:14 | S2 | +| main.rs:1156:30:1156:31 | S2 | | main.rs:1082:5:1083:14 | S2 | +| main.rs:1158:18:1158:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1158:18:1158:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1158:18:1158:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1158:18:1158:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1158:26:1158:26 | x | | main.rs:1070:5:1073:5 | MyThing | +| main.rs:1158:26:1158:26 | x | A | main.rs:1080:5:1081:14 | S1 | +| main.rs:1158:26:1158:31 | x.m2() | | main.rs:1080:5:1081:14 | S1 | | main.rs:1159:18:1159:23 | "{:?}\\n" | | file://:0:0:0:0 | & | | main.rs:1159:18:1159:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | | main.rs:1159:18:1159:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | | main.rs:1159:18:1159:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1159:26:1159:26 | x | | main.rs:1071:5:1074:5 | MyThing | -| main.rs:1159:26:1159:26 | x | A | main.rs:1081:5:1082:14 | S1 | -| main.rs:1159:26:1159:31 | x.m2() | | main.rs:1081:5:1082:14 | S1 | -| main.rs:1160:18:1160:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1160:18:1160:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1160:18:1160:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1160:18:1160:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1160:26:1160:26 | y | | main.rs:1071:5:1074:5 | MyThing | -| main.rs:1160:26:1160:26 | y | A | main.rs:1083:5:1084:14 | S2 | -| main.rs:1160:26:1160:31 | y.m2() | | main.rs:1083:5:1084:14 | S2 | -| main.rs:1162:13:1162:13 | x | | main.rs:1076:5:1079:5 | MyThing2 | -| main.rs:1162:13:1162:13 | x | A | main.rs:1081:5:1082:14 | S1 | -| main.rs:1162:17:1162:34 | MyThing2 {...} | | main.rs:1076:5:1079:5 | MyThing2 | -| main.rs:1162:17:1162:34 | MyThing2 {...} | A | main.rs:1081:5:1082:14 | S1 | -| main.rs:1162:31:1162:32 | S1 | | main.rs:1081:5:1082:14 | S1 | -| main.rs:1163:13:1163:13 | y | | main.rs:1076:5:1079:5 | MyThing2 | -| main.rs:1163:13:1163:13 | y | A | main.rs:1083:5:1084:14 | S2 | -| main.rs:1163:17:1163:34 | MyThing2 {...} | | main.rs:1076:5:1079:5 | MyThing2 | -| main.rs:1163:17:1163:34 | MyThing2 {...} | A | main.rs:1083:5:1084:14 | S2 | -| main.rs:1163:31:1163:32 | S2 | | main.rs:1083:5:1084:14 | S2 | +| main.rs:1159:26:1159:26 | y | | main.rs:1070:5:1073:5 | MyThing | +| main.rs:1159:26:1159:26 | y | A | main.rs:1082:5:1083:14 | S2 | +| main.rs:1159:26:1159:31 | y.m2() | | main.rs:1082:5:1083:14 | S2 | +| main.rs:1161:13:1161:13 | x | | main.rs:1075:5:1078:5 | MyThing2 | +| main.rs:1161:13:1161:13 | x | A | main.rs:1080:5:1081:14 | S1 | +| main.rs:1161:17:1161:34 | MyThing2 {...} | | main.rs:1075:5:1078:5 | MyThing2 | +| main.rs:1161:17:1161:34 | MyThing2 {...} | A | main.rs:1080:5:1081:14 | S1 | +| main.rs:1161:31:1161:32 | S1 | | main.rs:1080:5:1081:14 | S1 | +| main.rs:1162:13:1162:13 | y | | main.rs:1075:5:1078:5 | MyThing2 | +| main.rs:1162:13:1162:13 | y | A | main.rs:1082:5:1083:14 | S2 | +| main.rs:1162:17:1162:34 | MyThing2 {...} | | main.rs:1075:5:1078:5 | MyThing2 | +| main.rs:1162:17:1162:34 | MyThing2 {...} | A | main.rs:1082:5:1083:14 | S2 | +| main.rs:1162:31:1162:32 | S2 | | main.rs:1082:5:1083:14 | S2 | +| main.rs:1164:18:1164:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1164:18:1164:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1164:18:1164:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1164:18:1164:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1164:26:1164:26 | x | | main.rs:1075:5:1078:5 | MyThing2 | +| main.rs:1164:26:1164:26 | x | A | main.rs:1080:5:1081:14 | S1 | +| main.rs:1164:26:1164:31 | x.m3() | | main.rs:1080:5:1081:14 | S1 | | main.rs:1165:18:1165:23 | "{:?}\\n" | | file://:0:0:0:0 | & | | main.rs:1165:18:1165:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | | main.rs:1165:18:1165:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | | main.rs:1165:18:1165:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1165:26:1165:26 | x | | main.rs:1076:5:1079:5 | MyThing2 | -| main.rs:1165:26:1165:26 | x | A | main.rs:1081:5:1082:14 | S1 | -| main.rs:1165:26:1165:31 | x.m3() | | main.rs:1081:5:1082:14 | S1 | -| main.rs:1166:18:1166:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1166:18:1166:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1166:18:1166:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1166:18:1166:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1166:26:1166:26 | y | | main.rs:1076:5:1079:5 | MyThing2 | -| main.rs:1166:26:1166:26 | y | A | main.rs:1083:5:1084:14 | S2 | -| main.rs:1166:26:1166:31 | y.m3() | | main.rs:1083:5:1084:14 | S2 | -| main.rs:1168:13:1168:13 | x | | main.rs:1071:5:1074:5 | MyThing | -| main.rs:1168:13:1168:13 | x | A | main.rs:1081:5:1082:14 | S1 | -| main.rs:1168:17:1168:33 | MyThing {...} | | main.rs:1071:5:1074:5 | MyThing | -| main.rs:1168:17:1168:33 | MyThing {...} | A | main.rs:1081:5:1082:14 | S1 | -| main.rs:1168:30:1168:31 | S1 | | main.rs:1081:5:1082:14 | S1 | -| main.rs:1169:13:1169:13 | s | | main.rs:1081:5:1082:14 | S1 | -| main.rs:1169:17:1169:32 | call_trait_m1(...) | | main.rs:1081:5:1082:14 | S1 | -| main.rs:1169:31:1169:31 | x | | main.rs:1071:5:1074:5 | MyThing | -| main.rs:1169:31:1169:31 | x | A | main.rs:1081:5:1082:14 | S1 | -| main.rs:1171:13:1171:13 | x | | main.rs:1076:5:1079:5 | MyThing2 | -| main.rs:1171:13:1171:13 | x | A | main.rs:1083:5:1084:14 | S2 | -| main.rs:1171:17:1171:34 | MyThing2 {...} | | main.rs:1076:5:1079:5 | MyThing2 | -| main.rs:1171:17:1171:34 | MyThing2 {...} | A | main.rs:1083:5:1084:14 | S2 | -| main.rs:1171:31:1171:32 | S2 | | main.rs:1083:5:1084:14 | S2 | -| main.rs:1172:13:1172:13 | s | | main.rs:1071:5:1074:5 | MyThing | -| main.rs:1172:13:1172:13 | s | A | main.rs:1083:5:1084:14 | S2 | -| main.rs:1172:17:1172:32 | call_trait_m1(...) | | main.rs:1071:5:1074:5 | MyThing | -| main.rs:1172:17:1172:32 | call_trait_m1(...) | A | main.rs:1083:5:1084:14 | S2 | -| main.rs:1172:31:1172:31 | x | | main.rs:1076:5:1079:5 | MyThing2 | -| main.rs:1172:31:1172:31 | x | A | main.rs:1083:5:1084:14 | S2 | -| main.rs:1189:22:1189:22 | x | | file://:0:0:0:0 | & | -| main.rs:1189:22:1189:22 | x | &T | main.rs:1189:11:1189:19 | T | -| main.rs:1189:35:1191:5 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1189:35:1191:5 | { ... } | &T | main.rs:1189:11:1189:19 | T | -| main.rs:1190:9:1190:9 | x | | file://:0:0:0:0 | & | -| main.rs:1190:9:1190:9 | x | &T | main.rs:1189:11:1189:19 | T | -| main.rs:1194:17:1194:20 | SelfParam | | main.rs:1179:5:1180:14 | S1 | -| main.rs:1194:29:1196:9 | { ... } | | main.rs:1182:5:1183:14 | S2 | -| main.rs:1195:13:1195:14 | S2 | | main.rs:1182:5:1183:14 | S2 | -| main.rs:1199:21:1199:21 | x | | main.rs:1199:13:1199:14 | T1 | -| main.rs:1202:5:1204:5 | { ... } | | main.rs:1199:17:1199:18 | T2 | -| main.rs:1203:9:1203:9 | x | | main.rs:1199:13:1199:14 | T1 | -| main.rs:1203:9:1203:16 | x.into() | | main.rs:1199:17:1199:18 | T2 | -| main.rs:1207:13:1207:13 | x | | main.rs:1179:5:1180:14 | S1 | -| main.rs:1207:17:1207:18 | S1 | | main.rs:1179:5:1180:14 | S1 | -| main.rs:1208:18:1208:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1208:18:1208:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1208:18:1208:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1208:18:1208:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1208:26:1208:31 | id(...) | | file://:0:0:0:0 | & | -| main.rs:1208:26:1208:31 | id(...) | &T | main.rs:1179:5:1180:14 | S1 | -| main.rs:1208:29:1208:30 | &x | | file://:0:0:0:0 | & | -| main.rs:1208:29:1208:30 | &x | &T | main.rs:1179:5:1180:14 | S1 | -| main.rs:1208:30:1208:30 | x | | main.rs:1179:5:1180:14 | S1 | -| main.rs:1210:13:1210:13 | x | | main.rs:1179:5:1180:14 | S1 | -| main.rs:1210:17:1210:18 | S1 | | main.rs:1179:5:1180:14 | S1 | -| main.rs:1211:18:1211:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1211:18:1211:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1211:18:1211:37 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1211:18:1211:37 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1211:26:1211:37 | id::<...>(...) | | file://:0:0:0:0 | & | -| main.rs:1211:26:1211:37 | id::<...>(...) | &T | main.rs:1179:5:1180:14 | S1 | -| main.rs:1211:35:1211:36 | &x | | file://:0:0:0:0 | & | -| main.rs:1211:35:1211:36 | &x | &T | main.rs:1179:5:1180:14 | S1 | -| main.rs:1211:36:1211:36 | x | | main.rs:1179:5:1180:14 | S1 | -| main.rs:1213:13:1213:13 | x | | main.rs:1179:5:1180:14 | S1 | -| main.rs:1213:13:1213:13 | x | | main.rs:1185:5:1185:25 | dyn Trait | -| main.rs:1213:17:1213:18 | S1 | | main.rs:1179:5:1180:14 | S1 | -| main.rs:1213:17:1213:18 | S1 | | main.rs:1185:5:1185:25 | dyn Trait | -| main.rs:1215:18:1215:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1215:18:1215:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1215:18:1215:44 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1215:18:1215:44 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1215:26:1215:44 | id::<...>(...) | | file://:0:0:0:0 | & | -| main.rs:1215:26:1215:44 | id::<...>(...) | &T | main.rs:1185:5:1185:25 | dyn Trait | -| main.rs:1215:42:1215:43 | &x | | file://:0:0:0:0 | & | -| main.rs:1215:42:1215:43 | &x | &T | main.rs:1179:5:1180:14 | S1 | -| main.rs:1215:42:1215:43 | &x | &T | main.rs:1185:5:1185:25 | dyn Trait | -| main.rs:1215:43:1215:43 | x | | main.rs:1179:5:1180:14 | S1 | -| main.rs:1215:43:1215:43 | x | | main.rs:1185:5:1185:25 | dyn Trait | -| main.rs:1217:13:1217:13 | x | | main.rs:1179:5:1180:14 | S1 | -| main.rs:1217:17:1217:18 | S1 | | main.rs:1179:5:1180:14 | S1 | -| main.rs:1218:9:1218:25 | into::<...>(...) | | main.rs:1182:5:1183:14 | S2 | -| main.rs:1218:24:1218:24 | x | | main.rs:1179:5:1180:14 | S1 | -| main.rs:1220:13:1220:13 | x | | main.rs:1179:5:1180:14 | S1 | -| main.rs:1220:17:1220:18 | S1 | | main.rs:1179:5:1180:14 | S1 | -| main.rs:1221:13:1221:13 | y | | main.rs:1182:5:1183:14 | S2 | -| main.rs:1221:21:1221:27 | into(...) | | main.rs:1182:5:1183:14 | S2 | -| main.rs:1221:26:1221:26 | x | | main.rs:1179:5:1180:14 | S1 | -| main.rs:1235:22:1235:25 | SelfParam | | main.rs:1226:5:1232:5 | PairOption | -| main.rs:1235:22:1235:25 | SelfParam | Fst | main.rs:1234:10:1234:12 | Fst | -| main.rs:1235:22:1235:25 | SelfParam | Snd | main.rs:1234:15:1234:17 | Snd | -| main.rs:1235:35:1242:9 | { ... } | | main.rs:1234:15:1234:17 | Snd | -| main.rs:1236:13:1241:13 | match self { ... } | | main.rs:1234:15:1234:17 | Snd | -| main.rs:1236:19:1236:22 | self | | main.rs:1226:5:1232:5 | PairOption | -| main.rs:1236:19:1236:22 | self | Fst | main.rs:1234:10:1234:12 | Fst | -| main.rs:1236:19:1236:22 | self | Snd | main.rs:1234:15:1234:17 | Snd | -| main.rs:1237:17:1237:38 | ...::PairNone(...) | | main.rs:1226:5:1232:5 | PairOption | -| main.rs:1237:17:1237:38 | ...::PairNone(...) | Fst | main.rs:1234:10:1234:12 | Fst | -| main.rs:1237:17:1237:38 | ...::PairNone(...) | Snd | main.rs:1234:15:1234:17 | Snd | -| main.rs:1237:43:1237:82 | MacroExpr | | main.rs:1234:15:1234:17 | Snd | -| main.rs:1237:50:1237:81 | "PairNone has no second elemen... | | file://:0:0:0:0 | & | -| main.rs:1237:50:1237:81 | "PairNone has no second elemen... | &T | {EXTERNAL LOCATION} | str | -| main.rs:1237:50:1237:81 | ...::panic_fmt(...) | | file://:0:0:0:0 | ! | -| main.rs:1237:50:1237:81 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1237:50:1237:81 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1237:50:1237:81 | MacroExpr | | main.rs:1234:15:1234:17 | Snd | -| main.rs:1237:50:1237:81 | { ... } | | main.rs:1234:15:1234:17 | Snd | -| main.rs:1238:17:1238:38 | ...::PairFst(...) | | main.rs:1226:5:1232:5 | PairOption | -| main.rs:1238:17:1238:38 | ...::PairFst(...) | Fst | main.rs:1234:10:1234:12 | Fst | -| main.rs:1238:17:1238:38 | ...::PairFst(...) | Snd | main.rs:1234:15:1234:17 | Snd | -| main.rs:1238:37:1238:37 | _ | | main.rs:1234:10:1234:12 | Fst | -| main.rs:1238:43:1238:81 | MacroExpr | | main.rs:1234:15:1234:17 | Snd | -| main.rs:1238:50:1238:80 | "PairFst has no second element... | | file://:0:0:0:0 | & | -| main.rs:1238:50:1238:80 | "PairFst has no second element... | &T | {EXTERNAL LOCATION} | str | -| main.rs:1238:50:1238:80 | ...::panic_fmt(...) | | file://:0:0:0:0 | ! | -| main.rs:1238:50:1238:80 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1238:50:1238:80 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1238:50:1238:80 | MacroExpr | | main.rs:1234:15:1234:17 | Snd | -| main.rs:1238:50:1238:80 | { ... } | | main.rs:1234:15:1234:17 | Snd | -| main.rs:1239:17:1239:40 | ...::PairSnd(...) | | main.rs:1226:5:1232:5 | PairOption | -| main.rs:1239:17:1239:40 | ...::PairSnd(...) | Fst | main.rs:1234:10:1234:12 | Fst | -| main.rs:1239:17:1239:40 | ...::PairSnd(...) | Snd | main.rs:1234:15:1234:17 | Snd | -| main.rs:1239:37:1239:39 | snd | | main.rs:1234:15:1234:17 | Snd | -| main.rs:1239:45:1239:47 | snd | | main.rs:1234:15:1234:17 | Snd | -| main.rs:1240:17:1240:44 | ...::PairBoth(...) | | main.rs:1226:5:1232:5 | PairOption | -| main.rs:1240:17:1240:44 | ...::PairBoth(...) | Fst | main.rs:1234:10:1234:12 | Fst | -| main.rs:1240:17:1240:44 | ...::PairBoth(...) | Snd | main.rs:1234:15:1234:17 | Snd | -| main.rs:1240:38:1240:38 | _ | | main.rs:1234:10:1234:12 | Fst | -| main.rs:1240:41:1240:43 | snd | | main.rs:1234:15:1234:17 | Snd | -| main.rs:1240:49:1240:51 | snd | | main.rs:1234:15:1234:17 | Snd | -| main.rs:1266:10:1266:10 | t | | main.rs:1226:5:1232:5 | PairOption | -| main.rs:1266:10:1266:10 | t | Fst | main.rs:1248:5:1249:14 | S2 | -| main.rs:1266:10:1266:10 | t | Snd | main.rs:1226:5:1232:5 | PairOption | -| main.rs:1266:10:1266:10 | t | Snd.Fst | main.rs:1248:5:1249:14 | S2 | -| main.rs:1266:10:1266:10 | t | Snd.Snd | main.rs:1251:5:1252:14 | S3 | -| main.rs:1267:13:1267:13 | x | | main.rs:1251:5:1252:14 | S3 | -| main.rs:1267:17:1267:17 | t | | main.rs:1226:5:1232:5 | PairOption | -| main.rs:1267:17:1267:17 | t | Fst | main.rs:1248:5:1249:14 | S2 | -| main.rs:1267:17:1267:17 | t | Snd | main.rs:1226:5:1232:5 | PairOption | -| main.rs:1267:17:1267:17 | t | Snd.Fst | main.rs:1248:5:1249:14 | S2 | -| main.rs:1267:17:1267:17 | t | Snd.Snd | main.rs:1251:5:1252:14 | S3 | -| main.rs:1267:17:1267:29 | t.unwrapSnd() | | main.rs:1226:5:1232:5 | PairOption | -| main.rs:1267:17:1267:29 | t.unwrapSnd() | Fst | main.rs:1248:5:1249:14 | S2 | -| main.rs:1267:17:1267:29 | t.unwrapSnd() | Snd | main.rs:1251:5:1252:14 | S3 | -| main.rs:1267:17:1267:41 | ... .unwrapSnd() | | main.rs:1251:5:1252:14 | S3 | -| main.rs:1268:18:1268:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1268:18:1268:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1268:18:1268:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1268:18:1268:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1268:26:1268:26 | x | | main.rs:1251:5:1252:14 | S3 | -| main.rs:1283:22:1283:25 | SelfParam | | main.rs:1281:5:1284:5 | Self [trait TraitWithAssocType] | -| main.rs:1291:22:1291:25 | SelfParam | | main.rs:1279:5:1279:28 | GenS | -| main.rs:1291:22:1291:25 | SelfParam | GenT | main.rs:1286:10:1286:15 | Output | -| main.rs:1291:44:1293:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1291:44:1293:9 | { ... } | E | main.rs:1286:10:1286:15 | Output | -| main.rs:1291:44:1293:9 | { ... } | T | main.rs:1286:10:1286:15 | Output | -| main.rs:1292:13:1292:22 | Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1292:13:1292:22 | Ok(...) | E | main.rs:1286:10:1286:15 | Output | -| main.rs:1292:13:1292:22 | Ok(...) | T | main.rs:1286:10:1286:15 | Output | -| main.rs:1292:16:1292:19 | self | | main.rs:1279:5:1279:28 | GenS | -| main.rs:1292:16:1292:19 | self | GenT | main.rs:1286:10:1286:15 | Output | -| main.rs:1292:16:1292:21 | self.0 | | main.rs:1286:10:1286:15 | Output | -| main.rs:1298:13:1298:14 | p1 | | main.rs:1226:5:1232:5 | PairOption | -| main.rs:1298:13:1298:14 | p1 | Fst | main.rs:1245:5:1246:14 | S1 | -| main.rs:1298:13:1298:14 | p1 | Snd | main.rs:1248:5:1249:14 | S2 | -| main.rs:1298:26:1298:53 | ...::PairBoth(...) | | main.rs:1226:5:1232:5 | PairOption | -| main.rs:1298:26:1298:53 | ...::PairBoth(...) | Fst | main.rs:1245:5:1246:14 | S1 | -| main.rs:1298:26:1298:53 | ...::PairBoth(...) | Snd | main.rs:1248:5:1249:14 | S2 | -| main.rs:1298:47:1298:48 | S1 | | main.rs:1245:5:1246:14 | S1 | -| main.rs:1298:51:1298:52 | S2 | | main.rs:1248:5:1249:14 | S2 | -| main.rs:1299:18:1299:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1299:18:1299:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1299:18:1299:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1299:18:1299:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1299:26:1299:27 | p1 | | main.rs:1226:5:1232:5 | PairOption | -| main.rs:1299:26:1299:27 | p1 | Fst | main.rs:1245:5:1246:14 | S1 | -| main.rs:1299:26:1299:27 | p1 | Snd | main.rs:1248:5:1249:14 | S2 | -| main.rs:1302:13:1302:14 | p2 | | main.rs:1226:5:1232:5 | PairOption | -| main.rs:1302:13:1302:14 | p2 | Fst | main.rs:1245:5:1246:14 | S1 | -| main.rs:1302:13:1302:14 | p2 | Snd | main.rs:1248:5:1249:14 | S2 | -| main.rs:1302:26:1302:47 | ...::PairNone(...) | | main.rs:1226:5:1232:5 | PairOption | -| main.rs:1302:26:1302:47 | ...::PairNone(...) | Fst | main.rs:1245:5:1246:14 | S1 | -| main.rs:1302:26:1302:47 | ...::PairNone(...) | Snd | main.rs:1248:5:1249:14 | S2 | -| main.rs:1303:18:1303:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1303:18:1303:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1303:18:1303:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1303:18:1303:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1303:26:1303:27 | p2 | | main.rs:1226:5:1232:5 | PairOption | -| main.rs:1303:26:1303:27 | p2 | Fst | main.rs:1245:5:1246:14 | S1 | -| main.rs:1303:26:1303:27 | p2 | Snd | main.rs:1248:5:1249:14 | S2 | -| main.rs:1306:13:1306:14 | p3 | | main.rs:1226:5:1232:5 | PairOption | -| main.rs:1306:13:1306:14 | p3 | Fst | main.rs:1248:5:1249:14 | S2 | -| main.rs:1306:13:1306:14 | p3 | Snd | main.rs:1251:5:1252:14 | S3 | -| main.rs:1306:34:1306:56 | ...::PairSnd(...) | | main.rs:1226:5:1232:5 | PairOption | -| main.rs:1306:34:1306:56 | ...::PairSnd(...) | Fst | main.rs:1248:5:1249:14 | S2 | -| main.rs:1306:34:1306:56 | ...::PairSnd(...) | Snd | main.rs:1251:5:1252:14 | S3 | -| main.rs:1306:54:1306:55 | S3 | | main.rs:1251:5:1252:14 | S3 | -| main.rs:1307:18:1307:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1307:18:1307:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1307:18:1307:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1307:18:1307:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1307:26:1307:27 | p3 | | main.rs:1226:5:1232:5 | PairOption | -| main.rs:1307:26:1307:27 | p3 | Fst | main.rs:1248:5:1249:14 | S2 | -| main.rs:1307:26:1307:27 | p3 | Snd | main.rs:1251:5:1252:14 | S3 | -| main.rs:1310:13:1310:14 | p3 | | main.rs:1226:5:1232:5 | PairOption | -| main.rs:1310:13:1310:14 | p3 | Fst | main.rs:1248:5:1249:14 | S2 | -| main.rs:1310:13:1310:14 | p3 | Snd | main.rs:1251:5:1252:14 | S3 | -| main.rs:1310:35:1310:56 | ...::PairNone(...) | | main.rs:1226:5:1232:5 | PairOption | -| main.rs:1310:35:1310:56 | ...::PairNone(...) | Fst | main.rs:1248:5:1249:14 | S2 | -| main.rs:1310:35:1310:56 | ...::PairNone(...) | Snd | main.rs:1251:5:1252:14 | S3 | -| main.rs:1311:18:1311:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1311:18:1311:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1311:18:1311:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1311:18:1311:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1311:26:1311:27 | p3 | | main.rs:1226:5:1232:5 | PairOption | -| main.rs:1311:26:1311:27 | p3 | Fst | main.rs:1248:5:1249:14 | S2 | -| main.rs:1311:26:1311:27 | p3 | Snd | main.rs:1251:5:1252:14 | S3 | -| main.rs:1313:11:1313:54 | ...::PairSnd(...) | | main.rs:1226:5:1232:5 | PairOption | -| main.rs:1313:11:1313:54 | ...::PairSnd(...) | Fst | main.rs:1248:5:1249:14 | S2 | -| main.rs:1313:11:1313:54 | ...::PairSnd(...) | Snd | main.rs:1226:5:1232:5 | PairOption | -| main.rs:1313:11:1313:54 | ...::PairSnd(...) | Snd.Fst | main.rs:1248:5:1249:14 | S2 | -| main.rs:1313:11:1313:54 | ...::PairSnd(...) | Snd.Snd | main.rs:1251:5:1252:14 | S3 | -| main.rs:1313:31:1313:53 | ...::PairSnd(...) | | main.rs:1226:5:1232:5 | PairOption | -| main.rs:1313:31:1313:53 | ...::PairSnd(...) | Fst | main.rs:1248:5:1249:14 | S2 | -| main.rs:1313:31:1313:53 | ...::PairSnd(...) | Snd | main.rs:1251:5:1252:14 | S3 | -| main.rs:1313:51:1313:52 | S3 | | main.rs:1251:5:1252:14 | S3 | -| main.rs:1315:13:1315:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:1315:13:1315:13 | x | E | main.rs:1245:5:1246:14 | S1 | -| main.rs:1315:13:1315:13 | x | T | main.rs:1271:5:1271:34 | S4 | -| main.rs:1315:13:1315:13 | x | T.T41 | main.rs:1248:5:1249:14 | S2 | -| main.rs:1315:13:1315:13 | x | T.T42 | main.rs:1273:5:1273:22 | S5 | -| main.rs:1315:13:1315:13 | x | T.T42.T5 | main.rs:1248:5:1249:14 | S2 | -| main.rs:1317:13:1317:13 | y | | {EXTERNAL LOCATION} | Result | -| main.rs:1317:13:1317:13 | y | E | {EXTERNAL LOCATION} | bool | -| main.rs:1317:13:1317:13 | y | T | {EXTERNAL LOCATION} | bool | -| main.rs:1317:17:1317:26 | GenS(...) | | main.rs:1279:5:1279:28 | GenS | -| main.rs:1317:17:1317:26 | GenS(...) | GenT | {EXTERNAL LOCATION} | bool | -| main.rs:1317:17:1317:38 | ... .get_input() | | {EXTERNAL LOCATION} | Result | -| main.rs:1317:17:1317:38 | ... .get_input() | E | {EXTERNAL LOCATION} | bool | -| main.rs:1317:17:1317:38 | ... .get_input() | T | {EXTERNAL LOCATION} | bool | -| main.rs:1317:22:1317:25 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1330:16:1330:24 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1330:16:1330:24 | SelfParam | &T | main.rs:1328:5:1335:5 | Self [trait MyTrait] | -| main.rs:1330:27:1330:31 | value | | main.rs:1328:19:1328:19 | S | -| main.rs:1332:21:1332:29 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1332:21:1332:29 | SelfParam | &T | main.rs:1328:5:1335:5 | Self [trait MyTrait] | -| main.rs:1332:32:1332:36 | value | | main.rs:1328:19:1328:19 | S | -| main.rs:1333:13:1333:16 | self | | file://:0:0:0:0 | & | -| main.rs:1333:13:1333:16 | self | &T | main.rs:1328:5:1335:5 | Self [trait MyTrait] | -| main.rs:1333:22:1333:26 | value | | main.rs:1328:19:1328:19 | S | -| main.rs:1339:16:1339:24 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1339:16:1339:24 | SelfParam | &T | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1339:16:1339:24 | SelfParam | &T.T | main.rs:1337:10:1337:10 | T | -| main.rs:1339:27:1339:31 | value | | main.rs:1337:10:1337:10 | T | -| main.rs:1343:26:1345:9 | { ... } | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1343:26:1345:9 | { ... } | T | main.rs:1342:10:1342:10 | T | -| main.rs:1344:13:1344:30 | ...::MyNone(...) | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1344:13:1344:30 | ...::MyNone(...) | T | main.rs:1342:10:1342:10 | T | -| main.rs:1349:20:1349:23 | SelfParam | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1349:20:1349:23 | SelfParam | T | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1349:20:1349:23 | SelfParam | T.T | main.rs:1348:10:1348:10 | T | -| main.rs:1349:41:1354:9 | { ... } | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1349:41:1354:9 | { ... } | T | main.rs:1348:10:1348:10 | T | -| main.rs:1350:13:1353:13 | match self { ... } | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1350:13:1353:13 | match self { ... } | T | main.rs:1348:10:1348:10 | T | -| main.rs:1350:19:1350:22 | self | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1350:19:1350:22 | self | T | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1350:19:1350:22 | self | T.T | main.rs:1348:10:1348:10 | T | -| main.rs:1351:17:1351:34 | ...::MyNone(...) | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1351:17:1351:34 | ...::MyNone(...) | T | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1351:17:1351:34 | ...::MyNone(...) | T.T | main.rs:1348:10:1348:10 | T | -| main.rs:1351:39:1351:56 | ...::MyNone(...) | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1351:39:1351:56 | ...::MyNone(...) | T | main.rs:1348:10:1348:10 | T | -| main.rs:1352:17:1352:35 | ...::MySome(...) | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1352:17:1352:35 | ...::MySome(...) | T | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1352:17:1352:35 | ...::MySome(...) | T.T | main.rs:1348:10:1348:10 | T | -| main.rs:1352:34:1352:34 | x | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1352:34:1352:34 | x | T | main.rs:1348:10:1348:10 | T | -| main.rs:1352:40:1352:40 | x | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1352:40:1352:40 | x | T | main.rs:1348:10:1348:10 | T | -| main.rs:1361:13:1361:14 | x1 | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1361:13:1361:14 | x1 | T | main.rs:1357:5:1358:13 | S | -| main.rs:1361:18:1361:37 | ...::new(...) | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1361:18:1361:37 | ...::new(...) | T | main.rs:1357:5:1358:13 | S | -| main.rs:1362:18:1362:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1362:18:1362:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1362:18:1362:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1362:18:1362:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1362:26:1362:27 | x1 | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1362:26:1362:27 | x1 | T | main.rs:1357:5:1358:13 | S | -| main.rs:1364:17:1364:18 | x2 | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1364:17:1364:18 | x2 | T | main.rs:1357:5:1358:13 | S | -| main.rs:1364:22:1364:36 | ...::new(...) | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1364:22:1364:36 | ...::new(...) | T | main.rs:1357:5:1358:13 | S | -| main.rs:1365:9:1365:10 | x2 | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1365:9:1365:10 | x2 | T | main.rs:1357:5:1358:13 | S | -| main.rs:1365:16:1365:16 | S | | main.rs:1357:5:1358:13 | S | -| main.rs:1366:18:1366:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1366:18:1366:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1366:18:1366:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1366:18:1366:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1366:26:1366:27 | x2 | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1366:26:1366:27 | x2 | T | main.rs:1357:5:1358:13 | S | -| main.rs:1369:17:1369:18 | x3 | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1369:22:1369:36 | ...::new(...) | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1370:9:1370:10 | x3 | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1370:21:1370:21 | S | | main.rs:1357:5:1358:13 | S | -| main.rs:1371:18:1371:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1371:18:1371:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1371:18:1371:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1371:18:1371:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1371:26:1371:27 | x3 | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1373:17:1373:18 | x4 | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1373:17:1373:18 | x4 | T | main.rs:1357:5:1358:13 | S | -| main.rs:1373:22:1373:36 | ...::new(...) | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1373:22:1373:36 | ...::new(...) | T | main.rs:1357:5:1358:13 | S | -| main.rs:1374:23:1374:29 | &mut x4 | | file://:0:0:0:0 | & | -| main.rs:1374:23:1374:29 | &mut x4 | &T | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1374:23:1374:29 | &mut x4 | &T.T | main.rs:1357:5:1358:13 | S | -| main.rs:1374:28:1374:29 | x4 | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1374:28:1374:29 | x4 | T | main.rs:1357:5:1358:13 | S | -| main.rs:1374:32:1374:32 | S | | main.rs:1357:5:1358:13 | S | -| main.rs:1375:18:1375:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1375:18:1375:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1375:18:1375:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1375:18:1375:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1375:26:1375:27 | x4 | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1375:26:1375:27 | x4 | T | main.rs:1357:5:1358:13 | S | -| main.rs:1377:13:1377:14 | x5 | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1377:13:1377:14 | x5 | T | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1377:13:1377:14 | x5 | T.T | main.rs:1357:5:1358:13 | S | -| main.rs:1377:18:1377:58 | ...::MySome(...) | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1377:18:1377:58 | ...::MySome(...) | T | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1377:18:1377:58 | ...::MySome(...) | T.T | main.rs:1357:5:1358:13 | S | -| main.rs:1377:35:1377:57 | ...::MyNone(...) | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1377:35:1377:57 | ...::MyNone(...) | T | main.rs:1357:5:1358:13 | S | -| main.rs:1378:18:1378:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1378:18:1378:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1378:18:1378:37 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1378:18:1378:37 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1378:26:1378:27 | x5 | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1378:26:1378:27 | x5 | T | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1378:26:1378:27 | x5 | T.T | main.rs:1357:5:1358:13 | S | -| main.rs:1378:26:1378:37 | x5.flatten() | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1378:26:1378:37 | x5.flatten() | T | main.rs:1357:5:1358:13 | S | -| main.rs:1380:13:1380:14 | x6 | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1380:13:1380:14 | x6 | T | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1380:13:1380:14 | x6 | T.T | main.rs:1357:5:1358:13 | S | -| main.rs:1380:18:1380:58 | ...::MySome(...) | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1380:18:1380:58 | ...::MySome(...) | T | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1380:18:1380:58 | ...::MySome(...) | T.T | main.rs:1357:5:1358:13 | S | -| main.rs:1380:35:1380:57 | ...::MyNone(...) | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1380:35:1380:57 | ...::MyNone(...) | T | main.rs:1357:5:1358:13 | S | -| main.rs:1381:18:1381:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1381:18:1381:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1381:18:1381:61 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1381:18:1381:61 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1381:26:1381:61 | ...::flatten(...) | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1381:26:1381:61 | ...::flatten(...) | T | main.rs:1357:5:1358:13 | S | -| main.rs:1381:59:1381:60 | x6 | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1381:59:1381:60 | x6 | T | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1381:59:1381:60 | x6 | T.T | main.rs:1357:5:1358:13 | S | -| main.rs:1384:13:1384:19 | from_if | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1384:13:1384:19 | from_if | T | main.rs:1357:5:1358:13 | S | -| main.rs:1384:23:1388:9 | if ... {...} else {...} | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1384:23:1388:9 | if ... {...} else {...} | T | main.rs:1357:5:1358:13 | S | -| main.rs:1384:26:1384:26 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1384:26:1384:30 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1384:30:1384:30 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1384:32:1386:9 | { ... } | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1384:32:1386:9 | { ... } | T | main.rs:1357:5:1358:13 | S | -| main.rs:1385:13:1385:30 | ...::MyNone(...) | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1385:13:1385:30 | ...::MyNone(...) | T | main.rs:1357:5:1358:13 | S | -| main.rs:1386:16:1388:9 | { ... } | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1386:16:1388:9 | { ... } | T | main.rs:1357:5:1358:13 | S | -| main.rs:1387:13:1387:31 | ...::MySome(...) | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1387:13:1387:31 | ...::MySome(...) | T | main.rs:1357:5:1358:13 | S | -| main.rs:1387:30:1387:30 | S | | main.rs:1357:5:1358:13 | S | -| main.rs:1389:18:1389:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1389:18:1389:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1389:18:1389:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1389:18:1389:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1389:26:1389:32 | from_if | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1389:26:1389:32 | from_if | T | main.rs:1357:5:1358:13 | S | -| main.rs:1392:13:1392:22 | from_match | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1392:13:1392:22 | from_match | T | main.rs:1357:5:1358:13 | S | -| main.rs:1392:26:1395:9 | match ... { ... } | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1392:26:1395:9 | match ... { ... } | T | main.rs:1357:5:1358:13 | S | -| main.rs:1392:32:1392:32 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1392:32:1392:36 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1392:36:1392:36 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1393:13:1393:16 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1393:21:1393:38 | ...::MyNone(...) | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1393:21:1393:38 | ...::MyNone(...) | T | main.rs:1357:5:1358:13 | S | -| main.rs:1394:13:1394:17 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1394:22:1394:40 | ...::MySome(...) | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1394:22:1394:40 | ...::MySome(...) | T | main.rs:1357:5:1358:13 | S | -| main.rs:1394:39:1394:39 | S | | main.rs:1357:5:1358:13 | S | -| main.rs:1396:18:1396:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1396:18:1396:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1396:18:1396:35 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1396:18:1396:35 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1396:26:1396:35 | from_match | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1396:26:1396:35 | from_match | T | main.rs:1357:5:1358:13 | S | -| main.rs:1399:13:1399:21 | from_loop | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1399:13:1399:21 | from_loop | T | main.rs:1357:5:1358:13 | S | -| main.rs:1399:25:1404:9 | loop { ... } | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1399:25:1404:9 | loop { ... } | T | main.rs:1357:5:1358:13 | S | -| main.rs:1400:16:1400:16 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1400:16:1400:20 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1400:20:1400:20 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1401:23:1401:40 | ...::MyNone(...) | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1401:23:1401:40 | ...::MyNone(...) | T | main.rs:1357:5:1358:13 | S | -| main.rs:1403:19:1403:37 | ...::MySome(...) | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1403:19:1403:37 | ...::MySome(...) | T | main.rs:1357:5:1358:13 | S | -| main.rs:1403:36:1403:36 | S | | main.rs:1357:5:1358:13 | S | -| main.rs:1405:18:1405:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1405:18:1405:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1405:18:1405:34 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1405:18:1405:34 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1405:26:1405:34 | from_loop | | main.rs:1322:5:1326:5 | MyOption | -| main.rs:1405:26:1405:34 | from_loop | T | main.rs:1357:5:1358:13 | S | -| main.rs:1423:15:1423:18 | SelfParam | | main.rs:1411:5:1412:19 | S | -| main.rs:1423:15:1423:18 | SelfParam | T | main.rs:1422:10:1422:10 | T | -| main.rs:1423:26:1425:9 | { ... } | | main.rs:1422:10:1422:10 | T | -| main.rs:1424:13:1424:16 | self | | main.rs:1411:5:1412:19 | S | -| main.rs:1424:13:1424:16 | self | T | main.rs:1422:10:1422:10 | T | -| main.rs:1424:13:1424:18 | self.0 | | main.rs:1422:10:1422:10 | T | -| main.rs:1427:15:1427:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1427:15:1427:19 | SelfParam | &T | main.rs:1411:5:1412:19 | S | -| main.rs:1427:15:1427:19 | SelfParam | &T.T | main.rs:1422:10:1422:10 | T | -| main.rs:1427:28:1429:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1427:28:1429:9 | { ... } | &T | main.rs:1422:10:1422:10 | T | -| main.rs:1428:13:1428:19 | &... | | file://:0:0:0:0 | & | -| main.rs:1428:13:1428:19 | &... | &T | main.rs:1422:10:1422:10 | T | -| main.rs:1428:14:1428:17 | self | | file://:0:0:0:0 | & | -| main.rs:1428:14:1428:17 | self | &T | main.rs:1411:5:1412:19 | S | -| main.rs:1428:14:1428:17 | self | &T.T | main.rs:1422:10:1422:10 | T | -| main.rs:1428:14:1428:19 | self.0 | | main.rs:1422:10:1422:10 | T | -| main.rs:1431:15:1431:25 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1431:15:1431:25 | SelfParam | &T | main.rs:1411:5:1412:19 | S | -| main.rs:1431:15:1431:25 | SelfParam | &T.T | main.rs:1422:10:1422:10 | T | -| main.rs:1431:34:1433:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1431:34:1433:9 | { ... } | &T | main.rs:1422:10:1422:10 | T | -| main.rs:1432:13:1432:19 | &... | | file://:0:0:0:0 | & | -| main.rs:1432:13:1432:19 | &... | &T | main.rs:1422:10:1422:10 | T | -| main.rs:1432:14:1432:17 | self | | file://:0:0:0:0 | & | -| main.rs:1432:14:1432:17 | self | &T | main.rs:1411:5:1412:19 | S | -| main.rs:1432:14:1432:17 | self | &T.T | main.rs:1422:10:1422:10 | T | -| main.rs:1432:14:1432:19 | self.0 | | main.rs:1422:10:1422:10 | T | -| main.rs:1437:29:1437:33 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1437:29:1437:33 | SelfParam | &T | main.rs:1436:5:1439:5 | Self [trait ATrait] | -| main.rs:1438:33:1438:36 | SelfParam | | main.rs:1436:5:1439:5 | Self [trait ATrait] | -| main.rs:1444:29:1444:33 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1444:29:1444:33 | SelfParam | &T | file://:0:0:0:0 | & | -| main.rs:1444:29:1444:33 | SelfParam | &T.&T | main.rs:1417:5:1420:5 | MyInt | -| main.rs:1444:43:1446:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1445:13:1445:22 | (...) | | main.rs:1417:5:1420:5 | MyInt | -| main.rs:1445:13:1445:24 | ... .a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1445:14:1445:21 | * ... | | main.rs:1417:5:1420:5 | MyInt | -| main.rs:1445:15:1445:21 | (...) | | file://:0:0:0:0 | & | -| main.rs:1445:15:1445:21 | (...) | &T | main.rs:1417:5:1420:5 | MyInt | -| main.rs:1445:16:1445:20 | * ... | | file://:0:0:0:0 | & | -| main.rs:1445:16:1445:20 | * ... | &T | main.rs:1417:5:1420:5 | MyInt | -| main.rs:1445:17:1445:20 | self | | file://:0:0:0:0 | & | -| main.rs:1445:17:1445:20 | self | &T | file://:0:0:0:0 | & | -| main.rs:1445:17:1445:20 | self | &T.&T | main.rs:1417:5:1420:5 | MyInt | -| main.rs:1449:33:1449:36 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1449:33:1449:36 | SelfParam | &T | main.rs:1417:5:1420:5 | MyInt | -| main.rs:1449:46:1451:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1450:13:1450:19 | (...) | | main.rs:1417:5:1420:5 | MyInt | -| main.rs:1450:13:1450:21 | ... .a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1450:14:1450:18 | * ... | | main.rs:1417:5:1420:5 | MyInt | -| main.rs:1450:15:1450:18 | self | | file://:0:0:0:0 | & | -| main.rs:1450:15:1450:18 | self | &T | main.rs:1417:5:1420:5 | MyInt | -| main.rs:1455:13:1455:14 | x1 | | main.rs:1411:5:1412:19 | S | -| main.rs:1455:13:1455:14 | x1 | T | main.rs:1414:5:1415:14 | S2 | -| main.rs:1455:18:1455:22 | S(...) | | main.rs:1411:5:1412:19 | S | -| main.rs:1455:18:1455:22 | S(...) | T | main.rs:1414:5:1415:14 | S2 | -| main.rs:1455:20:1455:21 | S2 | | main.rs:1414:5:1415:14 | S2 | -| main.rs:1456:18:1456:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1456:18:1456:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1456:18:1456:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1456:18:1456:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1456:26:1456:27 | x1 | | main.rs:1411:5:1412:19 | S | -| main.rs:1456:26:1456:27 | x1 | T | main.rs:1414:5:1415:14 | S2 | -| main.rs:1456:26:1456:32 | x1.m1() | | main.rs:1414:5:1415:14 | S2 | -| main.rs:1458:13:1458:14 | x2 | | main.rs:1411:5:1412:19 | S | -| main.rs:1458:13:1458:14 | x2 | T | main.rs:1414:5:1415:14 | S2 | -| main.rs:1458:18:1458:22 | S(...) | | main.rs:1411:5:1412:19 | S | -| main.rs:1458:18:1458:22 | S(...) | T | main.rs:1414:5:1415:14 | S2 | -| main.rs:1458:20:1458:21 | S2 | | main.rs:1414:5:1415:14 | S2 | +| main.rs:1165:26:1165:26 | y | | main.rs:1075:5:1078:5 | MyThing2 | +| main.rs:1165:26:1165:26 | y | A | main.rs:1082:5:1083:14 | S2 | +| main.rs:1165:26:1165:31 | y.m3() | | main.rs:1082:5:1083:14 | S2 | +| main.rs:1167:13:1167:13 | x | | main.rs:1070:5:1073:5 | MyThing | +| main.rs:1167:13:1167:13 | x | A | main.rs:1080:5:1081:14 | S1 | +| main.rs:1167:17:1167:33 | MyThing {...} | | main.rs:1070:5:1073:5 | MyThing | +| main.rs:1167:17:1167:33 | MyThing {...} | A | main.rs:1080:5:1081:14 | S1 | +| main.rs:1167:30:1167:31 | S1 | | main.rs:1080:5:1081:14 | S1 | +| main.rs:1168:13:1168:13 | s | | main.rs:1080:5:1081:14 | S1 | +| main.rs:1168:17:1168:32 | call_trait_m1(...) | | main.rs:1080:5:1081:14 | S1 | +| main.rs:1168:31:1168:31 | x | | main.rs:1070:5:1073:5 | MyThing | +| main.rs:1168:31:1168:31 | x | A | main.rs:1080:5:1081:14 | S1 | +| main.rs:1170:13:1170:13 | x | | main.rs:1075:5:1078:5 | MyThing2 | +| main.rs:1170:13:1170:13 | x | A | main.rs:1082:5:1083:14 | S2 | +| main.rs:1170:17:1170:34 | MyThing2 {...} | | main.rs:1075:5:1078:5 | MyThing2 | +| main.rs:1170:17:1170:34 | MyThing2 {...} | A | main.rs:1082:5:1083:14 | S2 | +| main.rs:1170:31:1170:32 | S2 | | main.rs:1082:5:1083:14 | S2 | +| main.rs:1171:13:1171:13 | s | | main.rs:1070:5:1073:5 | MyThing | +| main.rs:1171:13:1171:13 | s | A | main.rs:1082:5:1083:14 | S2 | +| main.rs:1171:17:1171:32 | call_trait_m1(...) | | main.rs:1070:5:1073:5 | MyThing | +| main.rs:1171:17:1171:32 | call_trait_m1(...) | A | main.rs:1082:5:1083:14 | S2 | +| main.rs:1171:31:1171:31 | x | | main.rs:1075:5:1078:5 | MyThing2 | +| main.rs:1171:31:1171:31 | x | A | main.rs:1082:5:1083:14 | S2 | +| main.rs:1188:22:1188:22 | x | | file://:0:0:0:0 | & | +| main.rs:1188:22:1188:22 | x | &T | main.rs:1188:11:1188:19 | T | +| main.rs:1188:35:1190:5 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1188:35:1190:5 | { ... } | &T | main.rs:1188:11:1188:19 | T | +| main.rs:1189:9:1189:9 | x | | file://:0:0:0:0 | & | +| main.rs:1189:9:1189:9 | x | &T | main.rs:1188:11:1188:19 | T | +| main.rs:1193:17:1193:20 | SelfParam | | main.rs:1178:5:1179:14 | S1 | +| main.rs:1193:29:1195:9 | { ... } | | main.rs:1181:5:1182:14 | S2 | +| main.rs:1194:13:1194:14 | S2 | | main.rs:1181:5:1182:14 | S2 | +| main.rs:1198:21:1198:21 | x | | main.rs:1198:13:1198:14 | T1 | +| main.rs:1201:5:1203:5 | { ... } | | main.rs:1198:17:1198:18 | T2 | +| main.rs:1202:9:1202:9 | x | | main.rs:1198:13:1198:14 | T1 | +| main.rs:1202:9:1202:16 | x.into() | | main.rs:1198:17:1198:18 | T2 | +| main.rs:1206:13:1206:13 | x | | main.rs:1178:5:1179:14 | S1 | +| main.rs:1206:17:1206:18 | S1 | | main.rs:1178:5:1179:14 | S1 | +| main.rs:1207:18:1207:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1207:18:1207:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1207:18:1207:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1207:18:1207:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1207:26:1207:31 | id(...) | | file://:0:0:0:0 | & | +| main.rs:1207:26:1207:31 | id(...) | &T | main.rs:1178:5:1179:14 | S1 | +| main.rs:1207:29:1207:30 | &x | | file://:0:0:0:0 | & | +| main.rs:1207:29:1207:30 | &x | &T | main.rs:1178:5:1179:14 | S1 | +| main.rs:1207:30:1207:30 | x | | main.rs:1178:5:1179:14 | S1 | +| main.rs:1209:13:1209:13 | x | | main.rs:1178:5:1179:14 | S1 | +| main.rs:1209:17:1209:18 | S1 | | main.rs:1178:5:1179:14 | S1 | +| main.rs:1210:18:1210:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1210:18:1210:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1210:18:1210:37 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1210:18:1210:37 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1210:26:1210:37 | id::<...>(...) | | file://:0:0:0:0 | & | +| main.rs:1210:26:1210:37 | id::<...>(...) | &T | main.rs:1178:5:1179:14 | S1 | +| main.rs:1210:35:1210:36 | &x | | file://:0:0:0:0 | & | +| main.rs:1210:35:1210:36 | &x | &T | main.rs:1178:5:1179:14 | S1 | +| main.rs:1210:36:1210:36 | x | | main.rs:1178:5:1179:14 | S1 | +| main.rs:1212:13:1212:13 | x | | main.rs:1178:5:1179:14 | S1 | +| main.rs:1212:13:1212:13 | x | | main.rs:1184:5:1184:25 | dyn Trait | +| main.rs:1212:17:1212:18 | S1 | | main.rs:1178:5:1179:14 | S1 | +| main.rs:1212:17:1212:18 | S1 | | main.rs:1184:5:1184:25 | dyn Trait | +| main.rs:1214:18:1214:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1214:18:1214:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1214:18:1214:44 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1214:18:1214:44 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1214:26:1214:44 | id::<...>(...) | | file://:0:0:0:0 | & | +| main.rs:1214:26:1214:44 | id::<...>(...) | &T | main.rs:1184:5:1184:25 | dyn Trait | +| main.rs:1214:42:1214:43 | &x | | file://:0:0:0:0 | & | +| main.rs:1214:42:1214:43 | &x | &T | main.rs:1178:5:1179:14 | S1 | +| main.rs:1214:42:1214:43 | &x | &T | main.rs:1184:5:1184:25 | dyn Trait | +| main.rs:1214:43:1214:43 | x | | main.rs:1178:5:1179:14 | S1 | +| main.rs:1214:43:1214:43 | x | | main.rs:1184:5:1184:25 | dyn Trait | +| main.rs:1216:13:1216:13 | x | | main.rs:1178:5:1179:14 | S1 | +| main.rs:1216:17:1216:18 | S1 | | main.rs:1178:5:1179:14 | S1 | +| main.rs:1217:9:1217:25 | into::<...>(...) | | main.rs:1181:5:1182:14 | S2 | +| main.rs:1217:24:1217:24 | x | | main.rs:1178:5:1179:14 | S1 | +| main.rs:1219:13:1219:13 | x | | main.rs:1178:5:1179:14 | S1 | +| main.rs:1219:17:1219:18 | S1 | | main.rs:1178:5:1179:14 | S1 | +| main.rs:1220:13:1220:13 | y | | main.rs:1181:5:1182:14 | S2 | +| main.rs:1220:21:1220:27 | into(...) | | main.rs:1181:5:1182:14 | S2 | +| main.rs:1220:26:1220:26 | x | | main.rs:1178:5:1179:14 | S1 | +| main.rs:1234:22:1234:25 | SelfParam | | main.rs:1225:5:1231:5 | PairOption | +| main.rs:1234:22:1234:25 | SelfParam | Fst | main.rs:1233:10:1233:12 | Fst | +| main.rs:1234:22:1234:25 | SelfParam | Snd | main.rs:1233:15:1233:17 | Snd | +| main.rs:1234:35:1241:9 | { ... } | | main.rs:1233:15:1233:17 | Snd | +| main.rs:1235:13:1240:13 | match self { ... } | | main.rs:1233:15:1233:17 | Snd | +| main.rs:1235:19:1235:22 | self | | main.rs:1225:5:1231:5 | PairOption | +| main.rs:1235:19:1235:22 | self | Fst | main.rs:1233:10:1233:12 | Fst | +| main.rs:1235:19:1235:22 | self | Snd | main.rs:1233:15:1233:17 | Snd | +| main.rs:1236:17:1236:38 | ...::PairNone(...) | | main.rs:1225:5:1231:5 | PairOption | +| main.rs:1236:17:1236:38 | ...::PairNone(...) | Fst | main.rs:1233:10:1233:12 | Fst | +| main.rs:1236:17:1236:38 | ...::PairNone(...) | Snd | main.rs:1233:15:1233:17 | Snd | +| main.rs:1236:43:1236:82 | MacroExpr | | main.rs:1233:15:1233:17 | Snd | +| main.rs:1236:50:1236:81 | "PairNone has no second elemen... | | file://:0:0:0:0 | & | +| main.rs:1236:50:1236:81 | "PairNone has no second elemen... | &T | {EXTERNAL LOCATION} | str | +| main.rs:1236:50:1236:81 | ...::panic_fmt(...) | | file://:0:0:0:0 | ! | +| main.rs:1236:50:1236:81 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1236:50:1236:81 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1236:50:1236:81 | MacroExpr | | main.rs:1233:15:1233:17 | Snd | +| main.rs:1236:50:1236:81 | { ... } | | main.rs:1233:15:1233:17 | Snd | +| main.rs:1237:17:1237:38 | ...::PairFst(...) | | main.rs:1225:5:1231:5 | PairOption | +| main.rs:1237:17:1237:38 | ...::PairFst(...) | Fst | main.rs:1233:10:1233:12 | Fst | +| main.rs:1237:17:1237:38 | ...::PairFst(...) | Snd | main.rs:1233:15:1233:17 | Snd | +| main.rs:1237:37:1237:37 | _ | | main.rs:1233:10:1233:12 | Fst | +| main.rs:1237:43:1237:81 | MacroExpr | | main.rs:1233:15:1233:17 | Snd | +| main.rs:1237:50:1237:80 | "PairFst has no second element... | | file://:0:0:0:0 | & | +| main.rs:1237:50:1237:80 | "PairFst has no second element... | &T | {EXTERNAL LOCATION} | str | +| main.rs:1237:50:1237:80 | ...::panic_fmt(...) | | file://:0:0:0:0 | ! | +| main.rs:1237:50:1237:80 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1237:50:1237:80 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1237:50:1237:80 | MacroExpr | | main.rs:1233:15:1233:17 | Snd | +| main.rs:1237:50:1237:80 | { ... } | | main.rs:1233:15:1233:17 | Snd | +| main.rs:1238:17:1238:40 | ...::PairSnd(...) | | main.rs:1225:5:1231:5 | PairOption | +| main.rs:1238:17:1238:40 | ...::PairSnd(...) | Fst | main.rs:1233:10:1233:12 | Fst | +| main.rs:1238:17:1238:40 | ...::PairSnd(...) | Snd | main.rs:1233:15:1233:17 | Snd | +| main.rs:1238:37:1238:39 | snd | | main.rs:1233:15:1233:17 | Snd | +| main.rs:1238:45:1238:47 | snd | | main.rs:1233:15:1233:17 | Snd | +| main.rs:1239:17:1239:44 | ...::PairBoth(...) | | main.rs:1225:5:1231:5 | PairOption | +| main.rs:1239:17:1239:44 | ...::PairBoth(...) | Fst | main.rs:1233:10:1233:12 | Fst | +| main.rs:1239:17:1239:44 | ...::PairBoth(...) | Snd | main.rs:1233:15:1233:17 | Snd | +| main.rs:1239:38:1239:38 | _ | | main.rs:1233:10:1233:12 | Fst | +| main.rs:1239:41:1239:43 | snd | | main.rs:1233:15:1233:17 | Snd | +| main.rs:1239:49:1239:51 | snd | | main.rs:1233:15:1233:17 | Snd | +| main.rs:1265:10:1265:10 | t | | main.rs:1225:5:1231:5 | PairOption | +| main.rs:1265:10:1265:10 | t | Fst | main.rs:1247:5:1248:14 | S2 | +| main.rs:1265:10:1265:10 | t | Snd | main.rs:1225:5:1231:5 | PairOption | +| main.rs:1265:10:1265:10 | t | Snd.Fst | main.rs:1247:5:1248:14 | S2 | +| main.rs:1265:10:1265:10 | t | Snd.Snd | main.rs:1250:5:1251:14 | S3 | +| main.rs:1266:13:1266:13 | x | | main.rs:1250:5:1251:14 | S3 | +| main.rs:1266:17:1266:17 | t | | main.rs:1225:5:1231:5 | PairOption | +| main.rs:1266:17:1266:17 | t | Fst | main.rs:1247:5:1248:14 | S2 | +| main.rs:1266:17:1266:17 | t | Snd | main.rs:1225:5:1231:5 | PairOption | +| main.rs:1266:17:1266:17 | t | Snd.Fst | main.rs:1247:5:1248:14 | S2 | +| main.rs:1266:17:1266:17 | t | Snd.Snd | main.rs:1250:5:1251:14 | S3 | +| main.rs:1266:17:1266:29 | t.unwrapSnd() | | main.rs:1225:5:1231:5 | PairOption | +| main.rs:1266:17:1266:29 | t.unwrapSnd() | Fst | main.rs:1247:5:1248:14 | S2 | +| main.rs:1266:17:1266:29 | t.unwrapSnd() | Snd | main.rs:1250:5:1251:14 | S3 | +| main.rs:1266:17:1266:41 | ... .unwrapSnd() | | main.rs:1250:5:1251:14 | S3 | +| main.rs:1267:18:1267:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1267:18:1267:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1267:18:1267:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1267:18:1267:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1267:26:1267:26 | x | | main.rs:1250:5:1251:14 | S3 | +| main.rs:1282:22:1282:25 | SelfParam | | main.rs:1280:5:1283:5 | Self [trait TraitWithAssocType] | +| main.rs:1290:22:1290:25 | SelfParam | | main.rs:1278:5:1278:28 | GenS | +| main.rs:1290:22:1290:25 | SelfParam | GenT | main.rs:1285:10:1285:15 | Output | +| main.rs:1290:44:1292:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1290:44:1292:9 | { ... } | E | main.rs:1285:10:1285:15 | Output | +| main.rs:1290:44:1292:9 | { ... } | T | main.rs:1285:10:1285:15 | Output | +| main.rs:1291:13:1291:22 | Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1291:13:1291:22 | Ok(...) | E | main.rs:1285:10:1285:15 | Output | +| main.rs:1291:13:1291:22 | Ok(...) | T | main.rs:1285:10:1285:15 | Output | +| main.rs:1291:16:1291:19 | self | | main.rs:1278:5:1278:28 | GenS | +| main.rs:1291:16:1291:19 | self | GenT | main.rs:1285:10:1285:15 | Output | +| main.rs:1291:16:1291:21 | self.0 | | main.rs:1285:10:1285:15 | Output | +| main.rs:1297:13:1297:14 | p1 | | main.rs:1225:5:1231:5 | PairOption | +| main.rs:1297:13:1297:14 | p1 | Fst | main.rs:1244:5:1245:14 | S1 | +| main.rs:1297:13:1297:14 | p1 | Snd | main.rs:1247:5:1248:14 | S2 | +| main.rs:1297:26:1297:53 | ...::PairBoth(...) | | main.rs:1225:5:1231:5 | PairOption | +| main.rs:1297:26:1297:53 | ...::PairBoth(...) | Fst | main.rs:1244:5:1245:14 | S1 | +| main.rs:1297:26:1297:53 | ...::PairBoth(...) | Snd | main.rs:1247:5:1248:14 | S2 | +| main.rs:1297:47:1297:48 | S1 | | main.rs:1244:5:1245:14 | S1 | +| main.rs:1297:51:1297:52 | S2 | | main.rs:1247:5:1248:14 | S2 | +| main.rs:1298:18:1298:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1298:18:1298:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1298:18:1298:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1298:18:1298:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1298:26:1298:27 | p1 | | main.rs:1225:5:1231:5 | PairOption | +| main.rs:1298:26:1298:27 | p1 | Fst | main.rs:1244:5:1245:14 | S1 | +| main.rs:1298:26:1298:27 | p1 | Snd | main.rs:1247:5:1248:14 | S2 | +| main.rs:1301:13:1301:14 | p2 | | main.rs:1225:5:1231:5 | PairOption | +| main.rs:1301:13:1301:14 | p2 | Fst | main.rs:1244:5:1245:14 | S1 | +| main.rs:1301:13:1301:14 | p2 | Snd | main.rs:1247:5:1248:14 | S2 | +| main.rs:1301:26:1301:47 | ...::PairNone(...) | | main.rs:1225:5:1231:5 | PairOption | +| main.rs:1301:26:1301:47 | ...::PairNone(...) | Fst | main.rs:1244:5:1245:14 | S1 | +| main.rs:1301:26:1301:47 | ...::PairNone(...) | Snd | main.rs:1247:5:1248:14 | S2 | +| main.rs:1302:18:1302:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1302:18:1302:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1302:18:1302:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1302:18:1302:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1302:26:1302:27 | p2 | | main.rs:1225:5:1231:5 | PairOption | +| main.rs:1302:26:1302:27 | p2 | Fst | main.rs:1244:5:1245:14 | S1 | +| main.rs:1302:26:1302:27 | p2 | Snd | main.rs:1247:5:1248:14 | S2 | +| main.rs:1305:13:1305:14 | p3 | | main.rs:1225:5:1231:5 | PairOption | +| main.rs:1305:13:1305:14 | p3 | Fst | main.rs:1247:5:1248:14 | S2 | +| main.rs:1305:13:1305:14 | p3 | Snd | main.rs:1250:5:1251:14 | S3 | +| main.rs:1305:34:1305:56 | ...::PairSnd(...) | | main.rs:1225:5:1231:5 | PairOption | +| main.rs:1305:34:1305:56 | ...::PairSnd(...) | Fst | main.rs:1247:5:1248:14 | S2 | +| main.rs:1305:34:1305:56 | ...::PairSnd(...) | Snd | main.rs:1250:5:1251:14 | S3 | +| main.rs:1305:54:1305:55 | S3 | | main.rs:1250:5:1251:14 | S3 | +| main.rs:1306:18:1306:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1306:18:1306:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1306:18:1306:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1306:18:1306:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1306:26:1306:27 | p3 | | main.rs:1225:5:1231:5 | PairOption | +| main.rs:1306:26:1306:27 | p3 | Fst | main.rs:1247:5:1248:14 | S2 | +| main.rs:1306:26:1306:27 | p3 | Snd | main.rs:1250:5:1251:14 | S3 | +| main.rs:1309:13:1309:14 | p3 | | main.rs:1225:5:1231:5 | PairOption | +| main.rs:1309:13:1309:14 | p3 | Fst | main.rs:1247:5:1248:14 | S2 | +| main.rs:1309:13:1309:14 | p3 | Snd | main.rs:1250:5:1251:14 | S3 | +| main.rs:1309:35:1309:56 | ...::PairNone(...) | | main.rs:1225:5:1231:5 | PairOption | +| main.rs:1309:35:1309:56 | ...::PairNone(...) | Fst | main.rs:1247:5:1248:14 | S2 | +| main.rs:1309:35:1309:56 | ...::PairNone(...) | Snd | main.rs:1250:5:1251:14 | S3 | +| main.rs:1310:18:1310:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1310:18:1310:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1310:18:1310:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1310:18:1310:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1310:26:1310:27 | p3 | | main.rs:1225:5:1231:5 | PairOption | +| main.rs:1310:26:1310:27 | p3 | Fst | main.rs:1247:5:1248:14 | S2 | +| main.rs:1310:26:1310:27 | p3 | Snd | main.rs:1250:5:1251:14 | S3 | +| main.rs:1312:11:1312:54 | ...::PairSnd(...) | | main.rs:1225:5:1231:5 | PairOption | +| main.rs:1312:11:1312:54 | ...::PairSnd(...) | Fst | main.rs:1247:5:1248:14 | S2 | +| main.rs:1312:11:1312:54 | ...::PairSnd(...) | Snd | main.rs:1225:5:1231:5 | PairOption | +| main.rs:1312:11:1312:54 | ...::PairSnd(...) | Snd.Fst | main.rs:1247:5:1248:14 | S2 | +| main.rs:1312:11:1312:54 | ...::PairSnd(...) | Snd.Snd | main.rs:1250:5:1251:14 | S3 | +| main.rs:1312:31:1312:53 | ...::PairSnd(...) | | main.rs:1225:5:1231:5 | PairOption | +| main.rs:1312:31:1312:53 | ...::PairSnd(...) | Fst | main.rs:1247:5:1248:14 | S2 | +| main.rs:1312:31:1312:53 | ...::PairSnd(...) | Snd | main.rs:1250:5:1251:14 | S3 | +| main.rs:1312:51:1312:52 | S3 | | main.rs:1250:5:1251:14 | S3 | +| main.rs:1314:13:1314:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1314:13:1314:13 | x | E | main.rs:1244:5:1245:14 | S1 | +| main.rs:1314:13:1314:13 | x | T | main.rs:1270:5:1270:34 | S4 | +| main.rs:1314:13:1314:13 | x | T.T41 | main.rs:1247:5:1248:14 | S2 | +| main.rs:1314:13:1314:13 | x | T.T42 | main.rs:1272:5:1272:22 | S5 | +| main.rs:1314:13:1314:13 | x | T.T42.T5 | main.rs:1247:5:1248:14 | S2 | +| main.rs:1316:13:1316:13 | y | | {EXTERNAL LOCATION} | Result | +| main.rs:1316:13:1316:13 | y | E | {EXTERNAL LOCATION} | bool | +| main.rs:1316:13:1316:13 | y | T | {EXTERNAL LOCATION} | bool | +| main.rs:1316:17:1316:26 | GenS(...) | | main.rs:1278:5:1278:28 | GenS | +| main.rs:1316:17:1316:26 | GenS(...) | GenT | {EXTERNAL LOCATION} | bool | +| main.rs:1316:17:1316:38 | ... .get_input() | | {EXTERNAL LOCATION} | Result | +| main.rs:1316:17:1316:38 | ... .get_input() | E | {EXTERNAL LOCATION} | bool | +| main.rs:1316:17:1316:38 | ... .get_input() | T | {EXTERNAL LOCATION} | bool | +| main.rs:1316:22:1316:25 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1329:16:1329:24 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1329:16:1329:24 | SelfParam | &T | main.rs:1327:5:1334:5 | Self [trait MyTrait] | +| main.rs:1329:27:1329:31 | value | | main.rs:1327:19:1327:19 | S | +| main.rs:1331:21:1331:29 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1331:21:1331:29 | SelfParam | &T | main.rs:1327:5:1334:5 | Self [trait MyTrait] | +| main.rs:1331:32:1331:36 | value | | main.rs:1327:19:1327:19 | S | +| main.rs:1332:13:1332:16 | self | | file://:0:0:0:0 | & | +| main.rs:1332:13:1332:16 | self | &T | main.rs:1327:5:1334:5 | Self [trait MyTrait] | +| main.rs:1332:22:1332:26 | value | | main.rs:1327:19:1327:19 | S | +| main.rs:1338:16:1338:24 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1338:16:1338:24 | SelfParam | &T | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1338:16:1338:24 | SelfParam | &T.T | main.rs:1336:10:1336:10 | T | +| main.rs:1338:27:1338:31 | value | | main.rs:1336:10:1336:10 | T | +| main.rs:1342:26:1344:9 | { ... } | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1342:26:1344:9 | { ... } | T | main.rs:1341:10:1341:10 | T | +| main.rs:1343:13:1343:30 | ...::MyNone(...) | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1343:13:1343:30 | ...::MyNone(...) | T | main.rs:1341:10:1341:10 | T | +| main.rs:1348:20:1348:23 | SelfParam | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1348:20:1348:23 | SelfParam | T | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1348:20:1348:23 | SelfParam | T.T | main.rs:1347:10:1347:10 | T | +| main.rs:1348:41:1353:9 | { ... } | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1348:41:1353:9 | { ... } | T | main.rs:1347:10:1347:10 | T | +| main.rs:1349:13:1352:13 | match self { ... } | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1349:13:1352:13 | match self { ... } | T | main.rs:1347:10:1347:10 | T | +| main.rs:1349:19:1349:22 | self | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1349:19:1349:22 | self | T | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1349:19:1349:22 | self | T.T | main.rs:1347:10:1347:10 | T | +| main.rs:1350:17:1350:34 | ...::MyNone(...) | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1350:17:1350:34 | ...::MyNone(...) | T | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1350:17:1350:34 | ...::MyNone(...) | T.T | main.rs:1347:10:1347:10 | T | +| main.rs:1350:39:1350:56 | ...::MyNone(...) | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1350:39:1350:56 | ...::MyNone(...) | T | main.rs:1347:10:1347:10 | T | +| main.rs:1351:17:1351:35 | ...::MySome(...) | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1351:17:1351:35 | ...::MySome(...) | T | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1351:17:1351:35 | ...::MySome(...) | T.T | main.rs:1347:10:1347:10 | T | +| main.rs:1351:34:1351:34 | x | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1351:34:1351:34 | x | T | main.rs:1347:10:1347:10 | T | +| main.rs:1351:40:1351:40 | x | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1351:40:1351:40 | x | T | main.rs:1347:10:1347:10 | T | +| main.rs:1360:13:1360:14 | x1 | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1360:13:1360:14 | x1 | T | main.rs:1356:5:1357:13 | S | +| main.rs:1360:18:1360:37 | ...::new(...) | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1360:18:1360:37 | ...::new(...) | T | main.rs:1356:5:1357:13 | S | +| main.rs:1361:18:1361:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1361:18:1361:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1361:18:1361:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1361:18:1361:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1361:26:1361:27 | x1 | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1361:26:1361:27 | x1 | T | main.rs:1356:5:1357:13 | S | +| main.rs:1363:17:1363:18 | x2 | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1363:17:1363:18 | x2 | T | main.rs:1356:5:1357:13 | S | +| main.rs:1363:22:1363:36 | ...::new(...) | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1363:22:1363:36 | ...::new(...) | T | main.rs:1356:5:1357:13 | S | +| main.rs:1364:9:1364:10 | x2 | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1364:9:1364:10 | x2 | T | main.rs:1356:5:1357:13 | S | +| main.rs:1364:16:1364:16 | S | | main.rs:1356:5:1357:13 | S | +| main.rs:1365:18:1365:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1365:18:1365:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1365:18:1365:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1365:18:1365:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1365:26:1365:27 | x2 | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1365:26:1365:27 | x2 | T | main.rs:1356:5:1357:13 | S | +| main.rs:1368:17:1368:18 | x3 | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1368:22:1368:36 | ...::new(...) | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1369:9:1369:10 | x3 | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1369:21:1369:21 | S | | main.rs:1356:5:1357:13 | S | +| main.rs:1370:18:1370:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1370:18:1370:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1370:18:1370:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1370:18:1370:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1370:26:1370:27 | x3 | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1372:17:1372:18 | x4 | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1372:17:1372:18 | x4 | T | main.rs:1356:5:1357:13 | S | +| main.rs:1372:22:1372:36 | ...::new(...) | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1372:22:1372:36 | ...::new(...) | T | main.rs:1356:5:1357:13 | S | +| main.rs:1373:23:1373:29 | &mut x4 | | file://:0:0:0:0 | & | +| main.rs:1373:23:1373:29 | &mut x4 | &T | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1373:23:1373:29 | &mut x4 | &T.T | main.rs:1356:5:1357:13 | S | +| main.rs:1373:28:1373:29 | x4 | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1373:28:1373:29 | x4 | T | main.rs:1356:5:1357:13 | S | +| main.rs:1373:32:1373:32 | S | | main.rs:1356:5:1357:13 | S | +| main.rs:1374:18:1374:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1374:18:1374:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1374:18:1374:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1374:18:1374:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1374:26:1374:27 | x4 | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1374:26:1374:27 | x4 | T | main.rs:1356:5:1357:13 | S | +| main.rs:1376:13:1376:14 | x5 | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1376:13:1376:14 | x5 | T | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1376:13:1376:14 | x5 | T.T | main.rs:1356:5:1357:13 | S | +| main.rs:1376:18:1376:58 | ...::MySome(...) | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1376:18:1376:58 | ...::MySome(...) | T | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1376:18:1376:58 | ...::MySome(...) | T.T | main.rs:1356:5:1357:13 | S | +| main.rs:1376:35:1376:57 | ...::MyNone(...) | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1376:35:1376:57 | ...::MyNone(...) | T | main.rs:1356:5:1357:13 | S | +| main.rs:1377:18:1377:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1377:18:1377:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1377:18:1377:37 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1377:18:1377:37 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1377:26:1377:27 | x5 | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1377:26:1377:27 | x5 | T | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1377:26:1377:27 | x5 | T.T | main.rs:1356:5:1357:13 | S | +| main.rs:1377:26:1377:37 | x5.flatten() | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1377:26:1377:37 | x5.flatten() | T | main.rs:1356:5:1357:13 | S | +| main.rs:1379:13:1379:14 | x6 | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1379:13:1379:14 | x6 | T | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1379:13:1379:14 | x6 | T.T | main.rs:1356:5:1357:13 | S | +| main.rs:1379:18:1379:58 | ...::MySome(...) | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1379:18:1379:58 | ...::MySome(...) | T | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1379:18:1379:58 | ...::MySome(...) | T.T | main.rs:1356:5:1357:13 | S | +| main.rs:1379:35:1379:57 | ...::MyNone(...) | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1379:35:1379:57 | ...::MyNone(...) | T | main.rs:1356:5:1357:13 | S | +| main.rs:1380:18:1380:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1380:18:1380:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1380:18:1380:61 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1380:18:1380:61 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1380:26:1380:61 | ...::flatten(...) | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1380:26:1380:61 | ...::flatten(...) | T | main.rs:1356:5:1357:13 | S | +| main.rs:1380:59:1380:60 | x6 | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1380:59:1380:60 | x6 | T | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1380:59:1380:60 | x6 | T.T | main.rs:1356:5:1357:13 | S | +| main.rs:1383:13:1383:19 | from_if | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1383:13:1383:19 | from_if | T | main.rs:1356:5:1357:13 | S | +| main.rs:1383:23:1387:9 | if ... {...} else {...} | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1383:23:1387:9 | if ... {...} else {...} | T | main.rs:1356:5:1357:13 | S | +| main.rs:1383:26:1383:26 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1383:26:1383:30 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1383:30:1383:30 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1383:32:1385:9 | { ... } | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1383:32:1385:9 | { ... } | T | main.rs:1356:5:1357:13 | S | +| main.rs:1384:13:1384:30 | ...::MyNone(...) | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1384:13:1384:30 | ...::MyNone(...) | T | main.rs:1356:5:1357:13 | S | +| main.rs:1385:16:1387:9 | { ... } | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1385:16:1387:9 | { ... } | T | main.rs:1356:5:1357:13 | S | +| main.rs:1386:13:1386:31 | ...::MySome(...) | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1386:13:1386:31 | ...::MySome(...) | T | main.rs:1356:5:1357:13 | S | +| main.rs:1386:30:1386:30 | S | | main.rs:1356:5:1357:13 | S | +| main.rs:1388:18:1388:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1388:18:1388:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1388:18:1388:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1388:18:1388:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1388:26:1388:32 | from_if | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1388:26:1388:32 | from_if | T | main.rs:1356:5:1357:13 | S | +| main.rs:1391:13:1391:22 | from_match | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1391:13:1391:22 | from_match | T | main.rs:1356:5:1357:13 | S | +| main.rs:1391:26:1394:9 | match ... { ... } | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1391:26:1394:9 | match ... { ... } | T | main.rs:1356:5:1357:13 | S | +| main.rs:1391:32:1391:32 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1391:32:1391:36 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1391:36:1391:36 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1392:13:1392:16 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1392:21:1392:38 | ...::MyNone(...) | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1392:21:1392:38 | ...::MyNone(...) | T | main.rs:1356:5:1357:13 | S | +| main.rs:1393:13:1393:17 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1393:22:1393:40 | ...::MySome(...) | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1393:22:1393:40 | ...::MySome(...) | T | main.rs:1356:5:1357:13 | S | +| main.rs:1393:39:1393:39 | S | | main.rs:1356:5:1357:13 | S | +| main.rs:1395:18:1395:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1395:18:1395:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1395:18:1395:35 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1395:18:1395:35 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1395:26:1395:35 | from_match | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1395:26:1395:35 | from_match | T | main.rs:1356:5:1357:13 | S | +| main.rs:1398:13:1398:21 | from_loop | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1398:13:1398:21 | from_loop | T | main.rs:1356:5:1357:13 | S | +| main.rs:1398:25:1403:9 | loop { ... } | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1398:25:1403:9 | loop { ... } | T | main.rs:1356:5:1357:13 | S | +| main.rs:1399:16:1399:16 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1399:16:1399:20 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1399:20:1399:20 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1400:23:1400:40 | ...::MyNone(...) | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1400:23:1400:40 | ...::MyNone(...) | T | main.rs:1356:5:1357:13 | S | +| main.rs:1402:19:1402:37 | ...::MySome(...) | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1402:19:1402:37 | ...::MySome(...) | T | main.rs:1356:5:1357:13 | S | +| main.rs:1402:36:1402:36 | S | | main.rs:1356:5:1357:13 | S | +| main.rs:1404:18:1404:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1404:18:1404:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1404:18:1404:34 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1404:18:1404:34 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1404:26:1404:34 | from_loop | | main.rs:1321:5:1325:5 | MyOption | +| main.rs:1404:26:1404:34 | from_loop | T | main.rs:1356:5:1357:13 | S | +| main.rs:1422:15:1422:18 | SelfParam | | main.rs:1410:5:1411:19 | S | +| main.rs:1422:15:1422:18 | SelfParam | T | main.rs:1421:10:1421:10 | T | +| main.rs:1422:26:1424:9 | { ... } | | main.rs:1421:10:1421:10 | T | +| main.rs:1423:13:1423:16 | self | | main.rs:1410:5:1411:19 | S | +| main.rs:1423:13:1423:16 | self | T | main.rs:1421:10:1421:10 | T | +| main.rs:1423:13:1423:18 | self.0 | | main.rs:1421:10:1421:10 | T | +| main.rs:1426:15:1426:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1426:15:1426:19 | SelfParam | &T | main.rs:1410:5:1411:19 | S | +| main.rs:1426:15:1426:19 | SelfParam | &T.T | main.rs:1421:10:1421:10 | T | +| main.rs:1426:28:1428:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1426:28:1428:9 | { ... } | &T | main.rs:1421:10:1421:10 | T | +| main.rs:1427:13:1427:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1427:13:1427:19 | &... | &T | main.rs:1421:10:1421:10 | T | +| main.rs:1427:14:1427:17 | self | | file://:0:0:0:0 | & | +| main.rs:1427:14:1427:17 | self | &T | main.rs:1410:5:1411:19 | S | +| main.rs:1427:14:1427:17 | self | &T.T | main.rs:1421:10:1421:10 | T | +| main.rs:1427:14:1427:19 | self.0 | | main.rs:1421:10:1421:10 | T | +| main.rs:1430:15:1430:25 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1430:15:1430:25 | SelfParam | &T | main.rs:1410:5:1411:19 | S | +| main.rs:1430:15:1430:25 | SelfParam | &T.T | main.rs:1421:10:1421:10 | T | +| main.rs:1430:34:1432:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1430:34:1432:9 | { ... } | &T | main.rs:1421:10:1421:10 | T | +| main.rs:1431:13:1431:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1431:13:1431:19 | &... | &T | main.rs:1421:10:1421:10 | T | +| main.rs:1431:14:1431:17 | self | | file://:0:0:0:0 | & | +| main.rs:1431:14:1431:17 | self | &T | main.rs:1410:5:1411:19 | S | +| main.rs:1431:14:1431:17 | self | &T.T | main.rs:1421:10:1421:10 | T | +| main.rs:1431:14:1431:19 | self.0 | | main.rs:1421:10:1421:10 | T | +| main.rs:1436:29:1436:33 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1436:29:1436:33 | SelfParam | &T | main.rs:1435:5:1438:5 | Self [trait ATrait] | +| main.rs:1437:33:1437:36 | SelfParam | | main.rs:1435:5:1438:5 | Self [trait ATrait] | +| main.rs:1443:29:1443:33 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1443:29:1443:33 | SelfParam | &T | file://:0:0:0:0 | & | +| main.rs:1443:29:1443:33 | SelfParam | &T.&T | main.rs:1416:5:1419:5 | MyInt | +| main.rs:1443:43:1445:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1444:13:1444:22 | (...) | | main.rs:1416:5:1419:5 | MyInt | +| main.rs:1444:13:1444:24 | ... .a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1444:14:1444:21 | * ... | | main.rs:1416:5:1419:5 | MyInt | +| main.rs:1444:15:1444:21 | (...) | | file://:0:0:0:0 | & | +| main.rs:1444:15:1444:21 | (...) | &T | main.rs:1416:5:1419:5 | MyInt | +| main.rs:1444:16:1444:20 | * ... | | file://:0:0:0:0 | & | +| main.rs:1444:16:1444:20 | * ... | &T | main.rs:1416:5:1419:5 | MyInt | +| main.rs:1444:17:1444:20 | self | | file://:0:0:0:0 | & | +| main.rs:1444:17:1444:20 | self | &T | file://:0:0:0:0 | & | +| main.rs:1444:17:1444:20 | self | &T.&T | main.rs:1416:5:1419:5 | MyInt | +| main.rs:1448:33:1448:36 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1448:33:1448:36 | SelfParam | &T | main.rs:1416:5:1419:5 | MyInt | +| main.rs:1448:46:1450:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1449:13:1449:19 | (...) | | main.rs:1416:5:1419:5 | MyInt | +| main.rs:1449:13:1449:21 | ... .a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1449:14:1449:18 | * ... | | main.rs:1416:5:1419:5 | MyInt | +| main.rs:1449:15:1449:18 | self | | file://:0:0:0:0 | & | +| main.rs:1449:15:1449:18 | self | &T | main.rs:1416:5:1419:5 | MyInt | +| main.rs:1454:13:1454:14 | x1 | | main.rs:1410:5:1411:19 | S | +| main.rs:1454:13:1454:14 | x1 | T | main.rs:1413:5:1414:14 | S2 | +| main.rs:1454:18:1454:22 | S(...) | | main.rs:1410:5:1411:19 | S | +| main.rs:1454:18:1454:22 | S(...) | T | main.rs:1413:5:1414:14 | S2 | +| main.rs:1454:20:1454:21 | S2 | | main.rs:1413:5:1414:14 | S2 | +| main.rs:1455:18:1455:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1455:18:1455:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1455:18:1455:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1455:18:1455:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1455:26:1455:27 | x1 | | main.rs:1410:5:1411:19 | S | +| main.rs:1455:26:1455:27 | x1 | T | main.rs:1413:5:1414:14 | S2 | +| main.rs:1455:26:1455:32 | x1.m1() | | main.rs:1413:5:1414:14 | S2 | +| main.rs:1457:13:1457:14 | x2 | | main.rs:1410:5:1411:19 | S | +| main.rs:1457:13:1457:14 | x2 | T | main.rs:1413:5:1414:14 | S2 | +| main.rs:1457:18:1457:22 | S(...) | | main.rs:1410:5:1411:19 | S | +| main.rs:1457:18:1457:22 | S(...) | T | main.rs:1413:5:1414:14 | S2 | +| main.rs:1457:20:1457:21 | S2 | | main.rs:1413:5:1414:14 | S2 | +| main.rs:1459:18:1459:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1459:18:1459:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1459:18:1459:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1459:18:1459:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1459:26:1459:27 | x2 | | main.rs:1410:5:1411:19 | S | +| main.rs:1459:26:1459:27 | x2 | T | main.rs:1413:5:1414:14 | S2 | +| main.rs:1459:26:1459:32 | x2.m2() | | file://:0:0:0:0 | & | +| main.rs:1459:26:1459:32 | x2.m2() | &T | main.rs:1413:5:1414:14 | S2 | | main.rs:1460:18:1460:23 | "{:?}\\n" | | file://:0:0:0:0 | & | | main.rs:1460:18:1460:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | | main.rs:1460:18:1460:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | | main.rs:1460:18:1460:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1460:26:1460:27 | x2 | | main.rs:1411:5:1412:19 | S | -| main.rs:1460:26:1460:27 | x2 | T | main.rs:1414:5:1415:14 | S2 | -| main.rs:1460:26:1460:32 | x2.m2() | | file://:0:0:0:0 | & | -| main.rs:1460:26:1460:32 | x2.m2() | &T | main.rs:1414:5:1415:14 | S2 | -| main.rs:1461:18:1461:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1461:18:1461:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1461:18:1461:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1461:18:1461:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1461:26:1461:27 | x2 | | main.rs:1411:5:1412:19 | S | -| main.rs:1461:26:1461:27 | x2 | T | main.rs:1414:5:1415:14 | S2 | -| main.rs:1461:26:1461:32 | x2.m3() | | file://:0:0:0:0 | & | -| main.rs:1461:26:1461:32 | x2.m3() | &T | main.rs:1414:5:1415:14 | S2 | -| main.rs:1463:13:1463:14 | x3 | | main.rs:1411:5:1412:19 | S | -| main.rs:1463:13:1463:14 | x3 | T | main.rs:1414:5:1415:14 | S2 | -| main.rs:1463:18:1463:22 | S(...) | | main.rs:1411:5:1412:19 | S | -| main.rs:1463:18:1463:22 | S(...) | T | main.rs:1414:5:1415:14 | S2 | -| main.rs:1463:20:1463:21 | S2 | | main.rs:1414:5:1415:14 | S2 | +| main.rs:1460:26:1460:27 | x2 | | main.rs:1410:5:1411:19 | S | +| main.rs:1460:26:1460:27 | x2 | T | main.rs:1413:5:1414:14 | S2 | +| main.rs:1460:26:1460:32 | x2.m3() | | file://:0:0:0:0 | & | +| main.rs:1460:26:1460:32 | x2.m3() | &T | main.rs:1413:5:1414:14 | S2 | +| main.rs:1462:13:1462:14 | x3 | | main.rs:1410:5:1411:19 | S | +| main.rs:1462:13:1462:14 | x3 | T | main.rs:1413:5:1414:14 | S2 | +| main.rs:1462:18:1462:22 | S(...) | | main.rs:1410:5:1411:19 | S | +| main.rs:1462:18:1462:22 | S(...) | T | main.rs:1413:5:1414:14 | S2 | +| main.rs:1462:20:1462:21 | S2 | | main.rs:1413:5:1414:14 | S2 | +| main.rs:1464:18:1464:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1464:18:1464:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1464:18:1464:41 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1464:18:1464:41 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1464:26:1464:41 | ...::m2(...) | | file://:0:0:0:0 | & | +| main.rs:1464:26:1464:41 | ...::m2(...) | &T | main.rs:1413:5:1414:14 | S2 | +| main.rs:1464:38:1464:40 | &x3 | | file://:0:0:0:0 | & | +| main.rs:1464:38:1464:40 | &x3 | &T | main.rs:1410:5:1411:19 | S | +| main.rs:1464:38:1464:40 | &x3 | &T.T | main.rs:1413:5:1414:14 | S2 | +| main.rs:1464:39:1464:40 | x3 | | main.rs:1410:5:1411:19 | S | +| main.rs:1464:39:1464:40 | x3 | T | main.rs:1413:5:1414:14 | S2 | | main.rs:1465:18:1465:23 | "{:?}\\n" | | file://:0:0:0:0 | & | | main.rs:1465:18:1465:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | | main.rs:1465:18:1465:41 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | | main.rs:1465:18:1465:41 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1465:26:1465:41 | ...::m2(...) | | file://:0:0:0:0 | & | -| main.rs:1465:26:1465:41 | ...::m2(...) | &T | main.rs:1414:5:1415:14 | S2 | +| main.rs:1465:26:1465:41 | ...::m3(...) | | file://:0:0:0:0 | & | +| main.rs:1465:26:1465:41 | ...::m3(...) | &T | main.rs:1413:5:1414:14 | S2 | | main.rs:1465:38:1465:40 | &x3 | | file://:0:0:0:0 | & | -| main.rs:1465:38:1465:40 | &x3 | &T | main.rs:1411:5:1412:19 | S | -| main.rs:1465:38:1465:40 | &x3 | &T.T | main.rs:1414:5:1415:14 | S2 | -| main.rs:1465:39:1465:40 | x3 | | main.rs:1411:5:1412:19 | S | -| main.rs:1465:39:1465:40 | x3 | T | main.rs:1414:5:1415:14 | S2 | -| main.rs:1466:18:1466:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1466:18:1466:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1466:18:1466:41 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1466:18:1466:41 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1466:26:1466:41 | ...::m3(...) | | file://:0:0:0:0 | & | -| main.rs:1466:26:1466:41 | ...::m3(...) | &T | main.rs:1414:5:1415:14 | S2 | -| main.rs:1466:38:1466:40 | &x3 | | file://:0:0:0:0 | & | -| main.rs:1466:38:1466:40 | &x3 | &T | main.rs:1411:5:1412:19 | S | -| main.rs:1466:38:1466:40 | &x3 | &T.T | main.rs:1414:5:1415:14 | S2 | -| main.rs:1466:39:1466:40 | x3 | | main.rs:1411:5:1412:19 | S | -| main.rs:1466:39:1466:40 | x3 | T | main.rs:1414:5:1415:14 | S2 | -| main.rs:1468:13:1468:14 | x4 | | file://:0:0:0:0 | & | -| main.rs:1468:13:1468:14 | x4 | &T | main.rs:1411:5:1412:19 | S | -| main.rs:1468:13:1468:14 | x4 | &T.T | main.rs:1414:5:1415:14 | S2 | -| main.rs:1468:18:1468:23 | &... | | file://:0:0:0:0 | & | -| main.rs:1468:18:1468:23 | &... | &T | main.rs:1411:5:1412:19 | S | -| main.rs:1468:18:1468:23 | &... | &T.T | main.rs:1414:5:1415:14 | S2 | -| main.rs:1468:19:1468:23 | S(...) | | main.rs:1411:5:1412:19 | S | -| main.rs:1468:19:1468:23 | S(...) | T | main.rs:1414:5:1415:14 | S2 | -| main.rs:1468:21:1468:22 | S2 | | main.rs:1414:5:1415:14 | S2 | +| main.rs:1465:38:1465:40 | &x3 | &T | main.rs:1410:5:1411:19 | S | +| main.rs:1465:38:1465:40 | &x3 | &T.T | main.rs:1413:5:1414:14 | S2 | +| main.rs:1465:39:1465:40 | x3 | | main.rs:1410:5:1411:19 | S | +| main.rs:1465:39:1465:40 | x3 | T | main.rs:1413:5:1414:14 | S2 | +| main.rs:1467:13:1467:14 | x4 | | file://:0:0:0:0 | & | +| main.rs:1467:13:1467:14 | x4 | &T | main.rs:1410:5:1411:19 | S | +| main.rs:1467:13:1467:14 | x4 | &T.T | main.rs:1413:5:1414:14 | S2 | +| main.rs:1467:18:1467:23 | &... | | file://:0:0:0:0 | & | +| main.rs:1467:18:1467:23 | &... | &T | main.rs:1410:5:1411:19 | S | +| main.rs:1467:18:1467:23 | &... | &T.T | main.rs:1413:5:1414:14 | S2 | +| main.rs:1467:19:1467:23 | S(...) | | main.rs:1410:5:1411:19 | S | +| main.rs:1467:19:1467:23 | S(...) | T | main.rs:1413:5:1414:14 | S2 | +| main.rs:1467:21:1467:22 | S2 | | main.rs:1413:5:1414:14 | S2 | +| main.rs:1469:18:1469:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1469:18:1469:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1469:18:1469:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1469:18:1469:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1469:26:1469:27 | x4 | | file://:0:0:0:0 | & | +| main.rs:1469:26:1469:27 | x4 | &T | main.rs:1410:5:1411:19 | S | +| main.rs:1469:26:1469:27 | x4 | &T.T | main.rs:1413:5:1414:14 | S2 | +| main.rs:1469:26:1469:32 | x4.m2() | | file://:0:0:0:0 | & | +| main.rs:1469:26:1469:32 | x4.m2() | &T | main.rs:1413:5:1414:14 | S2 | | main.rs:1470:18:1470:23 | "{:?}\\n" | | file://:0:0:0:0 | & | | main.rs:1470:18:1470:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | | main.rs:1470:18:1470:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | | main.rs:1470:18:1470:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | | main.rs:1470:26:1470:27 | x4 | | file://:0:0:0:0 | & | -| main.rs:1470:26:1470:27 | x4 | &T | main.rs:1411:5:1412:19 | S | -| main.rs:1470:26:1470:27 | x4 | &T.T | main.rs:1414:5:1415:14 | S2 | -| main.rs:1470:26:1470:32 | x4.m2() | | file://:0:0:0:0 | & | -| main.rs:1470:26:1470:32 | x4.m2() | &T | main.rs:1414:5:1415:14 | S2 | -| main.rs:1471:18:1471:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1471:18:1471:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1471:18:1471:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1471:18:1471:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1471:26:1471:27 | x4 | | file://:0:0:0:0 | & | -| main.rs:1471:26:1471:27 | x4 | &T | main.rs:1411:5:1412:19 | S | -| main.rs:1471:26:1471:27 | x4 | &T.T | main.rs:1414:5:1415:14 | S2 | -| main.rs:1471:26:1471:32 | x4.m3() | | file://:0:0:0:0 | & | -| main.rs:1471:26:1471:32 | x4.m3() | &T | main.rs:1414:5:1415:14 | S2 | -| main.rs:1473:13:1473:14 | x5 | | file://:0:0:0:0 | & | -| main.rs:1473:13:1473:14 | x5 | &T | main.rs:1411:5:1412:19 | S | -| main.rs:1473:13:1473:14 | x5 | &T.T | main.rs:1414:5:1415:14 | S2 | -| main.rs:1473:18:1473:23 | &... | | file://:0:0:0:0 | & | -| main.rs:1473:18:1473:23 | &... | &T | main.rs:1411:5:1412:19 | S | -| main.rs:1473:18:1473:23 | &... | &T.T | main.rs:1414:5:1415:14 | S2 | -| main.rs:1473:19:1473:23 | S(...) | | main.rs:1411:5:1412:19 | S | -| main.rs:1473:19:1473:23 | S(...) | T | main.rs:1414:5:1415:14 | S2 | -| main.rs:1473:21:1473:22 | S2 | | main.rs:1414:5:1415:14 | S2 | +| main.rs:1470:26:1470:27 | x4 | &T | main.rs:1410:5:1411:19 | S | +| main.rs:1470:26:1470:27 | x4 | &T.T | main.rs:1413:5:1414:14 | S2 | +| main.rs:1470:26:1470:32 | x4.m3() | | file://:0:0:0:0 | & | +| main.rs:1470:26:1470:32 | x4.m3() | &T | main.rs:1413:5:1414:14 | S2 | +| main.rs:1472:13:1472:14 | x5 | | file://:0:0:0:0 | & | +| main.rs:1472:13:1472:14 | x5 | &T | main.rs:1410:5:1411:19 | S | +| main.rs:1472:13:1472:14 | x5 | &T.T | main.rs:1413:5:1414:14 | S2 | +| main.rs:1472:18:1472:23 | &... | | file://:0:0:0:0 | & | +| main.rs:1472:18:1472:23 | &... | &T | main.rs:1410:5:1411:19 | S | +| main.rs:1472:18:1472:23 | &... | &T.T | main.rs:1413:5:1414:14 | S2 | +| main.rs:1472:19:1472:23 | S(...) | | main.rs:1410:5:1411:19 | S | +| main.rs:1472:19:1472:23 | S(...) | T | main.rs:1413:5:1414:14 | S2 | +| main.rs:1472:21:1472:22 | S2 | | main.rs:1413:5:1414:14 | S2 | +| main.rs:1474:18:1474:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1474:18:1474:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1474:18:1474:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1474:18:1474:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1474:26:1474:27 | x5 | | file://:0:0:0:0 | & | +| main.rs:1474:26:1474:27 | x5 | &T | main.rs:1410:5:1411:19 | S | +| main.rs:1474:26:1474:27 | x5 | &T.T | main.rs:1413:5:1414:14 | S2 | +| main.rs:1474:26:1474:32 | x5.m1() | | main.rs:1413:5:1414:14 | S2 | | main.rs:1475:18:1475:23 | "{:?}\\n" | | file://:0:0:0:0 | & | | main.rs:1475:18:1475:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1475:18:1475:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1475:18:1475:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1475:18:1475:29 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1475:18:1475:29 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | | main.rs:1475:26:1475:27 | x5 | | file://:0:0:0:0 | & | -| main.rs:1475:26:1475:27 | x5 | &T | main.rs:1411:5:1412:19 | S | -| main.rs:1475:26:1475:27 | x5 | &T.T | main.rs:1414:5:1415:14 | S2 | -| main.rs:1475:26:1475:32 | x5.m1() | | main.rs:1414:5:1415:14 | S2 | -| main.rs:1476:18:1476:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1476:18:1476:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1476:18:1476:29 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1476:18:1476:29 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1476:26:1476:27 | x5 | | file://:0:0:0:0 | & | -| main.rs:1476:26:1476:27 | x5 | &T | main.rs:1411:5:1412:19 | S | -| main.rs:1476:26:1476:27 | x5 | &T.T | main.rs:1414:5:1415:14 | S2 | -| main.rs:1476:26:1476:29 | x5.0 | | main.rs:1414:5:1415:14 | S2 | -| main.rs:1478:13:1478:14 | x6 | | file://:0:0:0:0 | & | -| main.rs:1478:13:1478:14 | x6 | &T | main.rs:1411:5:1412:19 | S | -| main.rs:1478:13:1478:14 | x6 | &T.T | main.rs:1414:5:1415:14 | S2 | -| main.rs:1478:18:1478:23 | &... | | file://:0:0:0:0 | & | -| main.rs:1478:18:1478:23 | &... | &T | main.rs:1411:5:1412:19 | S | -| main.rs:1478:18:1478:23 | &... | &T.T | main.rs:1414:5:1415:14 | S2 | -| main.rs:1478:19:1478:23 | S(...) | | main.rs:1411:5:1412:19 | S | -| main.rs:1478:19:1478:23 | S(...) | T | main.rs:1414:5:1415:14 | S2 | -| main.rs:1478:21:1478:22 | S2 | | main.rs:1414:5:1415:14 | S2 | -| main.rs:1481:18:1481:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1481:18:1481:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1481:18:1481:35 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1481:18:1481:35 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1481:26:1481:30 | (...) | | main.rs:1411:5:1412:19 | S | -| main.rs:1481:26:1481:30 | (...) | T | main.rs:1414:5:1415:14 | S2 | -| main.rs:1481:26:1481:35 | ... .m1() | | main.rs:1414:5:1415:14 | S2 | -| main.rs:1481:27:1481:29 | * ... | | main.rs:1411:5:1412:19 | S | -| main.rs:1481:27:1481:29 | * ... | T | main.rs:1414:5:1415:14 | S2 | -| main.rs:1481:28:1481:29 | x6 | | file://:0:0:0:0 | & | -| main.rs:1481:28:1481:29 | x6 | &T | main.rs:1411:5:1412:19 | S | -| main.rs:1481:28:1481:29 | x6 | &T.T | main.rs:1414:5:1415:14 | S2 | -| main.rs:1483:13:1483:14 | x7 | | main.rs:1411:5:1412:19 | S | -| main.rs:1483:13:1483:14 | x7 | T | file://:0:0:0:0 | & | -| main.rs:1483:13:1483:14 | x7 | T.&T | main.rs:1414:5:1415:14 | S2 | -| main.rs:1483:18:1483:23 | S(...) | | main.rs:1411:5:1412:19 | S | -| main.rs:1483:18:1483:23 | S(...) | T | file://:0:0:0:0 | & | -| main.rs:1483:18:1483:23 | S(...) | T.&T | main.rs:1414:5:1415:14 | S2 | -| main.rs:1483:20:1483:22 | &S2 | | file://:0:0:0:0 | & | -| main.rs:1483:20:1483:22 | &S2 | &T | main.rs:1414:5:1415:14 | S2 | -| main.rs:1483:21:1483:22 | S2 | | main.rs:1414:5:1415:14 | S2 | -| main.rs:1486:13:1486:13 | t | | file://:0:0:0:0 | & | -| main.rs:1486:13:1486:13 | t | &T | main.rs:1414:5:1415:14 | S2 | -| main.rs:1486:17:1486:18 | x7 | | main.rs:1411:5:1412:19 | S | -| main.rs:1486:17:1486:18 | x7 | T | file://:0:0:0:0 | & | -| main.rs:1486:17:1486:18 | x7 | T.&T | main.rs:1414:5:1415:14 | S2 | -| main.rs:1486:17:1486:23 | x7.m1() | | file://:0:0:0:0 | & | -| main.rs:1486:17:1486:23 | x7.m1() | &T | main.rs:1414:5:1415:14 | S2 | -| main.rs:1487:18:1487:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1487:18:1487:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1487:18:1487:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1487:18:1487:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1487:26:1487:27 | x7 | | main.rs:1411:5:1412:19 | S | -| main.rs:1487:26:1487:27 | x7 | T | file://:0:0:0:0 | & | -| main.rs:1487:26:1487:27 | x7 | T.&T | main.rs:1414:5:1415:14 | S2 | -| main.rs:1489:13:1489:14 | x9 | | {EXTERNAL LOCATION} | String | -| main.rs:1489:26:1489:32 | "Hello" | | file://:0:0:0:0 | & | -| main.rs:1489:26:1489:32 | "Hello" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1489:26:1489:44 | "Hello".to_string() | | {EXTERNAL LOCATION} | String | -| main.rs:1493:13:1493:13 | u | | {EXTERNAL LOCATION} | Result | -| main.rs:1493:13:1493:13 | u | T | {EXTERNAL LOCATION} | u32 | -| main.rs:1493:17:1493:18 | x9 | | {EXTERNAL LOCATION} | String | -| main.rs:1493:17:1493:33 | x9.parse() | | {EXTERNAL LOCATION} | Result | -| main.rs:1493:17:1493:33 | x9.parse() | T | {EXTERNAL LOCATION} | u32 | -| main.rs:1495:13:1495:20 | my_thing | | file://:0:0:0:0 | & | -| main.rs:1495:13:1495:20 | my_thing | &T | main.rs:1417:5:1420:5 | MyInt | -| main.rs:1495:24:1495:39 | &... | | file://:0:0:0:0 | & | -| main.rs:1495:24:1495:39 | &... | &T | main.rs:1417:5:1420:5 | MyInt | -| main.rs:1495:25:1495:39 | MyInt {...} | | main.rs:1417:5:1420:5 | MyInt | -| main.rs:1495:36:1495:37 | 37 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1495:36:1495:37 | 37 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1497:13:1497:13 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1497:17:1497:24 | my_thing | | file://:0:0:0:0 | & | -| main.rs:1497:17:1497:24 | my_thing | &T | main.rs:1417:5:1420:5 | MyInt | -| main.rs:1497:17:1497:43 | my_thing.method_on_borrow() | | {EXTERNAL LOCATION} | i64 | -| main.rs:1498:18:1498:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1498:18:1498:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1498:18:1498:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1498:18:1498:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1498:26:1498:26 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1501:13:1501:20 | my_thing | | file://:0:0:0:0 | & | -| main.rs:1501:13:1501:20 | my_thing | &T | main.rs:1417:5:1420:5 | MyInt | -| main.rs:1501:24:1501:39 | &... | | file://:0:0:0:0 | & | -| main.rs:1501:24:1501:39 | &... | &T | main.rs:1417:5:1420:5 | MyInt | -| main.rs:1501:25:1501:39 | MyInt {...} | | main.rs:1417:5:1420:5 | MyInt | -| main.rs:1501:36:1501:37 | 38 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1501:36:1501:37 | 38 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1502:13:1502:13 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1502:17:1502:24 | my_thing | | file://:0:0:0:0 | & | -| main.rs:1502:17:1502:24 | my_thing | &T | main.rs:1417:5:1420:5 | MyInt | -| main.rs:1502:17:1502:47 | my_thing.method_not_on_borrow() | | {EXTERNAL LOCATION} | i64 | -| main.rs:1503:18:1503:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1503:18:1503:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1503:18:1503:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1503:18:1503:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1503:26:1503:26 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1510:16:1510:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1510:16:1510:20 | SelfParam | &T | main.rs:1508:5:1516:5 | Self [trait MyTrait] | -| main.rs:1513:16:1513:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1513:16:1513:20 | SelfParam | &T | main.rs:1508:5:1516:5 | Self [trait MyTrait] | -| main.rs:1513:32:1515:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1513:32:1515:9 | { ... } | &T | main.rs:1508:5:1516:5 | Self [trait MyTrait] | -| main.rs:1514:13:1514:16 | self | | file://:0:0:0:0 | & | -| main.rs:1514:13:1514:16 | self | &T | main.rs:1508:5:1516:5 | Self [trait MyTrait] | -| main.rs:1514:13:1514:22 | self.foo() | | file://:0:0:0:0 | & | -| main.rs:1514:13:1514:22 | self.foo() | &T | main.rs:1508:5:1516:5 | Self [trait MyTrait] | -| main.rs:1522:16:1522:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1522:16:1522:20 | SelfParam | &T | main.rs:1518:5:1518:20 | MyStruct | -| main.rs:1522:36:1524:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1522:36:1524:9 | { ... } | &T | main.rs:1518:5:1518:20 | MyStruct | -| main.rs:1523:13:1523:16 | self | | file://:0:0:0:0 | & | -| main.rs:1523:13:1523:16 | self | &T | main.rs:1518:5:1518:20 | MyStruct | -| main.rs:1528:13:1528:13 | x | | main.rs:1518:5:1518:20 | MyStruct | -| main.rs:1528:17:1528:24 | MyStruct | | main.rs:1518:5:1518:20 | MyStruct | -| main.rs:1529:9:1529:9 | x | | main.rs:1518:5:1518:20 | MyStruct | -| main.rs:1529:9:1529:15 | x.bar() | | file://:0:0:0:0 | & | -| main.rs:1529:9:1529:15 | x.bar() | &T | main.rs:1518:5:1518:20 | MyStruct | -| main.rs:1539:16:1539:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1539:16:1539:20 | SelfParam | &T | main.rs:1536:5:1536:26 | MyStruct | -| main.rs:1539:16:1539:20 | SelfParam | &T.T | main.rs:1538:10:1538:10 | T | -| main.rs:1539:32:1541:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1539:32:1541:9 | { ... } | &T | main.rs:1536:5:1536:26 | MyStruct | -| main.rs:1539:32:1541:9 | { ... } | &T.T | main.rs:1538:10:1538:10 | T | -| main.rs:1540:13:1540:16 | self | | file://:0:0:0:0 | & | -| main.rs:1540:13:1540:16 | self | &T | main.rs:1536:5:1536:26 | MyStruct | -| main.rs:1540:13:1540:16 | self | &T.T | main.rs:1538:10:1538:10 | T | -| main.rs:1545:13:1545:13 | x | | main.rs:1536:5:1536:26 | MyStruct | -| main.rs:1545:13:1545:13 | x | T | main.rs:1534:5:1534:13 | S | -| main.rs:1545:17:1545:27 | MyStruct(...) | | main.rs:1536:5:1536:26 | MyStruct | -| main.rs:1545:17:1545:27 | MyStruct(...) | T | main.rs:1534:5:1534:13 | S | -| main.rs:1545:26:1545:26 | S | | main.rs:1534:5:1534:13 | S | -| main.rs:1546:9:1546:9 | x | | main.rs:1536:5:1536:26 | MyStruct | -| main.rs:1546:9:1546:9 | x | T | main.rs:1534:5:1534:13 | S | -| main.rs:1546:9:1546:15 | x.foo() | | file://:0:0:0:0 | & | -| main.rs:1546:9:1546:15 | x.foo() | &T | main.rs:1536:5:1536:26 | MyStruct | -| main.rs:1546:9:1546:15 | x.foo() | &T.T | main.rs:1534:5:1534:13 | S | -| main.rs:1557:17:1557:25 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1557:17:1557:25 | SelfParam | &T | main.rs:1551:5:1554:5 | MyFlag | -| main.rs:1558:13:1558:16 | self | | file://:0:0:0:0 | & | -| main.rs:1558:13:1558:16 | self | &T | main.rs:1551:5:1554:5 | MyFlag | -| main.rs:1558:13:1558:21 | self.bool | | {EXTERNAL LOCATION} | bool | -| main.rs:1558:13:1558:34 | ... = ... | | file://:0:0:0:0 | () | -| main.rs:1558:25:1558:34 | ! ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1558:26:1558:29 | self | | file://:0:0:0:0 | & | -| main.rs:1558:26:1558:29 | self | &T | main.rs:1551:5:1554:5 | MyFlag | -| main.rs:1558:26:1558:34 | self.bool | | {EXTERNAL LOCATION} | bool | -| main.rs:1565:15:1565:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1565:15:1565:19 | SelfParam | &T | main.rs:1562:5:1562:13 | S | -| main.rs:1565:31:1567:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1565:31:1567:9 | { ... } | &T | main.rs:1562:5:1562:13 | S | -| main.rs:1566:13:1566:19 | &... | | file://:0:0:0:0 | & | -| main.rs:1566:13:1566:19 | &... | &T | file://:0:0:0:0 | & | -| main.rs:1566:13:1566:19 | &... | &T | main.rs:1562:5:1562:13 | S | -| main.rs:1566:13:1566:19 | &... | &T.&T | file://:0:0:0:0 | & | -| main.rs:1566:13:1566:19 | &... | &T.&T.&T | file://:0:0:0:0 | & | -| main.rs:1566:13:1566:19 | &... | &T.&T.&T.&T | main.rs:1562:5:1562:13 | S | -| main.rs:1566:14:1566:19 | &... | | file://:0:0:0:0 | & | -| main.rs:1566:14:1566:19 | &... | &T | file://:0:0:0:0 | & | -| main.rs:1566:14:1566:19 | &... | &T.&T | file://:0:0:0:0 | & | -| main.rs:1566:14:1566:19 | &... | &T.&T.&T | main.rs:1562:5:1562:13 | S | -| main.rs:1566:15:1566:19 | &self | | file://:0:0:0:0 | & | -| main.rs:1566:15:1566:19 | &self | &T | file://:0:0:0:0 | & | -| main.rs:1566:15:1566:19 | &self | &T.&T | main.rs:1562:5:1562:13 | S | -| main.rs:1566:16:1566:19 | self | | file://:0:0:0:0 | & | -| main.rs:1566:16:1566:19 | self | &T | main.rs:1562:5:1562:13 | S | -| main.rs:1569:15:1569:25 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1569:15:1569:25 | SelfParam | &T | main.rs:1562:5:1562:13 | S | -| main.rs:1569:37:1571:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1569:37:1571:9 | { ... } | &T | main.rs:1562:5:1562:13 | S | -| main.rs:1570:13:1570:19 | &... | | file://:0:0:0:0 | & | -| main.rs:1570:13:1570:19 | &... | &T | file://:0:0:0:0 | & | -| main.rs:1570:13:1570:19 | &... | &T | main.rs:1562:5:1562:13 | S | -| main.rs:1570:13:1570:19 | &... | &T.&T | file://:0:0:0:0 | & | -| main.rs:1570:13:1570:19 | &... | &T.&T.&T | file://:0:0:0:0 | & | -| main.rs:1570:13:1570:19 | &... | &T.&T.&T.&T | main.rs:1562:5:1562:13 | S | -| main.rs:1570:14:1570:19 | &... | | file://:0:0:0:0 | & | -| main.rs:1570:14:1570:19 | &... | &T | file://:0:0:0:0 | & | -| main.rs:1570:14:1570:19 | &... | &T.&T | file://:0:0:0:0 | & | -| main.rs:1570:14:1570:19 | &... | &T.&T.&T | main.rs:1562:5:1562:13 | S | -| main.rs:1570:15:1570:19 | &self | | file://:0:0:0:0 | & | -| main.rs:1570:15:1570:19 | &self | &T | file://:0:0:0:0 | & | -| main.rs:1570:15:1570:19 | &self | &T.&T | main.rs:1562:5:1562:13 | S | -| main.rs:1570:16:1570:19 | self | | file://:0:0:0:0 | & | -| main.rs:1570:16:1570:19 | self | &T | main.rs:1562:5:1562:13 | S | -| main.rs:1573:15:1573:15 | x | | file://:0:0:0:0 | & | -| main.rs:1573:15:1573:15 | x | &T | main.rs:1562:5:1562:13 | S | -| main.rs:1573:34:1575:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1573:34:1575:9 | { ... } | &T | main.rs:1562:5:1562:13 | S | -| main.rs:1574:13:1574:13 | x | | file://:0:0:0:0 | & | -| main.rs:1574:13:1574:13 | x | &T | main.rs:1562:5:1562:13 | S | -| main.rs:1577:15:1577:15 | x | | file://:0:0:0:0 | & | -| main.rs:1577:15:1577:15 | x | &T | main.rs:1562:5:1562:13 | S | -| main.rs:1577:34:1579:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1577:34:1579:9 | { ... } | &T | main.rs:1562:5:1562:13 | S | -| main.rs:1578:13:1578:16 | &... | | file://:0:0:0:0 | & | -| main.rs:1578:13:1578:16 | &... | &T | file://:0:0:0:0 | & | -| main.rs:1578:13:1578:16 | &... | &T | main.rs:1562:5:1562:13 | S | -| main.rs:1578:13:1578:16 | &... | &T.&T | file://:0:0:0:0 | & | -| main.rs:1578:13:1578:16 | &... | &T.&T.&T | file://:0:0:0:0 | & | -| main.rs:1578:13:1578:16 | &... | &T.&T.&T.&T | main.rs:1562:5:1562:13 | S | -| main.rs:1578:14:1578:16 | &... | | file://:0:0:0:0 | & | -| main.rs:1578:14:1578:16 | &... | &T | file://:0:0:0:0 | & | -| main.rs:1578:14:1578:16 | &... | &T.&T | file://:0:0:0:0 | & | -| main.rs:1578:14:1578:16 | &... | &T.&T.&T | main.rs:1562:5:1562:13 | S | -| main.rs:1578:15:1578:16 | &x | | file://:0:0:0:0 | & | -| main.rs:1578:15:1578:16 | &x | &T | file://:0:0:0:0 | & | -| main.rs:1578:15:1578:16 | &x | &T.&T | main.rs:1562:5:1562:13 | S | -| main.rs:1578:16:1578:16 | x | | file://:0:0:0:0 | & | -| main.rs:1578:16:1578:16 | x | &T | main.rs:1562:5:1562:13 | S | -| main.rs:1583:13:1583:13 | x | | main.rs:1562:5:1562:13 | S | -| main.rs:1583:17:1583:20 | S {...} | | main.rs:1562:5:1562:13 | S | -| main.rs:1584:9:1584:9 | x | | main.rs:1562:5:1562:13 | S | -| main.rs:1584:9:1584:14 | x.f1() | | file://:0:0:0:0 | & | -| main.rs:1584:9:1584:14 | x.f1() | &T | main.rs:1562:5:1562:13 | S | -| main.rs:1585:9:1585:9 | x | | main.rs:1562:5:1562:13 | S | -| main.rs:1585:9:1585:14 | x.f2() | | file://:0:0:0:0 | & | -| main.rs:1585:9:1585:14 | x.f2() | &T | main.rs:1562:5:1562:13 | S | -| main.rs:1586:9:1586:17 | ...::f3(...) | | file://:0:0:0:0 | & | -| main.rs:1586:9:1586:17 | ...::f3(...) | &T | main.rs:1562:5:1562:13 | S | -| main.rs:1586:15:1586:16 | &x | | file://:0:0:0:0 | & | -| main.rs:1586:15:1586:16 | &x | &T | main.rs:1562:5:1562:13 | S | -| main.rs:1586:16:1586:16 | x | | main.rs:1562:5:1562:13 | S | -| main.rs:1588:13:1588:13 | n | | {EXTERNAL LOCATION} | bool | -| main.rs:1588:17:1588:24 | * ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1588:18:1588:24 | * ... | | file://:0:0:0:0 | & | -| main.rs:1588:18:1588:24 | * ... | &T | {EXTERNAL LOCATION} | bool | -| main.rs:1588:19:1588:24 | &... | | file://:0:0:0:0 | & | -| main.rs:1588:19:1588:24 | &... | &T | file://:0:0:0:0 | & | -| main.rs:1588:19:1588:24 | &... | &T.&T | {EXTERNAL LOCATION} | bool | -| main.rs:1588:20:1588:24 | &true | | file://:0:0:0:0 | & | -| main.rs:1588:20:1588:24 | &true | &T | {EXTERNAL LOCATION} | bool | -| main.rs:1588:21:1588:24 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1592:17:1592:20 | flag | | main.rs:1551:5:1554:5 | MyFlag | -| main.rs:1592:24:1592:41 | ...::default(...) | | main.rs:1551:5:1554:5 | MyFlag | -| main.rs:1593:22:1593:30 | &mut flag | | file://:0:0:0:0 | & | -| main.rs:1593:22:1593:30 | &mut flag | &T | main.rs:1551:5:1554:5 | MyFlag | -| main.rs:1593:27:1593:30 | flag | | main.rs:1551:5:1554:5 | MyFlag | -| main.rs:1594:18:1594:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1594:18:1594:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1594:18:1594:29 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1594:18:1594:29 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1594:26:1594:29 | flag | | main.rs:1551:5:1554:5 | MyFlag | -| main.rs:1609:43:1612:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1609:43:1612:5 | { ... } | E | main.rs:1601:5:1602:14 | S1 | -| main.rs:1609:43:1612:5 | { ... } | T | main.rs:1601:5:1602:14 | S1 | -| main.rs:1610:13:1610:13 | x | | main.rs:1601:5:1602:14 | S1 | -| main.rs:1610:17:1610:30 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1610:17:1610:30 | ...::Ok(...) | T | main.rs:1601:5:1602:14 | S1 | -| main.rs:1610:17:1610:31 | TryExpr | | main.rs:1601:5:1602:14 | S1 | -| main.rs:1610:28:1610:29 | S1 | | main.rs:1601:5:1602:14 | S1 | -| main.rs:1611:9:1611:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1611:9:1611:22 | ...::Ok(...) | E | main.rs:1601:5:1602:14 | S1 | -| main.rs:1611:9:1611:22 | ...::Ok(...) | T | main.rs:1601:5:1602:14 | S1 | -| main.rs:1611:20:1611:21 | S1 | | main.rs:1601:5:1602:14 | S1 | -| main.rs:1616:46:1620:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1616:46:1620:5 | { ... } | E | main.rs:1604:5:1605:14 | S2 | -| main.rs:1616:46:1620:5 | { ... } | T | main.rs:1601:5:1602:14 | S1 | -| main.rs:1617:13:1617:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:1617:13:1617:13 | x | T | main.rs:1601:5:1602:14 | S1 | -| main.rs:1617:17:1617:30 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1617:17:1617:30 | ...::Ok(...) | T | main.rs:1601:5:1602:14 | S1 | -| main.rs:1617:28:1617:29 | S1 | | main.rs:1601:5:1602:14 | S1 | -| main.rs:1618:13:1618:13 | y | | main.rs:1601:5:1602:14 | S1 | -| main.rs:1618:17:1618:17 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:1618:17:1618:17 | x | T | main.rs:1601:5:1602:14 | S1 | -| main.rs:1618:17:1618:18 | TryExpr | | main.rs:1601:5:1602:14 | S1 | -| main.rs:1619:9:1619:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1619:9:1619:22 | ...::Ok(...) | E | main.rs:1604:5:1605:14 | S2 | -| main.rs:1619:9:1619:22 | ...::Ok(...) | T | main.rs:1601:5:1602:14 | S1 | -| main.rs:1619:20:1619:21 | S1 | | main.rs:1601:5:1602:14 | S1 | -| main.rs:1624:40:1629:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1624:40:1629:5 | { ... } | E | main.rs:1604:5:1605:14 | S2 | -| main.rs:1624:40:1629:5 | { ... } | T | main.rs:1601:5:1602:14 | S1 | -| main.rs:1625:13:1625:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:1625:13:1625:13 | x | T | {EXTERNAL LOCATION} | Result | -| main.rs:1625:13:1625:13 | x | T.T | main.rs:1601:5:1602:14 | S1 | -| main.rs:1625:17:1625:42 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1625:17:1625:42 | ...::Ok(...) | T | {EXTERNAL LOCATION} | Result | -| main.rs:1625:17:1625:42 | ...::Ok(...) | T.T | main.rs:1601:5:1602:14 | S1 | -| main.rs:1625:28:1625:41 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1625:28:1625:41 | ...::Ok(...) | T | main.rs:1601:5:1602:14 | S1 | -| main.rs:1625:39:1625:40 | S1 | | main.rs:1601:5:1602:14 | S1 | -| main.rs:1627:17:1627:17 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:1627:17:1627:17 | x | T | {EXTERNAL LOCATION} | Result | -| main.rs:1627:17:1627:17 | x | T.T | main.rs:1601:5:1602:14 | S1 | -| main.rs:1627:17:1627:18 | TryExpr | | {EXTERNAL LOCATION} | Result | -| main.rs:1627:17:1627:18 | TryExpr | T | main.rs:1601:5:1602:14 | S1 | -| main.rs:1627:17:1627:29 | ... .map(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1627:24:1627:28 | \|...\| s | | {EXTERNAL LOCATION} | dyn FnOnce | -| main.rs:1627:24:1627:28 | \|...\| s | dyn(Args) | file://:0:0:0:0 | (T_1) | -| main.rs:1628:9:1628:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1628:9:1628:22 | ...::Ok(...) | E | main.rs:1604:5:1605:14 | S2 | -| main.rs:1628:9:1628:22 | ...::Ok(...) | T | main.rs:1601:5:1602:14 | S1 | -| main.rs:1628:20:1628:21 | S1 | | main.rs:1601:5:1602:14 | S1 | -| main.rs:1633:30:1633:34 | input | | {EXTERNAL LOCATION} | Result | -| main.rs:1633:30:1633:34 | input | E | main.rs:1601:5:1602:14 | S1 | -| main.rs:1633:30:1633:34 | input | T | main.rs:1633:20:1633:27 | T | -| main.rs:1633:69:1640:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1633:69:1640:5 | { ... } | E | main.rs:1601:5:1602:14 | S1 | -| main.rs:1633:69:1640:5 | { ... } | T | main.rs:1633:20:1633:27 | T | -| main.rs:1634:13:1634:17 | value | | main.rs:1633:20:1633:27 | T | -| main.rs:1634:21:1634:25 | input | | {EXTERNAL LOCATION} | Result | -| main.rs:1634:21:1634:25 | input | E | main.rs:1601:5:1602:14 | S1 | -| main.rs:1634:21:1634:25 | input | T | main.rs:1633:20:1633:27 | T | -| main.rs:1634:21:1634:26 | TryExpr | | main.rs:1633:20:1633:27 | T | -| main.rs:1635:22:1635:38 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1635:22:1635:38 | ...::Ok(...) | E | main.rs:1601:5:1602:14 | S1 | -| main.rs:1635:22:1635:38 | ...::Ok(...) | T | main.rs:1633:20:1633:27 | T | -| main.rs:1635:22:1638:10 | ... .and_then(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1635:22:1638:10 | ... .and_then(...) | E | main.rs:1601:5:1602:14 | S1 | -| main.rs:1635:33:1635:37 | value | | main.rs:1633:20:1633:27 | T | -| main.rs:1635:49:1638:9 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | -| main.rs:1635:49:1638:9 | \|...\| ... | dyn(Args) | file://:0:0:0:0 | (T_1) | -| main.rs:1635:49:1638:9 | \|...\| ... | dyn(Output) | {EXTERNAL LOCATION} | Result | -| main.rs:1635:49:1638:9 | \|...\| ... | dyn(Output).E | main.rs:1601:5:1602:14 | S1 | -| main.rs:1635:53:1638:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1635:53:1638:9 | { ... } | E | main.rs:1601:5:1602:14 | S1 | -| main.rs:1636:22:1636:27 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1636:22:1636:27 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1636:22:1636:30 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1636:22:1636:30 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1637:13:1637:34 | ...::Ok::<...>(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1637:13:1637:34 | ...::Ok::<...>(...) | E | main.rs:1601:5:1602:14 | S1 | -| main.rs:1639:9:1639:23 | ...::Err(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1639:9:1639:23 | ...::Err(...) | E | main.rs:1601:5:1602:14 | S1 | -| main.rs:1639:9:1639:23 | ...::Err(...) | T | main.rs:1633:20:1633:27 | T | -| main.rs:1639:21:1639:22 | S1 | | main.rs:1601:5:1602:14 | S1 | -| main.rs:1644:16:1644:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1644:16:1644:33 | ...::Ok(...) | E | main.rs:1601:5:1602:14 | S1 | -| main.rs:1644:16:1644:33 | ...::Ok(...) | T | main.rs:1601:5:1602:14 | S1 | -| main.rs:1644:27:1644:32 | result | | main.rs:1601:5:1602:14 | S1 | -| main.rs:1644:37:1644:52 | try_same_error(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1644:37:1644:52 | try_same_error(...) | E | main.rs:1601:5:1602:14 | S1 | -| main.rs:1644:37:1644:52 | try_same_error(...) | T | main.rs:1601:5:1602:14 | S1 | -| main.rs:1645:22:1645:27 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1645:22:1645:27 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1645:22:1645:35 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1645:22:1645:35 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1645:30:1645:35 | result | | main.rs:1601:5:1602:14 | S1 | -| main.rs:1648:16:1648:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1648:16:1648:33 | ...::Ok(...) | E | main.rs:1604:5:1605:14 | S2 | -| main.rs:1648:16:1648:33 | ...::Ok(...) | T | main.rs:1601:5:1602:14 | S1 | -| main.rs:1648:27:1648:32 | result | | main.rs:1601:5:1602:14 | S1 | -| main.rs:1648:37:1648:55 | try_convert_error(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1648:37:1648:55 | try_convert_error(...) | E | main.rs:1604:5:1605:14 | S2 | -| main.rs:1648:37:1648:55 | try_convert_error(...) | T | main.rs:1601:5:1602:14 | S1 | -| main.rs:1649:22:1649:27 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1649:22:1649:27 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1649:22:1649:35 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1649:22:1649:35 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1649:30:1649:35 | result | | main.rs:1601:5:1602:14 | S1 | -| main.rs:1652:16:1652:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1652:16:1652:33 | ...::Ok(...) | E | main.rs:1604:5:1605:14 | S2 | -| main.rs:1652:16:1652:33 | ...::Ok(...) | T | main.rs:1601:5:1602:14 | S1 | -| main.rs:1652:27:1652:32 | result | | main.rs:1601:5:1602:14 | S1 | -| main.rs:1652:37:1652:49 | try_chained(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1652:37:1652:49 | try_chained(...) | E | main.rs:1604:5:1605:14 | S2 | -| main.rs:1652:37:1652:49 | try_chained(...) | T | main.rs:1601:5:1602:14 | S1 | -| main.rs:1653:22:1653:27 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1653:22:1653:27 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1653:22:1653:35 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1653:22:1653:35 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1653:30:1653:35 | result | | main.rs:1601:5:1602:14 | S1 | -| main.rs:1656:16:1656:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1656:16:1656:33 | ...::Ok(...) | E | main.rs:1601:5:1602:14 | S1 | -| main.rs:1656:16:1656:33 | ...::Ok(...) | T | main.rs:1601:5:1602:14 | S1 | -| main.rs:1656:27:1656:32 | result | | main.rs:1601:5:1602:14 | S1 | -| main.rs:1656:37:1656:63 | try_complex(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1656:37:1656:63 | try_complex(...) | E | main.rs:1601:5:1602:14 | S1 | -| main.rs:1656:37:1656:63 | try_complex(...) | T | main.rs:1601:5:1602:14 | S1 | -| main.rs:1656:49:1656:62 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1656:49:1656:62 | ...::Ok(...) | E | main.rs:1601:5:1602:14 | S1 | -| main.rs:1656:49:1656:62 | ...::Ok(...) | T | main.rs:1601:5:1602:14 | S1 | -| main.rs:1656:60:1656:61 | S1 | | main.rs:1601:5:1602:14 | S1 | -| main.rs:1657:22:1657:27 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1657:22:1657:27 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1657:22:1657:35 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1657:22:1657:35 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1657:30:1657:35 | result | | main.rs:1601:5:1602:14 | S1 | -| main.rs:1664:13:1664:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1664:22:1664:22 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1665:13:1665:13 | y | | {EXTERNAL LOCATION} | i32 | -| main.rs:1665:17:1665:17 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1475:26:1475:27 | x5 | &T | main.rs:1410:5:1411:19 | S | +| main.rs:1475:26:1475:27 | x5 | &T.T | main.rs:1413:5:1414:14 | S2 | +| main.rs:1475:26:1475:29 | x5.0 | | main.rs:1413:5:1414:14 | S2 | +| main.rs:1477:13:1477:14 | x6 | | file://:0:0:0:0 | & | +| main.rs:1477:13:1477:14 | x6 | &T | main.rs:1410:5:1411:19 | S | +| main.rs:1477:13:1477:14 | x6 | &T.T | main.rs:1413:5:1414:14 | S2 | +| main.rs:1477:18:1477:23 | &... | | file://:0:0:0:0 | & | +| main.rs:1477:18:1477:23 | &... | &T | main.rs:1410:5:1411:19 | S | +| main.rs:1477:18:1477:23 | &... | &T.T | main.rs:1413:5:1414:14 | S2 | +| main.rs:1477:19:1477:23 | S(...) | | main.rs:1410:5:1411:19 | S | +| main.rs:1477:19:1477:23 | S(...) | T | main.rs:1413:5:1414:14 | S2 | +| main.rs:1477:21:1477:22 | S2 | | main.rs:1413:5:1414:14 | S2 | +| main.rs:1480:18:1480:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1480:18:1480:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1480:18:1480:35 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1480:18:1480:35 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1480:26:1480:30 | (...) | | main.rs:1410:5:1411:19 | S | +| main.rs:1480:26:1480:30 | (...) | T | main.rs:1413:5:1414:14 | S2 | +| main.rs:1480:26:1480:35 | ... .m1() | | main.rs:1413:5:1414:14 | S2 | +| main.rs:1480:27:1480:29 | * ... | | main.rs:1410:5:1411:19 | S | +| main.rs:1480:27:1480:29 | * ... | T | main.rs:1413:5:1414:14 | S2 | +| main.rs:1480:28:1480:29 | x6 | | file://:0:0:0:0 | & | +| main.rs:1480:28:1480:29 | x6 | &T | main.rs:1410:5:1411:19 | S | +| main.rs:1480:28:1480:29 | x6 | &T.T | main.rs:1413:5:1414:14 | S2 | +| main.rs:1482:13:1482:14 | x7 | | main.rs:1410:5:1411:19 | S | +| main.rs:1482:13:1482:14 | x7 | T | file://:0:0:0:0 | & | +| main.rs:1482:13:1482:14 | x7 | T.&T | main.rs:1413:5:1414:14 | S2 | +| main.rs:1482:18:1482:23 | S(...) | | main.rs:1410:5:1411:19 | S | +| main.rs:1482:18:1482:23 | S(...) | T | file://:0:0:0:0 | & | +| main.rs:1482:18:1482:23 | S(...) | T.&T | main.rs:1413:5:1414:14 | S2 | +| main.rs:1482:20:1482:22 | &S2 | | file://:0:0:0:0 | & | +| main.rs:1482:20:1482:22 | &S2 | &T | main.rs:1413:5:1414:14 | S2 | +| main.rs:1482:21:1482:22 | S2 | | main.rs:1413:5:1414:14 | S2 | +| main.rs:1485:13:1485:13 | t | | file://:0:0:0:0 | & | +| main.rs:1485:13:1485:13 | t | &T | main.rs:1413:5:1414:14 | S2 | +| main.rs:1485:17:1485:18 | x7 | | main.rs:1410:5:1411:19 | S | +| main.rs:1485:17:1485:18 | x7 | T | file://:0:0:0:0 | & | +| main.rs:1485:17:1485:18 | x7 | T.&T | main.rs:1413:5:1414:14 | S2 | +| main.rs:1485:17:1485:23 | x7.m1() | | file://:0:0:0:0 | & | +| main.rs:1485:17:1485:23 | x7.m1() | &T | main.rs:1413:5:1414:14 | S2 | +| main.rs:1486:18:1486:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1486:18:1486:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1486:18:1486:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1486:18:1486:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1486:26:1486:27 | x7 | | main.rs:1410:5:1411:19 | S | +| main.rs:1486:26:1486:27 | x7 | T | file://:0:0:0:0 | & | +| main.rs:1486:26:1486:27 | x7 | T.&T | main.rs:1413:5:1414:14 | S2 | +| main.rs:1488:13:1488:14 | x9 | | {EXTERNAL LOCATION} | String | +| main.rs:1488:26:1488:32 | "Hello" | | file://:0:0:0:0 | & | +| main.rs:1488:26:1488:32 | "Hello" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1488:26:1488:44 | "Hello".to_string() | | {EXTERNAL LOCATION} | String | +| main.rs:1492:13:1492:13 | u | | {EXTERNAL LOCATION} | Result | +| main.rs:1492:13:1492:13 | u | T | {EXTERNAL LOCATION} | u32 | +| main.rs:1492:17:1492:18 | x9 | | {EXTERNAL LOCATION} | String | +| main.rs:1492:17:1492:33 | x9.parse() | | {EXTERNAL LOCATION} | Result | +| main.rs:1492:17:1492:33 | x9.parse() | T | {EXTERNAL LOCATION} | u32 | +| main.rs:1494:13:1494:20 | my_thing | | file://:0:0:0:0 | & | +| main.rs:1494:13:1494:20 | my_thing | &T | main.rs:1416:5:1419:5 | MyInt | +| main.rs:1494:24:1494:39 | &... | | file://:0:0:0:0 | & | +| main.rs:1494:24:1494:39 | &... | &T | main.rs:1416:5:1419:5 | MyInt | +| main.rs:1494:25:1494:39 | MyInt {...} | | main.rs:1416:5:1419:5 | MyInt | +| main.rs:1494:36:1494:37 | 37 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1494:36:1494:37 | 37 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1496:13:1496:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1496:17:1496:24 | my_thing | | file://:0:0:0:0 | & | +| main.rs:1496:17:1496:24 | my_thing | &T | main.rs:1416:5:1419:5 | MyInt | +| main.rs:1496:17:1496:43 | my_thing.method_on_borrow() | | {EXTERNAL LOCATION} | i64 | +| main.rs:1497:18:1497:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1497:18:1497:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1497:18:1497:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1497:18:1497:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1497:26:1497:26 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1500:13:1500:20 | my_thing | | file://:0:0:0:0 | & | +| main.rs:1500:13:1500:20 | my_thing | &T | main.rs:1416:5:1419:5 | MyInt | +| main.rs:1500:24:1500:39 | &... | | file://:0:0:0:0 | & | +| main.rs:1500:24:1500:39 | &... | &T | main.rs:1416:5:1419:5 | MyInt | +| main.rs:1500:25:1500:39 | MyInt {...} | | main.rs:1416:5:1419:5 | MyInt | +| main.rs:1500:36:1500:37 | 38 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1500:36:1500:37 | 38 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1501:13:1501:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1501:17:1501:24 | my_thing | | file://:0:0:0:0 | & | +| main.rs:1501:17:1501:24 | my_thing | &T | main.rs:1416:5:1419:5 | MyInt | +| main.rs:1501:17:1501:47 | my_thing.method_not_on_borrow() | | {EXTERNAL LOCATION} | i64 | +| main.rs:1502:18:1502:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1502:18:1502:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1502:18:1502:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1502:18:1502:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1502:26:1502:26 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1509:16:1509:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1509:16:1509:20 | SelfParam | &T | main.rs:1507:5:1515:5 | Self [trait MyTrait] | +| main.rs:1512:16:1512:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1512:16:1512:20 | SelfParam | &T | main.rs:1507:5:1515:5 | Self [trait MyTrait] | +| main.rs:1512:32:1514:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1512:32:1514:9 | { ... } | &T | main.rs:1507:5:1515:5 | Self [trait MyTrait] | +| main.rs:1513:13:1513:16 | self | | file://:0:0:0:0 | & | +| main.rs:1513:13:1513:16 | self | &T | main.rs:1507:5:1515:5 | Self [trait MyTrait] | +| main.rs:1513:13:1513:22 | self.foo() | | file://:0:0:0:0 | & | +| main.rs:1513:13:1513:22 | self.foo() | &T | main.rs:1507:5:1515:5 | Self [trait MyTrait] | +| main.rs:1521:16:1521:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1521:16:1521:20 | SelfParam | &T | main.rs:1517:5:1517:20 | MyStruct | +| main.rs:1521:36:1523:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1521:36:1523:9 | { ... } | &T | main.rs:1517:5:1517:20 | MyStruct | +| main.rs:1522:13:1522:16 | self | | file://:0:0:0:0 | & | +| main.rs:1522:13:1522:16 | self | &T | main.rs:1517:5:1517:20 | MyStruct | +| main.rs:1527:13:1527:13 | x | | main.rs:1517:5:1517:20 | MyStruct | +| main.rs:1527:17:1527:24 | MyStruct | | main.rs:1517:5:1517:20 | MyStruct | +| main.rs:1528:9:1528:9 | x | | main.rs:1517:5:1517:20 | MyStruct | +| main.rs:1528:9:1528:15 | x.bar() | | file://:0:0:0:0 | & | +| main.rs:1528:9:1528:15 | x.bar() | &T | main.rs:1517:5:1517:20 | MyStruct | +| main.rs:1538:16:1538:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1538:16:1538:20 | SelfParam | &T | main.rs:1535:5:1535:26 | MyStruct | +| main.rs:1538:16:1538:20 | SelfParam | &T.T | main.rs:1537:10:1537:10 | T | +| main.rs:1538:32:1540:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1538:32:1540:9 | { ... } | &T | main.rs:1535:5:1535:26 | MyStruct | +| main.rs:1538:32:1540:9 | { ... } | &T.T | main.rs:1537:10:1537:10 | T | +| main.rs:1539:13:1539:16 | self | | file://:0:0:0:0 | & | +| main.rs:1539:13:1539:16 | self | &T | main.rs:1535:5:1535:26 | MyStruct | +| main.rs:1539:13:1539:16 | self | &T.T | main.rs:1537:10:1537:10 | T | +| main.rs:1544:13:1544:13 | x | | main.rs:1535:5:1535:26 | MyStruct | +| main.rs:1544:13:1544:13 | x | T | main.rs:1533:5:1533:13 | S | +| main.rs:1544:17:1544:27 | MyStruct(...) | | main.rs:1535:5:1535:26 | MyStruct | +| main.rs:1544:17:1544:27 | MyStruct(...) | T | main.rs:1533:5:1533:13 | S | +| main.rs:1544:26:1544:26 | S | | main.rs:1533:5:1533:13 | S | +| main.rs:1545:9:1545:9 | x | | main.rs:1535:5:1535:26 | MyStruct | +| main.rs:1545:9:1545:9 | x | T | main.rs:1533:5:1533:13 | S | +| main.rs:1545:9:1545:15 | x.foo() | | file://:0:0:0:0 | & | +| main.rs:1545:9:1545:15 | x.foo() | &T | main.rs:1535:5:1535:26 | MyStruct | +| main.rs:1545:9:1545:15 | x.foo() | &T.T | main.rs:1533:5:1533:13 | S | +| main.rs:1556:17:1556:25 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1556:17:1556:25 | SelfParam | &T | main.rs:1550:5:1553:5 | MyFlag | +| main.rs:1557:13:1557:16 | self | | file://:0:0:0:0 | & | +| main.rs:1557:13:1557:16 | self | &T | main.rs:1550:5:1553:5 | MyFlag | +| main.rs:1557:13:1557:21 | self.bool | | {EXTERNAL LOCATION} | bool | +| main.rs:1557:13:1557:34 | ... = ... | | file://:0:0:0:0 | () | +| main.rs:1557:25:1557:34 | ! ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1557:26:1557:29 | self | | file://:0:0:0:0 | & | +| main.rs:1557:26:1557:29 | self | &T | main.rs:1550:5:1553:5 | MyFlag | +| main.rs:1557:26:1557:34 | self.bool | | {EXTERNAL LOCATION} | bool | +| main.rs:1564:15:1564:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1564:15:1564:19 | SelfParam | &T | main.rs:1561:5:1561:13 | S | +| main.rs:1564:31:1566:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1564:31:1566:9 | { ... } | &T | main.rs:1561:5:1561:13 | S | +| main.rs:1565:13:1565:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1565:13:1565:19 | &... | &T | file://:0:0:0:0 | & | +| main.rs:1565:13:1565:19 | &... | &T | main.rs:1561:5:1561:13 | S | +| main.rs:1565:13:1565:19 | &... | &T.&T | file://:0:0:0:0 | & | +| main.rs:1565:13:1565:19 | &... | &T.&T.&T | file://:0:0:0:0 | & | +| main.rs:1565:13:1565:19 | &... | &T.&T.&T.&T | main.rs:1561:5:1561:13 | S | +| main.rs:1565:14:1565:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1565:14:1565:19 | &... | &T | file://:0:0:0:0 | & | +| main.rs:1565:14:1565:19 | &... | &T.&T | file://:0:0:0:0 | & | +| main.rs:1565:14:1565:19 | &... | &T.&T.&T | main.rs:1561:5:1561:13 | S | +| main.rs:1565:15:1565:19 | &self | | file://:0:0:0:0 | & | +| main.rs:1565:15:1565:19 | &self | &T | file://:0:0:0:0 | & | +| main.rs:1565:15:1565:19 | &self | &T.&T | main.rs:1561:5:1561:13 | S | +| main.rs:1565:16:1565:19 | self | | file://:0:0:0:0 | & | +| main.rs:1565:16:1565:19 | self | &T | main.rs:1561:5:1561:13 | S | +| main.rs:1568:15:1568:25 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1568:15:1568:25 | SelfParam | &T | main.rs:1561:5:1561:13 | S | +| main.rs:1568:37:1570:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1568:37:1570:9 | { ... } | &T | main.rs:1561:5:1561:13 | S | +| main.rs:1569:13:1569:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1569:13:1569:19 | &... | &T | file://:0:0:0:0 | & | +| main.rs:1569:13:1569:19 | &... | &T | main.rs:1561:5:1561:13 | S | +| main.rs:1569:13:1569:19 | &... | &T.&T | file://:0:0:0:0 | & | +| main.rs:1569:13:1569:19 | &... | &T.&T.&T | file://:0:0:0:0 | & | +| main.rs:1569:13:1569:19 | &... | &T.&T.&T.&T | main.rs:1561:5:1561:13 | S | +| main.rs:1569:14:1569:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1569:14:1569:19 | &... | &T | file://:0:0:0:0 | & | +| main.rs:1569:14:1569:19 | &... | &T.&T | file://:0:0:0:0 | & | +| main.rs:1569:14:1569:19 | &... | &T.&T.&T | main.rs:1561:5:1561:13 | S | +| main.rs:1569:15:1569:19 | &self | | file://:0:0:0:0 | & | +| main.rs:1569:15:1569:19 | &self | &T | file://:0:0:0:0 | & | +| main.rs:1569:15:1569:19 | &self | &T.&T | main.rs:1561:5:1561:13 | S | +| main.rs:1569:16:1569:19 | self | | file://:0:0:0:0 | & | +| main.rs:1569:16:1569:19 | self | &T | main.rs:1561:5:1561:13 | S | +| main.rs:1572:15:1572:15 | x | | file://:0:0:0:0 | & | +| main.rs:1572:15:1572:15 | x | &T | main.rs:1561:5:1561:13 | S | +| main.rs:1572:34:1574:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1572:34:1574:9 | { ... } | &T | main.rs:1561:5:1561:13 | S | +| main.rs:1573:13:1573:13 | x | | file://:0:0:0:0 | & | +| main.rs:1573:13:1573:13 | x | &T | main.rs:1561:5:1561:13 | S | +| main.rs:1576:15:1576:15 | x | | file://:0:0:0:0 | & | +| main.rs:1576:15:1576:15 | x | &T | main.rs:1561:5:1561:13 | S | +| main.rs:1576:34:1578:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1576:34:1578:9 | { ... } | &T | main.rs:1561:5:1561:13 | S | +| main.rs:1577:13:1577:16 | &... | | file://:0:0:0:0 | & | +| main.rs:1577:13:1577:16 | &... | &T | file://:0:0:0:0 | & | +| main.rs:1577:13:1577:16 | &... | &T | main.rs:1561:5:1561:13 | S | +| main.rs:1577:13:1577:16 | &... | &T.&T | file://:0:0:0:0 | & | +| main.rs:1577:13:1577:16 | &... | &T.&T.&T | file://:0:0:0:0 | & | +| main.rs:1577:13:1577:16 | &... | &T.&T.&T.&T | main.rs:1561:5:1561:13 | S | +| main.rs:1577:14:1577:16 | &... | | file://:0:0:0:0 | & | +| main.rs:1577:14:1577:16 | &... | &T | file://:0:0:0:0 | & | +| main.rs:1577:14:1577:16 | &... | &T.&T | file://:0:0:0:0 | & | +| main.rs:1577:14:1577:16 | &... | &T.&T.&T | main.rs:1561:5:1561:13 | S | +| main.rs:1577:15:1577:16 | &x | | file://:0:0:0:0 | & | +| main.rs:1577:15:1577:16 | &x | &T | file://:0:0:0:0 | & | +| main.rs:1577:15:1577:16 | &x | &T.&T | main.rs:1561:5:1561:13 | S | +| main.rs:1577:16:1577:16 | x | | file://:0:0:0:0 | & | +| main.rs:1577:16:1577:16 | x | &T | main.rs:1561:5:1561:13 | S | +| main.rs:1582:13:1582:13 | x | | main.rs:1561:5:1561:13 | S | +| main.rs:1582:17:1582:20 | S {...} | | main.rs:1561:5:1561:13 | S | +| main.rs:1583:9:1583:9 | x | | main.rs:1561:5:1561:13 | S | +| main.rs:1583:9:1583:14 | x.f1() | | file://:0:0:0:0 | & | +| main.rs:1583:9:1583:14 | x.f1() | &T | main.rs:1561:5:1561:13 | S | +| main.rs:1584:9:1584:9 | x | | main.rs:1561:5:1561:13 | S | +| main.rs:1584:9:1584:14 | x.f2() | | file://:0:0:0:0 | & | +| main.rs:1584:9:1584:14 | x.f2() | &T | main.rs:1561:5:1561:13 | S | +| main.rs:1585:9:1585:17 | ...::f3(...) | | file://:0:0:0:0 | & | +| main.rs:1585:9:1585:17 | ...::f3(...) | &T | main.rs:1561:5:1561:13 | S | +| main.rs:1585:15:1585:16 | &x | | file://:0:0:0:0 | & | +| main.rs:1585:15:1585:16 | &x | &T | main.rs:1561:5:1561:13 | S | +| main.rs:1585:16:1585:16 | x | | main.rs:1561:5:1561:13 | S | +| main.rs:1587:13:1587:13 | n | | {EXTERNAL LOCATION} | bool | +| main.rs:1587:17:1587:24 | * ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1587:18:1587:24 | * ... | | file://:0:0:0:0 | & | +| main.rs:1587:18:1587:24 | * ... | &T | {EXTERNAL LOCATION} | bool | +| main.rs:1587:19:1587:24 | &... | | file://:0:0:0:0 | & | +| main.rs:1587:19:1587:24 | &... | &T | file://:0:0:0:0 | & | +| main.rs:1587:19:1587:24 | &... | &T.&T | {EXTERNAL LOCATION} | bool | +| main.rs:1587:20:1587:24 | &true | | file://:0:0:0:0 | & | +| main.rs:1587:20:1587:24 | &true | &T | {EXTERNAL LOCATION} | bool | +| main.rs:1587:21:1587:24 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1591:17:1591:20 | flag | | main.rs:1550:5:1553:5 | MyFlag | +| main.rs:1591:24:1591:41 | ...::default(...) | | main.rs:1550:5:1553:5 | MyFlag | +| main.rs:1592:22:1592:30 | &mut flag | | file://:0:0:0:0 | & | +| main.rs:1592:22:1592:30 | &mut flag | &T | main.rs:1550:5:1553:5 | MyFlag | +| main.rs:1592:27:1592:30 | flag | | main.rs:1550:5:1553:5 | MyFlag | +| main.rs:1593:18:1593:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1593:18:1593:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1593:18:1593:29 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1593:18:1593:29 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1593:26:1593:29 | flag | | main.rs:1550:5:1553:5 | MyFlag | +| main.rs:1608:43:1611:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1608:43:1611:5 | { ... } | E | main.rs:1600:5:1601:14 | S1 | +| main.rs:1608:43:1611:5 | { ... } | T | main.rs:1600:5:1601:14 | S1 | +| main.rs:1609:13:1609:13 | x | | main.rs:1600:5:1601:14 | S1 | +| main.rs:1609:17:1609:30 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1609:17:1609:30 | ...::Ok(...) | T | main.rs:1600:5:1601:14 | S1 | +| main.rs:1609:17:1609:31 | TryExpr | | main.rs:1600:5:1601:14 | S1 | +| main.rs:1609:28:1609:29 | S1 | | main.rs:1600:5:1601:14 | S1 | +| main.rs:1610:9:1610:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1610:9:1610:22 | ...::Ok(...) | E | main.rs:1600:5:1601:14 | S1 | +| main.rs:1610:9:1610:22 | ...::Ok(...) | T | main.rs:1600:5:1601:14 | S1 | +| main.rs:1610:20:1610:21 | S1 | | main.rs:1600:5:1601:14 | S1 | +| main.rs:1615:46:1619:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1615:46:1619:5 | { ... } | E | main.rs:1603:5:1604:14 | S2 | +| main.rs:1615:46:1619:5 | { ... } | T | main.rs:1600:5:1601:14 | S1 | +| main.rs:1616:13:1616:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1616:13:1616:13 | x | T | main.rs:1600:5:1601:14 | S1 | +| main.rs:1616:17:1616:30 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1616:17:1616:30 | ...::Ok(...) | T | main.rs:1600:5:1601:14 | S1 | +| main.rs:1616:28:1616:29 | S1 | | main.rs:1600:5:1601:14 | S1 | +| main.rs:1617:13:1617:13 | y | | main.rs:1600:5:1601:14 | S1 | +| main.rs:1617:17:1617:17 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1617:17:1617:17 | x | T | main.rs:1600:5:1601:14 | S1 | +| main.rs:1617:17:1617:18 | TryExpr | | main.rs:1600:5:1601:14 | S1 | +| main.rs:1618:9:1618:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1618:9:1618:22 | ...::Ok(...) | E | main.rs:1603:5:1604:14 | S2 | +| main.rs:1618:9:1618:22 | ...::Ok(...) | T | main.rs:1600:5:1601:14 | S1 | +| main.rs:1618:20:1618:21 | S1 | | main.rs:1600:5:1601:14 | S1 | +| main.rs:1623:40:1628:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1623:40:1628:5 | { ... } | E | main.rs:1603:5:1604:14 | S2 | +| main.rs:1623:40:1628:5 | { ... } | T | main.rs:1600:5:1601:14 | S1 | +| main.rs:1624:13:1624:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1624:13:1624:13 | x | T | {EXTERNAL LOCATION} | Result | +| main.rs:1624:13:1624:13 | x | T.T | main.rs:1600:5:1601:14 | S1 | +| main.rs:1624:17:1624:42 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1624:17:1624:42 | ...::Ok(...) | T | {EXTERNAL LOCATION} | Result | +| main.rs:1624:17:1624:42 | ...::Ok(...) | T.T | main.rs:1600:5:1601:14 | S1 | +| main.rs:1624:28:1624:41 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1624:28:1624:41 | ...::Ok(...) | T | main.rs:1600:5:1601:14 | S1 | +| main.rs:1624:39:1624:40 | S1 | | main.rs:1600:5:1601:14 | S1 | +| main.rs:1626:17:1626:17 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1626:17:1626:17 | x | T | {EXTERNAL LOCATION} | Result | +| main.rs:1626:17:1626:17 | x | T.T | main.rs:1600:5:1601:14 | S1 | +| main.rs:1626:17:1626:18 | TryExpr | | {EXTERNAL LOCATION} | Result | +| main.rs:1626:17:1626:18 | TryExpr | T | main.rs:1600:5:1601:14 | S1 | +| main.rs:1626:17:1626:29 | ... .map(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1626:24:1626:28 | \|...\| s | | {EXTERNAL LOCATION} | dyn FnOnce | +| main.rs:1626:24:1626:28 | \|...\| s | dyn(Args) | file://:0:0:0:0 | (T_1) | +| main.rs:1627:9:1627:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1627:9:1627:22 | ...::Ok(...) | E | main.rs:1603:5:1604:14 | S2 | +| main.rs:1627:9:1627:22 | ...::Ok(...) | T | main.rs:1600:5:1601:14 | S1 | +| main.rs:1627:20:1627:21 | S1 | | main.rs:1600:5:1601:14 | S1 | +| main.rs:1632:30:1632:34 | input | | {EXTERNAL LOCATION} | Result | +| main.rs:1632:30:1632:34 | input | E | main.rs:1600:5:1601:14 | S1 | +| main.rs:1632:30:1632:34 | input | T | main.rs:1632:20:1632:27 | T | +| main.rs:1632:69:1639:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1632:69:1639:5 | { ... } | E | main.rs:1600:5:1601:14 | S1 | +| main.rs:1632:69:1639:5 | { ... } | T | main.rs:1632:20:1632:27 | T | +| main.rs:1633:13:1633:17 | value | | main.rs:1632:20:1632:27 | T | +| main.rs:1633:21:1633:25 | input | | {EXTERNAL LOCATION} | Result | +| main.rs:1633:21:1633:25 | input | E | main.rs:1600:5:1601:14 | S1 | +| main.rs:1633:21:1633:25 | input | T | main.rs:1632:20:1632:27 | T | +| main.rs:1633:21:1633:26 | TryExpr | | main.rs:1632:20:1632:27 | T | +| main.rs:1634:22:1634:38 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1634:22:1634:38 | ...::Ok(...) | E | main.rs:1600:5:1601:14 | S1 | +| main.rs:1634:22:1634:38 | ...::Ok(...) | T | main.rs:1632:20:1632:27 | T | +| main.rs:1634:22:1637:10 | ... .and_then(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1634:22:1637:10 | ... .and_then(...) | E | main.rs:1600:5:1601:14 | S1 | +| main.rs:1634:33:1634:37 | value | | main.rs:1632:20:1632:27 | T | +| main.rs:1634:49:1637:9 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | +| main.rs:1634:49:1637:9 | \|...\| ... | dyn(Args) | file://:0:0:0:0 | (T_1) | +| main.rs:1634:49:1637:9 | \|...\| ... | dyn(Output) | {EXTERNAL LOCATION} | Result | +| main.rs:1634:49:1637:9 | \|...\| ... | dyn(Output).E | main.rs:1600:5:1601:14 | S1 | +| main.rs:1634:53:1637:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1634:53:1637:9 | { ... } | E | main.rs:1600:5:1601:14 | S1 | +| main.rs:1635:22:1635:27 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1635:22:1635:27 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1635:22:1635:30 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1635:22:1635:30 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1636:13:1636:34 | ...::Ok::<...>(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1636:13:1636:34 | ...::Ok::<...>(...) | E | main.rs:1600:5:1601:14 | S1 | +| main.rs:1638:9:1638:23 | ...::Err(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1638:9:1638:23 | ...::Err(...) | E | main.rs:1600:5:1601:14 | S1 | +| main.rs:1638:9:1638:23 | ...::Err(...) | T | main.rs:1632:20:1632:27 | T | +| main.rs:1638:21:1638:22 | S1 | | main.rs:1600:5:1601:14 | S1 | +| main.rs:1643:16:1643:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1643:16:1643:33 | ...::Ok(...) | E | main.rs:1600:5:1601:14 | S1 | +| main.rs:1643:16:1643:33 | ...::Ok(...) | T | main.rs:1600:5:1601:14 | S1 | +| main.rs:1643:27:1643:32 | result | | main.rs:1600:5:1601:14 | S1 | +| main.rs:1643:37:1643:52 | try_same_error(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1643:37:1643:52 | try_same_error(...) | E | main.rs:1600:5:1601:14 | S1 | +| main.rs:1643:37:1643:52 | try_same_error(...) | T | main.rs:1600:5:1601:14 | S1 | +| main.rs:1644:22:1644:27 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1644:22:1644:27 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1644:22:1644:35 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1644:22:1644:35 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1644:30:1644:35 | result | | main.rs:1600:5:1601:14 | S1 | +| main.rs:1647:16:1647:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1647:16:1647:33 | ...::Ok(...) | E | main.rs:1603:5:1604:14 | S2 | +| main.rs:1647:16:1647:33 | ...::Ok(...) | T | main.rs:1600:5:1601:14 | S1 | +| main.rs:1647:27:1647:32 | result | | main.rs:1600:5:1601:14 | S1 | +| main.rs:1647:37:1647:55 | try_convert_error(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1647:37:1647:55 | try_convert_error(...) | E | main.rs:1603:5:1604:14 | S2 | +| main.rs:1647:37:1647:55 | try_convert_error(...) | T | main.rs:1600:5:1601:14 | S1 | +| main.rs:1648:22:1648:27 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1648:22:1648:27 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1648:22:1648:35 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1648:22:1648:35 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1648:30:1648:35 | result | | main.rs:1600:5:1601:14 | S1 | +| main.rs:1651:16:1651:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1651:16:1651:33 | ...::Ok(...) | E | main.rs:1603:5:1604:14 | S2 | +| main.rs:1651:16:1651:33 | ...::Ok(...) | T | main.rs:1600:5:1601:14 | S1 | +| main.rs:1651:27:1651:32 | result | | main.rs:1600:5:1601:14 | S1 | +| main.rs:1651:37:1651:49 | try_chained(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1651:37:1651:49 | try_chained(...) | E | main.rs:1603:5:1604:14 | S2 | +| main.rs:1651:37:1651:49 | try_chained(...) | T | main.rs:1600:5:1601:14 | S1 | +| main.rs:1652:22:1652:27 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1652:22:1652:27 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1652:22:1652:35 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1652:22:1652:35 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1652:30:1652:35 | result | | main.rs:1600:5:1601:14 | S1 | +| main.rs:1655:16:1655:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1655:16:1655:33 | ...::Ok(...) | E | main.rs:1600:5:1601:14 | S1 | +| main.rs:1655:16:1655:33 | ...::Ok(...) | T | main.rs:1600:5:1601:14 | S1 | +| main.rs:1655:27:1655:32 | result | | main.rs:1600:5:1601:14 | S1 | +| main.rs:1655:37:1655:63 | try_complex(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1655:37:1655:63 | try_complex(...) | E | main.rs:1600:5:1601:14 | S1 | +| main.rs:1655:37:1655:63 | try_complex(...) | T | main.rs:1600:5:1601:14 | S1 | +| main.rs:1655:49:1655:62 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1655:49:1655:62 | ...::Ok(...) | E | main.rs:1600:5:1601:14 | S1 | +| main.rs:1655:49:1655:62 | ...::Ok(...) | T | main.rs:1600:5:1601:14 | S1 | +| main.rs:1655:60:1655:61 | S1 | | main.rs:1600:5:1601:14 | S1 | +| main.rs:1656:22:1656:27 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1656:22:1656:27 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1656:22:1656:35 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1656:22:1656:35 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1656:30:1656:35 | result | | main.rs:1600:5:1601:14 | S1 | +| main.rs:1663:13:1663:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1663:22:1663:22 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1664:13:1664:13 | y | | {EXTERNAL LOCATION} | i32 | +| main.rs:1664:17:1664:17 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1665:13:1665:13 | z | | {EXTERNAL LOCATION} | i32 | +| main.rs:1665:17:1665:17 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1665:17:1665:21 | ... + ... | | {EXTERNAL LOCATION} | i32 | +| main.rs:1665:21:1665:21 | y | | {EXTERNAL LOCATION} | i32 | | main.rs:1666:13:1666:13 | z | | {EXTERNAL LOCATION} | i32 | | main.rs:1666:17:1666:17 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1666:17:1666:21 | ... + ... | | {EXTERNAL LOCATION} | i32 | -| main.rs:1666:21:1666:21 | y | | {EXTERNAL LOCATION} | i32 | -| main.rs:1667:13:1667:13 | z | | {EXTERNAL LOCATION} | i32 | -| main.rs:1667:17:1667:17 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1667:17:1667:23 | x.abs() | | {EXTERNAL LOCATION} | i32 | -| main.rs:1668:13:1668:13 | c | | {EXTERNAL LOCATION} | char | -| main.rs:1668:17:1668:19 | 'c' | | {EXTERNAL LOCATION} | char | -| main.rs:1669:13:1669:17 | hello | | file://:0:0:0:0 | & | -| main.rs:1669:13:1669:17 | hello | &T | {EXTERNAL LOCATION} | str | -| main.rs:1669:21:1669:27 | "Hello" | | file://:0:0:0:0 | & | -| main.rs:1669:21:1669:27 | "Hello" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1670:13:1670:13 | f | | {EXTERNAL LOCATION} | f64 | -| main.rs:1670:17:1670:24 | 123.0f64 | | {EXTERNAL LOCATION} | f64 | -| main.rs:1671:13:1671:13 | t | | {EXTERNAL LOCATION} | bool | -| main.rs:1671:17:1671:20 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1672:13:1672:13 | f | | {EXTERNAL LOCATION} | bool | -| main.rs:1672:17:1672:21 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1679:13:1679:13 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:1666:17:1666:23 | x.abs() | | {EXTERNAL LOCATION} | i32 | +| main.rs:1667:13:1667:13 | c | | {EXTERNAL LOCATION} | char | +| main.rs:1667:17:1667:19 | 'c' | | {EXTERNAL LOCATION} | char | +| main.rs:1668:13:1668:17 | hello | | file://:0:0:0:0 | & | +| main.rs:1668:13:1668:17 | hello | &T | {EXTERNAL LOCATION} | str | +| main.rs:1668:21:1668:27 | "Hello" | | file://:0:0:0:0 | & | +| main.rs:1668:21:1668:27 | "Hello" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1669:13:1669:13 | f | | {EXTERNAL LOCATION} | f64 | +| main.rs:1669:17:1669:24 | 123.0f64 | | {EXTERNAL LOCATION} | f64 | +| main.rs:1670:13:1670:13 | t | | {EXTERNAL LOCATION} | bool | +| main.rs:1670:17:1670:20 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1671:13:1671:13 | f | | {EXTERNAL LOCATION} | bool | +| main.rs:1671:17:1671:21 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1678:13:1678:13 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:1678:17:1678:20 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1678:17:1678:29 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1678:25:1678:29 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1679:13:1679:13 | y | | {EXTERNAL LOCATION} | bool | | main.rs:1679:17:1679:20 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1679:17:1679:29 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1679:17:1679:29 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | | main.rs:1679:25:1679:29 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1680:13:1680:13 | y | | {EXTERNAL LOCATION} | bool | -| main.rs:1680:17:1680:20 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1680:17:1680:29 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1680:25:1680:29 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1682:17:1682:17 | a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1683:13:1683:16 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:1683:20:1683:21 | 34 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1683:20:1683:27 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1683:26:1683:27 | 33 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1684:12:1684:15 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:1685:17:1685:17 | z | | file://:0:0:0:0 | () | -| main.rs:1685:21:1685:27 | (...) | | file://:0:0:0:0 | () | -| main.rs:1685:22:1685:22 | a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1685:22:1685:26 | ... = ... | | file://:0:0:0:0 | () | -| main.rs:1685:26:1685:26 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1687:13:1687:13 | a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1687:13:1687:17 | ... = ... | | file://:0:0:0:0 | () | -| main.rs:1687:17:1687:17 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1689:9:1689:9 | a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1703:30:1705:9 | { ... } | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1704:13:1704:31 | Vec2 {...} | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1704:23:1704:23 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1704:23:1704:23 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1704:29:1704:29 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1704:29:1704:29 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1711:16:1711:19 | SelfParam | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1711:22:1711:24 | rhs | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1711:41:1716:9 | { ... } | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1712:13:1715:13 | Vec2 {...} | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1713:20:1713:23 | self | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1713:20:1713:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1681:17:1681:17 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1682:13:1682:16 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:1682:20:1682:21 | 34 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1682:20:1682:27 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1682:26:1682:27 | 33 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1683:12:1683:15 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:1684:17:1684:17 | z | | file://:0:0:0:0 | () | +| main.rs:1684:21:1684:27 | (...) | | file://:0:0:0:0 | () | +| main.rs:1684:22:1684:22 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1684:22:1684:26 | ... = ... | | file://:0:0:0:0 | () | +| main.rs:1684:26:1684:26 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1686:13:1686:13 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1686:13:1686:17 | ... = ... | | file://:0:0:0:0 | () | +| main.rs:1686:17:1686:17 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1688:9:1688:9 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1702:30:1704:9 | { ... } | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1703:13:1703:31 | Vec2 {...} | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1703:23:1703:23 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1703:23:1703:23 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1703:29:1703:29 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1703:29:1703:29 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1710:16:1710:19 | SelfParam | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1710:22:1710:24 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1710:41:1715:9 | { ... } | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1711:13:1714:13 | Vec2 {...} | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1712:20:1712:23 | self | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1712:20:1712:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1712:20:1712:33 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1712:29:1712:31 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1712:29:1712:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1713:20:1713:23 | self | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1713:20:1713:25 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1713:20:1713:33 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1713:29:1713:31 | rhs | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1713:29:1713:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1714:20:1714:23 | self | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1714:20:1714:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1714:20:1714:33 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1714:29:1714:31 | rhs | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1714:29:1714:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1721:23:1721:31 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1721:23:1721:31 | SelfParam | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1721:34:1721:36 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1713:29:1713:31 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1713:29:1713:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1720:23:1720:31 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1720:23:1720:31 | SelfParam | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1720:34:1720:36 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1721:13:1721:16 | self | | file://:0:0:0:0 | & | +| main.rs:1721:13:1721:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1721:13:1721:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1721:13:1721:27 | ... += ... | | file://:0:0:0:0 | () | +| main.rs:1721:23:1721:25 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1721:23:1721:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | | main.rs:1722:13:1722:16 | self | | file://:0:0:0:0 | & | -| main.rs:1722:13:1722:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1722:13:1722:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1722:13:1722:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1722:13:1722:18 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1722:13:1722:27 | ... += ... | | file://:0:0:0:0 | () | -| main.rs:1722:23:1722:25 | rhs | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1722:23:1722:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1723:13:1723:16 | self | | file://:0:0:0:0 | & | -| main.rs:1723:13:1723:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1723:13:1723:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1723:13:1723:27 | ... += ... | | file://:0:0:0:0 | () | -| main.rs:1723:23:1723:25 | rhs | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1723:23:1723:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1729:16:1729:19 | SelfParam | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1729:22:1729:24 | rhs | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1729:41:1734:9 | { ... } | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1730:13:1733:13 | Vec2 {...} | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1731:20:1731:23 | self | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1731:20:1731:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1722:23:1722:25 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1722:23:1722:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1728:16:1728:19 | SelfParam | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1728:22:1728:24 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1728:41:1733:9 | { ... } | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1729:13:1732:13 | Vec2 {...} | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1730:20:1730:23 | self | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1730:20:1730:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1730:20:1730:33 | ... - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1730:29:1730:31 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1730:29:1730:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1731:20:1731:23 | self | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1731:20:1731:25 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1731:20:1731:33 | ... - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1731:29:1731:31 | rhs | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1731:29:1731:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1732:20:1732:23 | self | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1732:20:1732:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1732:20:1732:33 | ... - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1732:29:1732:31 | rhs | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1732:29:1732:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1739:23:1739:31 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1739:23:1739:31 | SelfParam | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1739:34:1739:36 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1731:29:1731:31 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1731:29:1731:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1738:23:1738:31 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1738:23:1738:31 | SelfParam | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1738:34:1738:36 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1739:13:1739:16 | self | | file://:0:0:0:0 | & | +| main.rs:1739:13:1739:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1739:13:1739:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1739:13:1739:27 | ... -= ... | | file://:0:0:0:0 | () | +| main.rs:1739:23:1739:25 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1739:23:1739:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | | main.rs:1740:13:1740:16 | self | | file://:0:0:0:0 | & | -| main.rs:1740:13:1740:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1740:13:1740:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1740:13:1740:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1740:13:1740:18 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1740:13:1740:27 | ... -= ... | | file://:0:0:0:0 | () | -| main.rs:1740:23:1740:25 | rhs | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1740:23:1740:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1741:13:1741:16 | self | | file://:0:0:0:0 | & | -| main.rs:1741:13:1741:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1741:13:1741:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1741:13:1741:27 | ... -= ... | | file://:0:0:0:0 | () | -| main.rs:1741:23:1741:25 | rhs | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1741:23:1741:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1747:16:1747:19 | SelfParam | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1747:22:1747:24 | rhs | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1747:41:1752:9 | { ... } | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1748:13:1751:13 | Vec2 {...} | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1749:20:1749:23 | self | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1749:20:1749:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1740:23:1740:25 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1740:23:1740:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1746:16:1746:19 | SelfParam | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1746:22:1746:24 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1746:41:1751:9 | { ... } | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1747:13:1750:13 | Vec2 {...} | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1748:20:1748:23 | self | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1748:20:1748:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1748:20:1748:33 | ... * ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1748:29:1748:31 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1748:29:1748:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1749:20:1749:23 | self | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1749:20:1749:25 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1749:20:1749:33 | ... * ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1749:29:1749:31 | rhs | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1749:29:1749:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1750:20:1750:23 | self | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1750:20:1750:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1750:20:1750:33 | ... * ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1750:29:1750:31 | rhs | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1750:29:1750:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1756:23:1756:31 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1756:23:1756:31 | SelfParam | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1756:34:1756:36 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1749:29:1749:31 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1749:29:1749:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1755:23:1755:31 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1755:23:1755:31 | SelfParam | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1755:34:1755:36 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1756:13:1756:16 | self | | file://:0:0:0:0 | & | +| main.rs:1756:13:1756:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1756:13:1756:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1756:13:1756:27 | ... *= ... | | file://:0:0:0:0 | () | +| main.rs:1756:23:1756:25 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1756:23:1756:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | | main.rs:1757:13:1757:16 | self | | file://:0:0:0:0 | & | -| main.rs:1757:13:1757:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1757:13:1757:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1757:13:1757:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1757:13:1757:18 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1757:13:1757:27 | ... *= ... | | file://:0:0:0:0 | () | -| main.rs:1757:23:1757:25 | rhs | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1757:23:1757:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1758:13:1758:16 | self | | file://:0:0:0:0 | & | -| main.rs:1758:13:1758:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1758:13:1758:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1758:13:1758:27 | ... *= ... | | file://:0:0:0:0 | () | -| main.rs:1758:23:1758:25 | rhs | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1758:23:1758:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1764:16:1764:19 | SelfParam | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1764:22:1764:24 | rhs | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1764:41:1769:9 | { ... } | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1765:13:1768:13 | Vec2 {...} | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1766:20:1766:23 | self | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1766:20:1766:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1757:23:1757:25 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1757:23:1757:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1763:16:1763:19 | SelfParam | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1763:22:1763:24 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1763:41:1768:9 | { ... } | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1764:13:1767:13 | Vec2 {...} | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1765:20:1765:23 | self | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1765:20:1765:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1765:20:1765:33 | ... / ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1765:29:1765:31 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1765:29:1765:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1766:20:1766:23 | self | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1766:20:1766:25 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1766:20:1766:33 | ... / ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1766:29:1766:31 | rhs | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1766:29:1766:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1767:20:1767:23 | self | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1767:20:1767:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1767:20:1767:33 | ... / ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1767:29:1767:31 | rhs | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1767:29:1767:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1773:23:1773:31 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1773:23:1773:31 | SelfParam | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1773:34:1773:36 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1766:29:1766:31 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1766:29:1766:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1772:23:1772:31 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1772:23:1772:31 | SelfParam | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1772:34:1772:36 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1773:13:1773:16 | self | | file://:0:0:0:0 | & | +| main.rs:1773:13:1773:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1773:13:1773:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1773:13:1773:27 | ... /= ... | | file://:0:0:0:0 | () | +| main.rs:1773:23:1773:25 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1773:23:1773:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | | main.rs:1774:13:1774:16 | self | | file://:0:0:0:0 | & | -| main.rs:1774:13:1774:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1774:13:1774:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1774:13:1774:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1774:13:1774:18 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1774:13:1774:27 | ... /= ... | | file://:0:0:0:0 | () | -| main.rs:1774:23:1774:25 | rhs | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1774:23:1774:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1775:13:1775:16 | self | | file://:0:0:0:0 | & | -| main.rs:1775:13:1775:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1775:13:1775:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1775:13:1775:27 | ... /= ... | | file://:0:0:0:0 | () | -| main.rs:1775:23:1775:25 | rhs | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1775:23:1775:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1781:16:1781:19 | SelfParam | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1781:22:1781:24 | rhs | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1781:41:1786:9 | { ... } | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1782:13:1785:13 | Vec2 {...} | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1783:20:1783:23 | self | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1783:20:1783:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1774:23:1774:25 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1774:23:1774:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1780:16:1780:19 | SelfParam | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1780:22:1780:24 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1780:41:1785:9 | { ... } | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1781:13:1784:13 | Vec2 {...} | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1782:20:1782:23 | self | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1782:20:1782:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1782:20:1782:33 | ... % ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1782:29:1782:31 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1782:29:1782:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1783:20:1783:23 | self | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1783:20:1783:25 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1783:20:1783:33 | ... % ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1783:29:1783:31 | rhs | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1783:29:1783:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1784:20:1784:23 | self | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1784:20:1784:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1784:20:1784:33 | ... % ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1784:29:1784:31 | rhs | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1784:29:1784:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1790:23:1790:31 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1790:23:1790:31 | SelfParam | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1790:34:1790:36 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1783:29:1783:31 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1783:29:1783:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1789:23:1789:31 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1789:23:1789:31 | SelfParam | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1789:34:1789:36 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1790:13:1790:16 | self | | file://:0:0:0:0 | & | +| main.rs:1790:13:1790:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1790:13:1790:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1790:13:1790:27 | ... %= ... | | file://:0:0:0:0 | () | +| main.rs:1790:23:1790:25 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1790:23:1790:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | | main.rs:1791:13:1791:16 | self | | file://:0:0:0:0 | & | -| main.rs:1791:13:1791:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1791:13:1791:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1791:13:1791:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1791:13:1791:18 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1791:13:1791:27 | ... %= ... | | file://:0:0:0:0 | () | -| main.rs:1791:23:1791:25 | rhs | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1791:23:1791:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1792:13:1792:16 | self | | file://:0:0:0:0 | & | -| main.rs:1792:13:1792:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1792:13:1792:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1792:13:1792:27 | ... %= ... | | file://:0:0:0:0 | () | -| main.rs:1792:23:1792:25 | rhs | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1792:23:1792:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1798:19:1798:22 | SelfParam | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1798:25:1798:27 | rhs | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1798:44:1803:9 | { ... } | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1799:13:1802:13 | Vec2 {...} | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1800:20:1800:23 | self | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1800:20:1800:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1791:23:1791:25 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1791:23:1791:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1797:19:1797:22 | SelfParam | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1797:25:1797:27 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1797:44:1802:9 | { ... } | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1798:13:1801:13 | Vec2 {...} | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1799:20:1799:23 | self | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1799:20:1799:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1799:20:1799:33 | ... & ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1799:29:1799:31 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1799:29:1799:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1800:20:1800:23 | self | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1800:20:1800:25 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1800:20:1800:33 | ... & ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1800:29:1800:31 | rhs | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1800:29:1800:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1801:20:1801:23 | self | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1801:20:1801:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1801:20:1801:33 | ... & ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1801:29:1801:31 | rhs | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1801:29:1801:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1807:26:1807:34 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1807:26:1807:34 | SelfParam | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1807:37:1807:39 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1800:29:1800:31 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1800:29:1800:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1806:26:1806:34 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1806:26:1806:34 | SelfParam | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1806:37:1806:39 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1807:13:1807:16 | self | | file://:0:0:0:0 | & | +| main.rs:1807:13:1807:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1807:13:1807:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1807:13:1807:27 | ... &= ... | | file://:0:0:0:0 | () | +| main.rs:1807:23:1807:25 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1807:23:1807:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | | main.rs:1808:13:1808:16 | self | | file://:0:0:0:0 | & | -| main.rs:1808:13:1808:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1808:13:1808:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1808:13:1808:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1808:13:1808:18 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1808:13:1808:27 | ... &= ... | | file://:0:0:0:0 | () | -| main.rs:1808:23:1808:25 | rhs | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1808:23:1808:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1809:13:1809:16 | self | | file://:0:0:0:0 | & | -| main.rs:1809:13:1809:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1809:13:1809:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1809:13:1809:27 | ... &= ... | | file://:0:0:0:0 | () | -| main.rs:1809:23:1809:25 | rhs | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1809:23:1809:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1815:18:1815:21 | SelfParam | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1815:24:1815:26 | rhs | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1815:43:1820:9 | { ... } | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1816:13:1819:13 | Vec2 {...} | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1817:20:1817:23 | self | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1817:20:1817:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1808:23:1808:25 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1808:23:1808:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1814:18:1814:21 | SelfParam | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1814:24:1814:26 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1814:43:1819:9 | { ... } | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1815:13:1818:13 | Vec2 {...} | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1816:20:1816:23 | self | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1816:20:1816:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1816:20:1816:33 | ... \| ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1816:29:1816:31 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1816:29:1816:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1817:20:1817:23 | self | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1817:20:1817:25 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1817:20:1817:33 | ... \| ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1817:29:1817:31 | rhs | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1817:29:1817:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1818:20:1818:23 | self | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1818:20:1818:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1818:20:1818:33 | ... \| ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1818:29:1818:31 | rhs | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1818:29:1818:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1824:25:1824:33 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1824:25:1824:33 | SelfParam | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1824:36:1824:38 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1817:29:1817:31 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1817:29:1817:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1823:25:1823:33 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1823:25:1823:33 | SelfParam | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1823:36:1823:38 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1824:13:1824:16 | self | | file://:0:0:0:0 | & | +| main.rs:1824:13:1824:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1824:13:1824:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1824:13:1824:27 | ... \|= ... | | file://:0:0:0:0 | () | +| main.rs:1824:23:1824:25 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1824:23:1824:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | | main.rs:1825:13:1825:16 | self | | file://:0:0:0:0 | & | -| main.rs:1825:13:1825:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1825:13:1825:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1825:13:1825:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1825:13:1825:18 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1825:13:1825:27 | ... \|= ... | | file://:0:0:0:0 | () | -| main.rs:1825:23:1825:25 | rhs | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1825:23:1825:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1826:13:1826:16 | self | | file://:0:0:0:0 | & | -| main.rs:1826:13:1826:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1826:13:1826:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1826:13:1826:27 | ... \|= ... | | file://:0:0:0:0 | () | -| main.rs:1826:23:1826:25 | rhs | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1826:23:1826:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1832:19:1832:22 | SelfParam | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1832:25:1832:27 | rhs | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1832:44:1837:9 | { ... } | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1833:13:1836:13 | Vec2 {...} | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1834:20:1834:23 | self | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1834:20:1834:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1825:23:1825:25 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1825:23:1825:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1831:19:1831:22 | SelfParam | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1831:25:1831:27 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1831:44:1836:9 | { ... } | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1832:13:1835:13 | Vec2 {...} | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1833:20:1833:23 | self | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1833:20:1833:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1833:20:1833:33 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1833:29:1833:31 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1833:29:1833:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1834:20:1834:23 | self | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1834:20:1834:25 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1834:20:1834:33 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1834:29:1834:31 | rhs | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1834:29:1834:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1835:20:1835:23 | self | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1835:20:1835:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1835:20:1835:33 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1835:29:1835:31 | rhs | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1835:29:1835:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1841:26:1841:34 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1841:26:1841:34 | SelfParam | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1841:37:1841:39 | rhs | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1834:29:1834:31 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1834:29:1834:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1840:26:1840:34 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1840:26:1840:34 | SelfParam | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1840:37:1840:39 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1841:13:1841:16 | self | | file://:0:0:0:0 | & | +| main.rs:1841:13:1841:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1841:13:1841:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1841:13:1841:27 | ... ^= ... | | file://:0:0:0:0 | () | +| main.rs:1841:23:1841:25 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1841:23:1841:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | | main.rs:1842:13:1842:16 | self | | file://:0:0:0:0 | & | -| main.rs:1842:13:1842:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1842:13:1842:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1842:13:1842:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1842:13:1842:18 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1842:13:1842:27 | ... ^= ... | | file://:0:0:0:0 | () | -| main.rs:1842:23:1842:25 | rhs | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1842:23:1842:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1843:13:1843:16 | self | | file://:0:0:0:0 | & | -| main.rs:1843:13:1843:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1843:13:1843:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1843:13:1843:27 | ... ^= ... | | file://:0:0:0:0 | () | -| main.rs:1843:23:1843:25 | rhs | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1843:23:1843:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1849:16:1849:19 | SelfParam | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1849:22:1849:24 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1849:40:1854:9 | { ... } | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1850:13:1853:13 | Vec2 {...} | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1851:20:1851:23 | self | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1851:20:1851:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1842:23:1842:25 | rhs | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1842:23:1842:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1848:16:1848:19 | SelfParam | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1848:22:1848:24 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1848:40:1853:9 | { ... } | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1849:13:1852:13 | Vec2 {...} | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1850:20:1850:23 | self | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1850:20:1850:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1850:20:1850:32 | ... << ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1850:30:1850:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1851:20:1851:23 | self | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1851:20:1851:25 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1851:20:1851:32 | ... << ... | | {EXTERNAL LOCATION} | i64 | | main.rs:1851:30:1851:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1852:20:1852:23 | self | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1852:20:1852:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1852:20:1852:32 | ... << ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1852:30:1852:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1858:23:1858:31 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1858:23:1858:31 | SelfParam | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1858:34:1858:36 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1857:23:1857:31 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1857:23:1857:31 | SelfParam | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1857:34:1857:36 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1858:13:1858:16 | self | | file://:0:0:0:0 | & | +| main.rs:1858:13:1858:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1858:13:1858:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1858:13:1858:26 | ... <<= ... | | file://:0:0:0:0 | () | +| main.rs:1858:24:1858:26 | rhs | | {EXTERNAL LOCATION} | u32 | | main.rs:1859:13:1859:16 | self | | file://:0:0:0:0 | & | -| main.rs:1859:13:1859:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1859:13:1859:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1859:13:1859:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1859:13:1859:18 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1859:13:1859:26 | ... <<= ... | | file://:0:0:0:0 | () | | main.rs:1859:24:1859:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1860:13:1860:16 | self | | file://:0:0:0:0 | & | -| main.rs:1860:13:1860:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1860:13:1860:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1860:13:1860:26 | ... <<= ... | | file://:0:0:0:0 | () | -| main.rs:1860:24:1860:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1866:16:1866:19 | SelfParam | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1866:22:1866:24 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1866:40:1871:9 | { ... } | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1867:13:1870:13 | Vec2 {...} | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1868:20:1868:23 | self | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1868:20:1868:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1865:16:1865:19 | SelfParam | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1865:22:1865:24 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1865:40:1870:9 | { ... } | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1866:13:1869:13 | Vec2 {...} | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1867:20:1867:23 | self | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1867:20:1867:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1867:20:1867:32 | ... >> ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1867:30:1867:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1868:20:1868:23 | self | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1868:20:1868:25 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1868:20:1868:32 | ... >> ... | | {EXTERNAL LOCATION} | i64 | | main.rs:1868:30:1868:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1869:20:1869:23 | self | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1869:20:1869:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1869:20:1869:32 | ... >> ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1869:30:1869:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1875:23:1875:31 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1875:23:1875:31 | SelfParam | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1875:34:1875:36 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1874:23:1874:31 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1874:23:1874:31 | SelfParam | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1874:34:1874:36 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1875:13:1875:16 | self | | file://:0:0:0:0 | & | +| main.rs:1875:13:1875:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1875:13:1875:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1875:13:1875:26 | ... >>= ... | | file://:0:0:0:0 | () | +| main.rs:1875:24:1875:26 | rhs | | {EXTERNAL LOCATION} | u32 | | main.rs:1876:13:1876:16 | self | | file://:0:0:0:0 | & | -| main.rs:1876:13:1876:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1876:13:1876:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1876:13:1876:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1876:13:1876:18 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1876:13:1876:26 | ... >>= ... | | file://:0:0:0:0 | () | | main.rs:1876:24:1876:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1877:13:1877:16 | self | | file://:0:0:0:0 | & | -| main.rs:1877:13:1877:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1877:13:1877:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1877:13:1877:26 | ... >>= ... | | file://:0:0:0:0 | () | -| main.rs:1877:24:1877:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1883:16:1883:19 | SelfParam | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1883:30:1888:9 | { ... } | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1884:13:1887:13 | Vec2 {...} | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1882:16:1882:19 | SelfParam | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1882:30:1887:9 | { ... } | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1883:13:1886:13 | Vec2 {...} | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1884:20:1884:26 | - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1884:21:1884:24 | self | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1884:21:1884:26 | self.x | | {EXTERNAL LOCATION} | i64 | | main.rs:1885:20:1885:26 | - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1885:21:1885:24 | self | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1885:21:1885:26 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1886:20:1886:26 | - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1886:21:1886:24 | self | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1886:21:1886:26 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1893:16:1893:19 | SelfParam | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1893:30:1898:9 | { ... } | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1894:13:1897:13 | Vec2 {...} | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1885:21:1885:24 | self | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1885:21:1885:26 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1892:16:1892:19 | SelfParam | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1892:30:1897:9 | { ... } | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1893:13:1896:13 | Vec2 {...} | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1894:20:1894:26 | ! ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1894:21:1894:24 | self | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1894:21:1894:26 | self.x | | {EXTERNAL LOCATION} | i64 | | main.rs:1895:20:1895:26 | ! ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1895:21:1895:24 | self | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1895:21:1895:26 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1896:20:1896:26 | ! ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1896:21:1896:24 | self | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1896:21:1896:26 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1902:15:1902:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1902:15:1902:19 | SelfParam | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1902:22:1902:26 | other | | file://:0:0:0:0 | & | -| main.rs:1902:22:1902:26 | other | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1902:44:1904:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:1903:13:1903:16 | self | | file://:0:0:0:0 | & | -| main.rs:1903:13:1903:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1903:13:1903:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1903:13:1903:29 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1903:13:1903:50 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1903:23:1903:27 | other | | file://:0:0:0:0 | & | -| main.rs:1903:23:1903:27 | other | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1903:23:1903:29 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1903:34:1903:37 | self | | file://:0:0:0:0 | & | -| main.rs:1903:34:1903:37 | self | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1903:34:1903:39 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1903:34:1903:50 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1903:44:1903:48 | other | | file://:0:0:0:0 | & | -| main.rs:1903:44:1903:48 | other | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1903:44:1903:50 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1906:15:1906:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1906:15:1906:19 | SelfParam | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1906:22:1906:26 | other | | file://:0:0:0:0 | & | -| main.rs:1906:22:1906:26 | other | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1906:44:1908:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:1907:13:1907:16 | self | | file://:0:0:0:0 | & | -| main.rs:1907:13:1907:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1907:13:1907:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1907:13:1907:29 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1907:13:1907:50 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1907:23:1907:27 | other | | file://:0:0:0:0 | & | -| main.rs:1907:23:1907:27 | other | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1907:23:1907:29 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1907:34:1907:37 | self | | file://:0:0:0:0 | & | -| main.rs:1907:34:1907:37 | self | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1907:34:1907:39 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1907:34:1907:50 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1907:44:1907:48 | other | | file://:0:0:0:0 | & | -| main.rs:1907:44:1907:48 | other | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1907:44:1907:50 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1912:24:1912:28 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1912:24:1912:28 | SelfParam | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1912:31:1912:35 | other | | file://:0:0:0:0 | & | -| main.rs:1912:31:1912:35 | other | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1912:75:1914:9 | { ... } | | {EXTERNAL LOCATION} | Option | -| main.rs:1912:75:1914:9 | { ... } | T | {EXTERNAL LOCATION} | Ordering | -| main.rs:1913:13:1913:29 | (...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:1913:13:1913:63 | ... .partial_cmp(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:1913:13:1913:63 | ... .partial_cmp(...) | T | {EXTERNAL LOCATION} | Ordering | -| main.rs:1913:14:1913:17 | self | | file://:0:0:0:0 | & | -| main.rs:1913:14:1913:17 | self | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1913:14:1913:19 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1913:14:1913:28 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1913:23:1913:26 | self | | file://:0:0:0:0 | & | -| main.rs:1913:23:1913:26 | self | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1913:23:1913:28 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1913:43:1913:62 | &... | | file://:0:0:0:0 | & | -| main.rs:1913:43:1913:62 | &... | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:1913:44:1913:62 | (...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:1913:45:1913:49 | other | | file://:0:0:0:0 | & | -| main.rs:1913:45:1913:49 | other | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1913:45:1913:51 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1913:45:1913:61 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1913:55:1913:59 | other | | file://:0:0:0:0 | & | -| main.rs:1913:55:1913:59 | other | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1913:55:1913:61 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1916:15:1916:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1916:15:1916:19 | SelfParam | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1895:21:1895:24 | self | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1895:21:1895:26 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1901:15:1901:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1901:15:1901:19 | SelfParam | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1901:22:1901:26 | other | | file://:0:0:0:0 | & | +| main.rs:1901:22:1901:26 | other | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1901:44:1903:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1902:13:1902:16 | self | | file://:0:0:0:0 | & | +| main.rs:1902:13:1902:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1902:13:1902:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1902:13:1902:29 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1902:13:1902:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1902:23:1902:27 | other | | file://:0:0:0:0 | & | +| main.rs:1902:23:1902:27 | other | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1902:23:1902:29 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1902:34:1902:37 | self | | file://:0:0:0:0 | & | +| main.rs:1902:34:1902:37 | self | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1902:34:1902:39 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1902:34:1902:50 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1902:44:1902:48 | other | | file://:0:0:0:0 | & | +| main.rs:1902:44:1902:48 | other | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1902:44:1902:50 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1905:15:1905:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1905:15:1905:19 | SelfParam | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1905:22:1905:26 | other | | file://:0:0:0:0 | & | +| main.rs:1905:22:1905:26 | other | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1905:44:1907:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1906:13:1906:16 | self | | file://:0:0:0:0 | & | +| main.rs:1906:13:1906:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1906:13:1906:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1906:13:1906:29 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1906:13:1906:50 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1906:23:1906:27 | other | | file://:0:0:0:0 | & | +| main.rs:1906:23:1906:27 | other | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1906:23:1906:29 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1906:34:1906:37 | self | | file://:0:0:0:0 | & | +| main.rs:1906:34:1906:37 | self | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1906:34:1906:39 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1906:34:1906:50 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1906:44:1906:48 | other | | file://:0:0:0:0 | & | +| main.rs:1906:44:1906:48 | other | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1906:44:1906:50 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1911:24:1911:28 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1911:24:1911:28 | SelfParam | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1911:31:1911:35 | other | | file://:0:0:0:0 | & | +| main.rs:1911:31:1911:35 | other | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1911:75:1913:9 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:1911:75:1913:9 | { ... } | T | {EXTERNAL LOCATION} | Ordering | +| main.rs:1912:13:1912:29 | (...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:1912:13:1912:63 | ... .partial_cmp(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:1912:13:1912:63 | ... .partial_cmp(...) | T | {EXTERNAL LOCATION} | Ordering | +| main.rs:1912:14:1912:17 | self | | file://:0:0:0:0 | & | +| main.rs:1912:14:1912:17 | self | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1912:14:1912:19 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1912:14:1912:28 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1912:23:1912:26 | self | | file://:0:0:0:0 | & | +| main.rs:1912:23:1912:26 | self | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1912:23:1912:28 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1912:43:1912:62 | &... | | file://:0:0:0:0 | & | +| main.rs:1912:43:1912:62 | &... | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:1912:44:1912:62 | (...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:1912:45:1912:49 | other | | file://:0:0:0:0 | & | +| main.rs:1912:45:1912:49 | other | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1912:45:1912:51 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1912:45:1912:61 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1912:55:1912:59 | other | | file://:0:0:0:0 | & | +| main.rs:1912:55:1912:59 | other | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1912:55:1912:61 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1915:15:1915:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1915:15:1915:19 | SelfParam | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1915:22:1915:26 | other | | file://:0:0:0:0 | & | +| main.rs:1915:22:1915:26 | other | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1915:44:1917:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1916:13:1916:16 | self | | file://:0:0:0:0 | & | +| main.rs:1916:13:1916:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1916:13:1916:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1916:13:1916:28 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1916:13:1916:48 | ... && ... | | {EXTERNAL LOCATION} | bool | | main.rs:1916:22:1916:26 | other | | file://:0:0:0:0 | & | -| main.rs:1916:22:1916:26 | other | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1916:44:1918:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:1917:13:1917:16 | self | | file://:0:0:0:0 | & | -| main.rs:1917:13:1917:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1917:13:1917:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1917:13:1917:28 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1917:13:1917:48 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1917:22:1917:26 | other | | file://:0:0:0:0 | & | -| main.rs:1917:22:1917:26 | other | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1917:22:1917:28 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1917:33:1917:36 | self | | file://:0:0:0:0 | & | -| main.rs:1917:33:1917:36 | self | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1917:33:1917:38 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1917:33:1917:48 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1917:42:1917:46 | other | | file://:0:0:0:0 | & | -| main.rs:1917:42:1917:46 | other | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1917:42:1917:48 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1920:15:1920:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1920:15:1920:19 | SelfParam | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1920:22:1920:26 | other | | file://:0:0:0:0 | & | -| main.rs:1920:22:1920:26 | other | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1920:44:1922:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:1921:13:1921:16 | self | | file://:0:0:0:0 | & | -| main.rs:1921:13:1921:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1921:13:1921:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1921:13:1921:29 | ... <= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1921:13:1921:50 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1921:23:1921:27 | other | | file://:0:0:0:0 | & | -| main.rs:1921:23:1921:27 | other | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1921:23:1921:29 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1921:34:1921:37 | self | | file://:0:0:0:0 | & | -| main.rs:1921:34:1921:37 | self | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1921:34:1921:39 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1921:34:1921:50 | ... <= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1921:44:1921:48 | other | | file://:0:0:0:0 | & | -| main.rs:1921:44:1921:48 | other | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1921:44:1921:50 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1924:15:1924:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1924:15:1924:19 | SelfParam | &T | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1916:22:1916:26 | other | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1916:22:1916:28 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1916:33:1916:36 | self | | file://:0:0:0:0 | & | +| main.rs:1916:33:1916:36 | self | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1916:33:1916:38 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1916:33:1916:48 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1916:42:1916:46 | other | | file://:0:0:0:0 | & | +| main.rs:1916:42:1916:46 | other | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1916:42:1916:48 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1919:15:1919:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1919:15:1919:19 | SelfParam | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1919:22:1919:26 | other | | file://:0:0:0:0 | & | +| main.rs:1919:22:1919:26 | other | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1919:44:1921:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1920:13:1920:16 | self | | file://:0:0:0:0 | & | +| main.rs:1920:13:1920:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1920:13:1920:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1920:13:1920:29 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1920:13:1920:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1920:23:1920:27 | other | | file://:0:0:0:0 | & | +| main.rs:1920:23:1920:27 | other | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1920:23:1920:29 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1920:34:1920:37 | self | | file://:0:0:0:0 | & | +| main.rs:1920:34:1920:37 | self | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1920:34:1920:39 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1920:34:1920:50 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1920:44:1920:48 | other | | file://:0:0:0:0 | & | +| main.rs:1920:44:1920:48 | other | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1920:44:1920:50 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1923:15:1923:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1923:15:1923:19 | SelfParam | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1923:22:1923:26 | other | | file://:0:0:0:0 | & | +| main.rs:1923:22:1923:26 | other | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1923:44:1925:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1924:13:1924:16 | self | | file://:0:0:0:0 | & | +| main.rs:1924:13:1924:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1924:13:1924:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1924:13:1924:28 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1924:13:1924:48 | ... && ... | | {EXTERNAL LOCATION} | bool | | main.rs:1924:22:1924:26 | other | | file://:0:0:0:0 | & | -| main.rs:1924:22:1924:26 | other | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1924:44:1926:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:1925:13:1925:16 | self | | file://:0:0:0:0 | & | -| main.rs:1925:13:1925:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1925:13:1925:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1925:13:1925:28 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1925:13:1925:48 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1925:22:1925:26 | other | | file://:0:0:0:0 | & | -| main.rs:1925:22:1925:26 | other | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1925:22:1925:28 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1925:33:1925:36 | self | | file://:0:0:0:0 | & | -| main.rs:1925:33:1925:36 | self | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1925:33:1925:38 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1925:33:1925:48 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1925:42:1925:46 | other | | file://:0:0:0:0 | & | -| main.rs:1925:42:1925:46 | other | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1925:42:1925:48 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1928:15:1928:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1928:15:1928:19 | SelfParam | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1928:22:1928:26 | other | | file://:0:0:0:0 | & | -| main.rs:1928:22:1928:26 | other | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1928:44:1930:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:1929:13:1929:16 | self | | file://:0:0:0:0 | & | -| main.rs:1929:13:1929:16 | self | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1929:13:1929:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1929:13:1929:29 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1929:13:1929:50 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1929:23:1929:27 | other | | file://:0:0:0:0 | & | -| main.rs:1929:23:1929:27 | other | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1929:23:1929:29 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1929:34:1929:37 | self | | file://:0:0:0:0 | & | -| main.rs:1929:34:1929:37 | self | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1929:34:1929:39 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1929:34:1929:50 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1929:44:1929:48 | other | | file://:0:0:0:0 | & | -| main.rs:1929:44:1929:48 | other | &T | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1929:44:1929:50 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1933:26:1933:26 | a | | main.rs:1933:18:1933:23 | T | -| main.rs:1933:32:1933:32 | b | | main.rs:1933:18:1933:23 | T | -| main.rs:1933:51:1935:5 | { ... } | | {EXTERNAL LOCATION} | Output | -| main.rs:1934:9:1934:9 | a | | main.rs:1933:18:1933:23 | T | -| main.rs:1934:9:1934:13 | ... + ... | | {EXTERNAL LOCATION} | Output | -| main.rs:1934:13:1934:13 | b | | main.rs:1933:18:1933:23 | T | -| main.rs:1941:13:1941:18 | i64_eq | | {EXTERNAL LOCATION} | bool | +| main.rs:1924:22:1924:26 | other | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1924:22:1924:28 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1924:33:1924:36 | self | | file://:0:0:0:0 | & | +| main.rs:1924:33:1924:36 | self | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1924:33:1924:38 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1924:33:1924:48 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1924:42:1924:46 | other | | file://:0:0:0:0 | & | +| main.rs:1924:42:1924:46 | other | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1924:42:1924:48 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1927:15:1927:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1927:15:1927:19 | SelfParam | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1927:22:1927:26 | other | | file://:0:0:0:0 | & | +| main.rs:1927:22:1927:26 | other | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1927:44:1929:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1928:13:1928:16 | self | | file://:0:0:0:0 | & | +| main.rs:1928:13:1928:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1928:13:1928:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1928:13:1928:29 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1928:13:1928:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1928:23:1928:27 | other | | file://:0:0:0:0 | & | +| main.rs:1928:23:1928:27 | other | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1928:23:1928:29 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1928:34:1928:37 | self | | file://:0:0:0:0 | & | +| main.rs:1928:34:1928:37 | self | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1928:34:1928:39 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1928:34:1928:50 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1928:44:1928:48 | other | | file://:0:0:0:0 | & | +| main.rs:1928:44:1928:48 | other | &T | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1928:44:1928:50 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1932:26:1932:26 | a | | main.rs:1932:18:1932:23 | T | +| main.rs:1932:32:1932:32 | b | | main.rs:1932:18:1932:23 | T | +| main.rs:1932:51:1934:5 | { ... } | | {EXTERNAL LOCATION} | Output | +| main.rs:1933:9:1933:9 | a | | main.rs:1932:18:1932:23 | T | +| main.rs:1933:9:1933:13 | ... + ... | | {EXTERNAL LOCATION} | Output | +| main.rs:1933:13:1933:13 | b | | main.rs:1932:18:1932:23 | T | +| main.rs:1940:13:1940:18 | i64_eq | | {EXTERNAL LOCATION} | bool | +| main.rs:1940:22:1940:35 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:1940:23:1940:26 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1940:23:1940:34 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1940:31:1940:34 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1941:13:1941:18 | i64_ne | | {EXTERNAL LOCATION} | bool | | main.rs:1941:22:1941:35 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:1941:23:1941:26 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1941:23:1941:34 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1941:31:1941:34 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1942:13:1942:18 | i64_ne | | {EXTERNAL LOCATION} | bool | -| main.rs:1942:22:1942:35 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:1942:23:1942:26 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1942:23:1942:34 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1942:31:1942:34 | 4i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1943:13:1943:18 | i64_lt | | {EXTERNAL LOCATION} | bool | -| main.rs:1943:22:1943:34 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:1943:23:1943:26 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1943:23:1943:33 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1943:30:1943:33 | 6i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1944:13:1944:18 | i64_le | | {EXTERNAL LOCATION} | bool | +| main.rs:1941:23:1941:26 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1941:23:1941:34 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1941:31:1941:34 | 4i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1942:13:1942:18 | i64_lt | | {EXTERNAL LOCATION} | bool | +| main.rs:1942:22:1942:34 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:1942:23:1942:26 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1942:23:1942:33 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1942:30:1942:33 | 6i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1943:13:1943:18 | i64_le | | {EXTERNAL LOCATION} | bool | +| main.rs:1943:22:1943:35 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:1943:23:1943:26 | 7i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1943:23:1943:34 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1943:31:1943:34 | 8i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1944:13:1944:18 | i64_gt | | {EXTERNAL LOCATION} | bool | | main.rs:1944:22:1944:35 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:1944:23:1944:26 | 7i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1944:23:1944:34 | ... <= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1944:31:1944:34 | 8i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1945:13:1945:18 | i64_gt | | {EXTERNAL LOCATION} | bool | -| main.rs:1945:22:1945:35 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:1945:23:1945:26 | 9i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1945:23:1945:34 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1945:30:1945:34 | 10i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1946:13:1946:18 | i64_ge | | {EXTERNAL LOCATION} | bool | -| main.rs:1946:22:1946:37 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:1946:23:1946:27 | 11i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1946:23:1946:36 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1946:32:1946:36 | 12i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1949:13:1949:19 | i64_add | | {EXTERNAL LOCATION} | i64 | -| main.rs:1949:23:1949:27 | 13i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1949:23:1949:35 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1949:31:1949:35 | 14i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1950:13:1950:19 | i64_sub | | {EXTERNAL LOCATION} | i64 | -| main.rs:1950:23:1950:27 | 15i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1950:23:1950:35 | ... - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1950:31:1950:35 | 16i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1951:13:1951:19 | i64_mul | | {EXTERNAL LOCATION} | i64 | -| main.rs:1951:23:1951:27 | 17i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1951:23:1951:35 | ... * ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1951:31:1951:35 | 18i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1952:13:1952:19 | i64_div | | {EXTERNAL LOCATION} | i64 | -| main.rs:1952:23:1952:27 | 19i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1952:23:1952:35 | ... / ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1952:31:1952:35 | 20i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1953:13:1953:19 | i64_rem | | {EXTERNAL LOCATION} | i64 | -| main.rs:1953:23:1953:27 | 21i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1953:23:1953:35 | ... % ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1953:31:1953:35 | 22i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1954:39:1954:42 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1954:45:1954:48 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1957:17:1957:30 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1957:34:1957:38 | 23i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1958:9:1958:22 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1958:9:1958:31 | ... += ... | | file://:0:0:0:0 | () | -| main.rs:1958:27:1958:31 | 24i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1960:17:1960:30 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1960:34:1960:38 | 25i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1961:9:1961:22 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1961:9:1961:31 | ... -= ... | | file://:0:0:0:0 | () | -| main.rs:1961:27:1961:31 | 26i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1963:17:1963:30 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1963:34:1963:38 | 27i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1964:9:1964:22 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1964:9:1964:31 | ... *= ... | | file://:0:0:0:0 | () | -| main.rs:1964:27:1964:31 | 28i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1966:17:1966:30 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1966:34:1966:38 | 29i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1967:9:1967:22 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1967:9:1967:31 | ... /= ... | | file://:0:0:0:0 | () | -| main.rs:1967:27:1967:31 | 30i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1969:17:1969:30 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1969:34:1969:38 | 31i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1970:9:1970:22 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1970:9:1970:31 | ... %= ... | | file://:0:0:0:0 | () | -| main.rs:1970:27:1970:31 | 32i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1973:13:1973:22 | i64_bitand | | {EXTERNAL LOCATION} | i64 | -| main.rs:1973:26:1973:30 | 33i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1973:26:1973:38 | ... & ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1973:34:1973:38 | 34i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1974:13:1974:21 | i64_bitor | | {EXTERNAL LOCATION} | i64 | -| main.rs:1974:25:1974:29 | 35i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1974:25:1974:37 | ... \| ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1974:33:1974:37 | 36i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1975:13:1975:22 | i64_bitxor | | {EXTERNAL LOCATION} | i64 | -| main.rs:1975:26:1975:30 | 37i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1975:26:1975:38 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1975:34:1975:38 | 38i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1976:13:1976:19 | i64_shl | | {EXTERNAL LOCATION} | i64 | -| main.rs:1976:23:1976:27 | 39i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1976:23:1976:36 | ... << ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1976:32:1976:36 | 40i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1977:13:1977:19 | i64_shr | | {EXTERNAL LOCATION} | i64 | -| main.rs:1977:23:1977:27 | 41i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1977:23:1977:36 | ... >> ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1977:32:1977:36 | 42i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1980:17:1980:33 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1980:37:1980:41 | 43i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1981:9:1981:25 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1981:9:1981:34 | ... &= ... | | file://:0:0:0:0 | () | -| main.rs:1981:30:1981:34 | 44i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1983:17:1983:32 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1983:36:1983:40 | 45i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1984:9:1984:24 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1984:9:1984:33 | ... \|= ... | | file://:0:0:0:0 | () | -| main.rs:1984:29:1984:33 | 46i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1986:17:1986:33 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1986:37:1986:41 | 47i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1987:9:1987:25 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1987:9:1987:34 | ... ^= ... | | file://:0:0:0:0 | () | -| main.rs:1987:30:1987:34 | 48i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1989:17:1989:30 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1989:34:1989:38 | 49i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1990:9:1990:22 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1990:9:1990:32 | ... <<= ... | | file://:0:0:0:0 | () | -| main.rs:1990:28:1990:32 | 50i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1992:17:1992:30 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1992:34:1992:38 | 51i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1993:9:1993:22 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1993:9:1993:32 | ... >>= ... | | file://:0:0:0:0 | () | -| main.rs:1993:28:1993:32 | 52i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1995:13:1995:19 | i64_neg | | {EXTERNAL LOCATION} | i64 | -| main.rs:1995:23:1995:28 | - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1995:24:1995:28 | 53i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1996:13:1996:19 | i64_not | | {EXTERNAL LOCATION} | i64 | -| main.rs:1996:23:1996:28 | ! ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1996:24:1996:28 | 54i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1999:13:1999:14 | v1 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1999:18:1999:36 | Vec2 {...} | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:1999:28:1999:28 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1999:28:1999:28 | 1 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1999:34:1999:34 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1999:34:1999:34 | 2 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2000:13:2000:14 | v2 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2000:18:2000:36 | Vec2 {...} | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2000:28:2000:28 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2000:28:2000:28 | 3 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2000:34:2000:34 | 4 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2000:34:2000:34 | 4 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2003:13:2003:19 | vec2_eq | | {EXTERNAL LOCATION} | bool | -| main.rs:2003:23:2003:24 | v1 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2003:23:2003:30 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2003:29:2003:30 | v2 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2004:13:2004:19 | vec2_ne | | {EXTERNAL LOCATION} | bool | -| main.rs:2004:23:2004:24 | v1 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2004:23:2004:30 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2004:29:2004:30 | v2 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2005:13:2005:19 | vec2_lt | | {EXTERNAL LOCATION} | bool | -| main.rs:2005:23:2005:24 | v1 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2005:23:2005:29 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2005:28:2005:29 | v2 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2006:13:2006:19 | vec2_le | | {EXTERNAL LOCATION} | bool | -| main.rs:2006:23:2006:24 | v1 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2006:23:2006:30 | ... <= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2006:29:2006:30 | v2 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2007:13:2007:19 | vec2_gt | | {EXTERNAL LOCATION} | bool | -| main.rs:2007:23:2007:24 | v1 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2007:23:2007:29 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2007:28:2007:29 | v2 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2008:13:2008:19 | vec2_ge | | {EXTERNAL LOCATION} | bool | -| main.rs:2008:23:2008:24 | v1 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2008:23:2008:30 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2008:29:2008:30 | v2 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2011:13:2011:20 | vec2_add | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2011:24:2011:25 | v1 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2011:24:2011:30 | ... + ... | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2011:29:2011:30 | v2 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2012:13:2012:20 | vec2_sub | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2012:24:2012:25 | v1 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2012:24:2012:30 | ... - ... | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2012:29:2012:30 | v2 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2013:13:2013:20 | vec2_mul | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2013:24:2013:25 | v1 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2013:24:2013:30 | ... * ... | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2013:29:2013:30 | v2 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2014:13:2014:20 | vec2_div | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2014:24:2014:25 | v1 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2014:24:2014:30 | ... / ... | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2014:29:2014:30 | v2 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2015:13:2015:20 | vec2_rem | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2015:24:2015:25 | v1 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2015:24:2015:30 | ... % ... | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2015:29:2015:30 | v2 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2018:17:2018:31 | vec2_add_assign | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2018:35:2018:36 | v1 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2019:9:2019:23 | vec2_add_assign | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2019:9:2019:29 | ... += ... | | file://:0:0:0:0 | () | -| main.rs:2019:28:2019:29 | v2 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2021:17:2021:31 | vec2_sub_assign | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2021:35:2021:36 | v1 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2022:9:2022:23 | vec2_sub_assign | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2022:9:2022:29 | ... -= ... | | file://:0:0:0:0 | () | -| main.rs:2022:28:2022:29 | v2 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2024:17:2024:31 | vec2_mul_assign | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2024:35:2024:36 | v1 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2025:9:2025:23 | vec2_mul_assign | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2025:9:2025:29 | ... *= ... | | file://:0:0:0:0 | () | -| main.rs:2025:28:2025:29 | v2 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2027:17:2027:31 | vec2_div_assign | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2027:35:2027:36 | v1 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2028:9:2028:23 | vec2_div_assign | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2028:9:2028:29 | ... /= ... | | file://:0:0:0:0 | () | -| main.rs:2028:28:2028:29 | v2 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2030:17:2030:31 | vec2_rem_assign | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2030:35:2030:36 | v1 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2031:9:2031:23 | vec2_rem_assign | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2031:9:2031:29 | ... %= ... | | file://:0:0:0:0 | () | -| main.rs:2031:28:2031:29 | v2 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2034:13:2034:23 | vec2_bitand | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2034:27:2034:28 | v1 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2034:27:2034:33 | ... & ... | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2034:32:2034:33 | v2 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2035:13:2035:22 | vec2_bitor | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2035:26:2035:27 | v1 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2035:26:2035:32 | ... \| ... | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2035:31:2035:32 | v2 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2036:13:2036:23 | vec2_bitxor | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2036:27:2036:28 | v1 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2036:27:2036:33 | ... ^ ... | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2036:32:2036:33 | v2 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2037:13:2037:20 | vec2_shl | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2037:24:2037:25 | v1 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2037:24:2037:33 | ... << ... | | main.rs:1696:5:1701:5 | Vec2 | +| main.rs:1944:23:1944:26 | 9i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1944:23:1944:34 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1944:30:1944:34 | 10i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1945:13:1945:18 | i64_ge | | {EXTERNAL LOCATION} | bool | +| main.rs:1945:22:1945:37 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:1945:23:1945:27 | 11i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1945:23:1945:36 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1945:32:1945:36 | 12i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1948:13:1948:19 | i64_add | | {EXTERNAL LOCATION} | i64 | +| main.rs:1948:23:1948:27 | 13i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1948:23:1948:35 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1948:31:1948:35 | 14i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1949:13:1949:19 | i64_sub | | {EXTERNAL LOCATION} | i64 | +| main.rs:1949:23:1949:27 | 15i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1949:23:1949:35 | ... - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1949:31:1949:35 | 16i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1950:13:1950:19 | i64_mul | | {EXTERNAL LOCATION} | i64 | +| main.rs:1950:23:1950:27 | 17i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1950:23:1950:35 | ... * ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1950:31:1950:35 | 18i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1951:13:1951:19 | i64_div | | {EXTERNAL LOCATION} | i64 | +| main.rs:1951:23:1951:27 | 19i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1951:23:1951:35 | ... / ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1951:31:1951:35 | 20i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1952:13:1952:19 | i64_rem | | {EXTERNAL LOCATION} | i64 | +| main.rs:1952:23:1952:27 | 21i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1952:23:1952:35 | ... % ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1952:31:1952:35 | 22i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1953:39:1953:42 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1953:45:1953:48 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1956:17:1956:30 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1956:34:1956:38 | 23i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1957:9:1957:22 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1957:9:1957:31 | ... += ... | | file://:0:0:0:0 | () | +| main.rs:1957:27:1957:31 | 24i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1959:17:1959:30 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1959:34:1959:38 | 25i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1960:9:1960:22 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1960:9:1960:31 | ... -= ... | | file://:0:0:0:0 | () | +| main.rs:1960:27:1960:31 | 26i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1962:17:1962:30 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1962:34:1962:38 | 27i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1963:9:1963:22 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1963:9:1963:31 | ... *= ... | | file://:0:0:0:0 | () | +| main.rs:1963:27:1963:31 | 28i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1965:17:1965:30 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1965:34:1965:38 | 29i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1966:9:1966:22 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1966:9:1966:31 | ... /= ... | | file://:0:0:0:0 | () | +| main.rs:1966:27:1966:31 | 30i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1968:17:1968:30 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1968:34:1968:38 | 31i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1969:9:1969:22 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1969:9:1969:31 | ... %= ... | | file://:0:0:0:0 | () | +| main.rs:1969:27:1969:31 | 32i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1972:13:1972:22 | i64_bitand | | {EXTERNAL LOCATION} | i64 | +| main.rs:1972:26:1972:30 | 33i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1972:26:1972:38 | ... & ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1972:34:1972:38 | 34i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1973:13:1973:21 | i64_bitor | | {EXTERNAL LOCATION} | i64 | +| main.rs:1973:25:1973:29 | 35i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1973:25:1973:37 | ... \| ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1973:33:1973:37 | 36i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1974:13:1974:22 | i64_bitxor | | {EXTERNAL LOCATION} | i64 | +| main.rs:1974:26:1974:30 | 37i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1974:26:1974:38 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1974:34:1974:38 | 38i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1975:13:1975:19 | i64_shl | | {EXTERNAL LOCATION} | i64 | +| main.rs:1975:23:1975:27 | 39i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1975:23:1975:36 | ... << ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1975:32:1975:36 | 40i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1976:13:1976:19 | i64_shr | | {EXTERNAL LOCATION} | i64 | +| main.rs:1976:23:1976:27 | 41i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1976:23:1976:36 | ... >> ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1976:32:1976:36 | 42i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1979:17:1979:33 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1979:37:1979:41 | 43i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1980:9:1980:25 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1980:9:1980:34 | ... &= ... | | file://:0:0:0:0 | () | +| main.rs:1980:30:1980:34 | 44i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1982:17:1982:32 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1982:36:1982:40 | 45i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1983:9:1983:24 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1983:9:1983:33 | ... \|= ... | | file://:0:0:0:0 | () | +| main.rs:1983:29:1983:33 | 46i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1985:17:1985:33 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1985:37:1985:41 | 47i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1986:9:1986:25 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1986:9:1986:34 | ... ^= ... | | file://:0:0:0:0 | () | +| main.rs:1986:30:1986:34 | 48i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1988:17:1988:30 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1988:34:1988:38 | 49i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1989:9:1989:22 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1989:9:1989:32 | ... <<= ... | | file://:0:0:0:0 | () | +| main.rs:1989:28:1989:32 | 50i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1991:17:1991:30 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1991:34:1991:38 | 51i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1992:9:1992:22 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1992:9:1992:32 | ... >>= ... | | file://:0:0:0:0 | () | +| main.rs:1992:28:1992:32 | 52i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1994:13:1994:19 | i64_neg | | {EXTERNAL LOCATION} | i64 | +| main.rs:1994:23:1994:28 | - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1994:24:1994:28 | 53i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1995:13:1995:19 | i64_not | | {EXTERNAL LOCATION} | i64 | +| main.rs:1995:23:1995:28 | ! ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1995:24:1995:28 | 54i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1998:13:1998:14 | v1 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1998:18:1998:36 | Vec2 {...} | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1998:28:1998:28 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1998:28:1998:28 | 1 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1998:34:1998:34 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1998:34:1998:34 | 2 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1999:13:1999:14 | v2 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1999:18:1999:36 | Vec2 {...} | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:1999:28:1999:28 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1999:28:1999:28 | 3 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1999:34:1999:34 | 4 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1999:34:1999:34 | 4 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2002:13:2002:19 | vec2_eq | | {EXTERNAL LOCATION} | bool | +| main.rs:2002:23:2002:24 | v1 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2002:23:2002:30 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2002:29:2002:30 | v2 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2003:13:2003:19 | vec2_ne | | {EXTERNAL LOCATION} | bool | +| main.rs:2003:23:2003:24 | v1 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2003:23:2003:30 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2003:29:2003:30 | v2 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2004:13:2004:19 | vec2_lt | | {EXTERNAL LOCATION} | bool | +| main.rs:2004:23:2004:24 | v1 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2004:23:2004:29 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2004:28:2004:29 | v2 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2005:13:2005:19 | vec2_le | | {EXTERNAL LOCATION} | bool | +| main.rs:2005:23:2005:24 | v1 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2005:23:2005:30 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2005:29:2005:30 | v2 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2006:13:2006:19 | vec2_gt | | {EXTERNAL LOCATION} | bool | +| main.rs:2006:23:2006:24 | v1 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2006:23:2006:29 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2006:28:2006:29 | v2 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2007:13:2007:19 | vec2_ge | | {EXTERNAL LOCATION} | bool | +| main.rs:2007:23:2007:24 | v1 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2007:23:2007:30 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2007:29:2007:30 | v2 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2010:13:2010:20 | vec2_add | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2010:24:2010:25 | v1 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2010:24:2010:30 | ... + ... | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2010:29:2010:30 | v2 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2011:13:2011:20 | vec2_sub | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2011:24:2011:25 | v1 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2011:24:2011:30 | ... - ... | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2011:29:2011:30 | v2 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2012:13:2012:20 | vec2_mul | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2012:24:2012:25 | v1 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2012:24:2012:30 | ... * ... | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2012:29:2012:30 | v2 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2013:13:2013:20 | vec2_div | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2013:24:2013:25 | v1 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2013:24:2013:30 | ... / ... | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2013:29:2013:30 | v2 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2014:13:2014:20 | vec2_rem | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2014:24:2014:25 | v1 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2014:24:2014:30 | ... % ... | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2014:29:2014:30 | v2 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2017:17:2017:31 | vec2_add_assign | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2017:35:2017:36 | v1 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2018:9:2018:23 | vec2_add_assign | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2018:9:2018:29 | ... += ... | | file://:0:0:0:0 | () | +| main.rs:2018:28:2018:29 | v2 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2020:17:2020:31 | vec2_sub_assign | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2020:35:2020:36 | v1 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2021:9:2021:23 | vec2_sub_assign | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2021:9:2021:29 | ... -= ... | | file://:0:0:0:0 | () | +| main.rs:2021:28:2021:29 | v2 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2023:17:2023:31 | vec2_mul_assign | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2023:35:2023:36 | v1 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2024:9:2024:23 | vec2_mul_assign | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2024:9:2024:29 | ... *= ... | | file://:0:0:0:0 | () | +| main.rs:2024:28:2024:29 | v2 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2026:17:2026:31 | vec2_div_assign | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2026:35:2026:36 | v1 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2027:9:2027:23 | vec2_div_assign | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2027:9:2027:29 | ... /= ... | | file://:0:0:0:0 | () | +| main.rs:2027:28:2027:29 | v2 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2029:17:2029:31 | vec2_rem_assign | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2029:35:2029:36 | v1 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2030:9:2030:23 | vec2_rem_assign | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2030:9:2030:29 | ... %= ... | | file://:0:0:0:0 | () | +| main.rs:2030:28:2030:29 | v2 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2033:13:2033:23 | vec2_bitand | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2033:27:2033:28 | v1 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2033:27:2033:33 | ... & ... | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2033:32:2033:33 | v2 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2034:13:2034:22 | vec2_bitor | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2034:26:2034:27 | v1 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2034:26:2034:32 | ... \| ... | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2034:31:2034:32 | v2 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2035:13:2035:23 | vec2_bitxor | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2035:27:2035:28 | v1 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2035:27:2035:33 | ... ^ ... | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2035:32:2035:33 | v2 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2036:13:2036:20 | vec2_shl | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2036:24:2036:25 | v1 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2036:24:2036:33 | ... << ... | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2036:30:2036:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2037:13:2037:20 | vec2_shr | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2037:24:2037:25 | v1 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2037:24:2037:33 | ... >> ... | | main.rs:1695:5:1700:5 | Vec2 | | main.rs:2037:30:2037:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2038:13:2038:20 | vec2_shr | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2038:24:2038:25 | v1 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2038:24:2038:33 | ... >> ... | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2038:30:2038:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2041:17:2041:34 | vec2_bitand_assign | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2041:38:2041:39 | v1 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2042:9:2042:26 | vec2_bitand_assign | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2042:9:2042:32 | ... &= ... | | file://:0:0:0:0 | () | -| main.rs:2042:31:2042:32 | v2 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2044:17:2044:33 | vec2_bitor_assign | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2044:37:2044:38 | v1 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2045:9:2045:25 | vec2_bitor_assign | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2045:9:2045:31 | ... \|= ... | | file://:0:0:0:0 | () | -| main.rs:2045:30:2045:31 | v2 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2047:17:2047:34 | vec2_bitxor_assign | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2047:38:2047:39 | v1 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2048:9:2048:26 | vec2_bitxor_assign | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2048:9:2048:32 | ... ^= ... | | file://:0:0:0:0 | () | -| main.rs:2048:31:2048:32 | v2 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2050:17:2050:31 | vec2_shl_assign | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2050:35:2050:36 | v1 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2051:9:2051:23 | vec2_shl_assign | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2051:9:2051:32 | ... <<= ... | | file://:0:0:0:0 | () | -| main.rs:2051:29:2051:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2053:17:2053:31 | vec2_shr_assign | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2053:35:2053:36 | v1 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2054:9:2054:23 | vec2_shr_assign | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2054:9:2054:32 | ... >>= ... | | file://:0:0:0:0 | () | -| main.rs:2054:29:2054:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2057:13:2057:20 | vec2_neg | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2057:24:2057:26 | - ... | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2057:25:2057:26 | v1 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2058:13:2058:20 | vec2_not | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2058:24:2058:26 | ! ... | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2058:25:2058:26 | v1 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2061:13:2061:24 | default_vec2 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2061:28:2061:45 | ...::default(...) | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2062:13:2062:26 | vec2_zero_plus | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2062:30:2062:48 | Vec2 {...} | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2062:30:2062:63 | ... + ... | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2062:40:2062:40 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2062:40:2062:40 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2062:46:2062:46 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2062:46:2062:46 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2062:52:2062:63 | default_vec2 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2066:13:2066:24 | default_vec2 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2066:28:2066:45 | ...::default(...) | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2067:13:2067:26 | vec2_zero_plus | | {EXTERNAL LOCATION} | bool | -| main.rs:2067:30:2067:48 | Vec2 {...} | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2067:30:2067:64 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2067:40:2067:40 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2067:40:2067:40 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2067:46:2067:46 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2067:46:2067:46 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2067:53:2067:64 | default_vec2 | | main.rs:1696:5:1701:5 | Vec2 | -| main.rs:2077:18:2077:21 | SelfParam | | main.rs:2074:5:2074:14 | S1 | -| main.rs:2080:25:2082:5 | { ... } | | main.rs:2074:5:2074:14 | S1 | -| main.rs:2081:9:2081:10 | S1 | | main.rs:2074:5:2074:14 | S1 | -| main.rs:2084:41:2086:5 | { ... } | | main.rs:2084:16:2084:39 | impl ... | -| main.rs:2085:9:2085:20 | { ... } | | {EXTERNAL LOCATION} | trait Future | -| main.rs:2085:9:2085:20 | { ... } | Output | main.rs:2074:5:2074:14 | S1 | -| main.rs:2085:17:2085:18 | S1 | | main.rs:2074:5:2074:14 | S1 | -| main.rs:2094:13:2094:42 | SelfParam | | {EXTERNAL LOCATION} | Pin | -| main.rs:2094:13:2094:42 | SelfParam | Ptr | file://:0:0:0:0 | & | -| main.rs:2094:13:2094:42 | SelfParam | Ptr.&T | main.rs:2088:5:2088:14 | S2 | -| main.rs:2095:13:2095:15 | _cx | | file://:0:0:0:0 | & | -| main.rs:2095:13:2095:15 | _cx | &T | {EXTERNAL LOCATION} | Context | -| main.rs:2096:44:2098:9 | { ... } | | {EXTERNAL LOCATION} | Poll | -| main.rs:2096:44:2098:9 | { ... } | T | main.rs:2074:5:2074:14 | S1 | -| main.rs:2097:13:2097:38 | ...::Ready(...) | | {EXTERNAL LOCATION} | Poll | -| main.rs:2097:13:2097:38 | ...::Ready(...) | T | main.rs:2074:5:2074:14 | S1 | -| main.rs:2097:36:2097:37 | S1 | | main.rs:2074:5:2074:14 | S1 | -| main.rs:2101:41:2103:5 | { ... } | | main.rs:2101:16:2101:39 | impl ... | -| main.rs:2102:9:2102:10 | S2 | | main.rs:2088:5:2088:14 | S2 | -| main.rs:2102:9:2102:10 | S2 | | main.rs:2101:16:2101:39 | impl ... | -| main.rs:2106:9:2106:12 | f1(...) | | {EXTERNAL LOCATION} | trait Future | -| main.rs:2106:9:2106:12 | f1(...) | Output | main.rs:2074:5:2074:14 | S1 | -| main.rs:2106:9:2106:18 | await ... | | main.rs:2074:5:2074:14 | S1 | -| main.rs:2107:9:2107:12 | f2(...) | | main.rs:2084:16:2084:39 | impl ... | -| main.rs:2107:9:2107:18 | await ... | | main.rs:2074:5:2074:14 | S1 | -| main.rs:2108:9:2108:12 | f3(...) | | main.rs:2101:16:2101:39 | impl ... | -| main.rs:2108:9:2108:18 | await ... | | main.rs:2074:5:2074:14 | S1 | -| main.rs:2109:9:2109:10 | S2 | | main.rs:2088:5:2088:14 | S2 | -| main.rs:2109:9:2109:16 | await S2 | | main.rs:2074:5:2074:14 | S1 | -| main.rs:2110:13:2110:13 | b | | {EXTERNAL LOCATION} | trait Future | -| main.rs:2110:13:2110:13 | b | Output | main.rs:2074:5:2074:14 | S1 | -| main.rs:2110:17:2110:28 | { ... } | | {EXTERNAL LOCATION} | trait Future | -| main.rs:2110:17:2110:28 | { ... } | Output | main.rs:2074:5:2074:14 | S1 | -| main.rs:2110:25:2110:26 | S1 | | main.rs:2074:5:2074:14 | S1 | -| main.rs:2111:9:2111:9 | b | | {EXTERNAL LOCATION} | trait Future | -| main.rs:2111:9:2111:9 | b | Output | main.rs:2074:5:2074:14 | S1 | -| main.rs:2111:9:2111:15 | await b | | main.rs:2074:5:2074:14 | S1 | -| main.rs:2122:15:2122:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2122:15:2122:19 | SelfParam | &T | main.rs:2121:5:2123:5 | Self [trait Trait1] | -| main.rs:2126:15:2126:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2126:15:2126:19 | SelfParam | &T | main.rs:2125:5:2127:5 | Self [trait Trait2] | -| main.rs:2130:15:2130:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2130:15:2130:19 | SelfParam | &T | main.rs:2116:5:2117:14 | S1 | -| main.rs:2134:15:2134:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2134:15:2134:19 | SelfParam | &T | main.rs:2116:5:2117:14 | S1 | -| main.rs:2137:37:2139:5 | { ... } | | main.rs:2137:16:2137:35 | impl ... + ... | -| main.rs:2138:9:2138:10 | S1 | | main.rs:2116:5:2117:14 | S1 | -| main.rs:2138:9:2138:10 | S1 | | main.rs:2137:16:2137:35 | impl ... + ... | -| main.rs:2142:18:2142:22 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2142:18:2142:22 | SelfParam | &T | main.rs:2141:5:2143:5 | Self [trait MyTrait] | -| main.rs:2146:18:2146:22 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2146:18:2146:22 | SelfParam | &T | main.rs:2116:5:2117:14 | S1 | -| main.rs:2146:31:2148:9 | { ... } | | main.rs:2118:5:2118:14 | S2 | -| main.rs:2147:13:2147:14 | S2 | | main.rs:2118:5:2118:14 | S2 | -| main.rs:2152:18:2152:22 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2152:18:2152:22 | SelfParam | &T | main.rs:2119:5:2119:22 | S3 | -| main.rs:2152:18:2152:22 | SelfParam | &T.T3 | main.rs:2151:10:2151:17 | T | -| main.rs:2152:30:2155:9 | { ... } | | main.rs:2151:10:2151:17 | T | -| main.rs:2153:17:2153:21 | S3(...) | | file://:0:0:0:0 | & | -| main.rs:2153:17:2153:21 | S3(...) | | main.rs:2119:5:2119:22 | S3 | -| main.rs:2153:17:2153:21 | S3(...) | &T | main.rs:2119:5:2119:22 | S3 | -| main.rs:2153:17:2153:21 | S3(...) | &T.T3 | main.rs:2151:10:2151:17 | T | -| main.rs:2153:25:2153:28 | self | | file://:0:0:0:0 | & | -| main.rs:2153:25:2153:28 | self | &T | main.rs:2119:5:2119:22 | S3 | -| main.rs:2153:25:2153:28 | self | &T.T3 | main.rs:2151:10:2151:17 | T | -| main.rs:2154:13:2154:21 | t.clone() | | main.rs:2151:10:2151:17 | T | -| main.rs:2158:45:2160:5 | { ... } | | main.rs:2158:28:2158:43 | impl ... | -| main.rs:2159:9:2159:10 | S1 | | main.rs:2116:5:2117:14 | S1 | -| main.rs:2159:9:2159:10 | S1 | | main.rs:2158:28:2158:43 | impl ... | -| main.rs:2162:41:2162:41 | t | | main.rs:2162:26:2162:38 | B | -| main.rs:2162:52:2164:5 | { ... } | | main.rs:2162:23:2162:23 | A | -| main.rs:2163:9:2163:9 | t | | main.rs:2162:26:2162:38 | B | -| main.rs:2163:9:2163:17 | t.get_a() | | main.rs:2162:23:2162:23 | A | -| main.rs:2166:34:2166:34 | x | | main.rs:2166:24:2166:31 | T | -| main.rs:2166:59:2168:5 | { ... } | | main.rs:2166:43:2166:57 | impl ... | -| main.rs:2166:59:2168:5 | { ... } | impl(T) | main.rs:2166:24:2166:31 | T | -| main.rs:2167:9:2167:13 | S3(...) | | main.rs:2119:5:2119:22 | S3 | -| main.rs:2167:9:2167:13 | S3(...) | | main.rs:2166:43:2166:57 | impl ... | -| main.rs:2167:9:2167:13 | S3(...) | T3 | main.rs:2166:24:2166:31 | T | -| main.rs:2167:9:2167:13 | S3(...) | impl(T) | main.rs:2166:24:2166:31 | T | -| main.rs:2167:12:2167:12 | x | | main.rs:2166:24:2166:31 | T | -| main.rs:2170:34:2170:34 | x | | main.rs:2170:24:2170:31 | T | -| main.rs:2170:67:2172:5 | { ... } | | {EXTERNAL LOCATION} | Option | -| main.rs:2170:67:2172:5 | { ... } | T | main.rs:2170:50:2170:64 | impl ... | -| main.rs:2170:67:2172:5 | { ... } | T.impl(T) | main.rs:2170:24:2170:31 | T | -| main.rs:2171:9:2171:19 | Some(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2171:9:2171:19 | Some(...) | T | main.rs:2119:5:2119:22 | S3 | -| main.rs:2171:9:2171:19 | Some(...) | T | main.rs:2170:50:2170:64 | impl ... | -| main.rs:2171:9:2171:19 | Some(...) | T.T3 | main.rs:2170:24:2170:31 | T | -| main.rs:2171:9:2171:19 | Some(...) | T.impl(T) | main.rs:2170:24:2170:31 | T | -| main.rs:2171:14:2171:18 | S3(...) | | main.rs:2119:5:2119:22 | S3 | -| main.rs:2171:14:2171:18 | S3(...) | | main.rs:2170:50:2170:64 | impl ... | -| main.rs:2171:14:2171:18 | S3(...) | T3 | main.rs:2170:24:2170:31 | T | -| main.rs:2171:14:2171:18 | S3(...) | impl(T) | main.rs:2170:24:2170:31 | T | -| main.rs:2171:17:2171:17 | x | | main.rs:2170:24:2170:31 | T | -| main.rs:2174:34:2174:34 | x | | main.rs:2174:24:2174:31 | T | -| main.rs:2174:78:2176:5 | { ... } | | file://:0:0:0:0 | (T_2) | -| main.rs:2174:78:2176:5 | { ... } | 0(2) | main.rs:2174:44:2174:58 | impl ... | -| main.rs:2174:78:2176:5 | { ... } | 0(2).impl(T) | main.rs:2174:24:2174:31 | T | -| main.rs:2174:78:2176:5 | { ... } | 1(2) | main.rs:2174:61:2174:75 | impl ... | -| main.rs:2174:78:2176:5 | { ... } | 1(2).impl(T) | main.rs:2174:24:2174:31 | T | -| main.rs:2175:9:2175:30 | TupleExpr | | file://:0:0:0:0 | (T_2) | -| main.rs:2175:9:2175:30 | TupleExpr | 0(2) | main.rs:2119:5:2119:22 | S3 | -| main.rs:2175:9:2175:30 | TupleExpr | 0(2) | main.rs:2174:44:2174:58 | impl ... | -| main.rs:2175:9:2175:30 | TupleExpr | 0(2).T3 | main.rs:2174:24:2174:31 | T | -| main.rs:2175:9:2175:30 | TupleExpr | 0(2).impl(T) | main.rs:2174:24:2174:31 | T | -| main.rs:2175:9:2175:30 | TupleExpr | 1(2) | main.rs:2119:5:2119:22 | S3 | -| main.rs:2175:9:2175:30 | TupleExpr | 1(2) | main.rs:2174:61:2174:75 | impl ... | -| main.rs:2175:9:2175:30 | TupleExpr | 1(2).T3 | main.rs:2174:24:2174:31 | T | -| main.rs:2175:9:2175:30 | TupleExpr | 1(2).impl(T) | main.rs:2174:24:2174:31 | T | -| main.rs:2175:10:2175:22 | S3(...) | | main.rs:2119:5:2119:22 | S3 | -| main.rs:2175:10:2175:22 | S3(...) | | main.rs:2174:44:2174:58 | impl ... | -| main.rs:2175:10:2175:22 | S3(...) | T3 | main.rs:2174:24:2174:31 | T | -| main.rs:2175:10:2175:22 | S3(...) | impl(T) | main.rs:2174:24:2174:31 | T | -| main.rs:2175:13:2175:13 | x | | main.rs:2174:24:2174:31 | T | -| main.rs:2175:13:2175:21 | x.clone() | | main.rs:2174:24:2174:31 | T | -| main.rs:2175:25:2175:29 | S3(...) | | main.rs:2119:5:2119:22 | S3 | -| main.rs:2175:25:2175:29 | S3(...) | | main.rs:2174:61:2174:75 | impl ... | -| main.rs:2175:25:2175:29 | S3(...) | T3 | main.rs:2174:24:2174:31 | T | -| main.rs:2175:25:2175:29 | S3(...) | impl(T) | main.rs:2174:24:2174:31 | T | -| main.rs:2175:28:2175:28 | x | | main.rs:2174:24:2174:31 | T | -| main.rs:2178:26:2178:26 | t | | main.rs:2178:29:2178:43 | impl ... | -| main.rs:2178:51:2180:5 | { ... } | | main.rs:2178:23:2178:23 | A | -| main.rs:2179:9:2179:9 | t | | main.rs:2178:29:2178:43 | impl ... | -| main.rs:2179:9:2179:17 | t.get_a() | | main.rs:2178:23:2178:23 | A | -| main.rs:2183:13:2183:13 | x | | main.rs:2137:16:2137:35 | impl ... + ... | -| main.rs:2183:17:2183:20 | f1(...) | | main.rs:2137:16:2137:35 | impl ... + ... | -| main.rs:2184:9:2184:9 | x | | main.rs:2137:16:2137:35 | impl ... + ... | -| main.rs:2185:9:2185:9 | x | | main.rs:2137:16:2137:35 | impl ... + ... | -| main.rs:2186:13:2186:13 | a | | main.rs:2158:28:2158:43 | impl ... | -| main.rs:2186:17:2186:32 | get_a_my_trait(...) | | main.rs:2158:28:2158:43 | impl ... | -| main.rs:2187:13:2187:13 | b | | main.rs:2118:5:2118:14 | S2 | -| main.rs:2187:17:2187:33 | uses_my_trait1(...) | | main.rs:2118:5:2118:14 | S2 | -| main.rs:2187:32:2187:32 | a | | main.rs:2158:28:2158:43 | impl ... | -| main.rs:2188:13:2188:13 | a | | main.rs:2158:28:2158:43 | impl ... | -| main.rs:2188:17:2188:32 | get_a_my_trait(...) | | main.rs:2158:28:2158:43 | impl ... | -| main.rs:2189:13:2189:13 | c | | main.rs:2118:5:2118:14 | S2 | -| main.rs:2189:17:2189:33 | uses_my_trait2(...) | | main.rs:2118:5:2118:14 | S2 | -| main.rs:2189:32:2189:32 | a | | main.rs:2158:28:2158:43 | impl ... | -| main.rs:2190:13:2190:13 | d | | main.rs:2118:5:2118:14 | S2 | -| main.rs:2190:17:2190:34 | uses_my_trait2(...) | | main.rs:2118:5:2118:14 | S2 | -| main.rs:2190:32:2190:33 | S1 | | main.rs:2116:5:2117:14 | S1 | -| main.rs:2191:13:2191:13 | e | | main.rs:2116:5:2117:14 | S1 | -| main.rs:2191:17:2191:35 | get_a_my_trait2(...) | | main.rs:2166:43:2166:57 | impl ... | -| main.rs:2191:17:2191:35 | get_a_my_trait2(...) | impl(T) | main.rs:2116:5:2117:14 | S1 | -| main.rs:2191:17:2191:43 | ... .get_a() | | main.rs:2116:5:2117:14 | S1 | -| main.rs:2191:33:2191:34 | S1 | | main.rs:2116:5:2117:14 | S1 | -| main.rs:2194:13:2194:13 | f | | main.rs:2116:5:2117:14 | S1 | -| main.rs:2194:17:2194:35 | get_a_my_trait3(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2194:17:2194:35 | get_a_my_trait3(...) | T | main.rs:2170:50:2170:64 | impl ... | -| main.rs:2194:17:2194:35 | get_a_my_trait3(...) | T.impl(T) | main.rs:2116:5:2117:14 | S1 | -| main.rs:2194:17:2194:44 | ... .unwrap() | | main.rs:2170:50:2170:64 | impl ... | -| main.rs:2194:17:2194:44 | ... .unwrap() | impl(T) | main.rs:2116:5:2117:14 | S1 | -| main.rs:2194:17:2194:52 | ... .get_a() | | main.rs:2116:5:2117:14 | S1 | -| main.rs:2194:33:2194:34 | S1 | | main.rs:2116:5:2117:14 | S1 | -| main.rs:2195:13:2195:13 | g | | main.rs:2116:5:2117:14 | S1 | -| main.rs:2195:17:2195:35 | get_a_my_trait4(...) | | file://:0:0:0:0 | (T_2) | -| main.rs:2195:17:2195:35 | get_a_my_trait4(...) | 0(2) | main.rs:2174:44:2174:58 | impl ... | -| main.rs:2195:17:2195:35 | get_a_my_trait4(...) | 0(2).impl(T) | main.rs:2116:5:2117:14 | S1 | -| main.rs:2195:17:2195:35 | get_a_my_trait4(...) | 1(2) | main.rs:2174:61:2174:75 | impl ... | -| main.rs:2195:17:2195:35 | get_a_my_trait4(...) | 1(2).impl(T) | main.rs:2116:5:2117:14 | S1 | -| main.rs:2195:17:2195:37 | ... .0 | | main.rs:2174:44:2174:58 | impl ... | -| main.rs:2195:17:2195:37 | ... .0 | impl(T) | main.rs:2116:5:2117:14 | S1 | -| main.rs:2195:17:2195:45 | ... .get_a() | | main.rs:2116:5:2117:14 | S1 | -| main.rs:2195:33:2195:34 | S1 | | main.rs:2116:5:2117:14 | S1 | -| main.rs:2206:16:2206:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2206:16:2206:20 | SelfParam | &T | main.rs:2202:5:2203:13 | S | -| main.rs:2206:31:2208:9 | { ... } | | main.rs:2202:5:2203:13 | S | -| main.rs:2207:13:2207:13 | S | | main.rs:2202:5:2203:13 | S | -| main.rs:2217:26:2219:9 | { ... } | | main.rs:2211:5:2214:5 | MyVec | -| main.rs:2217:26:2219:9 | { ... } | T | main.rs:2216:10:2216:10 | T | -| main.rs:2218:13:2218:38 | MyVec {...} | | main.rs:2211:5:2214:5 | MyVec | -| main.rs:2218:13:2218:38 | MyVec {...} | T | main.rs:2216:10:2216:10 | T | -| main.rs:2218:27:2218:36 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2218:27:2218:36 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2218:27:2218:36 | ...::new(...) | T | main.rs:2216:10:2216:10 | T | -| main.rs:2221:17:2221:25 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2221:17:2221:25 | SelfParam | &T | main.rs:2211:5:2214:5 | MyVec | -| main.rs:2221:17:2221:25 | SelfParam | &T.T | main.rs:2216:10:2216:10 | T | -| main.rs:2221:28:2221:32 | value | | main.rs:2216:10:2216:10 | T | -| main.rs:2222:13:2222:16 | self | | file://:0:0:0:0 | & | -| main.rs:2222:13:2222:16 | self | &T | main.rs:2211:5:2214:5 | MyVec | -| main.rs:2222:13:2222:16 | self | &T.T | main.rs:2216:10:2216:10 | T | -| main.rs:2222:13:2222:21 | self.data | | {EXTERNAL LOCATION} | Vec | -| main.rs:2222:13:2222:21 | self.data | A | {EXTERNAL LOCATION} | Global | -| main.rs:2222:13:2222:21 | self.data | T | main.rs:2216:10:2216:10 | T | -| main.rs:2222:28:2222:32 | value | | main.rs:2216:10:2216:10 | T | -| main.rs:2230:18:2230:22 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2230:18:2230:22 | SelfParam | &T | main.rs:2211:5:2214:5 | MyVec | -| main.rs:2230:18:2230:22 | SelfParam | &T.T | main.rs:2226:10:2226:10 | T | -| main.rs:2230:25:2230:29 | index | | {EXTERNAL LOCATION} | usize | -| main.rs:2230:56:2232:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:2230:56:2232:9 | { ... } | &T | main.rs:2226:10:2226:10 | T | -| main.rs:2231:13:2231:29 | &... | | file://:0:0:0:0 | & | -| main.rs:2231:13:2231:29 | &... | &T | main.rs:2226:10:2226:10 | T | -| main.rs:2231:14:2231:17 | self | | file://:0:0:0:0 | & | -| main.rs:2231:14:2231:17 | self | &T | main.rs:2211:5:2214:5 | MyVec | -| main.rs:2231:14:2231:17 | self | &T.T | main.rs:2226:10:2226:10 | T | -| main.rs:2231:14:2231:22 | self.data | | {EXTERNAL LOCATION} | Vec | -| main.rs:2231:14:2231:22 | self.data | A | {EXTERNAL LOCATION} | Global | -| main.rs:2231:14:2231:22 | self.data | T | main.rs:2226:10:2226:10 | T | -| main.rs:2231:14:2231:29 | ...[index] | | main.rs:2226:10:2226:10 | T | -| main.rs:2231:24:2231:28 | index | | {EXTERNAL LOCATION} | usize | -| main.rs:2235:22:2235:26 | slice | | file://:0:0:0:0 | & | -| main.rs:2235:22:2235:26 | slice | &T | file://:0:0:0:0 | [] | -| main.rs:2235:22:2235:26 | slice | &T.[T] | main.rs:2202:5:2203:13 | S | -| main.rs:2236:13:2236:13 | x | | main.rs:2202:5:2203:13 | S | -| main.rs:2236:17:2236:21 | slice | | file://:0:0:0:0 | & | -| main.rs:2236:17:2236:21 | slice | &T | file://:0:0:0:0 | [] | -| main.rs:2236:17:2236:21 | slice | &T.[T] | main.rs:2202:5:2203:13 | S | -| main.rs:2236:17:2236:24 | slice[0] | | main.rs:2202:5:2203:13 | S | -| main.rs:2236:17:2236:30 | ... .foo() | | main.rs:2202:5:2203:13 | S | -| main.rs:2236:23:2236:23 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2239:37:2239:37 | a | | main.rs:2239:20:2239:34 | T | -| main.rs:2239:43:2239:43 | b | | {EXTERNAL LOCATION} | usize | -| main.rs:2242:5:2244:5 | { ... } | | {EXTERNAL LOCATION} | Output | -| main.rs:2243:9:2243:9 | a | | main.rs:2239:20:2239:34 | T | -| main.rs:2243:9:2243:12 | a[b] | | {EXTERNAL LOCATION} | Output | -| main.rs:2243:11:2243:11 | b | | {EXTERNAL LOCATION} | usize | -| main.rs:2247:17:2247:19 | vec | | main.rs:2211:5:2214:5 | MyVec | -| main.rs:2247:17:2247:19 | vec | T | main.rs:2202:5:2203:13 | S | -| main.rs:2247:23:2247:34 | ...::new(...) | | main.rs:2211:5:2214:5 | MyVec | -| main.rs:2247:23:2247:34 | ...::new(...) | T | main.rs:2202:5:2203:13 | S | -| main.rs:2248:9:2248:11 | vec | | main.rs:2211:5:2214:5 | MyVec | -| main.rs:2248:9:2248:11 | vec | T | main.rs:2202:5:2203:13 | S | -| main.rs:2248:18:2248:18 | S | | main.rs:2202:5:2203:13 | S | -| main.rs:2249:9:2249:11 | vec | | main.rs:2211:5:2214:5 | MyVec | -| main.rs:2249:9:2249:11 | vec | T | main.rs:2202:5:2203:13 | S | -| main.rs:2249:9:2249:14 | vec[0] | | main.rs:2202:5:2203:13 | S | -| main.rs:2249:9:2249:20 | ... .foo() | | main.rs:2202:5:2203:13 | S | -| main.rs:2249:13:2249:13 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2249:13:2249:13 | 0 | | {EXTERNAL LOCATION} | usize | -| main.rs:2251:13:2251:14 | xs | | file://:0:0:0:0 | [] | -| main.rs:2251:13:2251:14 | xs | [T;...] | main.rs:2202:5:2203:13 | S | -| main.rs:2251:21:2251:21 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2251:26:2251:28 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2251:26:2251:28 | [...] | [T;...] | main.rs:2202:5:2203:13 | S | -| main.rs:2251:27:2251:27 | S | | main.rs:2202:5:2203:13 | S | -| main.rs:2252:13:2252:13 | x | | main.rs:2202:5:2203:13 | S | -| main.rs:2252:17:2252:18 | xs | | file://:0:0:0:0 | [] | -| main.rs:2252:17:2252:18 | xs | [T;...] | main.rs:2202:5:2203:13 | S | -| main.rs:2252:17:2252:21 | xs[0] | | main.rs:2202:5:2203:13 | S | -| main.rs:2252:17:2252:27 | ... .foo() | | main.rs:2202:5:2203:13 | S | -| main.rs:2252:20:2252:20 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2254:29:2254:31 | vec | | main.rs:2211:5:2214:5 | MyVec | -| main.rs:2254:29:2254:31 | vec | T | main.rs:2202:5:2203:13 | S | -| main.rs:2254:34:2254:34 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2254:34:2254:34 | 0 | | {EXTERNAL LOCATION} | usize | -| main.rs:2256:23:2256:25 | &xs | | file://:0:0:0:0 | & | -| main.rs:2256:23:2256:25 | &xs | &T | file://:0:0:0:0 | [] | -| main.rs:2256:23:2256:25 | &xs | &T | file://:0:0:0:0 | [] | -| main.rs:2256:23:2256:25 | &xs | &T.[T;...] | main.rs:2202:5:2203:13 | S | -| main.rs:2256:23:2256:25 | &xs | &T.[T] | main.rs:2202:5:2203:13 | S | -| main.rs:2256:24:2256:25 | xs | | file://:0:0:0:0 | [] | -| main.rs:2256:24:2256:25 | xs | [T;...] | main.rs:2202:5:2203:13 | S | -| main.rs:2262:13:2262:13 | x | | {EXTERNAL LOCATION} | String | -| main.rs:2262:17:2262:46 | MacroExpr | | {EXTERNAL LOCATION} | String | -| main.rs:2262:25:2262:35 | "Hello, {}" | | file://:0:0:0:0 | & | -| main.rs:2262:25:2262:35 | "Hello, {}" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2262:25:2262:45 | ...::format(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2262:25:2262:45 | ...::must_use(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2262:25:2262:45 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2262:25:2262:45 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2262:25:2262:45 | { ... } | | {EXTERNAL LOCATION} | String | -| main.rs:2262:38:2262:45 | "World!" | | file://:0:0:0:0 | & | -| main.rs:2262:38:2262:45 | "World!" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2271:19:2271:22 | SelfParam | | main.rs:2267:5:2272:5 | Self [trait MyAdd] | -| main.rs:2271:25:2271:27 | rhs | | main.rs:2267:17:2267:26 | Rhs | -| main.rs:2278:19:2278:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | -| main.rs:2278:25:2278:29 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2278:45:2280:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2279:13:2279:17 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2287:19:2287:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | -| main.rs:2287:25:2287:29 | value | | file://:0:0:0:0 | & | -| main.rs:2287:25:2287:29 | value | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:2287:46:2289:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2288:13:2288:18 | * ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2288:14:2288:18 | value | | file://:0:0:0:0 | & | -| main.rs:2288:14:2288:18 | value | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:2296:19:2296:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | -| main.rs:2296:25:2296:29 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2296:46:2302:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2297:13:2301:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | -| main.rs:2297:13:2301:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | -| main.rs:2297:16:2297:20 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2297:22:2299:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2297:22:2299:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2298:17:2298:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2298:17:2298:17 | 1 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2299:20:2301:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2299:20:2301:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2300:17:2300:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2300:17:2300:17 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2311:19:2311:22 | SelfParam | | main.rs:2305:5:2305:19 | S | -| main.rs:2311:19:2311:22 | SelfParam | T | main.rs:2307:10:2307:17 | T | -| main.rs:2311:25:2311:29 | other | | main.rs:2305:5:2305:19 | S | -| main.rs:2311:25:2311:29 | other | T | main.rs:2307:10:2307:17 | T | -| main.rs:2311:54:2313:9 | { ... } | | main.rs:2305:5:2305:19 | S | -| main.rs:2311:54:2313:9 | { ... } | T | main.rs:2268:9:2268:20 | Output | -| main.rs:2312:13:2312:39 | S(...) | | main.rs:2305:5:2305:19 | S | -| main.rs:2312:13:2312:39 | S(...) | T | main.rs:2268:9:2268:20 | Output | -| main.rs:2312:15:2312:22 | (...) | | main.rs:2307:10:2307:17 | T | -| main.rs:2312:15:2312:38 | ... .my_add(...) | | main.rs:2268:9:2268:20 | Output | -| main.rs:2312:16:2312:19 | self | | main.rs:2305:5:2305:19 | S | -| main.rs:2312:16:2312:19 | self | T | main.rs:2307:10:2307:17 | T | -| main.rs:2312:16:2312:21 | self.0 | | main.rs:2307:10:2307:17 | T | -| main.rs:2312:31:2312:35 | other | | main.rs:2305:5:2305:19 | S | -| main.rs:2312:31:2312:35 | other | T | main.rs:2307:10:2307:17 | T | -| main.rs:2312:31:2312:37 | other.0 | | main.rs:2307:10:2307:17 | T | -| main.rs:2320:19:2320:22 | SelfParam | | main.rs:2305:5:2305:19 | S | -| main.rs:2320:19:2320:22 | SelfParam | T | main.rs:2316:10:2316:17 | T | -| main.rs:2320:25:2320:29 | other | | main.rs:2316:10:2316:17 | T | -| main.rs:2320:51:2322:9 | { ... } | | main.rs:2305:5:2305:19 | S | -| main.rs:2320:51:2322:9 | { ... } | T | main.rs:2268:9:2268:20 | Output | -| main.rs:2321:13:2321:37 | S(...) | | main.rs:2305:5:2305:19 | S | -| main.rs:2321:13:2321:37 | S(...) | T | main.rs:2268:9:2268:20 | Output | -| main.rs:2321:15:2321:22 | (...) | | main.rs:2316:10:2316:17 | T | -| main.rs:2321:15:2321:36 | ... .my_add(...) | | main.rs:2268:9:2268:20 | Output | -| main.rs:2321:16:2321:19 | self | | main.rs:2305:5:2305:19 | S | -| main.rs:2321:16:2321:19 | self | T | main.rs:2316:10:2316:17 | T | -| main.rs:2321:16:2321:21 | self.0 | | main.rs:2316:10:2316:17 | T | -| main.rs:2321:31:2321:35 | other | | main.rs:2316:10:2316:17 | T | -| main.rs:2332:19:2332:22 | SelfParam | | main.rs:2305:5:2305:19 | S | -| main.rs:2332:19:2332:22 | SelfParam | T | main.rs:2325:14:2325:14 | T | -| main.rs:2332:25:2332:29 | other | | file://:0:0:0:0 | & | -| main.rs:2332:25:2332:29 | other | &T | main.rs:2325:14:2325:14 | T | -| main.rs:2332:55:2334:9 | { ... } | | main.rs:2305:5:2305:19 | S | -| main.rs:2333:13:2333:37 | S(...) | | main.rs:2305:5:2305:19 | S | -| main.rs:2333:15:2333:22 | (...) | | main.rs:2325:14:2325:14 | T | -| main.rs:2333:16:2333:19 | self | | main.rs:2305:5:2305:19 | S | -| main.rs:2333:16:2333:19 | self | T | main.rs:2325:14:2325:14 | T | -| main.rs:2333:16:2333:21 | self.0 | | main.rs:2325:14:2325:14 | T | -| main.rs:2333:31:2333:35 | other | | file://:0:0:0:0 | & | -| main.rs:2333:31:2333:35 | other | &T | main.rs:2325:14:2325:14 | T | -| main.rs:2339:20:2339:24 | value | | main.rs:2337:18:2337:18 | T | -| main.rs:2344:20:2344:24 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2344:40:2346:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2345:13:2345:17 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2351:20:2351:24 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2351:41:2357:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2352:13:2356:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | -| main.rs:2352:13:2356:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | -| main.rs:2352:16:2352:20 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2352:22:2354:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2352:22:2354:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2353:17:2353:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2353:17:2353:17 | 1 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2354:20:2356:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2354:20:2356:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2355:17:2355:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2355:17:2355:17 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2362:21:2362:25 | value | | main.rs:2360:19:2360:19 | T | -| main.rs:2362:31:2362:31 | x | | main.rs:2360:5:2363:5 | Self [trait MyFrom2] | -| main.rs:2367:21:2367:25 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2367:33:2367:33 | _ | | {EXTERNAL LOCATION} | i64 | -| main.rs:2367:48:2369:9 | { ... } | | file://:0:0:0:0 | () | -| main.rs:2368:13:2368:17 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2374:21:2374:25 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2374:34:2374:34 | _ | | {EXTERNAL LOCATION} | i64 | -| main.rs:2374:49:2380:9 | { ... } | | file://:0:0:0:0 | () | -| main.rs:2375:13:2379:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | -| main.rs:2375:16:2375:20 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2375:22:2377:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2376:17:2376:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2377:20:2379:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2378:17:2378:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2385:15:2385:15 | x | | main.rs:2383:5:2389:5 | Self [trait MySelfTrait] | -| main.rs:2388:15:2388:15 | x | | main.rs:2383:5:2389:5 | Self [trait MySelfTrait] | -| main.rs:2393:15:2393:15 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2393:31:2395:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2394:13:2394:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2394:13:2394:17 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2394:17:2394:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2398:15:2398:15 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2398:32:2400:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2399:13:2399:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2399:13:2399:17 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2399:17:2399:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2405:15:2405:15 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:2405:31:2407:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2406:13:2406:13 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2406:13:2406:13 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2410:15:2410:15 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:2410:32:2412:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2411:13:2411:13 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:2416:13:2416:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2416:22:2416:23 | 73 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2416:22:2416:23 | 73 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2040:17:2040:34 | vec2_bitand_assign | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2040:38:2040:39 | v1 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2041:9:2041:26 | vec2_bitand_assign | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2041:9:2041:32 | ... &= ... | | file://:0:0:0:0 | () | +| main.rs:2041:31:2041:32 | v2 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2043:17:2043:33 | vec2_bitor_assign | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2043:37:2043:38 | v1 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2044:9:2044:25 | vec2_bitor_assign | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2044:9:2044:31 | ... \|= ... | | file://:0:0:0:0 | () | +| main.rs:2044:30:2044:31 | v2 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2046:17:2046:34 | vec2_bitxor_assign | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2046:38:2046:39 | v1 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2047:9:2047:26 | vec2_bitxor_assign | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2047:9:2047:32 | ... ^= ... | | file://:0:0:0:0 | () | +| main.rs:2047:31:2047:32 | v2 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2049:17:2049:31 | vec2_shl_assign | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2049:35:2049:36 | v1 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2050:9:2050:23 | vec2_shl_assign | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2050:9:2050:32 | ... <<= ... | | file://:0:0:0:0 | () | +| main.rs:2050:29:2050:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2052:17:2052:31 | vec2_shr_assign | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2052:35:2052:36 | v1 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2053:9:2053:23 | vec2_shr_assign | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2053:9:2053:32 | ... >>= ... | | file://:0:0:0:0 | () | +| main.rs:2053:29:2053:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2056:13:2056:20 | vec2_neg | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2056:24:2056:26 | - ... | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2056:25:2056:26 | v1 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2057:13:2057:20 | vec2_not | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2057:24:2057:26 | ! ... | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2057:25:2057:26 | v1 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2060:13:2060:24 | default_vec2 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2060:28:2060:45 | ...::default(...) | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2061:13:2061:26 | vec2_zero_plus | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2061:30:2061:48 | Vec2 {...} | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2061:30:2061:63 | ... + ... | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2061:40:2061:40 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2061:40:2061:40 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2061:46:2061:46 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2061:46:2061:46 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2061:52:2061:63 | default_vec2 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2065:13:2065:24 | default_vec2 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2065:28:2065:45 | ...::default(...) | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2066:13:2066:26 | vec2_zero_plus | | {EXTERNAL LOCATION} | bool | +| main.rs:2066:30:2066:48 | Vec2 {...} | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2066:30:2066:64 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2066:40:2066:40 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2066:40:2066:40 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2066:46:2066:46 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2066:46:2066:46 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2066:53:2066:64 | default_vec2 | | main.rs:1695:5:1700:5 | Vec2 | +| main.rs:2076:18:2076:21 | SelfParam | | main.rs:2073:5:2073:14 | S1 | +| main.rs:2079:25:2081:5 | { ... } | | main.rs:2073:5:2073:14 | S1 | +| main.rs:2080:9:2080:10 | S1 | | main.rs:2073:5:2073:14 | S1 | +| main.rs:2083:41:2085:5 | { ... } | | main.rs:2083:16:2083:39 | impl ... | +| main.rs:2084:9:2084:20 | { ... } | | {EXTERNAL LOCATION} | trait Future | +| main.rs:2084:9:2084:20 | { ... } | Output | main.rs:2073:5:2073:14 | S1 | +| main.rs:2084:17:2084:18 | S1 | | main.rs:2073:5:2073:14 | S1 | +| main.rs:2093:13:2093:42 | SelfParam | | {EXTERNAL LOCATION} | Pin | +| main.rs:2093:13:2093:42 | SelfParam | Ptr | file://:0:0:0:0 | & | +| main.rs:2093:13:2093:42 | SelfParam | Ptr.&T | main.rs:2087:5:2087:14 | S2 | +| main.rs:2094:13:2094:15 | _cx | | file://:0:0:0:0 | & | +| main.rs:2094:13:2094:15 | _cx | &T | {EXTERNAL LOCATION} | Context | +| main.rs:2095:44:2097:9 | { ... } | | {EXTERNAL LOCATION} | Poll | +| main.rs:2095:44:2097:9 | { ... } | T | main.rs:2073:5:2073:14 | S1 | +| main.rs:2096:13:2096:38 | ...::Ready(...) | | {EXTERNAL LOCATION} | Poll | +| main.rs:2096:13:2096:38 | ...::Ready(...) | T | main.rs:2073:5:2073:14 | S1 | +| main.rs:2096:36:2096:37 | S1 | | main.rs:2073:5:2073:14 | S1 | +| main.rs:2100:41:2102:5 | { ... } | | main.rs:2100:16:2100:39 | impl ... | +| main.rs:2101:9:2101:10 | S2 | | main.rs:2087:5:2087:14 | S2 | +| main.rs:2101:9:2101:10 | S2 | | main.rs:2100:16:2100:39 | impl ... | +| main.rs:2105:9:2105:12 | f1(...) | | {EXTERNAL LOCATION} | trait Future | +| main.rs:2105:9:2105:12 | f1(...) | Output | main.rs:2073:5:2073:14 | S1 | +| main.rs:2105:9:2105:18 | await ... | | main.rs:2073:5:2073:14 | S1 | +| main.rs:2106:9:2106:12 | f2(...) | | main.rs:2083:16:2083:39 | impl ... | +| main.rs:2106:9:2106:18 | await ... | | main.rs:2073:5:2073:14 | S1 | +| main.rs:2107:9:2107:12 | f3(...) | | main.rs:2100:16:2100:39 | impl ... | +| main.rs:2107:9:2107:18 | await ... | | main.rs:2073:5:2073:14 | S1 | +| main.rs:2108:9:2108:10 | S2 | | main.rs:2087:5:2087:14 | S2 | +| main.rs:2108:9:2108:16 | await S2 | | main.rs:2073:5:2073:14 | S1 | +| main.rs:2109:13:2109:13 | b | | {EXTERNAL LOCATION} | trait Future | +| main.rs:2109:13:2109:13 | b | Output | main.rs:2073:5:2073:14 | S1 | +| main.rs:2109:17:2109:28 | { ... } | | {EXTERNAL LOCATION} | trait Future | +| main.rs:2109:17:2109:28 | { ... } | Output | main.rs:2073:5:2073:14 | S1 | +| main.rs:2109:25:2109:26 | S1 | | main.rs:2073:5:2073:14 | S1 | +| main.rs:2110:9:2110:9 | b | | {EXTERNAL LOCATION} | trait Future | +| main.rs:2110:9:2110:9 | b | Output | main.rs:2073:5:2073:14 | S1 | +| main.rs:2110:9:2110:15 | await b | | main.rs:2073:5:2073:14 | S1 | +| main.rs:2121:15:2121:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2121:15:2121:19 | SelfParam | &T | main.rs:2120:5:2122:5 | Self [trait Trait1] | +| main.rs:2125:15:2125:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2125:15:2125:19 | SelfParam | &T | main.rs:2124:5:2126:5 | Self [trait Trait2] | +| main.rs:2129:15:2129:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2129:15:2129:19 | SelfParam | &T | main.rs:2115:5:2116:14 | S1 | +| main.rs:2133:15:2133:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2133:15:2133:19 | SelfParam | &T | main.rs:2115:5:2116:14 | S1 | +| main.rs:2136:37:2138:5 | { ... } | | main.rs:2136:16:2136:35 | impl ... + ... | +| main.rs:2137:9:2137:10 | S1 | | main.rs:2115:5:2116:14 | S1 | +| main.rs:2137:9:2137:10 | S1 | | main.rs:2136:16:2136:35 | impl ... + ... | +| main.rs:2141:18:2141:22 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2141:18:2141:22 | SelfParam | &T | main.rs:2140:5:2142:5 | Self [trait MyTrait] | +| main.rs:2145:18:2145:22 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2145:18:2145:22 | SelfParam | &T | main.rs:2115:5:2116:14 | S1 | +| main.rs:2145:31:2147:9 | { ... } | | main.rs:2117:5:2117:14 | S2 | +| main.rs:2146:13:2146:14 | S2 | | main.rs:2117:5:2117:14 | S2 | +| main.rs:2151:18:2151:22 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2151:18:2151:22 | SelfParam | &T | main.rs:2118:5:2118:22 | S3 | +| main.rs:2151:18:2151:22 | SelfParam | &T.T3 | main.rs:2150:10:2150:17 | T | +| main.rs:2151:30:2154:9 | { ... } | | main.rs:2150:10:2150:17 | T | +| main.rs:2152:17:2152:21 | S3(...) | | file://:0:0:0:0 | & | +| main.rs:2152:17:2152:21 | S3(...) | | main.rs:2118:5:2118:22 | S3 | +| main.rs:2152:17:2152:21 | S3(...) | &T | main.rs:2118:5:2118:22 | S3 | +| main.rs:2152:17:2152:21 | S3(...) | &T.T3 | main.rs:2150:10:2150:17 | T | +| main.rs:2152:25:2152:28 | self | | file://:0:0:0:0 | & | +| main.rs:2152:25:2152:28 | self | &T | main.rs:2118:5:2118:22 | S3 | +| main.rs:2152:25:2152:28 | self | &T.T3 | main.rs:2150:10:2150:17 | T | +| main.rs:2153:13:2153:21 | t.clone() | | main.rs:2150:10:2150:17 | T | +| main.rs:2157:45:2159:5 | { ... } | | main.rs:2157:28:2157:43 | impl ... | +| main.rs:2158:9:2158:10 | S1 | | main.rs:2115:5:2116:14 | S1 | +| main.rs:2158:9:2158:10 | S1 | | main.rs:2157:28:2157:43 | impl ... | +| main.rs:2161:41:2161:41 | t | | main.rs:2161:26:2161:38 | B | +| main.rs:2161:52:2163:5 | { ... } | | main.rs:2161:23:2161:23 | A | +| main.rs:2162:9:2162:9 | t | | main.rs:2161:26:2161:38 | B | +| main.rs:2162:9:2162:17 | t.get_a() | | main.rs:2161:23:2161:23 | A | +| main.rs:2165:34:2165:34 | x | | main.rs:2165:24:2165:31 | T | +| main.rs:2165:59:2167:5 | { ... } | | main.rs:2165:43:2165:57 | impl ... | +| main.rs:2165:59:2167:5 | { ... } | impl(T) | main.rs:2165:24:2165:31 | T | +| main.rs:2166:9:2166:13 | S3(...) | | main.rs:2118:5:2118:22 | S3 | +| main.rs:2166:9:2166:13 | S3(...) | | main.rs:2165:43:2165:57 | impl ... | +| main.rs:2166:9:2166:13 | S3(...) | T3 | main.rs:2165:24:2165:31 | T | +| main.rs:2166:9:2166:13 | S3(...) | impl(T) | main.rs:2165:24:2165:31 | T | +| main.rs:2166:12:2166:12 | x | | main.rs:2165:24:2165:31 | T | +| main.rs:2169:34:2169:34 | x | | main.rs:2169:24:2169:31 | T | +| main.rs:2169:67:2171:5 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:2169:67:2171:5 | { ... } | T | main.rs:2169:50:2169:64 | impl ... | +| main.rs:2169:67:2171:5 | { ... } | T.impl(T) | main.rs:2169:24:2169:31 | T | +| main.rs:2170:9:2170:19 | Some(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2170:9:2170:19 | Some(...) | T | main.rs:2118:5:2118:22 | S3 | +| main.rs:2170:9:2170:19 | Some(...) | T | main.rs:2169:50:2169:64 | impl ... | +| main.rs:2170:9:2170:19 | Some(...) | T.T3 | main.rs:2169:24:2169:31 | T | +| main.rs:2170:9:2170:19 | Some(...) | T.impl(T) | main.rs:2169:24:2169:31 | T | +| main.rs:2170:14:2170:18 | S3(...) | | main.rs:2118:5:2118:22 | S3 | +| main.rs:2170:14:2170:18 | S3(...) | | main.rs:2169:50:2169:64 | impl ... | +| main.rs:2170:14:2170:18 | S3(...) | T3 | main.rs:2169:24:2169:31 | T | +| main.rs:2170:14:2170:18 | S3(...) | impl(T) | main.rs:2169:24:2169:31 | T | +| main.rs:2170:17:2170:17 | x | | main.rs:2169:24:2169:31 | T | +| main.rs:2173:34:2173:34 | x | | main.rs:2173:24:2173:31 | T | +| main.rs:2173:78:2175:5 | { ... } | | file://:0:0:0:0 | (T_2) | +| main.rs:2173:78:2175:5 | { ... } | 0(2) | main.rs:2173:44:2173:58 | impl ... | +| main.rs:2173:78:2175:5 | { ... } | 0(2).impl(T) | main.rs:2173:24:2173:31 | T | +| main.rs:2173:78:2175:5 | { ... } | 1(2) | main.rs:2173:61:2173:75 | impl ... | +| main.rs:2173:78:2175:5 | { ... } | 1(2).impl(T) | main.rs:2173:24:2173:31 | T | +| main.rs:2174:9:2174:30 | TupleExpr | | file://:0:0:0:0 | (T_2) | +| main.rs:2174:9:2174:30 | TupleExpr | 0(2) | main.rs:2118:5:2118:22 | S3 | +| main.rs:2174:9:2174:30 | TupleExpr | 0(2) | main.rs:2173:44:2173:58 | impl ... | +| main.rs:2174:9:2174:30 | TupleExpr | 0(2).T3 | main.rs:2173:24:2173:31 | T | +| main.rs:2174:9:2174:30 | TupleExpr | 0(2).impl(T) | main.rs:2173:24:2173:31 | T | +| main.rs:2174:9:2174:30 | TupleExpr | 1(2) | main.rs:2118:5:2118:22 | S3 | +| main.rs:2174:9:2174:30 | TupleExpr | 1(2) | main.rs:2173:61:2173:75 | impl ... | +| main.rs:2174:9:2174:30 | TupleExpr | 1(2).T3 | main.rs:2173:24:2173:31 | T | +| main.rs:2174:9:2174:30 | TupleExpr | 1(2).impl(T) | main.rs:2173:24:2173:31 | T | +| main.rs:2174:10:2174:22 | S3(...) | | main.rs:2118:5:2118:22 | S3 | +| main.rs:2174:10:2174:22 | S3(...) | | main.rs:2173:44:2173:58 | impl ... | +| main.rs:2174:10:2174:22 | S3(...) | T3 | main.rs:2173:24:2173:31 | T | +| main.rs:2174:10:2174:22 | S3(...) | impl(T) | main.rs:2173:24:2173:31 | T | +| main.rs:2174:13:2174:13 | x | | main.rs:2173:24:2173:31 | T | +| main.rs:2174:13:2174:21 | x.clone() | | main.rs:2173:24:2173:31 | T | +| main.rs:2174:25:2174:29 | S3(...) | | main.rs:2118:5:2118:22 | S3 | +| main.rs:2174:25:2174:29 | S3(...) | | main.rs:2173:61:2173:75 | impl ... | +| main.rs:2174:25:2174:29 | S3(...) | T3 | main.rs:2173:24:2173:31 | T | +| main.rs:2174:25:2174:29 | S3(...) | impl(T) | main.rs:2173:24:2173:31 | T | +| main.rs:2174:28:2174:28 | x | | main.rs:2173:24:2173:31 | T | +| main.rs:2177:26:2177:26 | t | | main.rs:2177:29:2177:43 | impl ... | +| main.rs:2177:51:2179:5 | { ... } | | main.rs:2177:23:2177:23 | A | +| main.rs:2178:9:2178:9 | t | | main.rs:2177:29:2177:43 | impl ... | +| main.rs:2178:9:2178:17 | t.get_a() | | main.rs:2177:23:2177:23 | A | +| main.rs:2182:13:2182:13 | x | | main.rs:2136:16:2136:35 | impl ... + ... | +| main.rs:2182:17:2182:20 | f1(...) | | main.rs:2136:16:2136:35 | impl ... + ... | +| main.rs:2183:9:2183:9 | x | | main.rs:2136:16:2136:35 | impl ... + ... | +| main.rs:2184:9:2184:9 | x | | main.rs:2136:16:2136:35 | impl ... + ... | +| main.rs:2185:13:2185:13 | a | | main.rs:2157:28:2157:43 | impl ... | +| main.rs:2185:17:2185:32 | get_a_my_trait(...) | | main.rs:2157:28:2157:43 | impl ... | +| main.rs:2186:13:2186:13 | b | | main.rs:2117:5:2117:14 | S2 | +| main.rs:2186:17:2186:33 | uses_my_trait1(...) | | main.rs:2117:5:2117:14 | S2 | +| main.rs:2186:32:2186:32 | a | | main.rs:2157:28:2157:43 | impl ... | +| main.rs:2187:13:2187:13 | a | | main.rs:2157:28:2157:43 | impl ... | +| main.rs:2187:17:2187:32 | get_a_my_trait(...) | | main.rs:2157:28:2157:43 | impl ... | +| main.rs:2188:13:2188:13 | c | | main.rs:2117:5:2117:14 | S2 | +| main.rs:2188:17:2188:33 | uses_my_trait2(...) | | main.rs:2117:5:2117:14 | S2 | +| main.rs:2188:32:2188:32 | a | | main.rs:2157:28:2157:43 | impl ... | +| main.rs:2189:13:2189:13 | d | | main.rs:2117:5:2117:14 | S2 | +| main.rs:2189:17:2189:34 | uses_my_trait2(...) | | main.rs:2117:5:2117:14 | S2 | +| main.rs:2189:32:2189:33 | S1 | | main.rs:2115:5:2116:14 | S1 | +| main.rs:2190:13:2190:13 | e | | main.rs:2115:5:2116:14 | S1 | +| main.rs:2190:17:2190:35 | get_a_my_trait2(...) | | main.rs:2165:43:2165:57 | impl ... | +| main.rs:2190:17:2190:35 | get_a_my_trait2(...) | impl(T) | main.rs:2115:5:2116:14 | S1 | +| main.rs:2190:17:2190:43 | ... .get_a() | | main.rs:2115:5:2116:14 | S1 | +| main.rs:2190:33:2190:34 | S1 | | main.rs:2115:5:2116:14 | S1 | +| main.rs:2193:13:2193:13 | f | | main.rs:2115:5:2116:14 | S1 | +| main.rs:2193:17:2193:35 | get_a_my_trait3(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2193:17:2193:35 | get_a_my_trait3(...) | T | main.rs:2169:50:2169:64 | impl ... | +| main.rs:2193:17:2193:35 | get_a_my_trait3(...) | T.impl(T) | main.rs:2115:5:2116:14 | S1 | +| main.rs:2193:17:2193:44 | ... .unwrap() | | main.rs:2169:50:2169:64 | impl ... | +| main.rs:2193:17:2193:44 | ... .unwrap() | impl(T) | main.rs:2115:5:2116:14 | S1 | +| main.rs:2193:17:2193:52 | ... .get_a() | | main.rs:2115:5:2116:14 | S1 | +| main.rs:2193:33:2193:34 | S1 | | main.rs:2115:5:2116:14 | S1 | +| main.rs:2194:13:2194:13 | g | | main.rs:2115:5:2116:14 | S1 | +| main.rs:2194:17:2194:35 | get_a_my_trait4(...) | | file://:0:0:0:0 | (T_2) | +| main.rs:2194:17:2194:35 | get_a_my_trait4(...) | 0(2) | main.rs:2173:44:2173:58 | impl ... | +| main.rs:2194:17:2194:35 | get_a_my_trait4(...) | 0(2).impl(T) | main.rs:2115:5:2116:14 | S1 | +| main.rs:2194:17:2194:35 | get_a_my_trait4(...) | 1(2) | main.rs:2173:61:2173:75 | impl ... | +| main.rs:2194:17:2194:35 | get_a_my_trait4(...) | 1(2).impl(T) | main.rs:2115:5:2116:14 | S1 | +| main.rs:2194:17:2194:37 | ... .0 | | main.rs:2173:44:2173:58 | impl ... | +| main.rs:2194:17:2194:37 | ... .0 | impl(T) | main.rs:2115:5:2116:14 | S1 | +| main.rs:2194:17:2194:45 | ... .get_a() | | main.rs:2115:5:2116:14 | S1 | +| main.rs:2194:33:2194:34 | S1 | | main.rs:2115:5:2116:14 | S1 | +| main.rs:2205:16:2205:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2205:16:2205:20 | SelfParam | &T | main.rs:2201:5:2202:13 | S | +| main.rs:2205:31:2207:9 | { ... } | | main.rs:2201:5:2202:13 | S | +| main.rs:2206:13:2206:13 | S | | main.rs:2201:5:2202:13 | S | +| main.rs:2216:26:2218:9 | { ... } | | main.rs:2210:5:2213:5 | MyVec | +| main.rs:2216:26:2218:9 | { ... } | T | main.rs:2215:10:2215:10 | T | +| main.rs:2217:13:2217:38 | MyVec {...} | | main.rs:2210:5:2213:5 | MyVec | +| main.rs:2217:13:2217:38 | MyVec {...} | T | main.rs:2215:10:2215:10 | T | +| main.rs:2217:27:2217:36 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2217:27:2217:36 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2217:27:2217:36 | ...::new(...) | T | main.rs:2215:10:2215:10 | T | +| main.rs:2220:17:2220:25 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2220:17:2220:25 | SelfParam | &T | main.rs:2210:5:2213:5 | MyVec | +| main.rs:2220:17:2220:25 | SelfParam | &T.T | main.rs:2215:10:2215:10 | T | +| main.rs:2220:28:2220:32 | value | | main.rs:2215:10:2215:10 | T | +| main.rs:2221:13:2221:16 | self | | file://:0:0:0:0 | & | +| main.rs:2221:13:2221:16 | self | &T | main.rs:2210:5:2213:5 | MyVec | +| main.rs:2221:13:2221:16 | self | &T.T | main.rs:2215:10:2215:10 | T | +| main.rs:2221:13:2221:21 | self.data | | {EXTERNAL LOCATION} | Vec | +| main.rs:2221:13:2221:21 | self.data | A | {EXTERNAL LOCATION} | Global | +| main.rs:2221:13:2221:21 | self.data | T | main.rs:2215:10:2215:10 | T | +| main.rs:2221:28:2221:32 | value | | main.rs:2215:10:2215:10 | T | +| main.rs:2229:18:2229:22 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2229:18:2229:22 | SelfParam | &T | main.rs:2210:5:2213:5 | MyVec | +| main.rs:2229:18:2229:22 | SelfParam | &T.T | main.rs:2225:10:2225:10 | T | +| main.rs:2229:25:2229:29 | index | | {EXTERNAL LOCATION} | usize | +| main.rs:2229:56:2231:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:2229:56:2231:9 | { ... } | &T | main.rs:2225:10:2225:10 | T | +| main.rs:2230:13:2230:29 | &... | | file://:0:0:0:0 | & | +| main.rs:2230:13:2230:29 | &... | &T | main.rs:2225:10:2225:10 | T | +| main.rs:2230:14:2230:17 | self | | file://:0:0:0:0 | & | +| main.rs:2230:14:2230:17 | self | &T | main.rs:2210:5:2213:5 | MyVec | +| main.rs:2230:14:2230:17 | self | &T.T | main.rs:2225:10:2225:10 | T | +| main.rs:2230:14:2230:22 | self.data | | {EXTERNAL LOCATION} | Vec | +| main.rs:2230:14:2230:22 | self.data | A | {EXTERNAL LOCATION} | Global | +| main.rs:2230:14:2230:22 | self.data | T | main.rs:2225:10:2225:10 | T | +| main.rs:2230:14:2230:29 | ...[index] | | main.rs:2225:10:2225:10 | T | +| main.rs:2230:24:2230:28 | index | | {EXTERNAL LOCATION} | usize | +| main.rs:2234:22:2234:26 | slice | | file://:0:0:0:0 | & | +| main.rs:2234:22:2234:26 | slice | &T | file://:0:0:0:0 | [] | +| main.rs:2234:22:2234:26 | slice | &T.[T] | main.rs:2201:5:2202:13 | S | +| main.rs:2235:13:2235:13 | x | | main.rs:2201:5:2202:13 | S | +| main.rs:2235:17:2235:21 | slice | | file://:0:0:0:0 | & | +| main.rs:2235:17:2235:21 | slice | &T | file://:0:0:0:0 | [] | +| main.rs:2235:17:2235:21 | slice | &T.[T] | main.rs:2201:5:2202:13 | S | +| main.rs:2235:17:2235:24 | slice[0] | | main.rs:2201:5:2202:13 | S | +| main.rs:2235:17:2235:30 | ... .foo() | | main.rs:2201:5:2202:13 | S | +| main.rs:2235:23:2235:23 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2238:37:2238:37 | a | | main.rs:2238:20:2238:34 | T | +| main.rs:2238:43:2238:43 | b | | {EXTERNAL LOCATION} | usize | +| main.rs:2241:5:2243:5 | { ... } | | {EXTERNAL LOCATION} | Output | +| main.rs:2242:9:2242:9 | a | | main.rs:2238:20:2238:34 | T | +| main.rs:2242:9:2242:12 | a[b] | | {EXTERNAL LOCATION} | Output | +| main.rs:2242:11:2242:11 | b | | {EXTERNAL LOCATION} | usize | +| main.rs:2246:17:2246:19 | vec | | main.rs:2210:5:2213:5 | MyVec | +| main.rs:2246:17:2246:19 | vec | T | main.rs:2201:5:2202:13 | S | +| main.rs:2246:23:2246:34 | ...::new(...) | | main.rs:2210:5:2213:5 | MyVec | +| main.rs:2246:23:2246:34 | ...::new(...) | T | main.rs:2201:5:2202:13 | S | +| main.rs:2247:9:2247:11 | vec | | main.rs:2210:5:2213:5 | MyVec | +| main.rs:2247:9:2247:11 | vec | T | main.rs:2201:5:2202:13 | S | +| main.rs:2247:18:2247:18 | S | | main.rs:2201:5:2202:13 | S | +| main.rs:2248:9:2248:11 | vec | | main.rs:2210:5:2213:5 | MyVec | +| main.rs:2248:9:2248:11 | vec | T | main.rs:2201:5:2202:13 | S | +| main.rs:2248:9:2248:14 | vec[0] | | main.rs:2201:5:2202:13 | S | +| main.rs:2248:9:2248:20 | ... .foo() | | main.rs:2201:5:2202:13 | S | +| main.rs:2248:13:2248:13 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2248:13:2248:13 | 0 | | {EXTERNAL LOCATION} | usize | +| main.rs:2250:13:2250:14 | xs | | file://:0:0:0:0 | [] | +| main.rs:2250:13:2250:14 | xs | [T;...] | main.rs:2201:5:2202:13 | S | +| main.rs:2250:21:2250:21 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2250:26:2250:28 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2250:26:2250:28 | [...] | [T;...] | main.rs:2201:5:2202:13 | S | +| main.rs:2250:27:2250:27 | S | | main.rs:2201:5:2202:13 | S | +| main.rs:2251:13:2251:13 | x | | main.rs:2201:5:2202:13 | S | +| main.rs:2251:17:2251:18 | xs | | file://:0:0:0:0 | [] | +| main.rs:2251:17:2251:18 | xs | [T;...] | main.rs:2201:5:2202:13 | S | +| main.rs:2251:17:2251:21 | xs[0] | | main.rs:2201:5:2202:13 | S | +| main.rs:2251:17:2251:27 | ... .foo() | | main.rs:2201:5:2202:13 | S | +| main.rs:2251:20:2251:20 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2253:29:2253:31 | vec | | main.rs:2210:5:2213:5 | MyVec | +| main.rs:2253:29:2253:31 | vec | T | main.rs:2201:5:2202:13 | S | +| main.rs:2253:34:2253:34 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2253:34:2253:34 | 0 | | {EXTERNAL LOCATION} | usize | +| main.rs:2255:23:2255:25 | &xs | | file://:0:0:0:0 | & | +| main.rs:2255:23:2255:25 | &xs | &T | file://:0:0:0:0 | [] | +| main.rs:2255:23:2255:25 | &xs | &T | file://:0:0:0:0 | [] | +| main.rs:2255:23:2255:25 | &xs | &T.[T;...] | main.rs:2201:5:2202:13 | S | +| main.rs:2255:23:2255:25 | &xs | &T.[T] | main.rs:2201:5:2202:13 | S | +| main.rs:2255:24:2255:25 | xs | | file://:0:0:0:0 | [] | +| main.rs:2255:24:2255:25 | xs | [T;...] | main.rs:2201:5:2202:13 | S | +| main.rs:2261:13:2261:13 | x | | {EXTERNAL LOCATION} | String | +| main.rs:2261:17:2261:46 | MacroExpr | | {EXTERNAL LOCATION} | String | +| main.rs:2261:25:2261:35 | "Hello, {}" | | file://:0:0:0:0 | & | +| main.rs:2261:25:2261:35 | "Hello, {}" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2261:25:2261:45 | ...::format(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2261:25:2261:45 | ...::must_use(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2261:25:2261:45 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2261:25:2261:45 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2261:25:2261:45 | { ... } | | {EXTERNAL LOCATION} | String | +| main.rs:2261:38:2261:45 | "World!" | | file://:0:0:0:0 | & | +| main.rs:2261:38:2261:45 | "World!" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2270:19:2270:22 | SelfParam | | main.rs:2266:5:2271:5 | Self [trait MyAdd] | +| main.rs:2270:25:2270:27 | rhs | | main.rs:2266:17:2266:26 | Rhs | +| main.rs:2277:19:2277:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | +| main.rs:2277:25:2277:29 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2277:45:2279:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2278:13:2278:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2286:19:2286:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | +| main.rs:2286:25:2286:29 | value | | file://:0:0:0:0 | & | +| main.rs:2286:25:2286:29 | value | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:2286:46:2288:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2287:13:2287:18 | * ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2287:14:2287:18 | value | | file://:0:0:0:0 | & | +| main.rs:2287:14:2287:18 | value | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:2295:19:2295:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | +| main.rs:2295:25:2295:29 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2295:46:2301:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2296:13:2300:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | +| main.rs:2296:13:2300:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | +| main.rs:2296:16:2296:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2296:22:2298:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2296:22:2298:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2297:17:2297:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2297:17:2297:17 | 1 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2298:20:2300:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2298:20:2300:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2299:17:2299:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2299:17:2299:17 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2310:19:2310:22 | SelfParam | | main.rs:2304:5:2304:19 | S | +| main.rs:2310:19:2310:22 | SelfParam | T | main.rs:2306:10:2306:17 | T | +| main.rs:2310:25:2310:29 | other | | main.rs:2304:5:2304:19 | S | +| main.rs:2310:25:2310:29 | other | T | main.rs:2306:10:2306:17 | T | +| main.rs:2310:54:2312:9 | { ... } | | main.rs:2304:5:2304:19 | S | +| main.rs:2310:54:2312:9 | { ... } | T | main.rs:2267:9:2267:20 | Output | +| main.rs:2311:13:2311:39 | S(...) | | main.rs:2304:5:2304:19 | S | +| main.rs:2311:13:2311:39 | S(...) | T | main.rs:2267:9:2267:20 | Output | +| main.rs:2311:15:2311:22 | (...) | | main.rs:2306:10:2306:17 | T | +| main.rs:2311:15:2311:38 | ... .my_add(...) | | main.rs:2267:9:2267:20 | Output | +| main.rs:2311:16:2311:19 | self | | main.rs:2304:5:2304:19 | S | +| main.rs:2311:16:2311:19 | self | T | main.rs:2306:10:2306:17 | T | +| main.rs:2311:16:2311:21 | self.0 | | main.rs:2306:10:2306:17 | T | +| main.rs:2311:31:2311:35 | other | | main.rs:2304:5:2304:19 | S | +| main.rs:2311:31:2311:35 | other | T | main.rs:2306:10:2306:17 | T | +| main.rs:2311:31:2311:37 | other.0 | | main.rs:2306:10:2306:17 | T | +| main.rs:2319:19:2319:22 | SelfParam | | main.rs:2304:5:2304:19 | S | +| main.rs:2319:19:2319:22 | SelfParam | T | main.rs:2315:10:2315:17 | T | +| main.rs:2319:25:2319:29 | other | | main.rs:2315:10:2315:17 | T | +| main.rs:2319:51:2321:9 | { ... } | | main.rs:2304:5:2304:19 | S | +| main.rs:2319:51:2321:9 | { ... } | T | main.rs:2267:9:2267:20 | Output | +| main.rs:2320:13:2320:37 | S(...) | | main.rs:2304:5:2304:19 | S | +| main.rs:2320:13:2320:37 | S(...) | T | main.rs:2267:9:2267:20 | Output | +| main.rs:2320:15:2320:22 | (...) | | main.rs:2315:10:2315:17 | T | +| main.rs:2320:15:2320:36 | ... .my_add(...) | | main.rs:2267:9:2267:20 | Output | +| main.rs:2320:16:2320:19 | self | | main.rs:2304:5:2304:19 | S | +| main.rs:2320:16:2320:19 | self | T | main.rs:2315:10:2315:17 | T | +| main.rs:2320:16:2320:21 | self.0 | | main.rs:2315:10:2315:17 | T | +| main.rs:2320:31:2320:35 | other | | main.rs:2315:10:2315:17 | T | +| main.rs:2331:19:2331:22 | SelfParam | | main.rs:2304:5:2304:19 | S | +| main.rs:2331:19:2331:22 | SelfParam | T | main.rs:2324:14:2324:14 | T | +| main.rs:2331:25:2331:29 | other | | file://:0:0:0:0 | & | +| main.rs:2331:25:2331:29 | other | &T | main.rs:2324:14:2324:14 | T | +| main.rs:2331:55:2333:9 | { ... } | | main.rs:2304:5:2304:19 | S | +| main.rs:2332:13:2332:37 | S(...) | | main.rs:2304:5:2304:19 | S | +| main.rs:2332:15:2332:22 | (...) | | main.rs:2324:14:2324:14 | T | +| main.rs:2332:16:2332:19 | self | | main.rs:2304:5:2304:19 | S | +| main.rs:2332:16:2332:19 | self | T | main.rs:2324:14:2324:14 | T | +| main.rs:2332:16:2332:21 | self.0 | | main.rs:2324:14:2324:14 | T | +| main.rs:2332:31:2332:35 | other | | file://:0:0:0:0 | & | +| main.rs:2332:31:2332:35 | other | &T | main.rs:2324:14:2324:14 | T | +| main.rs:2338:20:2338:24 | value | | main.rs:2336:18:2336:18 | T | +| main.rs:2343:20:2343:24 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2343:40:2345:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2344:13:2344:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2350:20:2350:24 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2350:41:2356:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2351:13:2355:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | +| main.rs:2351:13:2355:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | +| main.rs:2351:16:2351:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2351:22:2353:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2351:22:2353:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2352:17:2352:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2352:17:2352:17 | 1 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2353:20:2355:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2353:20:2355:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2354:17:2354:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2354:17:2354:17 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2361:21:2361:25 | value | | main.rs:2359:19:2359:19 | T | +| main.rs:2361:31:2361:31 | x | | main.rs:2359:5:2362:5 | Self [trait MyFrom2] | +| main.rs:2366:21:2366:25 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2366:33:2366:33 | _ | | {EXTERNAL LOCATION} | i64 | +| main.rs:2366:48:2368:9 | { ... } | | file://:0:0:0:0 | () | +| main.rs:2367:13:2367:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2373:21:2373:25 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2373:34:2373:34 | _ | | {EXTERNAL LOCATION} | i64 | +| main.rs:2373:49:2379:9 | { ... } | | file://:0:0:0:0 | () | +| main.rs:2374:13:2378:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | +| main.rs:2374:16:2374:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2374:22:2376:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2375:17:2375:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2376:20:2378:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2377:17:2377:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2384:15:2384:15 | x | | main.rs:2382:5:2388:5 | Self [trait MySelfTrait] | +| main.rs:2387:15:2387:15 | x | | main.rs:2382:5:2388:5 | Self [trait MySelfTrait] | +| main.rs:2392:15:2392:15 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2392:31:2394:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2393:13:2393:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2393:13:2393:17 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2393:17:2393:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2397:15:2397:15 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2397:32:2399:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2398:13:2398:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2398:13:2398:17 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2398:17:2398:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2404:15:2404:15 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:2404:31:2406:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2405:13:2405:13 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2405:13:2405:13 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2409:15:2409:15 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:2409:32:2411:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2410:13:2410:13 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:2415:13:2415:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2415:22:2415:23 | 73 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2415:22:2415:23 | 73 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2416:9:2416:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2416:9:2416:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2416:18:2416:21 | 5i64 | | {EXTERNAL LOCATION} | i64 | | main.rs:2417:9:2417:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2417:9:2417:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2417:18:2417:21 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2417:9:2417:23 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2417:18:2417:22 | &5i64 | | file://:0:0:0:0 | & | +| main.rs:2417:18:2417:22 | &5i64 | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:2417:19:2417:22 | 5i64 | | {EXTERNAL LOCATION} | i64 | | main.rs:2418:9:2418:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2418:9:2418:23 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2418:18:2418:22 | &5i64 | | file://:0:0:0:0 | & | -| main.rs:2418:18:2418:22 | &5i64 | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:2418:19:2418:22 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2419:9:2419:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2419:9:2419:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2419:18:2419:21 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2421:9:2421:15 | S(...) | | main.rs:2305:5:2305:19 | S | +| main.rs:2418:9:2418:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2418:18:2418:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2420:9:2420:15 | S(...) | | main.rs:2304:5:2304:19 | S | +| main.rs:2420:9:2420:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | +| main.rs:2420:9:2420:31 | ... .my_add(...) | | main.rs:2304:5:2304:19 | S | +| main.rs:2420:11:2420:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2420:24:2420:30 | S(...) | | main.rs:2304:5:2304:19 | S | +| main.rs:2420:24:2420:30 | S(...) | T | {EXTERNAL LOCATION} | i64 | +| main.rs:2420:26:2420:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2421:9:2421:15 | S(...) | | main.rs:2304:5:2304:19 | S | | main.rs:2421:9:2421:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | -| main.rs:2421:9:2421:31 | ... .my_add(...) | | main.rs:2305:5:2305:19 | S | | main.rs:2421:11:2421:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2421:24:2421:30 | S(...) | | main.rs:2305:5:2305:19 | S | -| main.rs:2421:24:2421:30 | S(...) | T | {EXTERNAL LOCATION} | i64 | -| main.rs:2421:26:2421:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2422:9:2422:15 | S(...) | | main.rs:2305:5:2305:19 | S | +| main.rs:2421:24:2421:27 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2422:9:2422:15 | S(...) | | main.rs:2304:5:2304:19 | S | | main.rs:2422:9:2422:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | +| main.rs:2422:9:2422:29 | ... .my_add(...) | | main.rs:2304:5:2304:19 | S | | main.rs:2422:11:2422:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2422:24:2422:27 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2423:9:2423:15 | S(...) | | main.rs:2305:5:2305:19 | S | -| main.rs:2423:9:2423:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | -| main.rs:2423:9:2423:29 | ... .my_add(...) | | main.rs:2305:5:2305:19 | S | -| main.rs:2423:11:2423:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2423:24:2423:28 | &3i64 | | file://:0:0:0:0 | & | -| main.rs:2423:24:2423:28 | &3i64 | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:2423:25:2423:28 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2425:13:2425:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2425:17:2425:35 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2425:30:2425:34 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2426:13:2426:13 | y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2426:17:2426:34 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2426:30:2426:33 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2427:13:2427:13 | z | | {EXTERNAL LOCATION} | i64 | -| main.rs:2427:22:2427:43 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2427:38:2427:42 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2428:9:2428:34 | ...::my_from2(...) | | file://:0:0:0:0 | () | -| main.rs:2428:23:2428:27 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2428:30:2428:33 | 0i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2429:9:2429:33 | ...::my_from2(...) | | file://:0:0:0:0 | () | -| main.rs:2429:23:2429:26 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2429:29:2429:32 | 0i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2430:9:2430:38 | ...::my_from2(...) | | file://:0:0:0:0 | () | -| main.rs:2430:27:2430:31 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2430:34:2430:37 | 0i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2432:9:2432:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2422:24:2422:28 | &3i64 | | file://:0:0:0:0 | & | +| main.rs:2422:24:2422:28 | &3i64 | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:2422:25:2422:28 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2424:13:2424:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2424:17:2424:35 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2424:30:2424:34 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2425:13:2425:13 | y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2425:17:2425:34 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2425:30:2425:33 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2426:13:2426:13 | z | | {EXTERNAL LOCATION} | i64 | +| main.rs:2426:22:2426:43 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2426:38:2426:42 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2427:9:2427:34 | ...::my_from2(...) | | file://:0:0:0:0 | () | +| main.rs:2427:23:2427:27 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2427:30:2427:33 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2428:9:2428:33 | ...::my_from2(...) | | file://:0:0:0:0 | () | +| main.rs:2428:23:2428:26 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2428:29:2428:32 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2429:9:2429:38 | ...::my_from2(...) | | file://:0:0:0:0 | () | +| main.rs:2429:27:2429:31 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2429:34:2429:37 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2431:9:2431:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2431:17:2431:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2432:9:2432:22 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | | main.rs:2432:17:2432:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2433:9:2433:22 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2433:17:2433:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2434:9:2434:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2433:9:2433:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2433:18:2433:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2434:9:2434:22 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | | main.rs:2434:18:2434:21 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2435:9:2435:22 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2435:18:2435:21 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2436:9:2436:30 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2435:9:2435:30 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2435:25:2435:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2436:9:2436:30 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | | main.rs:2436:25:2436:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2437:9:2437:30 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2437:25:2437:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2438:9:2438:29 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2437:9:2437:29 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2437:25:2437:28 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2438:9:2438:29 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | | main.rs:2438:25:2438:28 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2439:9:2439:29 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2439:25:2439:28 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2447:26:2449:9 | { ... } | | main.rs:2444:5:2444:24 | MyCallable | -| main.rs:2448:13:2448:25 | MyCallable {...} | | main.rs:2444:5:2444:24 | MyCallable | -| main.rs:2451:17:2451:21 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2451:17:2451:21 | SelfParam | &T | main.rs:2444:5:2444:24 | MyCallable | -| main.rs:2451:31:2453:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2452:13:2452:13 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2452:13:2452:13 | 1 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2459:13:2459:13 | i | | {EXTERNAL LOCATION} | i32 | +| main.rs:2446:26:2448:9 | { ... } | | main.rs:2443:5:2443:24 | MyCallable | +| main.rs:2447:13:2447:25 | MyCallable {...} | | main.rs:2443:5:2443:24 | MyCallable | +| main.rs:2450:17:2450:21 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2450:17:2450:21 | SelfParam | &T | main.rs:2443:5:2443:24 | MyCallable | +| main.rs:2450:31:2452:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2451:13:2451:13 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2451:13:2451:13 | 1 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2458:13:2458:13 | i | | {EXTERNAL LOCATION} | i32 | +| main.rs:2458:18:2458:26 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2458:18:2458:26 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2458:19:2458:19 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2458:22:2458:22 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2458:25:2458:25 | 3 | | {EXTERNAL LOCATION} | i32 | | main.rs:2459:18:2459:26 | [...] | | file://:0:0:0:0 | [] | | main.rs:2459:18:2459:26 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2459:18:2459:41 | ... .map(...) | | file://:0:0:0:0 | [] | | main.rs:2459:19:2459:19 | 1 | | {EXTERNAL LOCATION} | i32 | | main.rs:2459:22:2459:22 | 2 | | {EXTERNAL LOCATION} | i32 | | main.rs:2459:25:2459:25 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2459:32:2459:40 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | +| main.rs:2459:32:2459:40 | \|...\| ... | dyn(Args) | file://:0:0:0:0 | (T_1) | +| main.rs:2459:40:2459:40 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2460:13:2460:13 | i | | {EXTERNAL LOCATION} | Item | +| main.rs:2460:13:2460:13 | i | | {EXTERNAL LOCATION} | i32 | | main.rs:2460:18:2460:26 | [...] | | file://:0:0:0:0 | [] | | main.rs:2460:18:2460:26 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2460:18:2460:41 | ... .map(...) | | file://:0:0:0:0 | [] | +| main.rs:2460:18:2460:38 | ... .into_iter() | | {EXTERNAL LOCATION} | IntoIter | +| main.rs:2460:18:2460:38 | ... .into_iter() | T | {EXTERNAL LOCATION} | i32 | | main.rs:2460:19:2460:19 | 1 | | {EXTERNAL LOCATION} | i32 | | main.rs:2460:22:2460:22 | 2 | | {EXTERNAL LOCATION} | i32 | | main.rs:2460:25:2460:25 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2460:32:2460:40 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | -| main.rs:2460:32:2460:40 | \|...\| ... | dyn(Args) | file://:0:0:0:0 | (T_1) | -| main.rs:2460:40:2460:40 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2461:13:2461:13 | i | | {EXTERNAL LOCATION} | Item | -| main.rs:2461:13:2461:13 | i | | {EXTERNAL LOCATION} | i32 | -| main.rs:2461:18:2461:26 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2461:18:2461:26 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2461:18:2461:38 | ... .into_iter() | | {EXTERNAL LOCATION} | IntoIter | -| main.rs:2461:18:2461:38 | ... .into_iter() | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2461:19:2461:19 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2461:22:2461:22 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2461:25:2461:25 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2463:13:2463:17 | vals1 | | file://:0:0:0:0 | [] | -| main.rs:2463:13:2463:17 | vals1 | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2463:13:2463:17 | vals1 | [T;...] | {EXTERNAL LOCATION} | u8 | -| main.rs:2463:21:2463:31 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2463:21:2463:31 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2463:21:2463:31 | [...] | [T;...] | {EXTERNAL LOCATION} | u8 | -| main.rs:2463:22:2463:24 | 1u8 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2463:27:2463:27 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2463:27:2463:27 | 2 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2463:30:2463:30 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2463:30:2463:30 | 3 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2464:13:2464:13 | u | | {EXTERNAL LOCATION} | i32 | -| main.rs:2464:13:2464:13 | u | | {EXTERNAL LOCATION} | u8 | -| main.rs:2464:18:2464:22 | vals1 | | file://:0:0:0:0 | [] | -| main.rs:2464:18:2464:22 | vals1 | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2464:18:2464:22 | vals1 | [T;...] | {EXTERNAL LOCATION} | u8 | -| main.rs:2466:13:2466:17 | vals2 | | file://:0:0:0:0 | [] | -| main.rs:2466:13:2466:17 | vals2 | [T;...] | {EXTERNAL LOCATION} | u16 | -| main.rs:2466:21:2466:29 | [1u16; 3] | | file://:0:0:0:0 | [] | -| main.rs:2466:21:2466:29 | [1u16; 3] | [T;...] | {EXTERNAL LOCATION} | u16 | -| main.rs:2466:22:2466:25 | 1u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2466:28:2466:28 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2467:13:2467:13 | u | | {EXTERNAL LOCATION} | u16 | -| main.rs:2467:18:2467:22 | vals2 | | file://:0:0:0:0 | [] | -| main.rs:2467:18:2467:22 | vals2 | [T;...] | {EXTERNAL LOCATION} | u16 | -| main.rs:2469:13:2469:17 | vals3 | | file://:0:0:0:0 | [] | -| main.rs:2469:13:2469:17 | vals3 | [T;...] | {EXTERNAL LOCATION} | u32 | -| main.rs:2469:26:2469:26 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2469:31:2469:39 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2469:31:2469:39 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2469:31:2469:39 | [...] | [T;...] | {EXTERNAL LOCATION} | u32 | -| main.rs:2469:32:2469:32 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2469:32:2469:32 | 1 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2469:35:2469:35 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2469:35:2469:35 | 2 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2469:38:2469:38 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2469:38:2469:38 | 3 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2470:13:2470:13 | u | | {EXTERNAL LOCATION} | u32 | -| main.rs:2470:18:2470:22 | vals3 | | file://:0:0:0:0 | [] | -| main.rs:2470:18:2470:22 | vals3 | [T;...] | {EXTERNAL LOCATION} | u32 | -| main.rs:2472:13:2472:17 | vals4 | | file://:0:0:0:0 | [] | -| main.rs:2472:13:2472:17 | vals4 | [T;...] | {EXTERNAL LOCATION} | u64 | -| main.rs:2472:26:2472:26 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2472:31:2472:36 | [1; 3] | | file://:0:0:0:0 | [] | -| main.rs:2472:31:2472:36 | [1; 3] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2472:31:2472:36 | [1; 3] | [T;...] | {EXTERNAL LOCATION} | u64 | -| main.rs:2472:32:2472:32 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2472:32:2472:32 | 1 | | {EXTERNAL LOCATION} | u64 | -| main.rs:2472:35:2472:35 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2473:13:2473:13 | u | | {EXTERNAL LOCATION} | u64 | -| main.rs:2473:18:2473:22 | vals4 | | file://:0:0:0:0 | [] | -| main.rs:2473:18:2473:22 | vals4 | [T;...] | {EXTERNAL LOCATION} | u64 | -| main.rs:2475:17:2475:24 | strings1 | | file://:0:0:0:0 | [] | -| main.rs:2475:17:2475:24 | strings1 | [T;...] | file://:0:0:0:0 | & | -| main.rs:2475:17:2475:24 | strings1 | [T;...].&T | {EXTERNAL LOCATION} | str | -| main.rs:2475:28:2475:48 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2475:28:2475:48 | [...] | [T;...] | file://:0:0:0:0 | & | -| main.rs:2475:28:2475:48 | [...] | [T;...].&T | {EXTERNAL LOCATION} | str | -| main.rs:2475:29:2475:33 | "foo" | | file://:0:0:0:0 | & | -| main.rs:2475:29:2475:33 | "foo" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2475:36:2475:40 | "bar" | | file://:0:0:0:0 | & | -| main.rs:2475:36:2475:40 | "bar" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2475:43:2475:47 | "baz" | | file://:0:0:0:0 | & | -| main.rs:2475:43:2475:47 | "baz" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2462:13:2462:17 | vals1 | | file://:0:0:0:0 | [] | +| main.rs:2462:13:2462:17 | vals1 | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2462:13:2462:17 | vals1 | [T;...] | {EXTERNAL LOCATION} | u8 | +| main.rs:2462:21:2462:31 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2462:21:2462:31 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2462:21:2462:31 | [...] | [T;...] | {EXTERNAL LOCATION} | u8 | +| main.rs:2462:22:2462:24 | 1u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2462:27:2462:27 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2462:27:2462:27 | 2 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2462:30:2462:30 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2462:30:2462:30 | 3 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2463:13:2463:13 | u | | {EXTERNAL LOCATION} | i32 | +| main.rs:2463:13:2463:13 | u | | {EXTERNAL LOCATION} | u8 | +| main.rs:2463:18:2463:22 | vals1 | | file://:0:0:0:0 | [] | +| main.rs:2463:18:2463:22 | vals1 | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2463:18:2463:22 | vals1 | [T;...] | {EXTERNAL LOCATION} | u8 | +| main.rs:2465:13:2465:17 | vals2 | | file://:0:0:0:0 | [] | +| main.rs:2465:13:2465:17 | vals2 | [T;...] | {EXTERNAL LOCATION} | u16 | +| main.rs:2465:21:2465:29 | [1u16; 3] | | file://:0:0:0:0 | [] | +| main.rs:2465:21:2465:29 | [1u16; 3] | [T;...] | {EXTERNAL LOCATION} | u16 | +| main.rs:2465:22:2465:25 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2465:28:2465:28 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2466:13:2466:13 | u | | {EXTERNAL LOCATION} | u16 | +| main.rs:2466:18:2466:22 | vals2 | | file://:0:0:0:0 | [] | +| main.rs:2466:18:2466:22 | vals2 | [T;...] | {EXTERNAL LOCATION} | u16 | +| main.rs:2468:13:2468:17 | vals3 | | file://:0:0:0:0 | [] | +| main.rs:2468:13:2468:17 | vals3 | [T;...] | {EXTERNAL LOCATION} | u32 | +| main.rs:2468:26:2468:26 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2468:31:2468:39 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2468:31:2468:39 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2468:31:2468:39 | [...] | [T;...] | {EXTERNAL LOCATION} | u32 | +| main.rs:2468:32:2468:32 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2468:32:2468:32 | 1 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2468:35:2468:35 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2468:35:2468:35 | 2 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2468:38:2468:38 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2468:38:2468:38 | 3 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2469:13:2469:13 | u | | {EXTERNAL LOCATION} | u32 | +| main.rs:2469:18:2469:22 | vals3 | | file://:0:0:0:0 | [] | +| main.rs:2469:18:2469:22 | vals3 | [T;...] | {EXTERNAL LOCATION} | u32 | +| main.rs:2471:13:2471:17 | vals4 | | file://:0:0:0:0 | [] | +| main.rs:2471:13:2471:17 | vals4 | [T;...] | {EXTERNAL LOCATION} | u64 | +| main.rs:2471:26:2471:26 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2471:31:2471:36 | [1; 3] | | file://:0:0:0:0 | [] | +| main.rs:2471:31:2471:36 | [1; 3] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2471:31:2471:36 | [1; 3] | [T;...] | {EXTERNAL LOCATION} | u64 | +| main.rs:2471:32:2471:32 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2471:32:2471:32 | 1 | | {EXTERNAL LOCATION} | u64 | +| main.rs:2471:35:2471:35 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2472:13:2472:13 | u | | {EXTERNAL LOCATION} | u64 | +| main.rs:2472:18:2472:22 | vals4 | | file://:0:0:0:0 | [] | +| main.rs:2472:18:2472:22 | vals4 | [T;...] | {EXTERNAL LOCATION} | u64 | +| main.rs:2474:17:2474:24 | strings1 | | file://:0:0:0:0 | [] | +| main.rs:2474:17:2474:24 | strings1 | [T;...] | file://:0:0:0:0 | & | +| main.rs:2474:17:2474:24 | strings1 | [T;...].&T | {EXTERNAL LOCATION} | str | +| main.rs:2474:28:2474:48 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2474:28:2474:48 | [...] | [T;...] | file://:0:0:0:0 | & | +| main.rs:2474:28:2474:48 | [...] | [T;...].&T | {EXTERNAL LOCATION} | str | +| main.rs:2474:29:2474:33 | "foo" | | file://:0:0:0:0 | & | +| main.rs:2474:29:2474:33 | "foo" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2474:36:2474:40 | "bar" | | file://:0:0:0:0 | & | +| main.rs:2474:36:2474:40 | "bar" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2474:43:2474:47 | "baz" | | file://:0:0:0:0 | & | +| main.rs:2474:43:2474:47 | "baz" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2475:13:2475:13 | s | | {EXTERNAL LOCATION} | Item | +| main.rs:2475:13:2475:13 | s | | file://:0:0:0:0 | & | +| main.rs:2475:13:2475:13 | s | &T | file://:0:0:0:0 | & | +| main.rs:2475:13:2475:13 | s | &T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2475:18:2475:26 | &strings1 | | file://:0:0:0:0 | & | +| main.rs:2475:18:2475:26 | &strings1 | &T | file://:0:0:0:0 | [] | +| main.rs:2475:18:2475:26 | &strings1 | &T.[T;...] | file://:0:0:0:0 | & | +| main.rs:2475:18:2475:26 | &strings1 | &T.[T;...].&T | {EXTERNAL LOCATION} | str | +| main.rs:2475:19:2475:26 | strings1 | | file://:0:0:0:0 | [] | +| main.rs:2475:19:2475:26 | strings1 | [T;...] | file://:0:0:0:0 | & | +| main.rs:2475:19:2475:26 | strings1 | [T;...].&T | {EXTERNAL LOCATION} | str | | main.rs:2476:13:2476:13 | s | | {EXTERNAL LOCATION} | Item | | main.rs:2476:13:2476:13 | s | | file://:0:0:0:0 | & | | main.rs:2476:13:2476:13 | s | &T | file://:0:0:0:0 | & | | main.rs:2476:13:2476:13 | s | &T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2476:18:2476:26 | &strings1 | | file://:0:0:0:0 | & | -| main.rs:2476:18:2476:26 | &strings1 | &T | file://:0:0:0:0 | [] | -| main.rs:2476:18:2476:26 | &strings1 | &T.[T;...] | file://:0:0:0:0 | & | -| main.rs:2476:18:2476:26 | &strings1 | &T.[T;...].&T | {EXTERNAL LOCATION} | str | -| main.rs:2476:19:2476:26 | strings1 | | file://:0:0:0:0 | [] | -| main.rs:2476:19:2476:26 | strings1 | [T;...] | file://:0:0:0:0 | & | -| main.rs:2476:19:2476:26 | strings1 | [T;...].&T | {EXTERNAL LOCATION} | str | -| main.rs:2477:13:2477:13 | s | | {EXTERNAL LOCATION} | Item | +| main.rs:2476:18:2476:30 | &mut strings1 | | file://:0:0:0:0 | & | +| main.rs:2476:18:2476:30 | &mut strings1 | &T | file://:0:0:0:0 | [] | +| main.rs:2476:18:2476:30 | &mut strings1 | &T.[T;...] | file://:0:0:0:0 | & | +| main.rs:2476:18:2476:30 | &mut strings1 | &T.[T;...].&T | {EXTERNAL LOCATION} | str | +| main.rs:2476:23:2476:30 | strings1 | | file://:0:0:0:0 | [] | +| main.rs:2476:23:2476:30 | strings1 | [T;...] | file://:0:0:0:0 | & | +| main.rs:2476:23:2476:30 | strings1 | [T;...].&T | {EXTERNAL LOCATION} | str | | main.rs:2477:13:2477:13 | s | | file://:0:0:0:0 | & | -| main.rs:2477:13:2477:13 | s | &T | file://:0:0:0:0 | & | -| main.rs:2477:13:2477:13 | s | &T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2477:18:2477:30 | &mut strings1 | | file://:0:0:0:0 | & | -| main.rs:2477:18:2477:30 | &mut strings1 | &T | file://:0:0:0:0 | [] | -| main.rs:2477:18:2477:30 | &mut strings1 | &T.[T;...] | file://:0:0:0:0 | & | -| main.rs:2477:18:2477:30 | &mut strings1 | &T.[T;...].&T | {EXTERNAL LOCATION} | str | -| main.rs:2477:23:2477:30 | strings1 | | file://:0:0:0:0 | [] | -| main.rs:2477:23:2477:30 | strings1 | [T;...] | file://:0:0:0:0 | & | -| main.rs:2477:23:2477:30 | strings1 | [T;...].&T | {EXTERNAL LOCATION} | str | -| main.rs:2478:13:2478:13 | s | | file://:0:0:0:0 | & | -| main.rs:2478:13:2478:13 | s | &T | {EXTERNAL LOCATION} | str | -| main.rs:2478:18:2478:25 | strings1 | | file://:0:0:0:0 | [] | -| main.rs:2478:18:2478:25 | strings1 | [T;...] | file://:0:0:0:0 | & | -| main.rs:2478:18:2478:25 | strings1 | [T;...].&T | {EXTERNAL LOCATION} | str | -| main.rs:2480:13:2480:20 | strings2 | | file://:0:0:0:0 | [] | -| main.rs:2480:13:2480:20 | strings2 | [T;...] | {EXTERNAL LOCATION} | String | -| main.rs:2481:9:2485:9 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2481:9:2485:9 | [...] | [T;...] | {EXTERNAL LOCATION} | String | +| main.rs:2477:13:2477:13 | s | &T | {EXTERNAL LOCATION} | str | +| main.rs:2477:18:2477:25 | strings1 | | file://:0:0:0:0 | [] | +| main.rs:2477:18:2477:25 | strings1 | [T;...] | file://:0:0:0:0 | & | +| main.rs:2477:18:2477:25 | strings1 | [T;...].&T | {EXTERNAL LOCATION} | str | +| main.rs:2479:13:2479:20 | strings2 | | file://:0:0:0:0 | [] | +| main.rs:2479:13:2479:20 | strings2 | [T;...] | {EXTERNAL LOCATION} | String | +| main.rs:2480:9:2484:9 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2480:9:2484:9 | [...] | [T;...] | {EXTERNAL LOCATION} | String | +| main.rs:2481:13:2481:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2481:26:2481:30 | "foo" | | file://:0:0:0:0 | & | +| main.rs:2481:26:2481:30 | "foo" | &T | {EXTERNAL LOCATION} | str | | main.rs:2482:13:2482:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2482:26:2482:30 | "foo" | | file://:0:0:0:0 | & | -| main.rs:2482:26:2482:30 | "foo" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2482:26:2482:30 | "bar" | | file://:0:0:0:0 | & | +| main.rs:2482:26:2482:30 | "bar" | &T | {EXTERNAL LOCATION} | str | | main.rs:2483:13:2483:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2483:26:2483:30 | "bar" | | file://:0:0:0:0 | & | -| main.rs:2483:26:2483:30 | "bar" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2484:13:2484:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2484:26:2484:30 | "baz" | | file://:0:0:0:0 | & | -| main.rs:2484:26:2484:30 | "baz" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2486:13:2486:13 | s | | {EXTERNAL LOCATION} | String | -| main.rs:2486:18:2486:25 | strings2 | | file://:0:0:0:0 | [] | -| main.rs:2486:18:2486:25 | strings2 | [T;...] | {EXTERNAL LOCATION} | String | -| main.rs:2488:13:2488:20 | strings3 | | file://:0:0:0:0 | & | -| main.rs:2488:13:2488:20 | strings3 | &T | file://:0:0:0:0 | [] | -| main.rs:2488:13:2488:20 | strings3 | &T.[T;...] | {EXTERNAL LOCATION} | String | -| main.rs:2489:9:2493:9 | &... | | file://:0:0:0:0 | & | -| main.rs:2489:9:2493:9 | &... | &T | file://:0:0:0:0 | [] | -| main.rs:2489:9:2493:9 | &... | &T.[T;...] | {EXTERNAL LOCATION} | String | -| main.rs:2489:10:2493:9 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2489:10:2493:9 | [...] | [T;...] | {EXTERNAL LOCATION} | String | +| main.rs:2483:26:2483:30 | "baz" | | file://:0:0:0:0 | & | +| main.rs:2483:26:2483:30 | "baz" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2485:13:2485:13 | s | | {EXTERNAL LOCATION} | String | +| main.rs:2485:18:2485:25 | strings2 | | file://:0:0:0:0 | [] | +| main.rs:2485:18:2485:25 | strings2 | [T;...] | {EXTERNAL LOCATION} | String | +| main.rs:2487:13:2487:20 | strings3 | | file://:0:0:0:0 | & | +| main.rs:2487:13:2487:20 | strings3 | &T | file://:0:0:0:0 | [] | +| main.rs:2487:13:2487:20 | strings3 | &T.[T;...] | {EXTERNAL LOCATION} | String | +| main.rs:2488:9:2492:9 | &... | | file://:0:0:0:0 | & | +| main.rs:2488:9:2492:9 | &... | &T | file://:0:0:0:0 | [] | +| main.rs:2488:9:2492:9 | &... | &T.[T;...] | {EXTERNAL LOCATION} | String | +| main.rs:2488:10:2492:9 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2488:10:2492:9 | [...] | [T;...] | {EXTERNAL LOCATION} | String | +| main.rs:2489:13:2489:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2489:26:2489:30 | "foo" | | file://:0:0:0:0 | & | +| main.rs:2489:26:2489:30 | "foo" | &T | {EXTERNAL LOCATION} | str | | main.rs:2490:13:2490:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2490:26:2490:30 | "foo" | | file://:0:0:0:0 | & | -| main.rs:2490:26:2490:30 | "foo" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2490:26:2490:30 | "bar" | | file://:0:0:0:0 | & | +| main.rs:2490:26:2490:30 | "bar" | &T | {EXTERNAL LOCATION} | str | | main.rs:2491:13:2491:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2491:26:2491:30 | "bar" | | file://:0:0:0:0 | & | -| main.rs:2491:26:2491:30 | "bar" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2492:13:2492:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2492:26:2492:30 | "baz" | | file://:0:0:0:0 | & | -| main.rs:2492:26:2492:30 | "baz" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2494:13:2494:13 | s | | {EXTERNAL LOCATION} | Item | -| main.rs:2494:13:2494:13 | s | | file://:0:0:0:0 | & | -| main.rs:2494:13:2494:13 | s | &T | {EXTERNAL LOCATION} | String | -| main.rs:2494:18:2494:25 | strings3 | | file://:0:0:0:0 | & | -| main.rs:2494:18:2494:25 | strings3 | &T | file://:0:0:0:0 | [] | -| main.rs:2494:18:2494:25 | strings3 | &T.[T;...] | {EXTERNAL LOCATION} | String | -| main.rs:2496:13:2496:21 | callables | | file://:0:0:0:0 | [] | -| main.rs:2496:13:2496:21 | callables | [T;...] | main.rs:2444:5:2444:24 | MyCallable | -| main.rs:2496:25:2496:81 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2496:25:2496:81 | [...] | [T;...] | main.rs:2444:5:2444:24 | MyCallable | -| main.rs:2496:26:2496:42 | ...::new(...) | | main.rs:2444:5:2444:24 | MyCallable | -| main.rs:2496:45:2496:61 | ...::new(...) | | main.rs:2444:5:2444:24 | MyCallable | -| main.rs:2496:64:2496:80 | ...::new(...) | | main.rs:2444:5:2444:24 | MyCallable | -| main.rs:2497:13:2497:13 | c | | main.rs:2444:5:2444:24 | MyCallable | -| main.rs:2498:12:2498:20 | callables | | file://:0:0:0:0 | [] | -| main.rs:2498:12:2498:20 | callables | [T;...] | main.rs:2444:5:2444:24 | MyCallable | -| main.rs:2500:17:2500:22 | result | | {EXTERNAL LOCATION} | i64 | -| main.rs:2500:26:2500:26 | c | | main.rs:2444:5:2444:24 | MyCallable | -| main.rs:2500:26:2500:33 | c.call() | | {EXTERNAL LOCATION} | i64 | -| main.rs:2505:13:2505:13 | i | | {EXTERNAL LOCATION} | Item | -| main.rs:2505:13:2505:13 | i | | {EXTERNAL LOCATION} | i32 | -| main.rs:2505:18:2505:18 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2505:18:2505:22 | 0..10 | | {EXTERNAL LOCATION} | Range | -| main.rs:2505:18:2505:22 | 0..10 | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2505:21:2505:22 | 10 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2506:13:2506:13 | u | | {EXTERNAL LOCATION} | Range | -| main.rs:2506:13:2506:13 | u | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2506:13:2506:13 | u | Idx | {EXTERNAL LOCATION} | u8 | -| main.rs:2506:18:2506:26 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2506:18:2506:26 | [...] | [T;...] | {EXTERNAL LOCATION} | Range | -| main.rs:2506:18:2506:26 | [...] | [T;...].Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2506:18:2506:26 | [...] | [T;...].Idx | {EXTERNAL LOCATION} | u8 | -| main.rs:2506:19:2506:21 | 0u8 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2506:19:2506:25 | 0u8..10 | | {EXTERNAL LOCATION} | Range | -| main.rs:2506:19:2506:25 | 0u8..10 | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2506:19:2506:25 | 0u8..10 | Idx | {EXTERNAL LOCATION} | u8 | +| main.rs:2491:26:2491:30 | "baz" | | file://:0:0:0:0 | & | +| main.rs:2491:26:2491:30 | "baz" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2493:13:2493:13 | s | | {EXTERNAL LOCATION} | Item | +| main.rs:2493:13:2493:13 | s | | file://:0:0:0:0 | & | +| main.rs:2493:13:2493:13 | s | &T | {EXTERNAL LOCATION} | String | +| main.rs:2493:18:2493:25 | strings3 | | file://:0:0:0:0 | & | +| main.rs:2493:18:2493:25 | strings3 | &T | file://:0:0:0:0 | [] | +| main.rs:2493:18:2493:25 | strings3 | &T.[T;...] | {EXTERNAL LOCATION} | String | +| main.rs:2495:13:2495:21 | callables | | file://:0:0:0:0 | [] | +| main.rs:2495:13:2495:21 | callables | [T;...] | main.rs:2443:5:2443:24 | MyCallable | +| main.rs:2495:25:2495:81 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2495:25:2495:81 | [...] | [T;...] | main.rs:2443:5:2443:24 | MyCallable | +| main.rs:2495:26:2495:42 | ...::new(...) | | main.rs:2443:5:2443:24 | MyCallable | +| main.rs:2495:45:2495:61 | ...::new(...) | | main.rs:2443:5:2443:24 | MyCallable | +| main.rs:2495:64:2495:80 | ...::new(...) | | main.rs:2443:5:2443:24 | MyCallable | +| main.rs:2496:13:2496:13 | c | | main.rs:2443:5:2443:24 | MyCallable | +| main.rs:2497:12:2497:20 | callables | | file://:0:0:0:0 | [] | +| main.rs:2497:12:2497:20 | callables | [T;...] | main.rs:2443:5:2443:24 | MyCallable | +| main.rs:2499:17:2499:22 | result | | {EXTERNAL LOCATION} | i64 | +| main.rs:2499:26:2499:26 | c | | main.rs:2443:5:2443:24 | MyCallable | +| main.rs:2499:26:2499:33 | c.call() | | {EXTERNAL LOCATION} | i64 | +| main.rs:2504:13:2504:13 | i | | {EXTERNAL LOCATION} | Item | +| main.rs:2504:13:2504:13 | i | | {EXTERNAL LOCATION} | i32 | +| main.rs:2504:18:2504:18 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2504:18:2504:22 | 0..10 | | {EXTERNAL LOCATION} | Range | +| main.rs:2504:18:2504:22 | 0..10 | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2504:21:2504:22 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2505:13:2505:13 | u | | {EXTERNAL LOCATION} | Range | +| main.rs:2505:13:2505:13 | u | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2505:13:2505:13 | u | Idx | {EXTERNAL LOCATION} | u8 | +| main.rs:2505:18:2505:26 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2505:18:2505:26 | [...] | [T;...] | {EXTERNAL LOCATION} | Range | +| main.rs:2505:18:2505:26 | [...] | [T;...].Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2505:18:2505:26 | [...] | [T;...].Idx | {EXTERNAL LOCATION} | u8 | +| main.rs:2505:19:2505:21 | 0u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2505:19:2505:25 | 0u8..10 | | {EXTERNAL LOCATION} | Range | +| main.rs:2505:19:2505:25 | 0u8..10 | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2505:19:2505:25 | 0u8..10 | Idx | {EXTERNAL LOCATION} | u8 | +| main.rs:2505:24:2505:25 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2505:24:2505:25 | 10 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2506:13:2506:17 | range | | {EXTERNAL LOCATION} | Range | +| main.rs:2506:13:2506:17 | range | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2506:21:2506:21 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2506:21:2506:25 | 0..10 | | {EXTERNAL LOCATION} | Range | +| main.rs:2506:21:2506:25 | 0..10 | Idx | {EXTERNAL LOCATION} | i32 | | main.rs:2506:24:2506:25 | 10 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2506:24:2506:25 | 10 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2507:13:2507:17 | range | | {EXTERNAL LOCATION} | Range | -| main.rs:2507:13:2507:17 | range | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2507:21:2507:21 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2507:21:2507:25 | 0..10 | | {EXTERNAL LOCATION} | Range | -| main.rs:2507:21:2507:25 | 0..10 | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2507:24:2507:25 | 10 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2508:13:2508:13 | i | | {EXTERNAL LOCATION} | Item | -| main.rs:2508:13:2508:13 | i | | {EXTERNAL LOCATION} | i32 | -| main.rs:2508:18:2508:22 | range | | {EXTERNAL LOCATION} | Range | -| main.rs:2508:18:2508:22 | range | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2509:13:2509:22 | range_full | | {EXTERNAL LOCATION} | RangeFull | -| main.rs:2509:26:2509:27 | .. | | {EXTERNAL LOCATION} | RangeFull | -| main.rs:2510:13:2510:13 | i | | {EXTERNAL LOCATION} | Item | -| main.rs:2510:18:2510:48 | &... | | file://:0:0:0:0 | & | -| main.rs:2510:19:2510:36 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2510:19:2510:36 | [...] | [T;...] | {EXTERNAL LOCATION} | i64 | -| main.rs:2510:20:2510:23 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2510:26:2510:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2510:32:2510:35 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2510:38:2510:47 | range_full | | {EXTERNAL LOCATION} | RangeFull | -| main.rs:2512:13:2512:18 | range1 | | {EXTERNAL LOCATION} | Range | -| main.rs:2512:13:2512:18 | range1 | Idx | {EXTERNAL LOCATION} | u16 | -| main.rs:2513:9:2516:9 | ...::Range {...} | | {EXTERNAL LOCATION} | Range | -| main.rs:2513:9:2516:9 | ...::Range {...} | Idx | {EXTERNAL LOCATION} | u16 | -| main.rs:2514:20:2514:23 | 0u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2515:18:2515:22 | 10u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2517:13:2517:13 | u | | {EXTERNAL LOCATION} | Item | -| main.rs:2517:13:2517:13 | u | | {EXTERNAL LOCATION} | u16 | -| main.rs:2517:18:2517:23 | range1 | | {EXTERNAL LOCATION} | Range | -| main.rs:2517:18:2517:23 | range1 | Idx | {EXTERNAL LOCATION} | u16 | -| main.rs:2521:26:2521:26 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2521:29:2521:29 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2521:32:2521:32 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2524:13:2524:18 | vals4a | | {EXTERNAL LOCATION} | Vec | -| main.rs:2524:13:2524:18 | vals4a | A | {EXTERNAL LOCATION} | Global | -| main.rs:2524:13:2524:18 | vals4a | T | {EXTERNAL LOCATION} | u16 | -| main.rs:2524:32:2524:43 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2524:32:2524:43 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2524:32:2524:43 | [...] | [T;...] | {EXTERNAL LOCATION} | u16 | -| main.rs:2524:32:2524:52 | ... .to_vec() | | {EXTERNAL LOCATION} | Vec | -| main.rs:2524:32:2524:52 | ... .to_vec() | A | {EXTERNAL LOCATION} | Global | -| main.rs:2524:32:2524:52 | ... .to_vec() | T | {EXTERNAL LOCATION} | u16 | -| main.rs:2524:33:2524:36 | 1u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2524:39:2524:39 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2524:42:2524:42 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2525:13:2525:13 | u | | {EXTERNAL LOCATION} | u16 | -| main.rs:2525:13:2525:13 | u | | file://:0:0:0:0 | & | -| main.rs:2525:18:2525:23 | vals4a | | {EXTERNAL LOCATION} | Vec | -| main.rs:2525:18:2525:23 | vals4a | A | {EXTERNAL LOCATION} | Global | -| main.rs:2525:18:2525:23 | vals4a | T | {EXTERNAL LOCATION} | u16 | -| main.rs:2527:22:2527:33 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2527:22:2527:33 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2527:22:2527:33 | [...] | [T;...] | {EXTERNAL LOCATION} | u16 | -| main.rs:2527:23:2527:26 | 1u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2527:29:2527:29 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2527:32:2527:32 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2530:13:2530:17 | vals5 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2530:13:2530:17 | vals5 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2530:13:2530:17 | vals5 | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2530:13:2530:17 | vals5 | T | {EXTERNAL LOCATION} | u32 | -| main.rs:2530:21:2530:43 | ...::from(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2530:21:2530:43 | ...::from(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2530:21:2530:43 | ...::from(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2530:21:2530:43 | ...::from(...) | T | {EXTERNAL LOCATION} | u32 | -| main.rs:2530:31:2530:42 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2530:31:2530:42 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2530:31:2530:42 | [...] | [T;...] | {EXTERNAL LOCATION} | u32 | -| main.rs:2530:32:2530:35 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2530:38:2530:38 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2530:41:2530:41 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2531:13:2531:13 | u | | {EXTERNAL LOCATION} | i32 | -| main.rs:2531:13:2531:13 | u | | {EXTERNAL LOCATION} | u32 | -| main.rs:2531:13:2531:13 | u | | file://:0:0:0:0 | & | -| main.rs:2531:18:2531:22 | vals5 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2531:18:2531:22 | vals5 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2531:18:2531:22 | vals5 | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2531:18:2531:22 | vals5 | T | {EXTERNAL LOCATION} | u32 | -| main.rs:2533:13:2533:17 | vals6 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2533:13:2533:17 | vals6 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2533:13:2533:17 | vals6 | T | file://:0:0:0:0 | & | -| main.rs:2533:13:2533:17 | vals6 | T.&T | {EXTERNAL LOCATION} | u64 | -| main.rs:2533:32:2533:43 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2533:32:2533:43 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2533:32:2533:43 | [...] | [T;...] | {EXTERNAL LOCATION} | u64 | -| main.rs:2533:32:2533:60 | ... .collect() | | {EXTERNAL LOCATION} | Vec | -| main.rs:2533:32:2533:60 | ... .collect() | A | {EXTERNAL LOCATION} | Global | -| main.rs:2533:32:2533:60 | ... .collect() | T | file://:0:0:0:0 | & | -| main.rs:2533:32:2533:60 | ... .collect() | T.&T | {EXTERNAL LOCATION} | u64 | -| main.rs:2533:33:2533:36 | 1u64 | | {EXTERNAL LOCATION} | u64 | -| main.rs:2533:39:2533:39 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2533:42:2533:42 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2534:13:2534:13 | u | | file://:0:0:0:0 | & | -| main.rs:2534:13:2534:13 | u | &T | {EXTERNAL LOCATION} | u64 | -| main.rs:2534:18:2534:22 | vals6 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2534:18:2534:22 | vals6 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2534:18:2534:22 | vals6 | T | file://:0:0:0:0 | & | -| main.rs:2534:18:2534:22 | vals6 | T.&T | {EXTERNAL LOCATION} | u64 | -| main.rs:2536:17:2536:21 | vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2536:17:2536:21 | vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2536:17:2536:21 | vals7 | T | {EXTERNAL LOCATION} | u8 | -| main.rs:2536:25:2536:34 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2536:25:2536:34 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2536:25:2536:34 | ...::new(...) | T | {EXTERNAL LOCATION} | u8 | -| main.rs:2537:9:2537:13 | vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2537:9:2537:13 | vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2537:9:2537:13 | vals7 | T | {EXTERNAL LOCATION} | u8 | -| main.rs:2537:20:2537:22 | 1u8 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2538:13:2538:13 | u | | {EXTERNAL LOCATION} | u8 | -| main.rs:2538:13:2538:13 | u | | file://:0:0:0:0 | & | -| main.rs:2538:18:2538:22 | vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2538:18:2538:22 | vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2538:18:2538:22 | vals7 | T | {EXTERNAL LOCATION} | u8 | -| main.rs:2540:33:2540:33 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2540:36:2540:36 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2540:45:2540:45 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2540:48:2540:48 | 4 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2547:17:2547:20 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2547:17:2547:20 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2547:17:2547:20 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2547:17:2547:20 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2547:17:2547:20 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2547:17:2547:20 | map1 | V.T | file://:0:0:0:0 | & | -| main.rs:2547:17:2547:20 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2547:24:2547:55 | ...::new(...) | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2547:24:2547:55 | ...::new(...) | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2547:24:2547:55 | ...::new(...) | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2547:24:2547:55 | ...::new(...) | V | {EXTERNAL LOCATION} | Box | -| main.rs:2547:24:2547:55 | ...::new(...) | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2547:24:2547:55 | ...::new(...) | V.T | file://:0:0:0:0 | & | -| main.rs:2547:24:2547:55 | ...::new(...) | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2507:13:2507:13 | i | | {EXTERNAL LOCATION} | Item | +| main.rs:2507:13:2507:13 | i | | {EXTERNAL LOCATION} | i32 | +| main.rs:2507:18:2507:22 | range | | {EXTERNAL LOCATION} | Range | +| main.rs:2507:18:2507:22 | range | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2508:13:2508:22 | range_full | | {EXTERNAL LOCATION} | RangeFull | +| main.rs:2508:26:2508:27 | .. | | {EXTERNAL LOCATION} | RangeFull | +| main.rs:2509:13:2509:13 | i | | {EXTERNAL LOCATION} | Item | +| main.rs:2509:18:2509:48 | &... | | file://:0:0:0:0 | & | +| main.rs:2509:19:2509:36 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2509:19:2509:36 | [...] | [T;...] | {EXTERNAL LOCATION} | i64 | +| main.rs:2509:20:2509:23 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2509:26:2509:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2509:32:2509:35 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2509:38:2509:47 | range_full | | {EXTERNAL LOCATION} | RangeFull | +| main.rs:2511:13:2511:18 | range1 | | {EXTERNAL LOCATION} | Range | +| main.rs:2511:13:2511:18 | range1 | Idx | {EXTERNAL LOCATION} | u16 | +| main.rs:2512:9:2515:9 | ...::Range {...} | | {EXTERNAL LOCATION} | Range | +| main.rs:2512:9:2515:9 | ...::Range {...} | Idx | {EXTERNAL LOCATION} | u16 | +| main.rs:2513:20:2513:23 | 0u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2514:18:2514:22 | 10u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2516:13:2516:13 | u | | {EXTERNAL LOCATION} | Item | +| main.rs:2516:13:2516:13 | u | | {EXTERNAL LOCATION} | u16 | +| main.rs:2516:18:2516:23 | range1 | | {EXTERNAL LOCATION} | Range | +| main.rs:2516:18:2516:23 | range1 | Idx | {EXTERNAL LOCATION} | u16 | +| main.rs:2520:26:2520:26 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2520:29:2520:29 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2520:32:2520:32 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2523:13:2523:18 | vals4a | | {EXTERNAL LOCATION} | Vec | +| main.rs:2523:13:2523:18 | vals4a | A | {EXTERNAL LOCATION} | Global | +| main.rs:2523:13:2523:18 | vals4a | T | {EXTERNAL LOCATION} | u16 | +| main.rs:2523:32:2523:43 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2523:32:2523:43 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2523:32:2523:43 | [...] | [T;...] | {EXTERNAL LOCATION} | u16 | +| main.rs:2523:32:2523:52 | ... .to_vec() | | {EXTERNAL LOCATION} | Vec | +| main.rs:2523:32:2523:52 | ... .to_vec() | A | {EXTERNAL LOCATION} | Global | +| main.rs:2523:32:2523:52 | ... .to_vec() | T | {EXTERNAL LOCATION} | u16 | +| main.rs:2523:33:2523:36 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2523:39:2523:39 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2523:42:2523:42 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2524:13:2524:13 | u | | {EXTERNAL LOCATION} | u16 | +| main.rs:2524:13:2524:13 | u | | file://:0:0:0:0 | & | +| main.rs:2524:18:2524:23 | vals4a | | {EXTERNAL LOCATION} | Vec | +| main.rs:2524:18:2524:23 | vals4a | A | {EXTERNAL LOCATION} | Global | +| main.rs:2524:18:2524:23 | vals4a | T | {EXTERNAL LOCATION} | u16 | +| main.rs:2526:22:2526:33 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2526:22:2526:33 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2526:22:2526:33 | [...] | [T;...] | {EXTERNAL LOCATION} | u16 | +| main.rs:2526:23:2526:26 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2526:29:2526:29 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2526:32:2526:32 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2529:13:2529:17 | vals5 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2529:13:2529:17 | vals5 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2529:13:2529:17 | vals5 | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2529:13:2529:17 | vals5 | T | {EXTERNAL LOCATION} | u32 | +| main.rs:2529:21:2529:43 | ...::from(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2529:21:2529:43 | ...::from(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2529:21:2529:43 | ...::from(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2529:21:2529:43 | ...::from(...) | T | {EXTERNAL LOCATION} | u32 | +| main.rs:2529:31:2529:42 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2529:31:2529:42 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2529:31:2529:42 | [...] | [T;...] | {EXTERNAL LOCATION} | u32 | +| main.rs:2529:32:2529:35 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2529:38:2529:38 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2529:41:2529:41 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2530:13:2530:13 | u | | {EXTERNAL LOCATION} | i32 | +| main.rs:2530:13:2530:13 | u | | {EXTERNAL LOCATION} | u32 | +| main.rs:2530:13:2530:13 | u | | file://:0:0:0:0 | & | +| main.rs:2530:18:2530:22 | vals5 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2530:18:2530:22 | vals5 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2530:18:2530:22 | vals5 | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2530:18:2530:22 | vals5 | T | {EXTERNAL LOCATION} | u32 | +| main.rs:2532:13:2532:17 | vals6 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2532:13:2532:17 | vals6 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2532:13:2532:17 | vals6 | T | file://:0:0:0:0 | & | +| main.rs:2532:13:2532:17 | vals6 | T.&T | {EXTERNAL LOCATION} | u64 | +| main.rs:2532:32:2532:43 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2532:32:2532:43 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2532:32:2532:43 | [...] | [T;...] | {EXTERNAL LOCATION} | u64 | +| main.rs:2532:32:2532:60 | ... .collect() | | {EXTERNAL LOCATION} | Vec | +| main.rs:2532:32:2532:60 | ... .collect() | A | {EXTERNAL LOCATION} | Global | +| main.rs:2532:32:2532:60 | ... .collect() | T | file://:0:0:0:0 | & | +| main.rs:2532:32:2532:60 | ... .collect() | T.&T | {EXTERNAL LOCATION} | u64 | +| main.rs:2532:33:2532:36 | 1u64 | | {EXTERNAL LOCATION} | u64 | +| main.rs:2532:39:2532:39 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2532:42:2532:42 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2533:13:2533:13 | u | | file://:0:0:0:0 | & | +| main.rs:2533:13:2533:13 | u | &T | {EXTERNAL LOCATION} | u64 | +| main.rs:2533:18:2533:22 | vals6 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2533:18:2533:22 | vals6 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2533:18:2533:22 | vals6 | T | file://:0:0:0:0 | & | +| main.rs:2533:18:2533:22 | vals6 | T.&T | {EXTERNAL LOCATION} | u64 | +| main.rs:2535:17:2535:21 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2535:17:2535:21 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2535:17:2535:21 | vals7 | T | {EXTERNAL LOCATION} | u8 | +| main.rs:2535:25:2535:34 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2535:25:2535:34 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2535:25:2535:34 | ...::new(...) | T | {EXTERNAL LOCATION} | u8 | +| main.rs:2536:9:2536:13 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2536:9:2536:13 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2536:9:2536:13 | vals7 | T | {EXTERNAL LOCATION} | u8 | +| main.rs:2536:20:2536:22 | 1u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2537:13:2537:13 | u | | {EXTERNAL LOCATION} | u8 | +| main.rs:2537:13:2537:13 | u | | file://:0:0:0:0 | & | +| main.rs:2537:18:2537:22 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2537:18:2537:22 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2537:18:2537:22 | vals7 | T | {EXTERNAL LOCATION} | u8 | +| main.rs:2539:33:2539:33 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2539:36:2539:36 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2539:45:2539:45 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2539:48:2539:48 | 4 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2546:17:2546:20 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2546:17:2546:20 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2546:17:2546:20 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2546:17:2546:20 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2546:17:2546:20 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2546:17:2546:20 | map1 | V.T | file://:0:0:0:0 | & | +| main.rs:2546:17:2546:20 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2546:24:2546:55 | ...::new(...) | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2546:24:2546:55 | ...::new(...) | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2546:24:2546:55 | ...::new(...) | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2546:24:2546:55 | ...::new(...) | V | {EXTERNAL LOCATION} | Box | +| main.rs:2546:24:2546:55 | ...::new(...) | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2546:24:2546:55 | ...::new(...) | V.T | file://:0:0:0:0 | & | +| main.rs:2546:24:2546:55 | ...::new(...) | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2547:9:2547:12 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2547:9:2547:12 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2547:9:2547:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2547:9:2547:12 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2547:9:2547:12 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2547:9:2547:12 | map1 | V.T | file://:0:0:0:0 | & | +| main.rs:2547:9:2547:12 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2547:9:2547:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2547:9:2547:39 | map1.insert(...) | T | {EXTERNAL LOCATION} | Box | +| main.rs:2547:9:2547:39 | map1.insert(...) | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2547:9:2547:39 | map1.insert(...) | T.T | file://:0:0:0:0 | & | +| main.rs:2547:9:2547:39 | map1.insert(...) | T.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2547:21:2547:21 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2547:24:2547:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2547:24:2547:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2547:24:2547:38 | ...::new(...) | T | file://:0:0:0:0 | & | +| main.rs:2547:24:2547:38 | ...::new(...) | T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2547:33:2547:37 | "one" | | file://:0:0:0:0 | & | +| main.rs:2547:33:2547:37 | "one" | &T | {EXTERNAL LOCATION} | str | | main.rs:2548:9:2548:12 | map1 | | {EXTERNAL LOCATION} | HashMap | | main.rs:2548:9:2548:12 | map1 | K | {EXTERNAL LOCATION} | i32 | | main.rs:2548:9:2548:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | @@ -5254,67 +5273,76 @@ inferType | main.rs:2548:9:2548:39 | map1.insert(...) | T.A | {EXTERNAL LOCATION} | Global | | main.rs:2548:9:2548:39 | map1.insert(...) | T.T | file://:0:0:0:0 | & | | main.rs:2548:9:2548:39 | map1.insert(...) | T.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2548:21:2548:21 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2548:21:2548:21 | 2 | | {EXTERNAL LOCATION} | i32 | | main.rs:2548:24:2548:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | | main.rs:2548:24:2548:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | | main.rs:2548:24:2548:38 | ...::new(...) | T | file://:0:0:0:0 | & | | main.rs:2548:24:2548:38 | ...::new(...) | T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2548:33:2548:37 | "one" | | file://:0:0:0:0 | & | -| main.rs:2548:33:2548:37 | "one" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2549:9:2549:12 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2549:9:2549:12 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2549:9:2549:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2549:9:2549:12 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2549:9:2549:12 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2549:9:2549:12 | map1 | V.T | file://:0:0:0:0 | & | -| main.rs:2549:9:2549:12 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2549:9:2549:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2549:9:2549:39 | map1.insert(...) | T | {EXTERNAL LOCATION} | Box | -| main.rs:2549:9:2549:39 | map1.insert(...) | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2549:9:2549:39 | map1.insert(...) | T.T | file://:0:0:0:0 | & | -| main.rs:2549:9:2549:39 | map1.insert(...) | T.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2549:21:2549:21 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2549:24:2549:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2549:24:2549:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2549:24:2549:38 | ...::new(...) | T | file://:0:0:0:0 | & | -| main.rs:2549:24:2549:38 | ...::new(...) | T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2549:33:2549:37 | "two" | | file://:0:0:0:0 | & | -| main.rs:2549:33:2549:37 | "two" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2550:13:2550:15 | key | | {EXTERNAL LOCATION} | Item | -| main.rs:2550:13:2550:15 | key | | file://:0:0:0:0 | & | -| main.rs:2550:13:2550:15 | key | &T | {EXTERNAL LOCATION} | i32 | -| main.rs:2550:20:2550:23 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2550:20:2550:23 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2550:20:2550:23 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2550:20:2550:23 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2550:20:2550:23 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2550:20:2550:23 | map1 | V.T | file://:0:0:0:0 | & | -| main.rs:2550:20:2550:23 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2550:20:2550:30 | map1.keys() | | {EXTERNAL LOCATION} | Keys | -| main.rs:2550:20:2550:30 | map1.keys() | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2550:20:2550:30 | map1.keys() | V | {EXTERNAL LOCATION} | Box | -| main.rs:2550:20:2550:30 | map1.keys() | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2550:20:2550:30 | map1.keys() | V.T | file://:0:0:0:0 | & | -| main.rs:2550:20:2550:30 | map1.keys() | V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2551:13:2551:17 | value | | {EXTERNAL LOCATION} | Item | -| main.rs:2551:13:2551:17 | value | | file://:0:0:0:0 | & | -| main.rs:2551:13:2551:17 | value | &T | {EXTERNAL LOCATION} | Box | -| main.rs:2551:13:2551:17 | value | &T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2551:13:2551:17 | value | &T.T | file://:0:0:0:0 | & | -| main.rs:2551:13:2551:17 | value | &T.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2551:22:2551:25 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2551:22:2551:25 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2551:22:2551:25 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2551:22:2551:25 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2551:22:2551:25 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2551:22:2551:25 | map1 | V.T | file://:0:0:0:0 | & | -| main.rs:2551:22:2551:25 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2551:22:2551:34 | map1.values() | | {EXTERNAL LOCATION} | Values | -| main.rs:2551:22:2551:34 | map1.values() | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2551:22:2551:34 | map1.values() | V | {EXTERNAL LOCATION} | Box | -| main.rs:2551:22:2551:34 | map1.values() | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2551:22:2551:34 | map1.values() | V.T | file://:0:0:0:0 | & | -| main.rs:2551:22:2551:34 | map1.values() | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2548:33:2548:37 | "two" | | file://:0:0:0:0 | & | +| main.rs:2548:33:2548:37 | "two" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2549:13:2549:15 | key | | {EXTERNAL LOCATION} | Item | +| main.rs:2549:13:2549:15 | key | | file://:0:0:0:0 | & | +| main.rs:2549:13:2549:15 | key | &T | {EXTERNAL LOCATION} | i32 | +| main.rs:2549:20:2549:23 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2549:20:2549:23 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2549:20:2549:23 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2549:20:2549:23 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2549:20:2549:23 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2549:20:2549:23 | map1 | V.T | file://:0:0:0:0 | & | +| main.rs:2549:20:2549:23 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2549:20:2549:30 | map1.keys() | | {EXTERNAL LOCATION} | Keys | +| main.rs:2549:20:2549:30 | map1.keys() | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2549:20:2549:30 | map1.keys() | V | {EXTERNAL LOCATION} | Box | +| main.rs:2549:20:2549:30 | map1.keys() | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2549:20:2549:30 | map1.keys() | V.T | file://:0:0:0:0 | & | +| main.rs:2549:20:2549:30 | map1.keys() | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2550:13:2550:17 | value | | {EXTERNAL LOCATION} | Item | +| main.rs:2550:13:2550:17 | value | | file://:0:0:0:0 | & | +| main.rs:2550:13:2550:17 | value | &T | {EXTERNAL LOCATION} | Box | +| main.rs:2550:13:2550:17 | value | &T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2550:13:2550:17 | value | &T.T | file://:0:0:0:0 | & | +| main.rs:2550:13:2550:17 | value | &T.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2550:22:2550:25 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2550:22:2550:25 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2550:22:2550:25 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2550:22:2550:25 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2550:22:2550:25 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2550:22:2550:25 | map1 | V.T | file://:0:0:0:0 | & | +| main.rs:2550:22:2550:25 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2550:22:2550:34 | map1.values() | | {EXTERNAL LOCATION} | Values | +| main.rs:2550:22:2550:34 | map1.values() | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2550:22:2550:34 | map1.values() | V | {EXTERNAL LOCATION} | Box | +| main.rs:2550:22:2550:34 | map1.values() | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2550:22:2550:34 | map1.values() | V.T | file://:0:0:0:0 | & | +| main.rs:2550:22:2550:34 | map1.values() | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2551:13:2551:24 | TuplePat | | file://:0:0:0:0 | (T_2) | +| main.rs:2551:13:2551:24 | TuplePat | 0(2) | file://:0:0:0:0 | & | +| main.rs:2551:13:2551:24 | TuplePat | 0(2).&T | {EXTERNAL LOCATION} | i32 | +| main.rs:2551:13:2551:24 | TuplePat | 1(2) | file://:0:0:0:0 | & | +| main.rs:2551:13:2551:24 | TuplePat | 1(2).&T | {EXTERNAL LOCATION} | Box | +| main.rs:2551:13:2551:24 | TuplePat | 1(2).&T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2551:13:2551:24 | TuplePat | 1(2).&T.T | file://:0:0:0:0 | & | +| main.rs:2551:13:2551:24 | TuplePat | 1(2).&T.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2551:14:2551:16 | key | | file://:0:0:0:0 | & | +| main.rs:2551:14:2551:16 | key | &T | {EXTERNAL LOCATION} | i32 | +| main.rs:2551:19:2551:23 | value | | file://:0:0:0:0 | & | +| main.rs:2551:19:2551:23 | value | &T | {EXTERNAL LOCATION} | Box | +| main.rs:2551:19:2551:23 | value | &T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2551:19:2551:23 | value | &T.T | file://:0:0:0:0 | & | +| main.rs:2551:19:2551:23 | value | &T.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2551:29:2551:32 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2551:29:2551:32 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2551:29:2551:32 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2551:29:2551:32 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2551:29:2551:32 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2551:29:2551:32 | map1 | V.T | file://:0:0:0:0 | & | +| main.rs:2551:29:2551:32 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2551:29:2551:39 | map1.iter() | | {EXTERNAL LOCATION} | Iter | +| main.rs:2551:29:2551:39 | map1.iter() | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2551:29:2551:39 | map1.iter() | V | {EXTERNAL LOCATION} | Box | +| main.rs:2551:29:2551:39 | map1.iter() | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2551:29:2551:39 | map1.iter() | V.T | file://:0:0:0:0 | & | +| main.rs:2551:29:2551:39 | map1.iter() | V.T.&T | {EXTERNAL LOCATION} | str | | main.rs:2552:13:2552:24 | TuplePat | | file://:0:0:0:0 | (T_2) | | main.rs:2552:13:2552:24 | TuplePat | 0(2) | file://:0:0:0:0 | & | | main.rs:2552:13:2552:24 | TuplePat | 0(2).&T | {EXTERNAL LOCATION} | i32 | @@ -5330,515 +5358,487 @@ inferType | main.rs:2552:19:2552:23 | value | &T.A | {EXTERNAL LOCATION} | Global | | main.rs:2552:19:2552:23 | value | &T.T | file://:0:0:0:0 | & | | main.rs:2552:19:2552:23 | value | &T.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2552:29:2552:32 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2552:29:2552:32 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2552:29:2552:32 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2552:29:2552:32 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2552:29:2552:32 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2552:29:2552:32 | map1 | V.T | file://:0:0:0:0 | & | -| main.rs:2552:29:2552:32 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2552:29:2552:39 | map1.iter() | | {EXTERNAL LOCATION} | Iter | -| main.rs:2552:29:2552:39 | map1.iter() | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2552:29:2552:39 | map1.iter() | V | {EXTERNAL LOCATION} | Box | -| main.rs:2552:29:2552:39 | map1.iter() | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2552:29:2552:39 | map1.iter() | V.T | file://:0:0:0:0 | & | -| main.rs:2552:29:2552:39 | map1.iter() | V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2553:13:2553:24 | TuplePat | | file://:0:0:0:0 | (T_2) | -| main.rs:2553:13:2553:24 | TuplePat | 0(2) | file://:0:0:0:0 | & | -| main.rs:2553:13:2553:24 | TuplePat | 0(2).&T | {EXTERNAL LOCATION} | i32 | -| main.rs:2553:13:2553:24 | TuplePat | 1(2) | file://:0:0:0:0 | & | -| main.rs:2553:13:2553:24 | TuplePat | 1(2).&T | {EXTERNAL LOCATION} | Box | -| main.rs:2553:13:2553:24 | TuplePat | 1(2).&T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2553:13:2553:24 | TuplePat | 1(2).&T.T | file://:0:0:0:0 | & | -| main.rs:2553:13:2553:24 | TuplePat | 1(2).&T.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2553:14:2553:16 | key | | file://:0:0:0:0 | & | -| main.rs:2553:14:2553:16 | key | &T | {EXTERNAL LOCATION} | i32 | -| main.rs:2553:19:2553:23 | value | | file://:0:0:0:0 | & | -| main.rs:2553:19:2553:23 | value | &T | {EXTERNAL LOCATION} | Box | -| main.rs:2553:19:2553:23 | value | &T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2553:19:2553:23 | value | &T.T | file://:0:0:0:0 | & | -| main.rs:2553:19:2553:23 | value | &T.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2553:29:2553:33 | &map1 | | file://:0:0:0:0 | & | -| main.rs:2553:29:2553:33 | &map1 | &T | {EXTERNAL LOCATION} | HashMap | -| main.rs:2553:29:2553:33 | &map1 | &T.K | {EXTERNAL LOCATION} | i32 | -| main.rs:2553:29:2553:33 | &map1 | &T.S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2553:29:2553:33 | &map1 | &T.V | {EXTERNAL LOCATION} | Box | -| main.rs:2553:29:2553:33 | &map1 | &T.V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2553:29:2553:33 | &map1 | &T.V.T | file://:0:0:0:0 | & | -| main.rs:2553:29:2553:33 | &map1 | &T.V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2553:30:2553:33 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2553:30:2553:33 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2553:30:2553:33 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2553:30:2553:33 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2553:30:2553:33 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2553:30:2553:33 | map1 | V.T | file://:0:0:0:0 | & | -| main.rs:2553:30:2553:33 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2557:17:2557:17 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2557:26:2557:26 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2557:26:2557:26 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2559:23:2559:23 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2559:23:2559:28 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2559:27:2559:28 | 10 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2559:27:2559:28 | 10 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2561:13:2561:13 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2561:13:2561:18 | ... += ... | | file://:0:0:0:0 | () | -| main.rs:2561:18:2561:18 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2573:40:2575:9 | { ... } | | {EXTERNAL LOCATION} | Option | -| main.rs:2573:40:2575:9 | { ... } | T | main.rs:2567:5:2567:20 | S1 | -| main.rs:2573:40:2575:9 | { ... } | T.T | main.rs:2572:10:2572:19 | T | -| main.rs:2574:13:2574:16 | None | | {EXTERNAL LOCATION} | Option | -| main.rs:2574:13:2574:16 | None | T | main.rs:2567:5:2567:20 | S1 | -| main.rs:2574:13:2574:16 | None | T.T | main.rs:2572:10:2572:19 | T | -| main.rs:2577:30:2579:9 | { ... } | | main.rs:2567:5:2567:20 | S1 | -| main.rs:2577:30:2579:9 | { ... } | T | main.rs:2572:10:2572:19 | T | -| main.rs:2578:13:2578:28 | S1(...) | | main.rs:2567:5:2567:20 | S1 | -| main.rs:2578:13:2578:28 | S1(...) | T | main.rs:2572:10:2572:19 | T | -| main.rs:2578:16:2578:27 | ...::default(...) | | main.rs:2572:10:2572:19 | T | -| main.rs:2581:19:2581:22 | SelfParam | | main.rs:2567:5:2567:20 | S1 | -| main.rs:2581:19:2581:22 | SelfParam | T | main.rs:2572:10:2572:19 | T | -| main.rs:2581:33:2583:9 | { ... } | | main.rs:2567:5:2567:20 | S1 | -| main.rs:2581:33:2583:9 | { ... } | T | main.rs:2572:10:2572:19 | T | -| main.rs:2582:13:2582:16 | self | | main.rs:2567:5:2567:20 | S1 | -| main.rs:2582:13:2582:16 | self | T | main.rs:2572:10:2572:19 | T | -| main.rs:2594:15:2594:15 | x | | main.rs:2594:12:2594:12 | T | -| main.rs:2594:26:2596:5 | { ... } | | main.rs:2594:12:2594:12 | T | -| main.rs:2595:9:2595:9 | x | | main.rs:2594:12:2594:12 | T | -| main.rs:2599:13:2599:14 | x1 | | {EXTERNAL LOCATION} | Option | -| main.rs:2599:13:2599:14 | x1 | T | main.rs:2567:5:2567:20 | S1 | -| main.rs:2599:13:2599:14 | x1 | T.T | main.rs:2569:5:2570:14 | S2 | -| main.rs:2599:34:2599:48 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2599:34:2599:48 | ...::assoc_fun(...) | T | main.rs:2567:5:2567:20 | S1 | -| main.rs:2599:34:2599:48 | ...::assoc_fun(...) | T.T | main.rs:2569:5:2570:14 | S2 | -| main.rs:2600:13:2600:14 | x2 | | {EXTERNAL LOCATION} | Option | -| main.rs:2600:13:2600:14 | x2 | T | main.rs:2567:5:2567:20 | S1 | -| main.rs:2600:13:2600:14 | x2 | T.T | main.rs:2569:5:2570:14 | S2 | -| main.rs:2600:18:2600:38 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2600:18:2600:38 | ...::assoc_fun(...) | T | main.rs:2567:5:2567:20 | S1 | -| main.rs:2600:18:2600:38 | ...::assoc_fun(...) | T.T | main.rs:2569:5:2570:14 | S2 | -| main.rs:2601:13:2601:14 | x3 | | {EXTERNAL LOCATION} | Option | -| main.rs:2601:13:2601:14 | x3 | T | main.rs:2567:5:2567:20 | S1 | -| main.rs:2601:13:2601:14 | x3 | T.T | main.rs:2569:5:2570:14 | S2 | -| main.rs:2601:18:2601:32 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2601:18:2601:32 | ...::assoc_fun(...) | T | main.rs:2567:5:2567:20 | S1 | -| main.rs:2601:18:2601:32 | ...::assoc_fun(...) | T.T | main.rs:2569:5:2570:14 | S2 | -| main.rs:2602:13:2602:14 | x4 | | main.rs:2567:5:2567:20 | S1 | -| main.rs:2602:13:2602:14 | x4 | T | main.rs:2569:5:2570:14 | S2 | -| main.rs:2602:18:2602:48 | ...::method(...) | | main.rs:2567:5:2567:20 | S1 | -| main.rs:2602:18:2602:48 | ...::method(...) | T | main.rs:2569:5:2570:14 | S2 | -| main.rs:2602:35:2602:47 | ...::default(...) | | main.rs:2567:5:2567:20 | S1 | -| main.rs:2602:35:2602:47 | ...::default(...) | T | main.rs:2569:5:2570:14 | S2 | -| main.rs:2603:13:2603:14 | x5 | | main.rs:2567:5:2567:20 | S1 | -| main.rs:2603:13:2603:14 | x5 | T | main.rs:2569:5:2570:14 | S2 | -| main.rs:2603:18:2603:42 | ...::method(...) | | main.rs:2567:5:2567:20 | S1 | -| main.rs:2603:18:2603:42 | ...::method(...) | T | main.rs:2569:5:2570:14 | S2 | -| main.rs:2603:29:2603:41 | ...::default(...) | | main.rs:2567:5:2567:20 | S1 | -| main.rs:2603:29:2603:41 | ...::default(...) | T | main.rs:2569:5:2570:14 | S2 | -| main.rs:2604:13:2604:14 | x6 | | main.rs:2588:5:2588:27 | S4 | -| main.rs:2604:13:2604:14 | x6 | T4 | main.rs:2569:5:2570:14 | S2 | -| main.rs:2604:18:2604:45 | S4::<...>(...) | | main.rs:2588:5:2588:27 | S4 | -| main.rs:2604:18:2604:45 | S4::<...>(...) | T4 | main.rs:2569:5:2570:14 | S2 | -| main.rs:2604:27:2604:44 | ...::default(...) | | main.rs:2569:5:2570:14 | S2 | -| main.rs:2605:13:2605:14 | x7 | | main.rs:2588:5:2588:27 | S4 | -| main.rs:2605:13:2605:14 | x7 | T4 | main.rs:2569:5:2570:14 | S2 | -| main.rs:2605:18:2605:23 | S4(...) | | main.rs:2588:5:2588:27 | S4 | -| main.rs:2605:18:2605:23 | S4(...) | T4 | main.rs:2569:5:2570:14 | S2 | -| main.rs:2605:21:2605:22 | S2 | | main.rs:2569:5:2570:14 | S2 | -| main.rs:2606:13:2606:14 | x8 | | main.rs:2588:5:2588:27 | S4 | -| main.rs:2606:13:2606:14 | x8 | T4 | {EXTERNAL LOCATION} | i32 | -| main.rs:2606:18:2606:22 | S4(...) | | main.rs:2588:5:2588:27 | S4 | -| main.rs:2606:18:2606:22 | S4(...) | T4 | {EXTERNAL LOCATION} | i32 | -| main.rs:2606:21:2606:21 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2607:13:2607:14 | x9 | | main.rs:2588:5:2588:27 | S4 | -| main.rs:2607:13:2607:14 | x9 | T4 | main.rs:2569:5:2570:14 | S2 | -| main.rs:2607:18:2607:34 | S4(...) | | main.rs:2588:5:2588:27 | S4 | -| main.rs:2607:18:2607:34 | S4(...) | T4 | main.rs:2569:5:2570:14 | S2 | -| main.rs:2607:21:2607:33 | ...::default(...) | | main.rs:2569:5:2570:14 | S2 | -| main.rs:2608:13:2608:15 | x10 | | main.rs:2590:5:2592:5 | S5 | -| main.rs:2608:13:2608:15 | x10 | T5 | main.rs:2569:5:2570:14 | S2 | -| main.rs:2608:19:2611:9 | S5::<...> {...} | | main.rs:2590:5:2592:5 | S5 | -| main.rs:2608:19:2611:9 | S5::<...> {...} | T5 | main.rs:2569:5:2570:14 | S2 | -| main.rs:2610:20:2610:37 | ...::default(...) | | main.rs:2569:5:2570:14 | S2 | -| main.rs:2612:13:2612:15 | x11 | | main.rs:2590:5:2592:5 | S5 | -| main.rs:2612:13:2612:15 | x11 | T5 | main.rs:2569:5:2570:14 | S2 | -| main.rs:2612:19:2612:34 | S5 {...} | | main.rs:2590:5:2592:5 | S5 | -| main.rs:2612:19:2612:34 | S5 {...} | T5 | main.rs:2569:5:2570:14 | S2 | -| main.rs:2612:31:2612:32 | S2 | | main.rs:2569:5:2570:14 | S2 | -| main.rs:2613:13:2613:15 | x12 | | main.rs:2590:5:2592:5 | S5 | -| main.rs:2613:13:2613:15 | x12 | T5 | {EXTERNAL LOCATION} | i32 | -| main.rs:2613:19:2613:33 | S5 {...} | | main.rs:2590:5:2592:5 | S5 | -| main.rs:2613:19:2613:33 | S5 {...} | T5 | {EXTERNAL LOCATION} | i32 | -| main.rs:2613:31:2613:31 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2614:13:2614:15 | x13 | | main.rs:2590:5:2592:5 | S5 | -| main.rs:2614:13:2614:15 | x13 | T5 | main.rs:2569:5:2570:14 | S2 | -| main.rs:2614:19:2617:9 | S5 {...} | | main.rs:2590:5:2592:5 | S5 | -| main.rs:2614:19:2617:9 | S5 {...} | T5 | main.rs:2569:5:2570:14 | S2 | -| main.rs:2616:20:2616:32 | ...::default(...) | | main.rs:2569:5:2570:14 | S2 | -| main.rs:2618:13:2618:15 | x14 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2618:19:2618:48 | foo::<...>(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:2618:30:2618:47 | ...::default(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:2619:13:2619:15 | x15 | | main.rs:2567:5:2567:20 | S1 | -| main.rs:2619:13:2619:15 | x15 | T | main.rs:2569:5:2570:14 | S2 | -| main.rs:2619:19:2619:37 | ...::default(...) | | main.rs:2567:5:2567:20 | S1 | -| main.rs:2619:19:2619:37 | ...::default(...) | T | main.rs:2569:5:2570:14 | S2 | -| main.rs:2628:35:2630:9 | { ... } | | file://:0:0:0:0 | (T_2) | -| main.rs:2628:35:2630:9 | { ... } | 0(2) | main.rs:2624:5:2625:16 | S1 | -| main.rs:2628:35:2630:9 | { ... } | 1(2) | main.rs:2624:5:2625:16 | S1 | -| main.rs:2629:13:2629:26 | TupleExpr | | file://:0:0:0:0 | (T_2) | -| main.rs:2629:13:2629:26 | TupleExpr | 0(2) | main.rs:2624:5:2625:16 | S1 | -| main.rs:2629:13:2629:26 | TupleExpr | 1(2) | main.rs:2624:5:2625:16 | S1 | -| main.rs:2629:14:2629:18 | S1 {...} | | main.rs:2624:5:2625:16 | S1 | -| main.rs:2629:21:2629:25 | S1 {...} | | main.rs:2624:5:2625:16 | S1 | -| main.rs:2631:16:2631:19 | SelfParam | | main.rs:2624:5:2625:16 | S1 | -| main.rs:2635:13:2635:13 | a | | file://:0:0:0:0 | (T_2) | -| main.rs:2635:13:2635:13 | a | 0(2) | main.rs:2624:5:2625:16 | S1 | -| main.rs:2635:13:2635:13 | a | 1(2) | main.rs:2624:5:2625:16 | S1 | -| main.rs:2635:17:2635:30 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | -| main.rs:2635:17:2635:30 | ...::get_pair(...) | 0(2) | main.rs:2624:5:2625:16 | S1 | -| main.rs:2635:17:2635:30 | ...::get_pair(...) | 1(2) | main.rs:2624:5:2625:16 | S1 | -| main.rs:2636:17:2636:17 | b | | file://:0:0:0:0 | (T_2) | -| main.rs:2636:17:2636:17 | b | 0(2) | main.rs:2624:5:2625:16 | S1 | -| main.rs:2636:17:2636:17 | b | 1(2) | main.rs:2624:5:2625:16 | S1 | -| main.rs:2636:21:2636:34 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | -| main.rs:2636:21:2636:34 | ...::get_pair(...) | 0(2) | main.rs:2624:5:2625:16 | S1 | -| main.rs:2636:21:2636:34 | ...::get_pair(...) | 1(2) | main.rs:2624:5:2625:16 | S1 | -| main.rs:2637:13:2637:18 | TuplePat | | file://:0:0:0:0 | (T_2) | -| main.rs:2637:13:2637:18 | TuplePat | 0(2) | main.rs:2624:5:2625:16 | S1 | -| main.rs:2637:13:2637:18 | TuplePat | 1(2) | main.rs:2624:5:2625:16 | S1 | -| main.rs:2637:14:2637:14 | c | | main.rs:2624:5:2625:16 | S1 | -| main.rs:2637:17:2637:17 | d | | main.rs:2624:5:2625:16 | S1 | -| main.rs:2637:22:2637:35 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | -| main.rs:2637:22:2637:35 | ...::get_pair(...) | 0(2) | main.rs:2624:5:2625:16 | S1 | -| main.rs:2637:22:2637:35 | ...::get_pair(...) | 1(2) | main.rs:2624:5:2625:16 | S1 | -| main.rs:2638:13:2638:22 | TuplePat | | file://:0:0:0:0 | (T_2) | -| main.rs:2638:13:2638:22 | TuplePat | 0(2) | main.rs:2624:5:2625:16 | S1 | -| main.rs:2638:13:2638:22 | TuplePat | 1(2) | main.rs:2624:5:2625:16 | S1 | -| main.rs:2638:18:2638:18 | e | | main.rs:2624:5:2625:16 | S1 | -| main.rs:2638:21:2638:21 | f | | main.rs:2624:5:2625:16 | S1 | -| main.rs:2638:26:2638:39 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | -| main.rs:2638:26:2638:39 | ...::get_pair(...) | 0(2) | main.rs:2624:5:2625:16 | S1 | -| main.rs:2638:26:2638:39 | ...::get_pair(...) | 1(2) | main.rs:2624:5:2625:16 | S1 | -| main.rs:2639:13:2639:26 | TuplePat | | file://:0:0:0:0 | (T_2) | -| main.rs:2639:13:2639:26 | TuplePat | 0(2) | main.rs:2624:5:2625:16 | S1 | -| main.rs:2639:13:2639:26 | TuplePat | 1(2) | main.rs:2624:5:2625:16 | S1 | -| main.rs:2639:18:2639:18 | g | | main.rs:2624:5:2625:16 | S1 | -| main.rs:2639:25:2639:25 | h | | main.rs:2624:5:2625:16 | S1 | -| main.rs:2639:30:2639:43 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | -| main.rs:2639:30:2639:43 | ...::get_pair(...) | 0(2) | main.rs:2624:5:2625:16 | S1 | -| main.rs:2639:30:2639:43 | ...::get_pair(...) | 1(2) | main.rs:2624:5:2625:16 | S1 | -| main.rs:2641:9:2641:9 | a | | file://:0:0:0:0 | (T_2) | -| main.rs:2641:9:2641:9 | a | 0(2) | main.rs:2624:5:2625:16 | S1 | -| main.rs:2641:9:2641:9 | a | 1(2) | main.rs:2624:5:2625:16 | S1 | -| main.rs:2641:9:2641:11 | a.0 | | main.rs:2624:5:2625:16 | S1 | -| main.rs:2642:9:2642:9 | b | | file://:0:0:0:0 | (T_2) | -| main.rs:2642:9:2642:9 | b | 0(2) | main.rs:2624:5:2625:16 | S1 | -| main.rs:2642:9:2642:9 | b | 1(2) | main.rs:2624:5:2625:16 | S1 | -| main.rs:2642:9:2642:11 | b.1 | | main.rs:2624:5:2625:16 | S1 | -| main.rs:2643:9:2643:9 | c | | main.rs:2624:5:2625:16 | S1 | -| main.rs:2644:9:2644:9 | d | | main.rs:2624:5:2625:16 | S1 | -| main.rs:2645:9:2645:9 | e | | main.rs:2624:5:2625:16 | S1 | -| main.rs:2646:9:2646:9 | f | | main.rs:2624:5:2625:16 | S1 | -| main.rs:2647:9:2647:9 | g | | main.rs:2624:5:2625:16 | S1 | -| main.rs:2648:9:2648:9 | h | | main.rs:2624:5:2625:16 | S1 | -| main.rs:2653:13:2653:13 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2653:17:2653:34 | ...::default(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2654:13:2654:13 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2654:17:2654:34 | ...::default(...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2655:13:2655:16 | pair | | file://:0:0:0:0 | (T_2) | -| main.rs:2655:13:2655:16 | pair | 0(2) | {EXTERNAL LOCATION} | i64 | -| main.rs:2655:13:2655:16 | pair | 1(2) | {EXTERNAL LOCATION} | bool | -| main.rs:2655:20:2655:25 | TupleExpr | | file://:0:0:0:0 | (T_2) | -| main.rs:2655:20:2655:25 | TupleExpr | 0(2) | {EXTERNAL LOCATION} | i64 | -| main.rs:2655:20:2655:25 | TupleExpr | 1(2) | {EXTERNAL LOCATION} | bool | -| main.rs:2655:21:2655:21 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2655:24:2655:24 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2656:13:2656:13 | i | | {EXTERNAL LOCATION} | i64 | -| main.rs:2656:22:2656:25 | pair | | file://:0:0:0:0 | (T_2) | -| main.rs:2656:22:2656:25 | pair | 0(2) | {EXTERNAL LOCATION} | i64 | -| main.rs:2656:22:2656:25 | pair | 1(2) | {EXTERNAL LOCATION} | bool | -| main.rs:2656:22:2656:27 | pair.0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2657:13:2657:13 | j | | {EXTERNAL LOCATION} | bool | -| main.rs:2657:23:2657:26 | pair | | file://:0:0:0:0 | (T_2) | -| main.rs:2657:23:2657:26 | pair | 0(2) | {EXTERNAL LOCATION} | i64 | -| main.rs:2657:23:2657:26 | pair | 1(2) | {EXTERNAL LOCATION} | bool | -| main.rs:2657:23:2657:28 | pair.1 | | {EXTERNAL LOCATION} | bool | -| main.rs:2659:13:2659:16 | pair | | file://:0:0:0:0 | (T_2) | -| main.rs:2659:13:2659:16 | pair | 0(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2659:13:2659:16 | pair | 1(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2659:20:2659:25 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2659:20:2659:25 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2659:20:2659:32 | ... .into() | | file://:0:0:0:0 | (T_2) | -| main.rs:2659:20:2659:32 | ... .into() | 0(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2659:20:2659:32 | ... .into() | 1(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2659:21:2659:21 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2659:24:2659:24 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2660:15:2660:18 | pair | | file://:0:0:0:0 | (T_2) | -| main.rs:2660:15:2660:18 | pair | 0(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2660:15:2660:18 | pair | 1(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2661:13:2661:18 | TuplePat | | file://:0:0:0:0 | (T_2) | -| main.rs:2661:13:2661:18 | TuplePat | 0(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2661:13:2661:18 | TuplePat | 1(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2661:14:2661:14 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2661:17:2661:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2661:30:2661:41 | "unexpected" | | file://:0:0:0:0 | & | -| main.rs:2661:30:2661:41 | "unexpected" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2661:30:2661:41 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2661:30:2661:41 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2662:13:2662:13 | _ | | file://:0:0:0:0 | (T_2) | -| main.rs:2662:13:2662:13 | _ | 0(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2662:13:2662:13 | _ | 1(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2662:25:2662:34 | "expected" | | file://:0:0:0:0 | & | -| main.rs:2662:25:2662:34 | "expected" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2662:25:2662:34 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2662:25:2662:34 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2664:13:2664:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:2664:17:2664:20 | pair | | file://:0:0:0:0 | (T_2) | -| main.rs:2664:17:2664:20 | pair | 0(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2664:17:2664:20 | pair | 1(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2664:17:2664:22 | pair.0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2666:13:2666:13 | y | | file://:0:0:0:0 | & | -| main.rs:2666:13:2666:13 | y | &T | file://:0:0:0:0 | (T_2) | -| main.rs:2666:13:2666:13 | y | &T.0(2) | main.rs:2624:5:2625:16 | S1 | -| main.rs:2666:13:2666:13 | y | &T.1(2) | main.rs:2624:5:2625:16 | S1 | -| main.rs:2666:17:2666:31 | &... | | file://:0:0:0:0 | & | -| main.rs:2666:17:2666:31 | &... | &T | file://:0:0:0:0 | (T_2) | -| main.rs:2666:17:2666:31 | &... | &T.0(2) | main.rs:2624:5:2625:16 | S1 | -| main.rs:2666:17:2666:31 | &... | &T.1(2) | main.rs:2624:5:2625:16 | S1 | -| main.rs:2666:18:2666:31 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | -| main.rs:2666:18:2666:31 | ...::get_pair(...) | 0(2) | main.rs:2624:5:2625:16 | S1 | -| main.rs:2666:18:2666:31 | ...::get_pair(...) | 1(2) | main.rs:2624:5:2625:16 | S1 | -| main.rs:2667:9:2667:9 | y | | file://:0:0:0:0 | & | -| main.rs:2667:9:2667:9 | y | &T | file://:0:0:0:0 | (T_2) | -| main.rs:2667:9:2667:9 | y | &T.0(2) | main.rs:2624:5:2625:16 | S1 | -| main.rs:2667:9:2667:9 | y | &T.1(2) | main.rs:2624:5:2625:16 | S1 | -| main.rs:2667:9:2667:11 | y.0 | | main.rs:2624:5:2625:16 | S1 | -| main.rs:2674:13:2674:23 | boxed_value | | {EXTERNAL LOCATION} | Box | -| main.rs:2674:13:2674:23 | boxed_value | A | {EXTERNAL LOCATION} | Global | -| main.rs:2674:13:2674:23 | boxed_value | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2674:27:2674:42 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2674:27:2674:42 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2674:27:2674:42 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2674:36:2674:41 | 100i32 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2677:15:2677:25 | boxed_value | | {EXTERNAL LOCATION} | Box | -| main.rs:2677:15:2677:25 | boxed_value | A | {EXTERNAL LOCATION} | Global | -| main.rs:2677:15:2677:25 | boxed_value | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2678:13:2678:19 | box 100 | | {EXTERNAL LOCATION} | Box | -| main.rs:2678:13:2678:19 | box 100 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2678:13:2678:19 | box 100 | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2678:17:2678:19 | 100 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2679:26:2679:36 | "Boxed 100\\n" | | file://:0:0:0:0 | & | -| main.rs:2679:26:2679:36 | "Boxed 100\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2679:26:2679:36 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2679:26:2679:36 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2681:13:2681:17 | box ... | | {EXTERNAL LOCATION} | Box | -| main.rs:2681:13:2681:17 | box ... | A | {EXTERNAL LOCATION} | Global | -| main.rs:2681:13:2681:17 | box ... | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2683:26:2683:42 | "Boxed value: {}\\n" | | file://:0:0:0:0 | & | -| main.rs:2683:26:2683:42 | "Boxed value: {}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2683:26:2683:51 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2683:26:2683:51 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2688:13:2688:22 | nested_box | | {EXTERNAL LOCATION} | Box | -| main.rs:2688:13:2688:22 | nested_box | A | {EXTERNAL LOCATION} | Global | -| main.rs:2688:13:2688:22 | nested_box | T | {EXTERNAL LOCATION} | Box | -| main.rs:2688:13:2688:22 | nested_box | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2688:13:2688:22 | nested_box | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2688:26:2688:50 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2688:26:2688:50 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2688:26:2688:50 | ...::new(...) | T | {EXTERNAL LOCATION} | Box | -| main.rs:2688:26:2688:50 | ...::new(...) | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2688:26:2688:50 | ...::new(...) | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2688:35:2688:49 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2688:35:2688:49 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2688:35:2688:49 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2688:44:2688:48 | 42i32 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2689:15:2689:24 | nested_box | | {EXTERNAL LOCATION} | Box | -| main.rs:2689:15:2689:24 | nested_box | A | {EXTERNAL LOCATION} | Global | -| main.rs:2689:15:2689:24 | nested_box | T | {EXTERNAL LOCATION} | Box | -| main.rs:2689:15:2689:24 | nested_box | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2689:15:2689:24 | nested_box | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2690:13:2690:21 | box ... | | {EXTERNAL LOCATION} | Box | -| main.rs:2690:13:2690:21 | box ... | A | {EXTERNAL LOCATION} | Global | -| main.rs:2690:13:2690:21 | box ... | T | {EXTERNAL LOCATION} | Box | -| main.rs:2690:13:2690:21 | box ... | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2690:13:2690:21 | box ... | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2692:26:2692:43 | "Nested boxed: {}\\n" | | file://:0:0:0:0 | & | -| main.rs:2692:26:2692:43 | "Nested boxed: {}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2692:26:2692:59 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2692:26:2692:59 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2704:36:2706:9 | { ... } | | main.rs:2701:5:2701:22 | Path | -| main.rs:2705:13:2705:19 | Path {...} | | main.rs:2701:5:2701:22 | Path | -| main.rs:2708:29:2708:33 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2708:29:2708:33 | SelfParam | &T | main.rs:2701:5:2701:22 | Path | -| main.rs:2708:59:2710:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:2708:59:2710:9 | { ... } | E | file://:0:0:0:0 | () | -| main.rs:2708:59:2710:9 | { ... } | T | main.rs:2713:5:2713:25 | PathBuf | -| main.rs:2709:13:2709:30 | Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:2709:13:2709:30 | Ok(...) | E | file://:0:0:0:0 | () | -| main.rs:2709:13:2709:30 | Ok(...) | T | main.rs:2713:5:2713:25 | PathBuf | -| main.rs:2709:16:2709:29 | ...::new(...) | | main.rs:2713:5:2713:25 | PathBuf | -| main.rs:2716:39:2718:9 | { ... } | | main.rs:2713:5:2713:25 | PathBuf | -| main.rs:2717:13:2717:22 | PathBuf {...} | | main.rs:2713:5:2713:25 | PathBuf | -| main.rs:2726:18:2726:22 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2726:18:2726:22 | SelfParam | &T | main.rs:2713:5:2713:25 | PathBuf | -| main.rs:2726:34:2730:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:2726:34:2730:9 | { ... } | &T | main.rs:2701:5:2701:22 | Path | -| main.rs:2728:33:2728:43 | ...::new(...) | | main.rs:2701:5:2701:22 | Path | -| main.rs:2729:13:2729:17 | &path | | file://:0:0:0:0 | & | -| main.rs:2729:13:2729:17 | &path | &T | main.rs:2701:5:2701:22 | Path | -| main.rs:2729:14:2729:17 | path | | main.rs:2701:5:2701:22 | Path | -| main.rs:2734:13:2734:17 | path1 | | main.rs:2701:5:2701:22 | Path | -| main.rs:2734:21:2734:31 | ...::new(...) | | main.rs:2701:5:2701:22 | Path | -| main.rs:2735:13:2735:17 | path2 | | {EXTERNAL LOCATION} | Result | -| main.rs:2735:13:2735:17 | path2 | E | file://:0:0:0:0 | () | -| main.rs:2735:13:2735:17 | path2 | T | main.rs:2713:5:2713:25 | PathBuf | -| main.rs:2735:21:2735:25 | path1 | | main.rs:2701:5:2701:22 | Path | -| main.rs:2735:21:2735:40 | path1.canonicalize() | | {EXTERNAL LOCATION} | Result | -| main.rs:2735:21:2735:40 | path1.canonicalize() | E | file://:0:0:0:0 | () | -| main.rs:2735:21:2735:40 | path1.canonicalize() | T | main.rs:2713:5:2713:25 | PathBuf | -| main.rs:2736:13:2736:17 | path3 | | main.rs:2713:5:2713:25 | PathBuf | -| main.rs:2736:21:2736:25 | path2 | | {EXTERNAL LOCATION} | Result | -| main.rs:2736:21:2736:25 | path2 | E | file://:0:0:0:0 | () | -| main.rs:2736:21:2736:25 | path2 | T | main.rs:2713:5:2713:25 | PathBuf | -| main.rs:2736:21:2736:34 | path2.unwrap() | | main.rs:2713:5:2713:25 | PathBuf | -| main.rs:2738:13:2738:20 | pathbuf1 | | main.rs:2713:5:2713:25 | PathBuf | -| main.rs:2738:24:2738:37 | ...::new(...) | | main.rs:2713:5:2713:25 | PathBuf | -| main.rs:2739:24:2739:31 | pathbuf1 | | main.rs:2713:5:2713:25 | PathBuf | -| main.rs:2746:14:2746:18 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2746:14:2746:18 | SelfParam | &T | main.rs:2745:5:2747:5 | Self [trait MyTrait] | -| main.rs:2753:14:2753:18 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2753:14:2753:18 | SelfParam | &T | main.rs:2749:5:2750:19 | S | -| main.rs:2753:14:2753:18 | SelfParam | &T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2753:28:2755:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2754:13:2754:16 | self | | file://:0:0:0:0 | & | -| main.rs:2754:13:2754:16 | self | &T | main.rs:2749:5:2750:19 | S | -| main.rs:2754:13:2754:16 | self | &T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2754:13:2754:18 | self.0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2759:14:2759:18 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2759:14:2759:18 | SelfParam | &T | main.rs:2749:5:2750:19 | S | -| main.rs:2759:14:2759:18 | SelfParam | &T.T | main.rs:2749:5:2750:19 | S | -| main.rs:2759:14:2759:18 | SelfParam | &T.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2759:28:2761:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2760:13:2760:16 | self | | file://:0:0:0:0 | & | -| main.rs:2760:13:2760:16 | self | &T | main.rs:2749:5:2750:19 | S | -| main.rs:2760:13:2760:16 | self | &T.T | main.rs:2749:5:2750:19 | S | -| main.rs:2760:13:2760:16 | self | &T.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2760:13:2760:18 | self.0 | | main.rs:2749:5:2750:19 | S | -| main.rs:2760:13:2760:18 | self.0 | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2760:13:2760:21 | ... .0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2765:15:2765:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2765:15:2765:19 | SelfParam | &T | main.rs:2749:5:2750:19 | S | -| main.rs:2765:15:2765:19 | SelfParam | &T.T | main.rs:2764:10:2764:16 | T | -| main.rs:2765:33:2767:9 | { ... } | | main.rs:2749:5:2750:19 | S | -| main.rs:2765:33:2767:9 | { ... } | T | main.rs:2749:5:2750:19 | S | -| main.rs:2765:33:2767:9 | { ... } | T.T | main.rs:2764:10:2764:16 | T | -| main.rs:2766:13:2766:24 | S(...) | | main.rs:2749:5:2750:19 | S | -| main.rs:2766:13:2766:24 | S(...) | T | main.rs:2749:5:2750:19 | S | -| main.rs:2766:13:2766:24 | S(...) | T.T | main.rs:2764:10:2764:16 | T | -| main.rs:2766:15:2766:23 | S(...) | | main.rs:2749:5:2750:19 | S | -| main.rs:2766:15:2766:23 | S(...) | T | main.rs:2764:10:2764:16 | T | -| main.rs:2766:17:2766:20 | self | | file://:0:0:0:0 | & | -| main.rs:2766:17:2766:20 | self | &T | main.rs:2749:5:2750:19 | S | -| main.rs:2766:17:2766:20 | self | &T.T | main.rs:2764:10:2764:16 | T | -| main.rs:2766:17:2766:22 | self.0 | | main.rs:2764:10:2764:16 | T | -| main.rs:2770:14:2770:14 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2770:48:2787:5 | { ... } | | {EXTERNAL LOCATION} | Box | -| main.rs:2770:48:2787:5 | { ... } | A | {EXTERNAL LOCATION} | Global | -| main.rs:2770:48:2787:5 | { ... } | T | main.rs:2745:5:2747:5 | dyn MyTrait | -| main.rs:2770:48:2787:5 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2771:13:2771:13 | x | | main.rs:2749:5:2750:19 | S | -| main.rs:2771:13:2771:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2771:17:2776:9 | if b {...} else {...} | | main.rs:2749:5:2750:19 | S | -| main.rs:2771:17:2776:9 | if b {...} else {...} | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2771:20:2771:20 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2771:22:2774:9 | { ... } | | main.rs:2749:5:2750:19 | S | -| main.rs:2771:22:2774:9 | { ... } | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2772:17:2772:17 | y | | main.rs:2749:5:2750:19 | S | -| main.rs:2772:17:2772:17 | y | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2772:21:2772:38 | ...::default(...) | | main.rs:2749:5:2750:19 | S | -| main.rs:2772:21:2772:38 | ...::default(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2773:13:2773:13 | y | | main.rs:2749:5:2750:19 | S | -| main.rs:2773:13:2773:13 | y | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2774:16:2776:9 | { ... } | | main.rs:2749:5:2750:19 | S | -| main.rs:2774:16:2776:9 | { ... } | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2775:13:2775:16 | S(...) | | main.rs:2749:5:2750:19 | S | -| main.rs:2775:13:2775:16 | S(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2775:15:2775:15 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2780:13:2780:13 | x | | main.rs:2745:5:2747:5 | dyn MyTrait | -| main.rs:2780:13:2780:13 | x | | main.rs:2749:5:2750:19 | S | -| main.rs:2780:13:2780:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2780:13:2780:13 | x | dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2780:17:2780:20 | S(...) | | main.rs:2745:5:2747:5 | dyn MyTrait | -| main.rs:2780:17:2780:20 | S(...) | | main.rs:2749:5:2750:19 | S | -| main.rs:2780:17:2780:20 | S(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2780:17:2780:20 | S(...) | dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2780:19:2780:19 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2781:9:2786:9 | if b {...} else {...} | | {EXTERNAL LOCATION} | Box | -| main.rs:2781:9:2786:9 | if b {...} else {...} | A | {EXTERNAL LOCATION} | Global | -| main.rs:2781:9:2786:9 | if b {...} else {...} | T | main.rs:2745:5:2747:5 | dyn MyTrait | -| main.rs:2781:9:2786:9 | if b {...} else {...} | T | main.rs:2749:5:2750:19 | S | -| main.rs:2781:9:2786:9 | if b {...} else {...} | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2781:9:2786:9 | if b {...} else {...} | T.T | main.rs:2749:5:2750:19 | S | -| main.rs:2781:9:2786:9 | if b {...} else {...} | T.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2781:9:2786:9 | if b {...} else {...} | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2781:12:2781:12 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2781:14:2784:9 | { ... } | | {EXTERNAL LOCATION} | Box | -| main.rs:2781:14:2784:9 | { ... } | A | {EXTERNAL LOCATION} | Global | -| main.rs:2781:14:2784:9 | { ... } | T | main.rs:2745:5:2747:5 | dyn MyTrait | -| main.rs:2781:14:2784:9 | { ... } | T | main.rs:2749:5:2750:19 | S | -| main.rs:2781:14:2784:9 | { ... } | T.T | main.rs:2749:5:2750:19 | S | -| main.rs:2781:14:2784:9 | { ... } | T.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2781:14:2784:9 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2782:17:2782:17 | x | | main.rs:2745:5:2747:5 | dyn MyTrait | -| main.rs:2782:17:2782:17 | x | | main.rs:2749:5:2750:19 | S | -| main.rs:2782:17:2782:17 | x | T | main.rs:2749:5:2750:19 | S | -| main.rs:2782:17:2782:17 | x | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2782:17:2782:17 | x | dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2782:21:2782:21 | x | | main.rs:2745:5:2747:5 | dyn MyTrait | -| main.rs:2782:21:2782:21 | x | | main.rs:2749:5:2750:19 | S | -| main.rs:2782:21:2782:21 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2782:21:2782:21 | x | dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2782:21:2782:26 | x.m2() | | main.rs:2745:5:2747:5 | dyn MyTrait | -| main.rs:2782:21:2782:26 | x.m2() | | main.rs:2749:5:2750:19 | S | -| main.rs:2782:21:2782:26 | x.m2() | T | main.rs:2749:5:2750:19 | S | -| main.rs:2782:21:2782:26 | x.m2() | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2782:21:2782:26 | x.m2() | dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2783:13:2783:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2783:13:2783:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2783:13:2783:23 | ...::new(...) | T | main.rs:2745:5:2747:5 | dyn MyTrait | -| main.rs:2783:13:2783:23 | ...::new(...) | T | main.rs:2749:5:2750:19 | S | -| main.rs:2783:13:2783:23 | ...::new(...) | T.T | main.rs:2749:5:2750:19 | S | -| main.rs:2783:13:2783:23 | ...::new(...) | T.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2783:13:2783:23 | ...::new(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2783:22:2783:22 | x | | main.rs:2745:5:2747:5 | dyn MyTrait | -| main.rs:2783:22:2783:22 | x | | main.rs:2749:5:2750:19 | S | -| main.rs:2783:22:2783:22 | x | T | main.rs:2749:5:2750:19 | S | -| main.rs:2783:22:2783:22 | x | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2783:22:2783:22 | x | dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2784:16:2786:9 | { ... } | | {EXTERNAL LOCATION} | Box | -| main.rs:2784:16:2786:9 | { ... } | A | {EXTERNAL LOCATION} | Global | -| main.rs:2784:16:2786:9 | { ... } | T | main.rs:2745:5:2747:5 | dyn MyTrait | -| main.rs:2784:16:2786:9 | { ... } | T | main.rs:2749:5:2750:19 | S | -| main.rs:2784:16:2786:9 | { ... } | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2784:16:2786:9 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2785:13:2785:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2785:13:2785:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2785:13:2785:23 | ...::new(...) | T | main.rs:2745:5:2747:5 | dyn MyTrait | -| main.rs:2785:13:2785:23 | ...::new(...) | T | main.rs:2749:5:2750:19 | S | -| main.rs:2785:13:2785:23 | ...::new(...) | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2785:13:2785:23 | ...::new(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2785:22:2785:22 | x | | main.rs:2745:5:2747:5 | dyn MyTrait | -| main.rs:2785:22:2785:22 | x | | main.rs:2749:5:2750:19 | S | -| main.rs:2785:22:2785:22 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2785:22:2785:22 | x | dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2797:5:2797:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:2798:5:2798:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:2798:20:2798:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:2798:41:2798:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:2815:5:2815:15 | ...::f(...) | | {EXTERNAL LOCATION} | trait Future | -| main.rs:2828:5:2828:20 | ...::f(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2828:5:2828:20 | ...::f(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2828:5:2828:20 | ...::f(...) | T | main.rs:2745:5:2747:5 | dyn MyTrait | -| main.rs:2828:5:2828:20 | ...::f(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2828:16:2828:19 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2552:29:2552:33 | &map1 | | file://:0:0:0:0 | & | +| main.rs:2552:29:2552:33 | &map1 | &T | {EXTERNAL LOCATION} | HashMap | +| main.rs:2552:29:2552:33 | &map1 | &T.K | {EXTERNAL LOCATION} | i32 | +| main.rs:2552:29:2552:33 | &map1 | &T.S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2552:29:2552:33 | &map1 | &T.V | {EXTERNAL LOCATION} | Box | +| main.rs:2552:29:2552:33 | &map1 | &T.V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2552:29:2552:33 | &map1 | &T.V.T | file://:0:0:0:0 | & | +| main.rs:2552:29:2552:33 | &map1 | &T.V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2552:30:2552:33 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2552:30:2552:33 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2552:30:2552:33 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2552:30:2552:33 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2552:30:2552:33 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2552:30:2552:33 | map1 | V.T | file://:0:0:0:0 | & | +| main.rs:2552:30:2552:33 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2556:17:2556:17 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2556:26:2556:26 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2556:26:2556:26 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2558:23:2558:23 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2558:23:2558:28 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2558:27:2558:28 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2558:27:2558:28 | 10 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2560:13:2560:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2560:13:2560:18 | ... += ... | | file://:0:0:0:0 | () | +| main.rs:2560:18:2560:18 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2572:40:2574:9 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:2572:40:2574:9 | { ... } | T | main.rs:2566:5:2566:20 | S1 | +| main.rs:2572:40:2574:9 | { ... } | T.T | main.rs:2571:10:2571:19 | T | +| main.rs:2573:13:2573:16 | None | | {EXTERNAL LOCATION} | Option | +| main.rs:2573:13:2573:16 | None | T | main.rs:2566:5:2566:20 | S1 | +| main.rs:2573:13:2573:16 | None | T.T | main.rs:2571:10:2571:19 | T | +| main.rs:2576:30:2578:9 | { ... } | | main.rs:2566:5:2566:20 | S1 | +| main.rs:2576:30:2578:9 | { ... } | T | main.rs:2571:10:2571:19 | T | +| main.rs:2577:13:2577:28 | S1(...) | | main.rs:2566:5:2566:20 | S1 | +| main.rs:2577:13:2577:28 | S1(...) | T | main.rs:2571:10:2571:19 | T | +| main.rs:2577:16:2577:27 | ...::default(...) | | main.rs:2571:10:2571:19 | T | +| main.rs:2580:19:2580:22 | SelfParam | | main.rs:2566:5:2566:20 | S1 | +| main.rs:2580:19:2580:22 | SelfParam | T | main.rs:2571:10:2571:19 | T | +| main.rs:2580:33:2582:9 | { ... } | | main.rs:2566:5:2566:20 | S1 | +| main.rs:2580:33:2582:9 | { ... } | T | main.rs:2571:10:2571:19 | T | +| main.rs:2581:13:2581:16 | self | | main.rs:2566:5:2566:20 | S1 | +| main.rs:2581:13:2581:16 | self | T | main.rs:2571:10:2571:19 | T | +| main.rs:2593:15:2593:15 | x | | main.rs:2593:12:2593:12 | T | +| main.rs:2593:26:2595:5 | { ... } | | main.rs:2593:12:2593:12 | T | +| main.rs:2594:9:2594:9 | x | | main.rs:2593:12:2593:12 | T | +| main.rs:2598:13:2598:14 | x1 | | {EXTERNAL LOCATION} | Option | +| main.rs:2598:13:2598:14 | x1 | T | main.rs:2566:5:2566:20 | S1 | +| main.rs:2598:13:2598:14 | x1 | T.T | main.rs:2568:5:2569:14 | S2 | +| main.rs:2598:34:2598:48 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2598:34:2598:48 | ...::assoc_fun(...) | T | main.rs:2566:5:2566:20 | S1 | +| main.rs:2598:34:2598:48 | ...::assoc_fun(...) | T.T | main.rs:2568:5:2569:14 | S2 | +| main.rs:2599:13:2599:14 | x2 | | {EXTERNAL LOCATION} | Option | +| main.rs:2599:13:2599:14 | x2 | T | main.rs:2566:5:2566:20 | S1 | +| main.rs:2599:13:2599:14 | x2 | T.T | main.rs:2568:5:2569:14 | S2 | +| main.rs:2599:18:2599:38 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2599:18:2599:38 | ...::assoc_fun(...) | T | main.rs:2566:5:2566:20 | S1 | +| main.rs:2599:18:2599:38 | ...::assoc_fun(...) | T.T | main.rs:2568:5:2569:14 | S2 | +| main.rs:2600:13:2600:14 | x3 | | {EXTERNAL LOCATION} | Option | +| main.rs:2600:13:2600:14 | x3 | T | main.rs:2566:5:2566:20 | S1 | +| main.rs:2600:13:2600:14 | x3 | T.T | main.rs:2568:5:2569:14 | S2 | +| main.rs:2600:18:2600:32 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2600:18:2600:32 | ...::assoc_fun(...) | T | main.rs:2566:5:2566:20 | S1 | +| main.rs:2600:18:2600:32 | ...::assoc_fun(...) | T.T | main.rs:2568:5:2569:14 | S2 | +| main.rs:2601:13:2601:14 | x4 | | main.rs:2566:5:2566:20 | S1 | +| main.rs:2601:13:2601:14 | x4 | T | main.rs:2568:5:2569:14 | S2 | +| main.rs:2601:18:2601:48 | ...::method(...) | | main.rs:2566:5:2566:20 | S1 | +| main.rs:2601:18:2601:48 | ...::method(...) | T | main.rs:2568:5:2569:14 | S2 | +| main.rs:2601:35:2601:47 | ...::default(...) | | main.rs:2566:5:2566:20 | S1 | +| main.rs:2601:35:2601:47 | ...::default(...) | T | main.rs:2568:5:2569:14 | S2 | +| main.rs:2602:13:2602:14 | x5 | | main.rs:2566:5:2566:20 | S1 | +| main.rs:2602:13:2602:14 | x5 | T | main.rs:2568:5:2569:14 | S2 | +| main.rs:2602:18:2602:42 | ...::method(...) | | main.rs:2566:5:2566:20 | S1 | +| main.rs:2602:18:2602:42 | ...::method(...) | T | main.rs:2568:5:2569:14 | S2 | +| main.rs:2602:29:2602:41 | ...::default(...) | | main.rs:2566:5:2566:20 | S1 | +| main.rs:2602:29:2602:41 | ...::default(...) | T | main.rs:2568:5:2569:14 | S2 | +| main.rs:2603:13:2603:14 | x6 | | main.rs:2587:5:2587:27 | S4 | +| main.rs:2603:13:2603:14 | x6 | T4 | main.rs:2568:5:2569:14 | S2 | +| main.rs:2603:18:2603:45 | S4::<...>(...) | | main.rs:2587:5:2587:27 | S4 | +| main.rs:2603:18:2603:45 | S4::<...>(...) | T4 | main.rs:2568:5:2569:14 | S2 | +| main.rs:2603:27:2603:44 | ...::default(...) | | main.rs:2568:5:2569:14 | S2 | +| main.rs:2604:13:2604:14 | x7 | | main.rs:2587:5:2587:27 | S4 | +| main.rs:2604:13:2604:14 | x7 | T4 | main.rs:2568:5:2569:14 | S2 | +| main.rs:2604:18:2604:23 | S4(...) | | main.rs:2587:5:2587:27 | S4 | +| main.rs:2604:18:2604:23 | S4(...) | T4 | main.rs:2568:5:2569:14 | S2 | +| main.rs:2604:21:2604:22 | S2 | | main.rs:2568:5:2569:14 | S2 | +| main.rs:2605:13:2605:14 | x8 | | main.rs:2587:5:2587:27 | S4 | +| main.rs:2605:13:2605:14 | x8 | T4 | {EXTERNAL LOCATION} | i32 | +| main.rs:2605:18:2605:22 | S4(...) | | main.rs:2587:5:2587:27 | S4 | +| main.rs:2605:18:2605:22 | S4(...) | T4 | {EXTERNAL LOCATION} | i32 | +| main.rs:2605:21:2605:21 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2606:13:2606:14 | x9 | | main.rs:2587:5:2587:27 | S4 | +| main.rs:2606:13:2606:14 | x9 | T4 | main.rs:2568:5:2569:14 | S2 | +| main.rs:2606:18:2606:34 | S4(...) | | main.rs:2587:5:2587:27 | S4 | +| main.rs:2606:18:2606:34 | S4(...) | T4 | main.rs:2568:5:2569:14 | S2 | +| main.rs:2606:21:2606:33 | ...::default(...) | | main.rs:2568:5:2569:14 | S2 | +| main.rs:2607:13:2607:15 | x10 | | main.rs:2589:5:2591:5 | S5 | +| main.rs:2607:13:2607:15 | x10 | T5 | main.rs:2568:5:2569:14 | S2 | +| main.rs:2607:19:2610:9 | S5::<...> {...} | | main.rs:2589:5:2591:5 | S5 | +| main.rs:2607:19:2610:9 | S5::<...> {...} | T5 | main.rs:2568:5:2569:14 | S2 | +| main.rs:2609:20:2609:37 | ...::default(...) | | main.rs:2568:5:2569:14 | S2 | +| main.rs:2611:13:2611:15 | x11 | | main.rs:2589:5:2591:5 | S5 | +| main.rs:2611:13:2611:15 | x11 | T5 | main.rs:2568:5:2569:14 | S2 | +| main.rs:2611:19:2611:34 | S5 {...} | | main.rs:2589:5:2591:5 | S5 | +| main.rs:2611:19:2611:34 | S5 {...} | T5 | main.rs:2568:5:2569:14 | S2 | +| main.rs:2611:31:2611:32 | S2 | | main.rs:2568:5:2569:14 | S2 | +| main.rs:2612:13:2612:15 | x12 | | main.rs:2589:5:2591:5 | S5 | +| main.rs:2612:13:2612:15 | x12 | T5 | {EXTERNAL LOCATION} | i32 | +| main.rs:2612:19:2612:33 | S5 {...} | | main.rs:2589:5:2591:5 | S5 | +| main.rs:2612:19:2612:33 | S5 {...} | T5 | {EXTERNAL LOCATION} | i32 | +| main.rs:2612:31:2612:31 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2613:13:2613:15 | x13 | | main.rs:2589:5:2591:5 | S5 | +| main.rs:2613:13:2613:15 | x13 | T5 | main.rs:2568:5:2569:14 | S2 | +| main.rs:2613:19:2616:9 | S5 {...} | | main.rs:2589:5:2591:5 | S5 | +| main.rs:2613:19:2616:9 | S5 {...} | T5 | main.rs:2568:5:2569:14 | S2 | +| main.rs:2615:20:2615:32 | ...::default(...) | | main.rs:2568:5:2569:14 | S2 | +| main.rs:2617:13:2617:15 | x14 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2617:19:2617:48 | foo::<...>(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:2617:30:2617:47 | ...::default(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:2618:13:2618:15 | x15 | | main.rs:2566:5:2566:20 | S1 | +| main.rs:2618:13:2618:15 | x15 | T | main.rs:2568:5:2569:14 | S2 | +| main.rs:2618:19:2618:37 | ...::default(...) | | main.rs:2566:5:2566:20 | S1 | +| main.rs:2618:19:2618:37 | ...::default(...) | T | main.rs:2568:5:2569:14 | S2 | +| main.rs:2627:35:2629:9 | { ... } | | file://:0:0:0:0 | (T_2) | +| main.rs:2627:35:2629:9 | { ... } | 0(2) | main.rs:2623:5:2624:16 | S1 | +| main.rs:2627:35:2629:9 | { ... } | 1(2) | main.rs:2623:5:2624:16 | S1 | +| main.rs:2628:13:2628:26 | TupleExpr | | file://:0:0:0:0 | (T_2) | +| main.rs:2628:13:2628:26 | TupleExpr | 0(2) | main.rs:2623:5:2624:16 | S1 | +| main.rs:2628:13:2628:26 | TupleExpr | 1(2) | main.rs:2623:5:2624:16 | S1 | +| main.rs:2628:14:2628:18 | S1 {...} | | main.rs:2623:5:2624:16 | S1 | +| main.rs:2628:21:2628:25 | S1 {...} | | main.rs:2623:5:2624:16 | S1 | +| main.rs:2630:16:2630:19 | SelfParam | | main.rs:2623:5:2624:16 | S1 | +| main.rs:2634:13:2634:13 | a | | file://:0:0:0:0 | (T_2) | +| main.rs:2634:13:2634:13 | a | 0(2) | main.rs:2623:5:2624:16 | S1 | +| main.rs:2634:13:2634:13 | a | 1(2) | main.rs:2623:5:2624:16 | S1 | +| main.rs:2634:17:2634:30 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | +| main.rs:2634:17:2634:30 | ...::get_pair(...) | 0(2) | main.rs:2623:5:2624:16 | S1 | +| main.rs:2634:17:2634:30 | ...::get_pair(...) | 1(2) | main.rs:2623:5:2624:16 | S1 | +| main.rs:2635:17:2635:17 | b | | file://:0:0:0:0 | (T_2) | +| main.rs:2635:17:2635:17 | b | 0(2) | main.rs:2623:5:2624:16 | S1 | +| main.rs:2635:17:2635:17 | b | 1(2) | main.rs:2623:5:2624:16 | S1 | +| main.rs:2635:21:2635:34 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | +| main.rs:2635:21:2635:34 | ...::get_pair(...) | 0(2) | main.rs:2623:5:2624:16 | S1 | +| main.rs:2635:21:2635:34 | ...::get_pair(...) | 1(2) | main.rs:2623:5:2624:16 | S1 | +| main.rs:2636:13:2636:18 | TuplePat | | file://:0:0:0:0 | (T_2) | +| main.rs:2636:13:2636:18 | TuplePat | 0(2) | main.rs:2623:5:2624:16 | S1 | +| main.rs:2636:13:2636:18 | TuplePat | 1(2) | main.rs:2623:5:2624:16 | S1 | +| main.rs:2636:14:2636:14 | c | | main.rs:2623:5:2624:16 | S1 | +| main.rs:2636:17:2636:17 | d | | main.rs:2623:5:2624:16 | S1 | +| main.rs:2636:22:2636:35 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | +| main.rs:2636:22:2636:35 | ...::get_pair(...) | 0(2) | main.rs:2623:5:2624:16 | S1 | +| main.rs:2636:22:2636:35 | ...::get_pair(...) | 1(2) | main.rs:2623:5:2624:16 | S1 | +| main.rs:2637:13:2637:22 | TuplePat | | file://:0:0:0:0 | (T_2) | +| main.rs:2637:13:2637:22 | TuplePat | 0(2) | main.rs:2623:5:2624:16 | S1 | +| main.rs:2637:13:2637:22 | TuplePat | 1(2) | main.rs:2623:5:2624:16 | S1 | +| main.rs:2637:18:2637:18 | e | | main.rs:2623:5:2624:16 | S1 | +| main.rs:2637:21:2637:21 | f | | main.rs:2623:5:2624:16 | S1 | +| main.rs:2637:26:2637:39 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | +| main.rs:2637:26:2637:39 | ...::get_pair(...) | 0(2) | main.rs:2623:5:2624:16 | S1 | +| main.rs:2637:26:2637:39 | ...::get_pair(...) | 1(2) | main.rs:2623:5:2624:16 | S1 | +| main.rs:2638:13:2638:26 | TuplePat | | file://:0:0:0:0 | (T_2) | +| main.rs:2638:13:2638:26 | TuplePat | 0(2) | main.rs:2623:5:2624:16 | S1 | +| main.rs:2638:13:2638:26 | TuplePat | 1(2) | main.rs:2623:5:2624:16 | S1 | +| main.rs:2638:18:2638:18 | g | | main.rs:2623:5:2624:16 | S1 | +| main.rs:2638:25:2638:25 | h | | main.rs:2623:5:2624:16 | S1 | +| main.rs:2638:30:2638:43 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | +| main.rs:2638:30:2638:43 | ...::get_pair(...) | 0(2) | main.rs:2623:5:2624:16 | S1 | +| main.rs:2638:30:2638:43 | ...::get_pair(...) | 1(2) | main.rs:2623:5:2624:16 | S1 | +| main.rs:2640:9:2640:9 | a | | file://:0:0:0:0 | (T_2) | +| main.rs:2640:9:2640:9 | a | 0(2) | main.rs:2623:5:2624:16 | S1 | +| main.rs:2640:9:2640:9 | a | 1(2) | main.rs:2623:5:2624:16 | S1 | +| main.rs:2640:9:2640:11 | a.0 | | main.rs:2623:5:2624:16 | S1 | +| main.rs:2641:9:2641:9 | b | | file://:0:0:0:0 | (T_2) | +| main.rs:2641:9:2641:9 | b | 0(2) | main.rs:2623:5:2624:16 | S1 | +| main.rs:2641:9:2641:9 | b | 1(2) | main.rs:2623:5:2624:16 | S1 | +| main.rs:2641:9:2641:11 | b.1 | | main.rs:2623:5:2624:16 | S1 | +| main.rs:2642:9:2642:9 | c | | main.rs:2623:5:2624:16 | S1 | +| main.rs:2643:9:2643:9 | d | | main.rs:2623:5:2624:16 | S1 | +| main.rs:2644:9:2644:9 | e | | main.rs:2623:5:2624:16 | S1 | +| main.rs:2645:9:2645:9 | f | | main.rs:2623:5:2624:16 | S1 | +| main.rs:2646:9:2646:9 | g | | main.rs:2623:5:2624:16 | S1 | +| main.rs:2647:9:2647:9 | h | | main.rs:2623:5:2624:16 | S1 | +| main.rs:2652:13:2652:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2652:17:2652:34 | ...::default(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2653:13:2653:13 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2653:17:2653:34 | ...::default(...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2654:13:2654:16 | pair | | file://:0:0:0:0 | (T_2) | +| main.rs:2654:13:2654:16 | pair | 0(2) | {EXTERNAL LOCATION} | i64 | +| main.rs:2654:13:2654:16 | pair | 1(2) | {EXTERNAL LOCATION} | bool | +| main.rs:2654:20:2654:25 | TupleExpr | | file://:0:0:0:0 | (T_2) | +| main.rs:2654:20:2654:25 | TupleExpr | 0(2) | {EXTERNAL LOCATION} | i64 | +| main.rs:2654:20:2654:25 | TupleExpr | 1(2) | {EXTERNAL LOCATION} | bool | +| main.rs:2654:21:2654:21 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2654:24:2654:24 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2655:13:2655:13 | i | | {EXTERNAL LOCATION} | i64 | +| main.rs:2655:22:2655:25 | pair | | file://:0:0:0:0 | (T_2) | +| main.rs:2655:22:2655:25 | pair | 0(2) | {EXTERNAL LOCATION} | i64 | +| main.rs:2655:22:2655:25 | pair | 1(2) | {EXTERNAL LOCATION} | bool | +| main.rs:2655:22:2655:27 | pair.0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2656:13:2656:13 | j | | {EXTERNAL LOCATION} | bool | +| main.rs:2656:23:2656:26 | pair | | file://:0:0:0:0 | (T_2) | +| main.rs:2656:23:2656:26 | pair | 0(2) | {EXTERNAL LOCATION} | i64 | +| main.rs:2656:23:2656:26 | pair | 1(2) | {EXTERNAL LOCATION} | bool | +| main.rs:2656:23:2656:28 | pair.1 | | {EXTERNAL LOCATION} | bool | +| main.rs:2658:13:2658:16 | pair | | file://:0:0:0:0 | (T_2) | +| main.rs:2658:13:2658:16 | pair | 0(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2658:13:2658:16 | pair | 1(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2658:20:2658:25 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2658:20:2658:25 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2658:20:2658:32 | ... .into() | | file://:0:0:0:0 | (T_2) | +| main.rs:2658:20:2658:32 | ... .into() | 0(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2658:20:2658:32 | ... .into() | 1(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2658:21:2658:21 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2658:24:2658:24 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2659:15:2659:18 | pair | | file://:0:0:0:0 | (T_2) | +| main.rs:2659:15:2659:18 | pair | 0(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2659:15:2659:18 | pair | 1(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2660:13:2660:18 | TuplePat | | file://:0:0:0:0 | (T_2) | +| main.rs:2660:13:2660:18 | TuplePat | 0(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2660:13:2660:18 | TuplePat | 1(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2660:14:2660:14 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2660:17:2660:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2660:30:2660:41 | "unexpected" | | file://:0:0:0:0 | & | +| main.rs:2660:30:2660:41 | "unexpected" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2660:30:2660:41 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2660:30:2660:41 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2661:13:2661:13 | _ | | file://:0:0:0:0 | (T_2) | +| main.rs:2661:13:2661:13 | _ | 0(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2661:13:2661:13 | _ | 1(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2661:25:2661:34 | "expected" | | file://:0:0:0:0 | & | +| main.rs:2661:25:2661:34 | "expected" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2661:25:2661:34 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2661:25:2661:34 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2663:13:2663:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2663:17:2663:20 | pair | | file://:0:0:0:0 | (T_2) | +| main.rs:2663:17:2663:20 | pair | 0(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2663:17:2663:20 | pair | 1(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2663:17:2663:22 | pair.0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2665:13:2665:13 | y | | file://:0:0:0:0 | & | +| main.rs:2665:13:2665:13 | y | &T | file://:0:0:0:0 | (T_2) | +| main.rs:2665:13:2665:13 | y | &T.0(2) | main.rs:2623:5:2624:16 | S1 | +| main.rs:2665:13:2665:13 | y | &T.1(2) | main.rs:2623:5:2624:16 | S1 | +| main.rs:2665:17:2665:31 | &... | | file://:0:0:0:0 | & | +| main.rs:2665:17:2665:31 | &... | &T | file://:0:0:0:0 | (T_2) | +| main.rs:2665:17:2665:31 | &... | &T.0(2) | main.rs:2623:5:2624:16 | S1 | +| main.rs:2665:17:2665:31 | &... | &T.1(2) | main.rs:2623:5:2624:16 | S1 | +| main.rs:2665:18:2665:31 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | +| main.rs:2665:18:2665:31 | ...::get_pair(...) | 0(2) | main.rs:2623:5:2624:16 | S1 | +| main.rs:2665:18:2665:31 | ...::get_pair(...) | 1(2) | main.rs:2623:5:2624:16 | S1 | +| main.rs:2666:9:2666:9 | y | | file://:0:0:0:0 | & | +| main.rs:2666:9:2666:9 | y | &T | file://:0:0:0:0 | (T_2) | +| main.rs:2666:9:2666:9 | y | &T.0(2) | main.rs:2623:5:2624:16 | S1 | +| main.rs:2666:9:2666:9 | y | &T.1(2) | main.rs:2623:5:2624:16 | S1 | +| main.rs:2666:9:2666:11 | y.0 | | main.rs:2623:5:2624:16 | S1 | +| main.rs:2673:13:2673:23 | boxed_value | | {EXTERNAL LOCATION} | Box | +| main.rs:2673:13:2673:23 | boxed_value | A | {EXTERNAL LOCATION} | Global | +| main.rs:2673:13:2673:23 | boxed_value | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2673:27:2673:42 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2673:27:2673:42 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2673:27:2673:42 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2673:36:2673:41 | 100i32 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2676:15:2676:25 | boxed_value | | {EXTERNAL LOCATION} | Box | +| main.rs:2676:15:2676:25 | boxed_value | A | {EXTERNAL LOCATION} | Global | +| main.rs:2676:15:2676:25 | boxed_value | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2677:13:2677:19 | box 100 | | {EXTERNAL LOCATION} | Box | +| main.rs:2677:13:2677:19 | box 100 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2677:13:2677:19 | box 100 | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2677:17:2677:19 | 100 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2678:26:2678:36 | "Boxed 100\\n" | | file://:0:0:0:0 | & | +| main.rs:2678:26:2678:36 | "Boxed 100\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2678:26:2678:36 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2678:26:2678:36 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2680:13:2680:17 | box ... | | {EXTERNAL LOCATION} | Box | +| main.rs:2680:13:2680:17 | box ... | A | {EXTERNAL LOCATION} | Global | +| main.rs:2680:13:2680:17 | box ... | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2682:26:2682:42 | "Boxed value: {}\\n" | | file://:0:0:0:0 | & | +| main.rs:2682:26:2682:42 | "Boxed value: {}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2682:26:2682:51 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2682:26:2682:51 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2687:13:2687:22 | nested_box | | {EXTERNAL LOCATION} | Box | +| main.rs:2687:13:2687:22 | nested_box | A | {EXTERNAL LOCATION} | Global | +| main.rs:2687:13:2687:22 | nested_box | T | {EXTERNAL LOCATION} | Box | +| main.rs:2687:13:2687:22 | nested_box | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2687:13:2687:22 | nested_box | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2687:26:2687:50 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2687:26:2687:50 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2687:26:2687:50 | ...::new(...) | T | {EXTERNAL LOCATION} | Box | +| main.rs:2687:26:2687:50 | ...::new(...) | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2687:26:2687:50 | ...::new(...) | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2687:35:2687:49 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2687:35:2687:49 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2687:35:2687:49 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2687:44:2687:48 | 42i32 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2688:15:2688:24 | nested_box | | {EXTERNAL LOCATION} | Box | +| main.rs:2688:15:2688:24 | nested_box | A | {EXTERNAL LOCATION} | Global | +| main.rs:2688:15:2688:24 | nested_box | T | {EXTERNAL LOCATION} | Box | +| main.rs:2688:15:2688:24 | nested_box | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2688:15:2688:24 | nested_box | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2689:13:2689:21 | box ... | | {EXTERNAL LOCATION} | Box | +| main.rs:2689:13:2689:21 | box ... | A | {EXTERNAL LOCATION} | Global | +| main.rs:2689:13:2689:21 | box ... | T | {EXTERNAL LOCATION} | Box | +| main.rs:2689:13:2689:21 | box ... | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2689:13:2689:21 | box ... | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2691:26:2691:43 | "Nested boxed: {}\\n" | | file://:0:0:0:0 | & | +| main.rs:2691:26:2691:43 | "Nested boxed: {}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2691:26:2691:59 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2691:26:2691:59 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2703:36:2705:9 | { ... } | | main.rs:2700:5:2700:22 | Path | +| main.rs:2704:13:2704:19 | Path {...} | | main.rs:2700:5:2700:22 | Path | +| main.rs:2707:29:2707:33 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2707:29:2707:33 | SelfParam | &T | main.rs:2700:5:2700:22 | Path | +| main.rs:2707:59:2709:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:2707:59:2709:9 | { ... } | E | file://:0:0:0:0 | () | +| main.rs:2707:59:2709:9 | { ... } | T | main.rs:2712:5:2712:25 | PathBuf | +| main.rs:2708:13:2708:30 | Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:2708:13:2708:30 | Ok(...) | E | file://:0:0:0:0 | () | +| main.rs:2708:13:2708:30 | Ok(...) | T | main.rs:2712:5:2712:25 | PathBuf | +| main.rs:2708:16:2708:29 | ...::new(...) | | main.rs:2712:5:2712:25 | PathBuf | +| main.rs:2715:39:2717:9 | { ... } | | main.rs:2712:5:2712:25 | PathBuf | +| main.rs:2716:13:2716:22 | PathBuf {...} | | main.rs:2712:5:2712:25 | PathBuf | +| main.rs:2725:18:2725:22 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2725:18:2725:22 | SelfParam | &T | main.rs:2712:5:2712:25 | PathBuf | +| main.rs:2725:34:2729:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:2725:34:2729:9 | { ... } | &T | main.rs:2700:5:2700:22 | Path | +| main.rs:2727:33:2727:43 | ...::new(...) | | main.rs:2700:5:2700:22 | Path | +| main.rs:2728:13:2728:17 | &path | | file://:0:0:0:0 | & | +| main.rs:2728:13:2728:17 | &path | &T | main.rs:2700:5:2700:22 | Path | +| main.rs:2728:14:2728:17 | path | | main.rs:2700:5:2700:22 | Path | +| main.rs:2733:13:2733:17 | path1 | | main.rs:2700:5:2700:22 | Path | +| main.rs:2733:21:2733:31 | ...::new(...) | | main.rs:2700:5:2700:22 | Path | +| main.rs:2734:13:2734:17 | path2 | | {EXTERNAL LOCATION} | Result | +| main.rs:2734:13:2734:17 | path2 | E | file://:0:0:0:0 | () | +| main.rs:2734:13:2734:17 | path2 | T | main.rs:2712:5:2712:25 | PathBuf | +| main.rs:2734:21:2734:25 | path1 | | main.rs:2700:5:2700:22 | Path | +| main.rs:2734:21:2734:40 | path1.canonicalize() | | {EXTERNAL LOCATION} | Result | +| main.rs:2734:21:2734:40 | path1.canonicalize() | E | file://:0:0:0:0 | () | +| main.rs:2734:21:2734:40 | path1.canonicalize() | T | main.rs:2712:5:2712:25 | PathBuf | +| main.rs:2735:13:2735:17 | path3 | | main.rs:2712:5:2712:25 | PathBuf | +| main.rs:2735:21:2735:25 | path2 | | {EXTERNAL LOCATION} | Result | +| main.rs:2735:21:2735:25 | path2 | E | file://:0:0:0:0 | () | +| main.rs:2735:21:2735:25 | path2 | T | main.rs:2712:5:2712:25 | PathBuf | +| main.rs:2735:21:2735:34 | path2.unwrap() | | main.rs:2712:5:2712:25 | PathBuf | +| main.rs:2737:13:2737:20 | pathbuf1 | | main.rs:2712:5:2712:25 | PathBuf | +| main.rs:2737:24:2737:37 | ...::new(...) | | main.rs:2712:5:2712:25 | PathBuf | +| main.rs:2738:24:2738:31 | pathbuf1 | | main.rs:2712:5:2712:25 | PathBuf | +| main.rs:2745:14:2745:18 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2745:14:2745:18 | SelfParam | &T | main.rs:2744:5:2746:5 | Self [trait MyTrait] | +| main.rs:2752:14:2752:18 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2752:14:2752:18 | SelfParam | &T | main.rs:2748:5:2749:19 | S | +| main.rs:2752:14:2752:18 | SelfParam | &T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2752:28:2754:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2753:13:2753:16 | self | | file://:0:0:0:0 | & | +| main.rs:2753:13:2753:16 | self | &T | main.rs:2748:5:2749:19 | S | +| main.rs:2753:13:2753:16 | self | &T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2753:13:2753:18 | self.0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2758:14:2758:18 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2758:14:2758:18 | SelfParam | &T | main.rs:2748:5:2749:19 | S | +| main.rs:2758:14:2758:18 | SelfParam | &T.T | main.rs:2748:5:2749:19 | S | +| main.rs:2758:14:2758:18 | SelfParam | &T.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2758:28:2760:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2759:13:2759:16 | self | | file://:0:0:0:0 | & | +| main.rs:2759:13:2759:16 | self | &T | main.rs:2748:5:2749:19 | S | +| main.rs:2759:13:2759:16 | self | &T.T | main.rs:2748:5:2749:19 | S | +| main.rs:2759:13:2759:16 | self | &T.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2759:13:2759:18 | self.0 | | main.rs:2748:5:2749:19 | S | +| main.rs:2759:13:2759:18 | self.0 | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2759:13:2759:21 | ... .0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2764:15:2764:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2764:15:2764:19 | SelfParam | &T | main.rs:2748:5:2749:19 | S | +| main.rs:2764:15:2764:19 | SelfParam | &T.T | main.rs:2763:10:2763:16 | T | +| main.rs:2764:33:2766:9 | { ... } | | main.rs:2748:5:2749:19 | S | +| main.rs:2764:33:2766:9 | { ... } | T | main.rs:2748:5:2749:19 | S | +| main.rs:2764:33:2766:9 | { ... } | T.T | main.rs:2763:10:2763:16 | T | +| main.rs:2765:13:2765:24 | S(...) | | main.rs:2748:5:2749:19 | S | +| main.rs:2765:13:2765:24 | S(...) | T | main.rs:2748:5:2749:19 | S | +| main.rs:2765:13:2765:24 | S(...) | T.T | main.rs:2763:10:2763:16 | T | +| main.rs:2765:15:2765:23 | S(...) | | main.rs:2748:5:2749:19 | S | +| main.rs:2765:15:2765:23 | S(...) | T | main.rs:2763:10:2763:16 | T | +| main.rs:2765:17:2765:20 | self | | file://:0:0:0:0 | & | +| main.rs:2765:17:2765:20 | self | &T | main.rs:2748:5:2749:19 | S | +| main.rs:2765:17:2765:20 | self | &T.T | main.rs:2763:10:2763:16 | T | +| main.rs:2765:17:2765:22 | self.0 | | main.rs:2763:10:2763:16 | T | +| main.rs:2769:14:2769:14 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2769:48:2786:5 | { ... } | | {EXTERNAL LOCATION} | Box | +| main.rs:2769:48:2786:5 | { ... } | A | {EXTERNAL LOCATION} | Global | +| main.rs:2769:48:2786:5 | { ... } | T | main.rs:2744:5:2746:5 | dyn MyTrait | +| main.rs:2769:48:2786:5 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2770:13:2770:13 | x | | main.rs:2748:5:2749:19 | S | +| main.rs:2770:13:2770:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2770:17:2775:9 | if b {...} else {...} | | main.rs:2748:5:2749:19 | S | +| main.rs:2770:17:2775:9 | if b {...} else {...} | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2770:20:2770:20 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2770:22:2773:9 | { ... } | | main.rs:2748:5:2749:19 | S | +| main.rs:2770:22:2773:9 | { ... } | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2771:17:2771:17 | y | | main.rs:2748:5:2749:19 | S | +| main.rs:2771:17:2771:17 | y | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2771:21:2771:38 | ...::default(...) | | main.rs:2748:5:2749:19 | S | +| main.rs:2771:21:2771:38 | ...::default(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2772:13:2772:13 | y | | main.rs:2748:5:2749:19 | S | +| main.rs:2772:13:2772:13 | y | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2773:16:2775:9 | { ... } | | main.rs:2748:5:2749:19 | S | +| main.rs:2773:16:2775:9 | { ... } | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2774:13:2774:16 | S(...) | | main.rs:2748:5:2749:19 | S | +| main.rs:2774:13:2774:16 | S(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2774:15:2774:15 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2779:13:2779:13 | x | | main.rs:2744:5:2746:5 | dyn MyTrait | +| main.rs:2779:13:2779:13 | x | | main.rs:2748:5:2749:19 | S | +| main.rs:2779:13:2779:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2779:13:2779:13 | x | dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2779:17:2779:20 | S(...) | | main.rs:2744:5:2746:5 | dyn MyTrait | +| main.rs:2779:17:2779:20 | S(...) | | main.rs:2748:5:2749:19 | S | +| main.rs:2779:17:2779:20 | S(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2779:17:2779:20 | S(...) | dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2779:19:2779:19 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2780:9:2785:9 | if b {...} else {...} | | {EXTERNAL LOCATION} | Box | +| main.rs:2780:9:2785:9 | if b {...} else {...} | A | {EXTERNAL LOCATION} | Global | +| main.rs:2780:9:2785:9 | if b {...} else {...} | T | main.rs:2744:5:2746:5 | dyn MyTrait | +| main.rs:2780:9:2785:9 | if b {...} else {...} | T | main.rs:2748:5:2749:19 | S | +| main.rs:2780:9:2785:9 | if b {...} else {...} | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2780:9:2785:9 | if b {...} else {...} | T.T | main.rs:2748:5:2749:19 | S | +| main.rs:2780:9:2785:9 | if b {...} else {...} | T.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2780:9:2785:9 | if b {...} else {...} | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2780:12:2780:12 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2780:14:2783:9 | { ... } | | {EXTERNAL LOCATION} | Box | +| main.rs:2780:14:2783:9 | { ... } | A | {EXTERNAL LOCATION} | Global | +| main.rs:2780:14:2783:9 | { ... } | T | main.rs:2744:5:2746:5 | dyn MyTrait | +| main.rs:2780:14:2783:9 | { ... } | T | main.rs:2748:5:2749:19 | S | +| main.rs:2780:14:2783:9 | { ... } | T.T | main.rs:2748:5:2749:19 | S | +| main.rs:2780:14:2783:9 | { ... } | T.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2780:14:2783:9 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2781:17:2781:17 | x | | main.rs:2744:5:2746:5 | dyn MyTrait | +| main.rs:2781:17:2781:17 | x | | main.rs:2748:5:2749:19 | S | +| main.rs:2781:17:2781:17 | x | T | main.rs:2748:5:2749:19 | S | +| main.rs:2781:17:2781:17 | x | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2781:17:2781:17 | x | dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2781:21:2781:21 | x | | main.rs:2744:5:2746:5 | dyn MyTrait | +| main.rs:2781:21:2781:21 | x | | main.rs:2748:5:2749:19 | S | +| main.rs:2781:21:2781:21 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2781:21:2781:21 | x | dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2781:21:2781:26 | x.m2() | | main.rs:2744:5:2746:5 | dyn MyTrait | +| main.rs:2781:21:2781:26 | x.m2() | | main.rs:2748:5:2749:19 | S | +| main.rs:2781:21:2781:26 | x.m2() | T | main.rs:2748:5:2749:19 | S | +| main.rs:2781:21:2781:26 | x.m2() | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2781:21:2781:26 | x.m2() | dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2782:13:2782:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2782:13:2782:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2782:13:2782:23 | ...::new(...) | T | main.rs:2744:5:2746:5 | dyn MyTrait | +| main.rs:2782:13:2782:23 | ...::new(...) | T | main.rs:2748:5:2749:19 | S | +| main.rs:2782:13:2782:23 | ...::new(...) | T.T | main.rs:2748:5:2749:19 | S | +| main.rs:2782:13:2782:23 | ...::new(...) | T.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2782:13:2782:23 | ...::new(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2782:22:2782:22 | x | | main.rs:2744:5:2746:5 | dyn MyTrait | +| main.rs:2782:22:2782:22 | x | | main.rs:2748:5:2749:19 | S | +| main.rs:2782:22:2782:22 | x | T | main.rs:2748:5:2749:19 | S | +| main.rs:2782:22:2782:22 | x | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2782:22:2782:22 | x | dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2783:16:2785:9 | { ... } | | {EXTERNAL LOCATION} | Box | +| main.rs:2783:16:2785:9 | { ... } | A | {EXTERNAL LOCATION} | Global | +| main.rs:2783:16:2785:9 | { ... } | T | main.rs:2744:5:2746:5 | dyn MyTrait | +| main.rs:2783:16:2785:9 | { ... } | T | main.rs:2748:5:2749:19 | S | +| main.rs:2783:16:2785:9 | { ... } | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2783:16:2785:9 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2784:13:2784:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2784:13:2784:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2784:13:2784:23 | ...::new(...) | T | main.rs:2744:5:2746:5 | dyn MyTrait | +| main.rs:2784:13:2784:23 | ...::new(...) | T | main.rs:2748:5:2749:19 | S | +| main.rs:2784:13:2784:23 | ...::new(...) | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2784:13:2784:23 | ...::new(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2784:22:2784:22 | x | | main.rs:2744:5:2746:5 | dyn MyTrait | +| main.rs:2784:22:2784:22 | x | | main.rs:2748:5:2749:19 | S | +| main.rs:2784:22:2784:22 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2784:22:2784:22 | x | dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2796:5:2796:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:2797:5:2797:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:2797:20:2797:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:2797:41:2797:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:2814:5:2814:15 | ...::f(...) | | {EXTERNAL LOCATION} | trait Future | +| main.rs:2827:5:2827:20 | ...::f(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2827:5:2827:20 | ...::f(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2827:5:2827:20 | ...::f(...) | T | main.rs:2744:5:2746:5 | dyn MyTrait | +| main.rs:2827:5:2827:20 | ...::f(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2827:16:2827:19 | true | | {EXTERNAL LOCATION} | bool | | pattern_matching.rs:13:26:133:1 | { ... } | | {EXTERNAL LOCATION} | Option | | pattern_matching.rs:13:26:133:1 | { ... } | T | file://:0:0:0:0 | () | | pattern_matching.rs:14:9:14:13 | value | | {EXTERNAL LOCATION} | Option | From 4ea90e06a52bc1cd8cea47531a07078147ed91c9 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Wed, 29 Oct 2025 12:58:56 +0100 Subject: [PATCH 123/126] Dataflow: Minor drive-by qldoc addition. --- .../codeql/dataflow/internal/DataFlowImpl.qll | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll index e7b692cbec9..ddcd052e8fd 100644 --- a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll @@ -317,6 +317,13 @@ module MakeImpl Lang> { predicate returnMayFlowThrough(RetNd ret, ReturnKindExt kind); + /** + * Holds if this stage makes use of a store step of content `c` from + * `node1` to `node2`. + * + * `contentType` and `containerType` are the types of the content being + * stored, and the type of the resulting container, respectively. + */ predicate storeStepCand(Nd node1, Content c, Nd node2, Type contentType, Type containerType); predicate readStepCand(Nd n1, Content c, Nd n2); @@ -486,6 +493,14 @@ module MakeImpl Lang> { ) } + /** + * Holds if a node with type `containerType` is compatible with an + * access path with head content `apc`. This is determined by checking + * type compatibility against the possible types of nodes that are + * targets of store steps with content `apc`. + * + * Excludes the case where `apc` is compatible with all types. + */ bindingset[apc, containerType] pragma[inline_late] private predicate compatibleContainer(ApHeadContent apc, Type containerType) { From 6ed8bcbcf3f872cf835d35f6ecb9432db270f201 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Mon, 27 Oct 2025 14:03:31 +0100 Subject: [PATCH 124/126] Rust: Add type inference tests for method resolution overlap --- .../PathResolutionConsistency.expected | 16 +- .../test/library-tests/type-inference/main.rs | 38 + .../type-inference/type-inference.expected | 8113 +++++++++-------- 3 files changed, 4119 insertions(+), 4048 deletions(-) diff --git a/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected index 78f5d853e13..02a800650f3 100644 --- a/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected @@ -5,9 +5,13 @@ multipleCallTargets | dereference.rs:184:17:184:30 | ... .foo() | | dereference.rs:186:17:186:25 | S.bar(...) | | dereference.rs:187:17:187:29 | S.bar(...) | -| main.rs:2481:13:2481:31 | ...::from(...) | -| main.rs:2482:13:2482:31 | ...::from(...) | -| main.rs:2483:13:2483:31 | ...::from(...) | -| main.rs:2489:13:2489:31 | ...::from(...) | -| main.rs:2490:13:2490:31 | ...::from(...) | -| main.rs:2491:13:2491:31 | ...::from(...) | +| main.rs:589:9:589:14 | S4.m() | +| main.rs:590:9:590:18 | ...::m(...) | +| main.rs:591:9:591:20 | ... .m() | +| main.rs:592:9:592:24 | ...::m(...) | +| main.rs:2519:13:2519:31 | ...::from(...) | +| main.rs:2520:13:2520:31 | ...::from(...) | +| main.rs:2521:13:2521:31 | ...::from(...) | +| main.rs:2527:13:2527:31 | ...::from(...) | +| main.rs:2528:13:2528:31 | ...::from(...) | +| main.rs:2529:13:2529:31 | ...::from(...) | diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index ecf74fbd7bb..9505b919318 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -535,6 +535,37 @@ mod impl_overlap { } } + trait MyTrait1 { + // MyTrait1::m + fn m(&self) {} + } + + trait MyTrait2: MyTrait1 {} + + #[derive(Debug)] + struct S4; + + impl MyTrait1 for S4 { + // ::m + fn m(&self) {} + } + + impl MyTrait2 for S4 {} + + #[derive(Debug)] + struct S5(T5); + + impl MyTrait1 for S5 { + // _as_MyTrait1>::m + fn m(&self) {} + } + + impl MyTrait2 for S5 {} + + impl MyTrait1 for S5 {} + + impl MyTrait2 for S5 {} + pub fn f() { let x = S1; println!("{:?}", x.common_method()); // $ target=S1::common_method @@ -554,6 +585,13 @@ mod impl_overlap { let w = S3(S1); println!("{:?}", w.m(x)); // $ target=S3::m println!("{:?}", S3::m(&w, x)); // $ target=S3::m + + S4.m(); // $ target=::m $ SPURIOUS: target=MyTrait1::m + S4::m(&S4); // $ target=::m $ SPURIOUS: target=MyTrait1::m + S5(0i32).m(); // $ target=_as_MyTrait1>::m $ SPURIOUS: target=MyTrait1::m + S5::m(&S5(0i32)); // $ target=_as_MyTrait1>::m $ SPURIOUS: target=MyTrait1::m + S5(true).m(); // $ target=MyTrait1::m + S5::m(&S5(true)); // $ target=MyTrait1::m } } 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 05ee936cf25..6b6d9a13593 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -1787,4058 +1787,4087 @@ inferType | main.rs:534:13:534:16 | self | | file://:0:0:0:0 | & | | main.rs:534:13:534:16 | self | &T | main.rs:517:5:518:22 | S3 | | main.rs:534:13:534:16 | self | &T.T3 | main.rs:531:10:531:10 | T | -| main.rs:539:13:539:13 | x | | main.rs:446:5:447:14 | S1 | -| main.rs:539:17:539:18 | S1 | | main.rs:446:5:447:14 | S1 | -| main.rs:540:18:540:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:540:18:540:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:540:18:540:42 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:540:18:540:42 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:540:26:540:26 | x | | main.rs:446:5:447:14 | S1 | -| main.rs:540:26:540:42 | x.common_method() | | main.rs:446:5:447:14 | S1 | -| main.rs:541:18:541:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:541:18:541:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:541:18:541:45 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:541:18:541:45 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:541:26:541:45 | ...::common_method(...) | | main.rs:446:5:447:14 | S1 | -| main.rs:541:44:541:44 | x | | main.rs:446:5:447:14 | S1 | -| main.rs:542:18:542:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:542:18:542:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:542:18:542:44 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:542:18:542:44 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:542:26:542:26 | x | | main.rs:446:5:447:14 | S1 | -| main.rs:542:26:542:44 | x.common_method_2() | | main.rs:446:5:447:14 | S1 | -| main.rs:543:18:543:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:543:18:543:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:543:18:543:47 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:543:18:543:47 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:543:26:543:47 | ...::common_method_2(...) | | main.rs:446:5:447:14 | S1 | -| main.rs:543:46:543:46 | x | | main.rs:446:5:447:14 | S1 | -| main.rs:545:13:545:13 | y | | main.rs:479:5:479:22 | S2 | -| main.rs:545:13:545:13 | y | T2 | main.rs:446:5:447:14 | S1 | -| main.rs:545:17:545:22 | S2(...) | | main.rs:479:5:479:22 | S2 | -| main.rs:545:17:545:22 | S2(...) | T2 | main.rs:446:5:447:14 | S1 | -| main.rs:545:20:545:21 | S1 | | main.rs:446:5:447:14 | S1 | -| main.rs:546:18:546:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:546:18:546:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:546:18:546:42 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:546:18:546:42 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:546:26:546:26 | y | | main.rs:479:5:479:22 | S2 | -| main.rs:546:26:546:26 | y | T2 | main.rs:446:5:447:14 | S1 | -| main.rs:546:26:546:42 | y.common_method() | | main.rs:446:5:447:14 | S1 | -| main.rs:547:18:547:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:547:18:547:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:547:18:547:56 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:547:18:547:56 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:547:26:547:56 | ...::common_method(...) | | main.rs:446:5:447:14 | S1 | -| main.rs:547:50:547:55 | S2(...) | | main.rs:479:5:479:22 | S2 | -| main.rs:547:50:547:55 | S2(...) | T2 | main.rs:446:5:447:14 | S1 | -| main.rs:547:53:547:54 | S1 | | main.rs:446:5:447:14 | S1 | -| main.rs:549:13:549:13 | z | | main.rs:479:5:479:22 | S2 | -| main.rs:549:13:549:13 | z | T2 | {EXTERNAL LOCATION} | i32 | -| main.rs:549:17:549:21 | S2(...) | | main.rs:479:5:479:22 | S2 | -| main.rs:549:17:549:21 | S2(...) | T2 | {EXTERNAL LOCATION} | i32 | -| main.rs:549:20:549:20 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:550:18:550:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:550:18:550:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:550:18:550:42 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:550:18:550:42 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:550:26:550:26 | z | | main.rs:479:5:479:22 | S2 | -| main.rs:550:26:550:26 | z | T2 | {EXTERNAL LOCATION} | i32 | -| main.rs:550:26:550:42 | z.common_method() | | main.rs:446:5:447:14 | S1 | -| main.rs:551:18:551:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:551:18:551:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:551:18:551:49 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:551:18:551:49 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:551:26:551:49 | ...::common_method(...) | | main.rs:446:5:447:14 | S1 | -| main.rs:551:44:551:48 | S2(...) | | main.rs:479:5:479:22 | S2 | -| main.rs:551:44:551:48 | S2(...) | T2 | {EXTERNAL LOCATION} | i32 | -| main.rs:551:47:551:47 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:552:18:552:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:552:18:552:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:552:18:552:56 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:552:18:552:56 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:552:26:552:56 | ...::common_method(...) | | main.rs:446:5:447:14 | S1 | -| main.rs:552:51:552:55 | S2(...) | | main.rs:479:5:479:22 | S2 | -| main.rs:552:51:552:55 | S2(...) | T2 | {EXTERNAL LOCATION} | i32 | -| main.rs:552:54:552:54 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:554:13:554:13 | w | | main.rs:517:5:518:22 | S3 | -| main.rs:554:13:554:13 | w | T3 | main.rs:446:5:447:14 | S1 | -| main.rs:554:17:554:22 | S3(...) | | main.rs:517:5:518:22 | S3 | -| main.rs:554:17:554:22 | S3(...) | T3 | main.rs:446:5:447:14 | S1 | -| main.rs:554:20:554:21 | S1 | | main.rs:446:5:447:14 | S1 | -| main.rs:555:18:555:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:555:18:555:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:555:18:555:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:555:18:555:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:555:26:555:26 | w | | main.rs:517:5:518:22 | S3 | -| main.rs:555:26:555:26 | w | T3 | main.rs:446:5:447:14 | S1 | -| main.rs:555:26:555:31 | w.m(...) | | file://:0:0:0:0 | & | -| main.rs:555:26:555:31 | w.m(...) | &T | main.rs:517:5:518:22 | S3 | -| main.rs:555:26:555:31 | w.m(...) | &T.T3 | main.rs:446:5:447:14 | S1 | -| main.rs:555:30:555:30 | x | | main.rs:446:5:447:14 | S1 | -| main.rs:556:18:556:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:556:18:556:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:556:18:556:37 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:556:18:556:37 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:556:26:556:37 | ...::m(...) | | file://:0:0:0:0 | & | -| main.rs:556:26:556:37 | ...::m(...) | &T | main.rs:517:5:518:22 | S3 | -| main.rs:556:26:556:37 | ...::m(...) | &T.T3 | main.rs:446:5:447:14 | S1 | -| main.rs:556:32:556:33 | &w | | file://:0:0:0:0 | & | -| main.rs:556:32:556:33 | &w | &T | main.rs:517:5:518:22 | S3 | -| main.rs:556:32:556:33 | &w | &T.T3 | main.rs:446:5:447:14 | S1 | -| main.rs:556:33:556:33 | w | | main.rs:517:5:518:22 | S3 | -| main.rs:556:33:556:33 | w | T3 | main.rs:446:5:447:14 | S1 | -| main.rs:556:36:556:36 | x | | main.rs:446:5:447:14 | S1 | -| main.rs:573:19:573:22 | SelfParam | | main.rs:571:5:574:5 | Self [trait FirstTrait] | -| main.rs:578:19:578:22 | SelfParam | | main.rs:576:5:579:5 | Self [trait SecondTrait] | -| main.rs:581:64:581:64 | x | | main.rs:581:45:581:61 | T | -| main.rs:583:13:583:14 | s1 | | main.rs:581:35:581:42 | I | -| main.rs:583:18:583:18 | x | | main.rs:581:45:581:61 | T | -| main.rs:583:18:583:27 | x.method() | | main.rs:581:35:581:42 | I | -| main.rs:584:18:584:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:584:18:584:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:584:18:584:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:584:18:584:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:584:26:584:27 | s1 | | main.rs:581:35:581:42 | I | -| main.rs:587:65:587:65 | x | | main.rs:587:46:587:62 | T | -| main.rs:589:13:589:14 | s2 | | main.rs:587:36:587:43 | I | -| main.rs:589:18:589:18 | x | | main.rs:587:46:587:62 | T | -| main.rs:589:18:589:27 | x.method() | | main.rs:587:36:587:43 | I | -| main.rs:590:18:590:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:590:18:590:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:590:18:590:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:590:18:590:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:590:26:590:27 | s2 | | main.rs:587:36:587:43 | I | -| main.rs:593:49:593:49 | x | | main.rs:593:30:593:46 | T | -| main.rs:594:13:594:13 | s | | main.rs:563:5:564:14 | S1 | -| main.rs:594:17:594:17 | x | | main.rs:593:30:593:46 | T | -| main.rs:594:17:594:26 | x.method() | | main.rs:563:5:564:14 | S1 | -| main.rs:595:18:595:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:595:18:595:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:595:18:595:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:595:18:595:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:595:26:595:26 | s | | main.rs:563:5:564:14 | S1 | -| main.rs:598:53:598:53 | x | | main.rs:598:34:598:50 | T | -| main.rs:599:13:599:13 | s | | main.rs:563:5:564:14 | S1 | -| main.rs:599:17:599:17 | x | | main.rs:598:34:598:50 | T | -| main.rs:599:17:599:26 | x.method() | | main.rs:563:5:564:14 | S1 | -| main.rs:600:18:600:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:600:18:600:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:600:18:600:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:600:18:600:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:600:26:600:26 | s | | main.rs:563:5:564:14 | S1 | -| main.rs:603:43:603:43 | x | | main.rs:603:40:603:40 | T | -| main.rs:607:13:607:13 | s | | main.rs:563:5:564:14 | S1 | -| main.rs:607:17:607:17 | x | | main.rs:603:40:603:40 | T | -| main.rs:607:17:607:26 | x.method() | | main.rs:563:5:564:14 | S1 | -| main.rs:608:18:608:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:608:18:608:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:608:18:608:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:608:18:608:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:608:26:608:26 | s | | main.rs:563:5:564:14 | S1 | -| main.rs:612:16:612:19 | SelfParam | | main.rs:611:5:615:5 | Self [trait Pair] | -| main.rs:614:16:614:19 | SelfParam | | main.rs:611:5:615:5 | Self [trait Pair] | -| main.rs:617:53:617:53 | x | | main.rs:617:50:617:50 | T | -| main.rs:617:59:617:59 | y | | main.rs:617:50:617:50 | T | -| main.rs:622:13:622:13 | _ | | main.rs:563:5:564:14 | S1 | -| main.rs:622:17:622:17 | x | | main.rs:617:50:617:50 | T | -| main.rs:622:17:622:23 | x.fst() | | main.rs:563:5:564:14 | S1 | -| main.rs:623:13:623:13 | _ | | main.rs:563:5:564:14 | S1 | -| main.rs:623:17:623:17 | y | | main.rs:617:50:617:50 | T | -| main.rs:623:17:623:26 | y.method() | | main.rs:563:5:564:14 | S1 | -| main.rs:626:58:626:58 | x | | main.rs:626:41:626:55 | T | -| main.rs:626:64:626:64 | y | | main.rs:626:41:626:55 | T | -| main.rs:628:13:628:14 | s1 | | main.rs:563:5:564:14 | S1 | -| main.rs:628:18:628:18 | x | | main.rs:626:41:626:55 | T | -| main.rs:628:18:628:24 | x.fst() | | main.rs:563:5:564:14 | S1 | -| main.rs:629:13:629:14 | s2 | | main.rs:566:5:567:14 | S2 | -| main.rs:629:18:629:18 | y | | main.rs:626:41:626:55 | T | -| main.rs:629:18:629:24 | y.snd() | | main.rs:566:5:567:14 | S2 | -| main.rs:630:18:630:29 | "{:?}, {:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:630:18:630:29 | "{:?}, {:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:630:18:630:37 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:630:18:630:37 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:630:32:630:33 | s1 | | main.rs:563:5:564:14 | S1 | -| main.rs:630:36:630:37 | s2 | | main.rs:566:5:567:14 | S2 | -| main.rs:633:69:633:69 | x | | main.rs:633:52:633:66 | T | -| main.rs:633:75:633:75 | y | | main.rs:633:52:633:66 | T | -| main.rs:635:13:635:14 | s1 | | main.rs:563:5:564:14 | S1 | -| main.rs:635:18:635:18 | x | | main.rs:633:52:633:66 | T | -| main.rs:635:18:635:24 | x.fst() | | main.rs:563:5:564:14 | S1 | -| main.rs:636:13:636:14 | s2 | | main.rs:633:41:633:49 | T2 | -| main.rs:636:18:636:18 | y | | main.rs:633:52:633:66 | T | -| main.rs:636:18:636:24 | y.snd() | | main.rs:633:41:633:49 | T2 | -| main.rs:637:18:637:29 | "{:?}, {:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:637:18:637:29 | "{:?}, {:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:637:18:637:37 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:637:18:637:37 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:637:32:637:33 | s1 | | main.rs:563:5:564:14 | S1 | -| main.rs:637:36:637:37 | s2 | | main.rs:633:41:633:49 | T2 | -| main.rs:640:50:640:50 | x | | main.rs:640:41:640:47 | T | -| main.rs:640:56:640:56 | y | | main.rs:640:41:640:47 | T | -| main.rs:642:13:642:14 | s1 | | {EXTERNAL LOCATION} | bool | -| main.rs:642:18:642:18 | x | | main.rs:640:41:640:47 | T | -| main.rs:642:18:642:24 | x.fst() | | {EXTERNAL LOCATION} | bool | -| main.rs:643:13:643:14 | s2 | | {EXTERNAL LOCATION} | i64 | -| main.rs:643:18:643:18 | y | | main.rs:640:41:640:47 | T | -| main.rs:643:18:643:24 | y.snd() | | {EXTERNAL LOCATION} | i64 | -| main.rs:644:18:644:29 | "{:?}, {:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:644:18:644:29 | "{:?}, {:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:644:18:644:37 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:644:18:644:37 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:644:32:644:33 | s1 | | {EXTERNAL LOCATION} | bool | -| main.rs:644:36:644:37 | s2 | | {EXTERNAL LOCATION} | i64 | -| main.rs:647:54:647:54 | x | | main.rs:647:41:647:51 | T | -| main.rs:647:60:647:60 | y | | main.rs:647:41:647:51 | T | -| main.rs:649:13:649:14 | s1 | | {EXTERNAL LOCATION} | u8 | -| main.rs:649:18:649:18 | x | | main.rs:647:41:647:51 | T | -| main.rs:649:18:649:24 | x.fst() | | {EXTERNAL LOCATION} | u8 | -| main.rs:650:13:650:14 | s2 | | {EXTERNAL LOCATION} | i64 | -| main.rs:650:18:650:18 | y | | main.rs:647:41:647:51 | T | -| main.rs:650:18:650:24 | y.snd() | | {EXTERNAL LOCATION} | i64 | -| main.rs:651:18:651:29 | "{:?}, {:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:651:18:651:29 | "{:?}, {:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:651:18:651:37 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:651:18:651:37 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:651:32:651:33 | s1 | | {EXTERNAL LOCATION} | u8 | -| main.rs:651:36:651:37 | s2 | | {EXTERNAL LOCATION} | i64 | -| main.rs:659:18:659:22 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:659:18:659:22 | SelfParam | &T | main.rs:656:5:660:5 | Self [trait TraitWithSelfTp] | -| main.rs:662:40:662:44 | thing | | file://:0:0:0:0 | & | -| main.rs:662:40:662:44 | thing | &T | main.rs:662:17:662:37 | T | -| main.rs:662:56:664:5 | { ... } | | main.rs:662:14:662:14 | A | -| main.rs:663:9:663:13 | thing | | file://:0:0:0:0 | & | -| main.rs:663:9:663:13 | thing | &T | main.rs:662:17:662:37 | T | -| main.rs:663:9:663:21 | thing.get_a() | | main.rs:662:14:662:14 | A | -| main.rs:667:44:667:48 | thing | | main.rs:667:24:667:41 | S | -| main.rs:667:61:670:5 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:668:13:668:15 | _ms | | {EXTERNAL LOCATION} | Option | -| main.rs:668:13:668:15 | _ms | T | main.rs:667:24:667:41 | S | -| main.rs:668:19:668:23 | thing | | main.rs:667:24:667:41 | S | -| main.rs:668:19:668:31 | thing.get_a() | | {EXTERNAL LOCATION} | Option | -| main.rs:668:19:668:31 | thing.get_a() | T | main.rs:667:24:667:41 | S | -| main.rs:669:9:669:9 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:669:9:669:9 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:675:55:675:59 | thing | | file://:0:0:0:0 | & | -| main.rs:675:55:675:59 | thing | &T | main.rs:675:25:675:52 | S | -| main.rs:677:13:677:15 | _ms | | {EXTERNAL LOCATION} | Option | -| main.rs:677:13:677:15 | _ms | T | main.rs:675:25:675:52 | S | -| main.rs:677:19:677:30 | get_a(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:677:19:677:30 | get_a(...) | T | main.rs:675:25:675:52 | S | -| main.rs:677:25:677:29 | thing | | file://:0:0:0:0 | & | -| main.rs:677:25:677:29 | thing | &T | main.rs:675:25:675:52 | S | -| main.rs:686:18:686:22 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:686:18:686:22 | SelfParam | &T | main.rs:680:5:682:5 | MyStruct | -| main.rs:686:41:688:9 | { ... } | | {EXTERNAL LOCATION} | Option | -| main.rs:686:41:688:9 | { ... } | T | main.rs:680:5:682:5 | MyStruct | -| main.rs:687:13:687:48 | Some(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:687:13:687:48 | Some(...) | T | main.rs:680:5:682:5 | MyStruct | -| main.rs:687:18:687:47 | MyStruct {...} | | main.rs:680:5:682:5 | MyStruct | -| main.rs:687:36:687:39 | self | | file://:0:0:0:0 | & | -| main.rs:687:36:687:39 | self | &T | main.rs:680:5:682:5 | MyStruct | -| main.rs:687:36:687:45 | self.value | | {EXTERNAL LOCATION} | i32 | -| main.rs:694:13:694:13 | s | | main.rs:680:5:682:5 | MyStruct | -| main.rs:694:17:694:37 | MyStruct {...} | | main.rs:680:5:682:5 | MyStruct | -| main.rs:694:35:694:35 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:695:13:695:15 | _ms | | {EXTERNAL LOCATION} | Option | -| main.rs:695:13:695:15 | _ms | T | main.rs:680:5:682:5 | MyStruct | -| main.rs:695:19:695:27 | get_a(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:695:19:695:27 | get_a(...) | T | main.rs:680:5:682:5 | MyStruct | -| main.rs:695:25:695:26 | &s | | file://:0:0:0:0 | & | -| main.rs:695:25:695:26 | &s | &T | main.rs:680:5:682:5 | MyStruct | -| main.rs:695:26:695:26 | s | | main.rs:680:5:682:5 | MyStruct | -| main.rs:711:15:711:18 | SelfParam | | main.rs:710:5:721:5 | Self [trait MyTrait] | -| main.rs:713:15:713:18 | SelfParam | | main.rs:710:5:721:5 | Self [trait MyTrait] | -| main.rs:716:9:718:9 | { ... } | | main.rs:710:19:710:19 | A | -| main.rs:717:13:717:16 | self | | main.rs:710:5:721:5 | Self [trait MyTrait] | -| main.rs:717:13:717:21 | self.m1() | | main.rs:710:19:710:19 | A | -| main.rs:720:18:720:18 | x | | main.rs:710:5:721:5 | Self [trait MyTrait] | -| main.rs:725:50:725:50 | x | | main.rs:725:26:725:47 | T2 | -| main.rs:725:63:728:5 | { ... } | | main.rs:725:22:725:23 | T1 | -| main.rs:726:9:726:9 | x | | main.rs:725:26:725:47 | T2 | -| main.rs:726:9:726:14 | x.m1() | | main.rs:725:22:725:23 | T1 | -| main.rs:727:9:727:9 | x | | main.rs:725:26:725:47 | T2 | -| main.rs:727:9:727:14 | x.m1() | | main.rs:725:22:725:23 | T1 | -| main.rs:729:52:729:52 | x | | main.rs:729:28:729:49 | T2 | -| main.rs:729:65:733:5 | { ... } | | main.rs:729:24:729:25 | T1 | -| main.rs:730:13:730:13 | y | | main.rs:729:24:729:25 | T1 | -| main.rs:730:17:730:25 | ...::m1(...) | | main.rs:729:24:729:25 | T1 | -| main.rs:730:24:730:24 | x | | main.rs:729:28:729:49 | T2 | -| main.rs:731:9:731:9 | y | | main.rs:729:24:729:25 | T1 | -| main.rs:732:9:732:17 | ...::m1(...) | | main.rs:729:24:729:25 | T1 | -| main.rs:732:16:732:16 | x | | main.rs:729:28:729:49 | T2 | -| main.rs:734:52:734:52 | x | | main.rs:734:28:734:49 | T2 | -| main.rs:734:65:738:5 | { ... } | | main.rs:734:24:734:25 | T1 | -| main.rs:735:13:735:13 | y | | main.rs:734:24:734:25 | T1 | -| main.rs:735:17:735:30 | ...::m1(...) | | main.rs:734:24:734:25 | T1 | -| main.rs:735:29:735:29 | x | | main.rs:734:28:734:49 | T2 | -| main.rs:736:9:736:9 | y | | main.rs:734:24:734:25 | T1 | -| main.rs:737:9:737:22 | ...::m1(...) | | main.rs:734:24:734:25 | T1 | -| main.rs:737:21:737:21 | x | | main.rs:734:28:734:49 | T2 | -| main.rs:739:55:739:55 | x | | main.rs:739:31:739:52 | T2 | -| main.rs:739:68:743:5 | { ... } | | main.rs:739:27:739:28 | T1 | -| main.rs:740:13:740:13 | y | | main.rs:739:27:739:28 | T1 | -| main.rs:740:17:740:28 | ...::assoc(...) | | main.rs:739:27:739:28 | T1 | -| main.rs:740:27:740:27 | x | | main.rs:739:31:739:52 | T2 | -| main.rs:741:9:741:9 | y | | main.rs:739:27:739:28 | T1 | -| main.rs:742:9:742:20 | ...::assoc(...) | | main.rs:739:27:739:28 | T1 | -| main.rs:742:19:742:19 | x | | main.rs:739:31:739:52 | T2 | -| main.rs:744:55:744:55 | x | | main.rs:744:31:744:52 | T2 | -| main.rs:744:68:748:5 | { ... } | | main.rs:744:27:744:28 | T1 | -| main.rs:745:13:745:13 | y | | main.rs:744:27:744:28 | T1 | -| main.rs:745:17:745:33 | ...::assoc(...) | | main.rs:744:27:744:28 | T1 | -| main.rs:745:32:745:32 | x | | main.rs:744:31:744:52 | T2 | -| main.rs:746:9:746:9 | y | | main.rs:744:27:744:28 | T1 | -| main.rs:747:9:747:25 | ...::assoc(...) | | main.rs:744:27:744:28 | T1 | -| main.rs:747:24:747:24 | x | | main.rs:744:31:744:52 | T2 | -| main.rs:752:49:752:49 | x | | main.rs:700:5:703:5 | MyThing | -| main.rs:752:49:752:49 | x | T | main.rs:752:32:752:46 | T2 | -| main.rs:752:71:754:5 | { ... } | | main.rs:752:28:752:29 | T1 | -| main.rs:753:9:753:9 | x | | main.rs:700:5:703:5 | MyThing | -| main.rs:753:9:753:9 | x | T | main.rs:752:32:752:46 | T2 | -| main.rs:753:9:753:11 | x.a | | main.rs:752:32:752:46 | T2 | -| main.rs:753:9:753:16 | ... .m1() | | main.rs:752:28:752:29 | T1 | -| main.rs:755:51:755:51 | x | | main.rs:700:5:703:5 | MyThing | -| main.rs:755:51:755:51 | x | T | main.rs:755:34:755:48 | T2 | -| main.rs:755:73:757:5 | { ... } | | main.rs:755:30:755:31 | T1 | -| main.rs:756:9:756:19 | ...::m1(...) | | main.rs:755:30:755:31 | T1 | -| main.rs:756:16:756:16 | x | | main.rs:700:5:703:5 | MyThing | -| main.rs:756:16:756:16 | x | T | main.rs:755:34:755:48 | T2 | -| main.rs:756:16:756:18 | x.a | | main.rs:755:34:755:48 | T2 | -| main.rs:758:51:758:51 | x | | main.rs:700:5:703:5 | MyThing | -| main.rs:758:51:758:51 | x | T | main.rs:758:34:758:48 | T2 | -| main.rs:758:73:760:5 | { ... } | | main.rs:758:30:758:31 | T1 | -| main.rs:759:9:759:24 | ...::m1(...) | | main.rs:758:30:758:31 | T1 | -| main.rs:759:21:759:21 | x | | main.rs:700:5:703:5 | MyThing | -| main.rs:759:21:759:21 | x | T | main.rs:758:34:758:48 | T2 | -| main.rs:759:21:759:23 | x.a | | main.rs:758:34:758:48 | T2 | -| main.rs:763:15:763:18 | SelfParam | | main.rs:700:5:703:5 | MyThing | -| main.rs:763:15:763:18 | SelfParam | T | main.rs:762:10:762:10 | T | -| main.rs:763:26:765:9 | { ... } | | main.rs:762:10:762:10 | T | -| main.rs:764:13:764:16 | self | | main.rs:700:5:703:5 | MyThing | -| main.rs:764:13:764:16 | self | T | main.rs:762:10:762:10 | T | -| main.rs:764:13:764:18 | self.a | | main.rs:762:10:762:10 | T | -| main.rs:767:18:767:18 | x | | main.rs:700:5:703:5 | MyThing | -| main.rs:767:18:767:18 | x | T | main.rs:762:10:762:10 | T | -| main.rs:767:32:769:9 | { ... } | | main.rs:762:10:762:10 | T | -| main.rs:768:13:768:13 | x | | main.rs:700:5:703:5 | MyThing | -| main.rs:768:13:768:13 | x | T | main.rs:762:10:762:10 | T | -| main.rs:768:13:768:15 | x.a | | main.rs:762:10:762:10 | T | -| main.rs:773:13:773:13 | x | | main.rs:700:5:703:5 | MyThing | -| main.rs:773:13:773:13 | x | T | main.rs:705:5:706:14 | S1 | -| main.rs:773:17:773:33 | MyThing {...} | | main.rs:700:5:703:5 | MyThing | -| main.rs:773:17:773:33 | MyThing {...} | T | main.rs:705:5:706:14 | S1 | -| main.rs:773:30:773:31 | S1 | | main.rs:705:5:706:14 | S1 | -| main.rs:774:13:774:13 | y | | main.rs:700:5:703:5 | MyThing | -| main.rs:774:13:774:13 | y | T | main.rs:707:5:708:14 | S2 | -| main.rs:774:17:774:33 | MyThing {...} | | main.rs:700:5:703:5 | MyThing | -| main.rs:774:17:774:33 | MyThing {...} | T | main.rs:707:5:708:14 | S2 | -| main.rs:774:30:774:31 | S2 | | main.rs:707:5:708:14 | S2 | -| main.rs:776:18:776:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:776:18:776:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:776:18:776:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:776:18:776:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:776:26:776:26 | x | | main.rs:700:5:703:5 | MyThing | -| main.rs:776:26:776:26 | x | T | main.rs:705:5:706:14 | S1 | -| main.rs:776:26:776:31 | x.m1() | | main.rs:705:5:706:14 | S1 | -| main.rs:777:18:777:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:777:18:777:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:777:18:777:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:777:18:777:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:777:26:777:26 | y | | main.rs:700:5:703:5 | MyThing | -| main.rs:777:26:777:26 | y | T | main.rs:707:5:708:14 | S2 | -| main.rs:777:26:777:31 | y.m1() | | main.rs:707:5:708:14 | S2 | -| main.rs:779:13:779:13 | x | | main.rs:700:5:703:5 | MyThing | -| main.rs:779:13:779:13 | x | T | main.rs:705:5:706:14 | S1 | -| main.rs:779:17:779:33 | MyThing {...} | | main.rs:700:5:703:5 | MyThing | -| main.rs:779:17:779:33 | MyThing {...} | T | main.rs:705:5:706:14 | S1 | -| main.rs:779:30:779:31 | S1 | | main.rs:705:5:706:14 | S1 | -| main.rs:780:13:780:13 | y | | main.rs:700:5:703:5 | MyThing | -| main.rs:780:13:780:13 | y | T | main.rs:707:5:708:14 | S2 | -| main.rs:780:17:780:33 | MyThing {...} | | main.rs:700:5:703:5 | MyThing | -| main.rs:780:17:780:33 | MyThing {...} | T | main.rs:707:5:708:14 | S2 | -| main.rs:780:30:780:31 | S2 | | main.rs:707:5:708:14 | S2 | -| main.rs:782:18:782:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:782:18:782:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:782:18:782:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:782:18:782:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:782:26:782:26 | x | | main.rs:700:5:703:5 | MyThing | -| main.rs:782:26:782:26 | x | T | main.rs:705:5:706:14 | S1 | -| main.rs:782:26:782:31 | x.m2() | | main.rs:705:5:706:14 | S1 | -| main.rs:783:18:783:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:783:18:783:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:783:18:783:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:783:18:783:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:783:26:783:26 | y | | main.rs:700:5:703:5 | MyThing | -| main.rs:783:26:783:26 | y | T | main.rs:707:5:708:14 | S2 | -| main.rs:783:26:783:31 | y.m2() | | main.rs:707:5:708:14 | S2 | -| main.rs:785:13:785:14 | x2 | | main.rs:700:5:703:5 | MyThing | -| main.rs:785:13:785:14 | x2 | T | main.rs:705:5:706:14 | S1 | -| main.rs:785:18:785:34 | MyThing {...} | | main.rs:700:5:703:5 | MyThing | -| main.rs:785:18:785:34 | MyThing {...} | T | main.rs:705:5:706:14 | S1 | -| main.rs:785:31:785:32 | S1 | | main.rs:705:5:706:14 | S1 | -| main.rs:786:13:786:14 | y2 | | main.rs:700:5:703:5 | MyThing | -| main.rs:786:13:786:14 | y2 | T | main.rs:707:5:708:14 | S2 | -| main.rs:786:18:786:34 | MyThing {...} | | main.rs:700:5:703:5 | MyThing | -| main.rs:786:18:786:34 | MyThing {...} | T | main.rs:707:5:708:14 | S2 | -| main.rs:786:31:786:32 | S2 | | main.rs:707:5:708:14 | S2 | -| main.rs:788:13:788:13 | a | | main.rs:705:5:706:14 | S1 | -| main.rs:788:17:788:33 | call_trait_m1(...) | | main.rs:705:5:706:14 | S1 | -| main.rs:788:31:788:32 | x2 | | main.rs:700:5:703:5 | MyThing | -| main.rs:788:31:788:32 | x2 | T | main.rs:705:5:706:14 | S1 | -| main.rs:789:18:789:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:789:18:789:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:789:18:789:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:789:18:789:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:789:26:789:26 | a | | main.rs:705:5:706:14 | S1 | -| main.rs:790:13:790:13 | a | | main.rs:705:5:706:14 | S1 | -| main.rs:790:17:790:35 | call_trait_m1_2(...) | | main.rs:705:5:706:14 | S1 | -| main.rs:790:33:790:34 | x2 | | main.rs:700:5:703:5 | MyThing | -| main.rs:790:33:790:34 | x2 | T | main.rs:705:5:706:14 | S1 | -| main.rs:791:18:791:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:791:18:791:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:791:18:791:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:791:18:791:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:791:26:791:26 | a | | main.rs:705:5:706:14 | S1 | -| main.rs:792:13:792:13 | a | | main.rs:705:5:706:14 | S1 | -| main.rs:792:17:792:35 | call_trait_m1_3(...) | | main.rs:705:5:706:14 | S1 | -| main.rs:792:33:792:34 | x2 | | main.rs:700:5:703:5 | MyThing | -| main.rs:792:33:792:34 | x2 | T | main.rs:705:5:706:14 | S1 | -| main.rs:793:18:793:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:793:18:793:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:793:18:793:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:793:18:793:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:793:26:793:26 | a | | main.rs:705:5:706:14 | S1 | -| main.rs:794:13:794:13 | a | | main.rs:707:5:708:14 | S2 | -| main.rs:794:17:794:33 | call_trait_m1(...) | | main.rs:707:5:708:14 | S2 | -| main.rs:794:31:794:32 | y2 | | main.rs:700:5:703:5 | MyThing | -| main.rs:794:31:794:32 | y2 | T | main.rs:707:5:708:14 | S2 | -| main.rs:795:18:795:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:795:18:795:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:795:18:795:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:795:18:795:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:795:26:795:26 | a | | main.rs:707:5:708:14 | S2 | -| main.rs:796:13:796:13 | a | | main.rs:707:5:708:14 | S2 | -| main.rs:796:17:796:35 | call_trait_m1_2(...) | | main.rs:707:5:708:14 | S2 | -| main.rs:796:33:796:34 | y2 | | main.rs:700:5:703:5 | MyThing | -| main.rs:796:33:796:34 | y2 | T | main.rs:707:5:708:14 | S2 | -| main.rs:797:18:797:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:797:18:797:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:797:18:797:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:797:18:797:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:797:26:797:26 | a | | main.rs:707:5:708:14 | S2 | -| main.rs:798:13:798:13 | a | | main.rs:707:5:708:14 | S2 | -| main.rs:798:17:798:35 | call_trait_m1_3(...) | | main.rs:707:5:708:14 | S2 | -| main.rs:798:33:798:34 | y2 | | main.rs:700:5:703:5 | MyThing | -| main.rs:798:33:798:34 | y2 | T | main.rs:707:5:708:14 | S2 | -| main.rs:799:18:799:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:799:18:799:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:799:18:799:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:799:18:799:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:799:26:799:26 | a | | main.rs:707:5:708:14 | S2 | -| main.rs:800:13:800:13 | a | | main.rs:705:5:706:14 | S1 | -| main.rs:800:17:800:38 | call_trait_assoc_1(...) | | main.rs:705:5:706:14 | S1 | -| main.rs:800:36:800:37 | x2 | | main.rs:700:5:703:5 | MyThing | -| main.rs:800:36:800:37 | x2 | T | main.rs:705:5:706:14 | S1 | -| main.rs:801:18:801:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:801:18:801:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:801:18:801:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:801:18:801:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:801:26:801:26 | a | | main.rs:705:5:706:14 | S1 | -| main.rs:802:13:802:13 | a | | main.rs:705:5:706:14 | S1 | -| main.rs:802:17:802:38 | call_trait_assoc_2(...) | | main.rs:705:5:706:14 | S1 | -| main.rs:802:36:802:37 | x2 | | main.rs:700:5:703:5 | MyThing | -| main.rs:802:36:802:37 | x2 | T | main.rs:705:5:706:14 | S1 | -| main.rs:803:18:803:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:803:18:803:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:803:18:803:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:803:18:803:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:803:26:803:26 | a | | main.rs:705:5:706:14 | S1 | -| main.rs:804:13:804:13 | a | | main.rs:707:5:708:14 | S2 | -| main.rs:804:17:804:38 | call_trait_assoc_1(...) | | main.rs:707:5:708:14 | S2 | -| main.rs:804:36:804:37 | y2 | | main.rs:700:5:703:5 | MyThing | -| main.rs:804:36:804:37 | y2 | T | main.rs:707:5:708:14 | S2 | -| main.rs:805:18:805:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:805:18:805:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:805:18:805:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:805:18:805:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:805:26:805:26 | a | | main.rs:707:5:708:14 | S2 | -| main.rs:806:13:806:13 | a | | main.rs:707:5:708:14 | S2 | -| main.rs:806:17:806:38 | call_trait_assoc_2(...) | | main.rs:707:5:708:14 | S2 | -| main.rs:806:36:806:37 | y2 | | main.rs:700:5:703:5 | MyThing | -| main.rs:806:36:806:37 | y2 | T | main.rs:707:5:708:14 | S2 | -| main.rs:807:18:807:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:807:18:807:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:807:18:807:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:807:18:807:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:807:26:807:26 | a | | main.rs:707:5:708:14 | S2 | -| main.rs:809:13:809:14 | x3 | | main.rs:700:5:703:5 | MyThing | -| main.rs:809:13:809:14 | x3 | T | main.rs:700:5:703:5 | MyThing | -| main.rs:809:13:809:14 | x3 | T.T | main.rs:705:5:706:14 | S1 | -| main.rs:809:18:811:9 | MyThing {...} | | main.rs:700:5:703:5 | MyThing | -| main.rs:809:18:811:9 | MyThing {...} | T | main.rs:700:5:703:5 | MyThing | -| main.rs:809:18:811:9 | MyThing {...} | T.T | main.rs:705:5:706:14 | S1 | -| main.rs:810:16:810:32 | MyThing {...} | | main.rs:700:5:703:5 | MyThing | -| main.rs:810:16:810:32 | MyThing {...} | T | main.rs:705:5:706:14 | S1 | -| main.rs:810:29:810:30 | S1 | | main.rs:705:5:706:14 | S1 | -| main.rs:812:13:812:14 | y3 | | main.rs:700:5:703:5 | MyThing | -| main.rs:812:13:812:14 | y3 | T | main.rs:700:5:703:5 | MyThing | -| main.rs:812:13:812:14 | y3 | T.T | main.rs:707:5:708:14 | S2 | -| main.rs:812:18:814:9 | MyThing {...} | | main.rs:700:5:703:5 | MyThing | -| main.rs:812:18:814:9 | MyThing {...} | T | main.rs:700:5:703:5 | MyThing | -| main.rs:812:18:814:9 | MyThing {...} | T.T | main.rs:707:5:708:14 | S2 | -| main.rs:813:16:813:32 | MyThing {...} | | main.rs:700:5:703:5 | MyThing | -| main.rs:813:16:813:32 | MyThing {...} | T | main.rs:707:5:708:14 | S2 | -| main.rs:813:29:813:30 | S2 | | main.rs:707:5:708:14 | S2 | -| main.rs:816:13:816:13 | a | | main.rs:705:5:706:14 | S1 | -| main.rs:816:17:816:39 | call_trait_thing_m1(...) | | main.rs:705:5:706:14 | S1 | -| main.rs:816:37:816:38 | x3 | | main.rs:700:5:703:5 | MyThing | -| main.rs:816:37:816:38 | x3 | T | main.rs:700:5:703:5 | MyThing | -| main.rs:816:37:816:38 | x3 | T.T | main.rs:705:5:706:14 | S1 | -| main.rs:817:18:817:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:817:18:817:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:817:18:817:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:817:18:817:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:817:26:817:26 | a | | main.rs:705:5:706:14 | S1 | -| main.rs:818:13:818:13 | a | | main.rs:705:5:706:14 | S1 | -| main.rs:818:17:818:41 | call_trait_thing_m1_2(...) | | main.rs:705:5:706:14 | S1 | -| main.rs:818:39:818:40 | x3 | | main.rs:700:5:703:5 | MyThing | -| main.rs:818:39:818:40 | x3 | T | main.rs:700:5:703:5 | MyThing | -| main.rs:818:39:818:40 | x3 | T.T | main.rs:705:5:706:14 | S1 | -| main.rs:819:18:819:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:819:18:819:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:819:18:819:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:819:18:819:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:819:26:819:26 | a | | main.rs:705:5:706:14 | S1 | -| main.rs:820:13:820:13 | a | | main.rs:705:5:706:14 | S1 | -| main.rs:820:17:820:41 | call_trait_thing_m1_3(...) | | main.rs:705:5:706:14 | S1 | -| main.rs:820:39:820:40 | x3 | | main.rs:700:5:703:5 | MyThing | -| main.rs:820:39:820:40 | x3 | T | main.rs:700:5:703:5 | MyThing | -| main.rs:820:39:820:40 | x3 | T.T | main.rs:705:5:706:14 | S1 | +| main.rs:540:14:540:18 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:540:14:540:18 | SelfParam | &T | main.rs:538:5:541:5 | Self [trait MyTrait1] | +| main.rs:550:14:550:18 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:550:14:550:18 | SelfParam | &T | main.rs:545:5:546:14 | S4 | +| main.rs:560:14:560:18 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:560:14:560:18 | SelfParam | &T | main.rs:555:5:556:22 | S5 | +| main.rs:560:14:560:18 | SelfParam | &T.T5 | {EXTERNAL LOCATION} | i32 | +| main.rs:570:13:570:13 | x | | main.rs:446:5:447:14 | S1 | +| main.rs:570:17:570:18 | S1 | | main.rs:446:5:447:14 | S1 | +| main.rs:571:18:571:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:571:18:571:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:571:18:571:42 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:571:18:571:42 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| 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:18:572:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:572:18:572:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:572:18:572:45 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:572:18:572:45 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| 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:18:573:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:573:18:573:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:573:18:573:44 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:573:18:573:44 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| 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:18:574:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:574:18:574:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:574:18:574:47 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:574:18:574:47 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| 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 | +| main.rs:576:13:576:13 | y | T2 | main.rs:446:5:447:14 | S1 | +| main.rs:576:17:576:22 | S2(...) | | main.rs:479:5:479:22 | S2 | +| main.rs:576:17:576:22 | S2(...) | T2 | main.rs:446:5:447:14 | S1 | +| main.rs:576:20:576:21 | S1 | | main.rs:446:5:447:14 | S1 | +| main.rs:577:18:577:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:577:18:577:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:577:18:577:42 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:577:18:577:42 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| 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 | +| main.rs:578:18:578:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:578:18:578:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:578:18:578:56 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:578:18:578:56 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| 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 | +| main.rs:578:53:578:54 | S1 | | main.rs:446:5:447:14 | S1 | +| main.rs:580:13:580:13 | z | | main.rs:479:5:479:22 | S2 | +| main.rs:580:13:580:13 | z | T2 | {EXTERNAL LOCATION} | i32 | +| main.rs:580:17:580:21 | S2(...) | | main.rs:479:5:479:22 | S2 | +| main.rs:580:17:580:21 | S2(...) | T2 | {EXTERNAL LOCATION} | i32 | +| main.rs:580:20:580:20 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:581:18:581:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:581:18:581:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:581:18:581:42 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:581:18:581:42 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| 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 | +| main.rs:582:18:582:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:582:18:582:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:582:18:582:49 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:582:18:582:49 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| 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 | +| main.rs:582:47:582:47 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:583:18:583:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:583:18:583:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:583:18:583:56 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:583:18:583:56 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| 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 | +| main.rs:583:54:583:54 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:585:13:585:13 | w | | main.rs:517:5:518:22 | S3 | +| main.rs:585:13:585:13 | w | T3 | main.rs:446:5:447:14 | S1 | +| main.rs:585:17:585:22 | S3(...) | | main.rs:517:5:518:22 | S3 | +| main.rs:585:17:585:22 | S3(...) | T3 | main.rs:446:5:447:14 | S1 | +| main.rs:585:20:585:21 | S1 | | main.rs:446:5:447:14 | S1 | +| main.rs:586:18:586:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:586:18:586:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:586:18:586:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:586:18:586:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| 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(...) | | file://:0:0:0:0 | & | +| main.rs:586:26:586:31 | w.m(...) | &T | main.rs:517:5:518:22 | S3 | +| main.rs:586:26:586:31 | w.m(...) | &T.T3 | main.rs:446:5:447:14 | S1 | +| main.rs:586:30:586:30 | x | | main.rs:446:5:447:14 | S1 | +| main.rs:587:18:587:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:587:18:587:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:587:18:587:37 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:587:18:587:37 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:587:26:587:37 | ...::m(...) | | file://:0:0:0:0 | & | +| main.rs:587:26:587:37 | ...::m(...) | &T | main.rs:517:5:518:22 | S3 | +| main.rs:587:26:587:37 | ...::m(...) | &T.T3 | main.rs:446:5:447:14 | S1 | +| main.rs:587:32:587:33 | &w | | file://:0:0:0:0 | & | +| main.rs:587:32:587:33 | &w | &T | main.rs:517:5:518:22 | S3 | +| main.rs:587:32:587:33 | &w | &T.T3 | main.rs:446:5:447:14 | S1 | +| main.rs:587:33:587:33 | w | | main.rs:517:5:518:22 | S3 | +| main.rs:587:33:587:33 | w | T3 | main.rs:446:5:447:14 | S1 | +| main.rs:587:36:587:36 | x | | main.rs:446:5:447:14 | S1 | +| main.rs:589:9:589:10 | S4 | | main.rs:545:5:546:14 | S4 | +| main.rs:590:15:590:17 | &S4 | | file://:0:0:0:0 | & | +| main.rs:590:15:590:17 | &S4 | &T | main.rs:545:5:546:14 | S4 | +| main.rs:590:16:590:17 | S4 | | main.rs:545:5:546:14 | S4 | +| main.rs:591:9:591:16 | S5(...) | | main.rs:555:5:556:22 | S5 | +| main.rs:591:9:591:16 | S5(...) | T5 | {EXTERNAL LOCATION} | i32 | +| main.rs:591:12:591:15 | 0i32 | | {EXTERNAL LOCATION} | i32 | +| main.rs:592:15:592:23 | &... | | file://:0:0:0:0 | & | +| main.rs:592:15:592:23 | &... | &T | main.rs:555:5:556:22 | S5 | +| main.rs:592:15:592:23 | &... | &T.T5 | {EXTERNAL LOCATION} | i32 | +| main.rs:592:16:592:23 | S5(...) | | main.rs:555:5:556:22 | S5 | +| main.rs:592:16:592:23 | S5(...) | T5 | {EXTERNAL LOCATION} | i32 | +| main.rs:592:19:592:22 | 0i32 | | {EXTERNAL LOCATION} | i32 | +| main.rs:593:9:593:16 | S5(...) | | main.rs:555:5:556:22 | S5 | +| main.rs:593:9:593:16 | S5(...) | T5 | {EXTERNAL LOCATION} | bool | +| main.rs:593:12:593:15 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:594:15:594:23 | &... | | file://:0:0:0:0 | & | +| main.rs:594:15:594:23 | &... | &T | main.rs:555:5:556:22 | S5 | +| main.rs:594:15:594:23 | &... | &T.T5 | {EXTERNAL LOCATION} | bool | +| main.rs:594:16:594:23 | S5(...) | | main.rs:555:5:556:22 | S5 | +| main.rs:594:16:594:23 | S5(...) | T5 | {EXTERNAL LOCATION} | bool | +| main.rs:594:19:594:22 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:611:19:611:22 | SelfParam | | main.rs:609:5:612:5 | Self [trait FirstTrait] | +| main.rs:616:19:616:22 | SelfParam | | main.rs:614:5:617:5 | Self [trait SecondTrait] | +| main.rs:619:64:619:64 | x | | main.rs:619:45:619:61 | T | +| main.rs:621:13:621:14 | s1 | | main.rs:619:35:619:42 | I | +| main.rs:621:18:621:18 | x | | main.rs:619:45:619:61 | T | +| main.rs:621:18:621:27 | x.method() | | main.rs:619:35:619:42 | I | +| main.rs:622:18:622:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:622:18:622:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:622:18:622:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:622:18:622:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| 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:627:13:627:14 | s2 | | main.rs:625:36:625:43 | I | +| main.rs:627:18:627:18 | x | | main.rs:625:46:625:62 | T | +| main.rs:627:18:627:27 | x.method() | | main.rs:625:36:625:43 | I | +| main.rs:628:18:628:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:628:18:628:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:628:18:628:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:628:18:628:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| 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:632:13:632:13 | s | | main.rs:601:5:602:14 | S1 | +| main.rs:632:17:632:17 | x | | main.rs:631:30:631:46 | T | +| main.rs:632:17:632:26 | x.method() | | main.rs:601:5:602:14 | S1 | +| main.rs:633:18:633:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:633:18:633:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:633:18:633:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:633:18:633:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| 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:637:13:637:13 | s | | main.rs:601:5:602:14 | S1 | +| main.rs:637:17:637:17 | x | | main.rs:636:34:636:50 | T | +| main.rs:637:17:637:26 | x.method() | | main.rs:601:5:602:14 | S1 | +| main.rs:638:18:638:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:638:18:638:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:638:18:638:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:638:18:638:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| 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:645:13:645:13 | s | | main.rs:601:5:602:14 | S1 | +| main.rs:645:17:645:17 | x | | main.rs:641:40:641:40 | T | +| main.rs:645:17:645:26 | x.method() | | main.rs:601:5:602:14 | S1 | +| main.rs:646:18:646:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:646:18:646:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:646:18:646:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:646:18:646:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| 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] | +| main.rs:655:53:655:53 | x | | main.rs:655:50:655:50 | T | +| main.rs:655:59:655:59 | y | | main.rs:655:50:655:50 | T | +| main.rs:660:13:660:13 | _ | | main.rs:601:5:602:14 | S1 | +| main.rs:660:17:660:17 | x | | main.rs:655:50:655:50 | T | +| main.rs:660:17:660:23 | x.fst() | | main.rs:601:5:602:14 | S1 | +| main.rs:661:13:661:13 | _ | | main.rs:601:5:602:14 | S1 | +| main.rs:661:17:661:17 | y | | main.rs:655:50:655:50 | T | +| main.rs:661:17:661:26 | y.method() | | main.rs:601:5:602:14 | S1 | +| main.rs:664:58:664:58 | x | | main.rs:664:41:664:55 | T | +| main.rs:664:64:664:64 | y | | main.rs:664:41:664:55 | T | +| main.rs:666:13:666:14 | s1 | | main.rs:601:5:602:14 | S1 | +| main.rs:666:18:666:18 | x | | main.rs:664:41:664:55 | T | +| main.rs:666:18:666:24 | x.fst() | | main.rs:601:5:602:14 | S1 | +| main.rs:667:13:667:14 | s2 | | main.rs:604:5:605:14 | S2 | +| main.rs:667:18:667:18 | y | | main.rs:664:41:664:55 | T | +| main.rs:667:18:667:24 | y.snd() | | main.rs:604:5:605:14 | S2 | +| main.rs:668:18:668:29 | "{:?}, {:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:668:18:668:29 | "{:?}, {:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:668:18:668:37 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:668:18:668:37 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| 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 | +| main.rs:671:75:671:75 | y | | main.rs:671:52:671:66 | T | +| main.rs:673:13:673:14 | s1 | | main.rs:601:5:602:14 | S1 | +| main.rs:673:18:673:18 | x | | main.rs:671:52:671:66 | T | +| main.rs:673:18:673:24 | x.fst() | | main.rs:601:5:602:14 | S1 | +| main.rs:674:13:674:14 | s2 | | main.rs:671:41:671:49 | T2 | +| main.rs:674:18:674:18 | y | | main.rs:671:52:671:66 | T | +| main.rs:674:18:674:24 | y.snd() | | main.rs:671:41:671:49 | T2 | +| main.rs:675:18:675:29 | "{:?}, {:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:675:18:675:29 | "{:?}, {:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:675:18:675:37 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:675:18:675:37 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| 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 | +| main.rs:678:56:678:56 | y | | main.rs:678:41:678:47 | T | +| main.rs:680:13:680:14 | s1 | | {EXTERNAL LOCATION} | bool | +| main.rs:680:18:680:18 | x | | main.rs:678:41:678:47 | T | +| main.rs:680:18:680:24 | x.fst() | | {EXTERNAL LOCATION} | bool | +| main.rs:681:13:681:14 | s2 | | {EXTERNAL LOCATION} | i64 | +| main.rs:681:18:681:18 | y | | main.rs:678:41:678:47 | T | +| main.rs:681:18:681:24 | y.snd() | | {EXTERNAL LOCATION} | i64 | +| main.rs:682:18:682:29 | "{:?}, {:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:682:18:682:29 | "{:?}, {:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:682:18:682:37 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:682:18:682:37 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| 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 | +| main.rs:685:60:685:60 | y | | main.rs:685:41:685:51 | T | +| main.rs:687:13:687:14 | s1 | | {EXTERNAL LOCATION} | u8 | +| main.rs:687:18:687:18 | x | | main.rs:685:41:685:51 | T | +| main.rs:687:18:687:24 | x.fst() | | {EXTERNAL LOCATION} | u8 | +| main.rs:688:13:688:14 | s2 | | {EXTERNAL LOCATION} | i64 | +| main.rs:688:18:688:18 | y | | main.rs:685:41:685:51 | T | +| main.rs:688:18:688:24 | y.snd() | | {EXTERNAL LOCATION} | i64 | +| main.rs:689:18:689:29 | "{:?}, {:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:689:18:689:29 | "{:?}, {:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:689:18:689:37 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:689:18:689:37 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| 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 | | file://:0:0:0:0 | & | +| main.rs:697:18:697:22 | SelfParam | &T | main.rs:694:5:698:5 | Self [trait TraitWithSelfTp] | +| main.rs:700:40:700:44 | thing | | file://:0:0:0:0 | & | +| main.rs:700:40:700:44 | thing | &T | main.rs:700:17:700:37 | T | +| main.rs:700:56:702:5 | { ... } | | main.rs:700:14:700:14 | A | +| main.rs:701:9:701:13 | thing | | file://:0:0:0:0 | & | +| main.rs:701:9:701:13 | thing | &T | main.rs:700:17:700:37 | T | +| main.rs:701:9:701:21 | thing.get_a() | | main.rs:700:14:700:14 | A | +| main.rs:705:44:705:48 | thing | | main.rs:705:24:705:41 | S | +| main.rs:705:61:708:5 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:706:13:706:15 | _ms | | {EXTERNAL LOCATION} | Option | +| main.rs:706:13:706:15 | _ms | T | main.rs:705:24:705:41 | S | +| main.rs:706:19:706:23 | thing | | main.rs:705:24:705:41 | S | +| main.rs:706:19:706:31 | thing.get_a() | | {EXTERNAL LOCATION} | Option | +| main.rs:706:19:706:31 | thing.get_a() | T | main.rs:705:24:705:41 | S | +| main.rs:707:9:707:9 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:707:9:707:9 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:713:55:713:59 | thing | | file://:0:0:0:0 | & | +| main.rs:713:55:713:59 | thing | &T | main.rs:713:25:713:52 | S | +| main.rs:715:13:715:15 | _ms | | {EXTERNAL LOCATION} | Option | +| main.rs:715:13:715:15 | _ms | T | main.rs:713:25:713:52 | S | +| main.rs:715:19:715:30 | get_a(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:715:19:715:30 | get_a(...) | T | main.rs:713:25:713:52 | S | +| main.rs:715:25:715:29 | thing | | file://:0:0:0:0 | & | +| main.rs:715:25:715:29 | thing | &T | main.rs:713:25:713:52 | S | +| main.rs:724:18:724:22 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:724:18:724:22 | SelfParam | &T | main.rs:718:5:720:5 | MyStruct | +| main.rs:724:41:726:9 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:724:41:726:9 | { ... } | T | main.rs:718:5:720:5 | MyStruct | +| main.rs:725:13:725:48 | Some(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:725:13:725:48 | Some(...) | T | main.rs:718:5:720:5 | MyStruct | +| main.rs:725:18:725:47 | MyStruct {...} | | main.rs:718:5:720:5 | MyStruct | +| main.rs:725:36:725:39 | self | | file://:0:0:0:0 | & | +| main.rs:725:36:725:39 | self | &T | main.rs:718:5:720:5 | MyStruct | +| main.rs:725:36:725:45 | self.value | | {EXTERNAL LOCATION} | i32 | +| main.rs:732:13:732:13 | s | | main.rs:718:5:720:5 | MyStruct | +| main.rs:732:17:732:37 | MyStruct {...} | | main.rs:718:5:720:5 | MyStruct | +| main.rs:732:35:732:35 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:733:13:733:15 | _ms | | {EXTERNAL LOCATION} | Option | +| main.rs:733:13:733:15 | _ms | T | main.rs:718:5:720:5 | MyStruct | +| main.rs:733:19:733:27 | get_a(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:733:19:733:27 | get_a(...) | T | main.rs:718:5:720:5 | MyStruct | +| main.rs:733:25:733:26 | &s | | file://:0:0:0:0 | & | +| main.rs:733:25:733:26 | &s | &T | main.rs:718:5:720:5 | MyStruct | +| main.rs:733:26:733:26 | s | | main.rs:718:5:720:5 | MyStruct | +| main.rs:749:15:749:18 | SelfParam | | main.rs:748:5:759:5 | Self [trait MyTrait] | +| main.rs:751:15:751:18 | SelfParam | | main.rs:748:5:759:5 | Self [trait MyTrait] | +| main.rs:754:9:756:9 | { ... } | | main.rs:748:19:748:19 | A | +| main.rs:755:13:755:16 | self | | main.rs:748:5:759:5 | Self [trait MyTrait] | +| main.rs:755:13:755:21 | self.m1() | | main.rs:748:19:748:19 | A | +| main.rs:758:18:758:18 | x | | main.rs:748:5:759:5 | Self [trait MyTrait] | +| main.rs:763:50:763:50 | x | | main.rs:763:26:763:47 | T2 | +| main.rs:763:63:766:5 | { ... } | | main.rs:763:22:763:23 | T1 | +| main.rs:764:9:764:9 | x | | main.rs:763:26:763:47 | T2 | +| main.rs:764:9:764:14 | x.m1() | | main.rs:763:22:763:23 | T1 | +| main.rs:765:9:765:9 | x | | main.rs:763:26:763:47 | T2 | +| main.rs:765:9:765:14 | x.m1() | | main.rs:763:22:763:23 | T1 | +| main.rs:767:52:767:52 | x | | main.rs:767:28:767:49 | T2 | +| main.rs:767:65:771:5 | { ... } | | main.rs:767:24:767:25 | T1 | +| main.rs:768:13:768:13 | y | | main.rs:767:24:767:25 | T1 | +| main.rs:768:17:768:25 | ...::m1(...) | | main.rs:767:24:767:25 | T1 | +| main.rs:768:24:768:24 | x | | main.rs:767:28:767:49 | T2 | +| main.rs:769:9:769:9 | y | | main.rs:767:24:767:25 | T1 | +| main.rs:770:9:770:17 | ...::m1(...) | | main.rs:767:24:767:25 | T1 | +| main.rs:770:16:770:16 | x | | main.rs:767:28:767:49 | T2 | +| main.rs:772:52:772:52 | x | | main.rs:772:28:772:49 | T2 | +| main.rs:772:65:776:5 | { ... } | | main.rs:772:24:772:25 | T1 | +| main.rs:773:13:773:13 | y | | main.rs:772:24:772:25 | T1 | +| main.rs:773:17:773:30 | ...::m1(...) | | main.rs:772:24:772:25 | T1 | +| main.rs:773:29:773:29 | x | | main.rs:772:28:772:49 | T2 | +| main.rs:774:9:774:9 | y | | main.rs:772:24:772:25 | T1 | +| main.rs:775:9:775:22 | ...::m1(...) | | main.rs:772:24:772:25 | T1 | +| main.rs:775:21:775:21 | x | | main.rs:772:28:772:49 | T2 | +| main.rs:777:55:777:55 | x | | main.rs:777:31:777:52 | T2 | +| main.rs:777:68:781:5 | { ... } | | main.rs:777:27:777:28 | T1 | +| main.rs:778:13:778:13 | y | | main.rs:777:27:777:28 | T1 | +| main.rs:778:17:778:28 | ...::assoc(...) | | main.rs:777:27:777:28 | T1 | +| main.rs:778:27:778:27 | x | | main.rs:777:31:777:52 | T2 | +| main.rs:779:9:779:9 | y | | main.rs:777:27:777:28 | T1 | +| main.rs:780:9:780:20 | ...::assoc(...) | | main.rs:777:27:777:28 | T1 | +| main.rs:780:19:780:19 | x | | main.rs:777:31:777:52 | T2 | +| main.rs:782:55:782:55 | x | | main.rs:782:31:782:52 | T2 | +| main.rs:782:68:786:5 | { ... } | | main.rs:782:27:782:28 | T1 | +| main.rs:783:13:783:13 | y | | main.rs:782:27:782:28 | T1 | +| main.rs:783:17:783:33 | ...::assoc(...) | | main.rs:782:27:782:28 | T1 | +| main.rs:783:32:783:32 | x | | main.rs:782:31:782:52 | T2 | +| main.rs:784:9:784:9 | y | | main.rs:782:27:782:28 | T1 | +| main.rs:785:9:785:25 | ...::assoc(...) | | main.rs:782:27:782:28 | T1 | +| main.rs:785:24:785:24 | x | | main.rs:782:31:782:52 | T2 | +| main.rs:790:49:790:49 | x | | main.rs:738:5:741:5 | MyThing | +| main.rs:790:49:790:49 | x | T | main.rs:790:32:790:46 | T2 | +| main.rs:790:71:792:5 | { ... } | | main.rs:790:28:790:29 | T1 | +| main.rs:791:9:791:9 | x | | main.rs:738:5:741:5 | MyThing | +| main.rs:791:9:791:9 | x | T | main.rs:790:32:790:46 | T2 | +| main.rs:791:9:791:11 | x.a | | main.rs:790:32:790:46 | T2 | +| main.rs:791:9:791:16 | ... .m1() | | main.rs:790:28:790:29 | T1 | +| main.rs:793:51:793:51 | x | | main.rs:738:5:741:5 | MyThing | +| main.rs:793:51:793:51 | x | T | main.rs:793:34:793:48 | T2 | +| main.rs:793:73:795:5 | { ... } | | main.rs:793:30:793:31 | T1 | +| main.rs:794:9:794:19 | ...::m1(...) | | main.rs:793:30:793:31 | T1 | +| main.rs:794:16:794:16 | x | | main.rs:738:5:741:5 | MyThing | +| main.rs:794:16:794:16 | x | T | main.rs:793:34:793:48 | T2 | +| main.rs:794:16:794:18 | x.a | | main.rs:793:34:793:48 | T2 | +| main.rs:796:51:796:51 | x | | main.rs:738:5:741:5 | MyThing | +| main.rs:796:51:796:51 | x | T | main.rs:796:34:796:48 | T2 | +| main.rs:796:73:798:5 | { ... } | | main.rs:796:30:796:31 | T1 | +| main.rs:797:9:797:24 | ...::m1(...) | | main.rs:796:30:796:31 | T1 | +| main.rs:797:21:797:21 | x | | main.rs:738:5:741:5 | MyThing | +| main.rs:797:21:797:21 | x | T | main.rs:796:34:796:48 | T2 | +| main.rs:797:21:797:23 | x.a | | main.rs:796:34:796:48 | T2 | +| main.rs:801:15:801:18 | SelfParam | | main.rs:738:5:741:5 | MyThing | +| main.rs:801:15:801:18 | SelfParam | T | main.rs:800:10:800:10 | T | +| main.rs:801:26:803:9 | { ... } | | main.rs:800:10:800:10 | T | +| main.rs:802:13:802:16 | self | | main.rs:738:5:741:5 | MyThing | +| main.rs:802:13:802:16 | self | T | main.rs:800:10:800:10 | T | +| main.rs:802:13:802:18 | self.a | | main.rs:800:10:800:10 | T | +| main.rs:805:18:805:18 | x | | main.rs:738:5:741:5 | MyThing | +| main.rs:805:18:805:18 | x | T | main.rs:800:10:800:10 | T | +| main.rs:805:32:807:9 | { ... } | | main.rs:800:10:800:10 | T | +| main.rs:806:13:806:13 | x | | main.rs:738:5:741:5 | MyThing | +| main.rs:806:13:806:13 | x | T | main.rs:800:10:800:10 | T | +| main.rs:806:13:806:15 | x.a | | main.rs:800:10:800:10 | T | +| main.rs:811:13:811:13 | x | | main.rs:738:5:741:5 | MyThing | +| main.rs:811:13:811:13 | x | T | main.rs:743:5:744:14 | S1 | +| main.rs:811:17:811:33 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:811:17:811:33 | MyThing {...} | T | main.rs:743:5:744:14 | S1 | +| main.rs:811:30:811:31 | S1 | | main.rs:743:5:744:14 | S1 | +| main.rs:812:13:812:13 | y | | main.rs:738:5:741:5 | MyThing | +| main.rs:812:13:812:13 | y | T | main.rs:745:5:746:14 | S2 | +| main.rs:812:17:812:33 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:812:17:812:33 | MyThing {...} | T | main.rs:745:5:746:14 | S2 | +| main.rs:812:30:812:31 | S2 | | main.rs:745:5:746:14 | S2 | +| main.rs:814:18:814:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:814:18:814:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:814:18:814:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:814:18:814:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:814:26:814:26 | x | | main.rs:738:5:741:5 | MyThing | +| main.rs:814:26:814:26 | x | T | main.rs:743:5:744:14 | S1 | +| main.rs:814:26:814:31 | x.m1() | | main.rs:743:5:744:14 | S1 | +| main.rs:815:18:815:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:815:18:815:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:815:18:815:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:815:18:815:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:815:26:815:26 | y | | main.rs:738:5:741:5 | MyThing | +| main.rs:815:26:815:26 | y | T | main.rs:745:5:746:14 | S2 | +| main.rs:815:26:815:31 | y.m1() | | main.rs:745:5:746:14 | S2 | +| main.rs:817:13:817:13 | x | | main.rs:738:5:741:5 | MyThing | +| main.rs:817:13:817:13 | x | T | main.rs:743:5:744:14 | S1 | +| main.rs:817:17:817:33 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:817:17:817:33 | MyThing {...} | T | main.rs:743:5:744:14 | S1 | +| main.rs:817:30:817:31 | S1 | | main.rs:743:5:744:14 | S1 | +| main.rs:818:13:818:13 | y | | main.rs:738:5:741:5 | MyThing | +| main.rs:818:13:818:13 | y | T | main.rs:745:5:746:14 | S2 | +| main.rs:818:17:818:33 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:818:17:818:33 | MyThing {...} | T | main.rs:745:5:746:14 | S2 | +| main.rs:818:30:818:31 | S2 | | main.rs:745:5:746:14 | S2 | +| main.rs:820:18:820:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:820:18:820:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:820:18:820:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:820:18:820:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:820:26:820:26 | x | | main.rs:738:5:741:5 | MyThing | +| main.rs:820:26:820:26 | x | T | main.rs:743:5:744:14 | S1 | +| main.rs:820:26:820:31 | x.m2() | | main.rs:743:5:744:14 | S1 | | main.rs:821:18:821:23 | "{:?}\\n" | | file://:0:0:0:0 | & | | main.rs:821:18:821:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:821:18:821:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:821:18:821:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:821:26:821:26 | a | | main.rs:705:5:706:14 | S1 | -| main.rs:822:13:822:13 | b | | main.rs:707:5:708:14 | S2 | -| main.rs:822:17:822:39 | call_trait_thing_m1(...) | | main.rs:707:5:708:14 | S2 | -| main.rs:822:37:822:38 | y3 | | main.rs:700:5:703:5 | MyThing | -| main.rs:822:37:822:38 | y3 | T | main.rs:700:5:703:5 | MyThing | -| main.rs:822:37:822:38 | y3 | T.T | main.rs:707:5:708:14 | S2 | -| main.rs:823:18:823:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:823:18:823:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:823:18:823:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:823:18:823:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:823:26:823:26 | b | | main.rs:707:5:708:14 | S2 | -| main.rs:824:13:824:13 | b | | main.rs:707:5:708:14 | S2 | -| main.rs:824:17:824:41 | call_trait_thing_m1_2(...) | | main.rs:707:5:708:14 | S2 | -| main.rs:824:39:824:40 | y3 | | main.rs:700:5:703:5 | MyThing | -| main.rs:824:39:824:40 | y3 | T | main.rs:700:5:703:5 | MyThing | -| main.rs:824:39:824:40 | y3 | T.T | main.rs:707:5:708:14 | S2 | -| main.rs:825:18:825:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:825:18:825:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:825:18:825:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:825:18:825:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:825:26:825:26 | b | | main.rs:707:5:708:14 | S2 | -| main.rs:826:13:826:13 | b | | main.rs:707:5:708:14 | S2 | -| main.rs:826:17:826:41 | call_trait_thing_m1_3(...) | | main.rs:707:5:708:14 | S2 | -| main.rs:826:39:826:40 | y3 | | main.rs:700:5:703:5 | MyThing | -| main.rs:826:39:826:40 | y3 | T | main.rs:700:5:703:5 | MyThing | -| main.rs:826:39:826:40 | y3 | T.T | main.rs:707:5:708:14 | S2 | +| main.rs:821:18:821:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:821:18:821:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:821:26:821:26 | y | | main.rs:738:5:741:5 | MyThing | +| main.rs:821:26:821:26 | y | T | main.rs:745:5:746:14 | S2 | +| main.rs:821:26:821:31 | y.m2() | | main.rs:745:5:746:14 | S2 | +| main.rs:823:13:823:14 | x2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:823:13:823:14 | x2 | T | main.rs:743:5:744:14 | S1 | +| main.rs:823:18:823:34 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:823:18:823:34 | MyThing {...} | T | main.rs:743:5:744:14 | S1 | +| main.rs:823:31:823:32 | S1 | | main.rs:743:5:744:14 | S1 | +| main.rs:824:13:824:14 | y2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:824:13:824:14 | y2 | T | main.rs:745:5:746:14 | S2 | +| main.rs:824:18:824:34 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:824:18:824:34 | MyThing {...} | T | main.rs:745:5:746:14 | S2 | +| main.rs:824:31:824:32 | S2 | | main.rs:745:5:746:14 | S2 | +| main.rs:826:13:826:13 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:826:17:826:33 | call_trait_m1(...) | | main.rs:743:5:744:14 | S1 | +| main.rs:826:31:826:32 | x2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:826:31:826:32 | x2 | T | main.rs:743:5:744:14 | S1 | | main.rs:827:18:827:23 | "{:?}\\n" | | file://:0:0:0:0 | & | | main.rs:827:18:827:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | | main.rs:827:18:827:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | | main.rs:827:18:827:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:827:26:827:26 | b | | main.rs:707:5:708:14 | S2 | -| main.rs:838:19:838:22 | SelfParam | | main.rs:832:5:835:5 | Wrapper | -| main.rs:838:19:838:22 | SelfParam | A | main.rs:837:10:837:10 | A | -| main.rs:838:30:840:9 | { ... } | | main.rs:837:10:837:10 | A | -| main.rs:839:13:839:16 | self | | main.rs:832:5:835:5 | Wrapper | -| main.rs:839:13:839:16 | self | A | main.rs:837:10:837:10 | A | -| main.rs:839:13:839:22 | self.field | | main.rs:837:10:837:10 | A | -| main.rs:847:15:847:18 | SelfParam | | main.rs:843:5:857:5 | Self [trait MyTrait] | -| main.rs:849:15:849:18 | SelfParam | | main.rs:843:5:857:5 | Self [trait MyTrait] | -| main.rs:853:9:856:9 | { ... } | | main.rs:844:9:844:28 | AssociatedType | -| main.rs:854:13:854:16 | self | | main.rs:843:5:857:5 | Self [trait MyTrait] | -| main.rs:854:13:854:21 | self.m1() | | main.rs:844:9:844:28 | AssociatedType | -| main.rs:855:13:855:43 | ...::default(...) | | main.rs:844:9:844:28 | AssociatedType | -| main.rs:863:19:863:23 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:863:19:863:23 | SelfParam | &T | main.rs:859:5:869:5 | Self [trait MyTraitAssoc2] | -| main.rs:863:26:863:26 | a | | main.rs:863:16:863:16 | A | -| main.rs:865:22:865:26 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:865:22:865:26 | SelfParam | &T | main.rs:859:5:869:5 | Self [trait MyTraitAssoc2] | -| main.rs:865:29:865:29 | a | | main.rs:865:19:865:19 | A | -| main.rs:865:35:865:35 | b | | main.rs:865:19:865:19 | A | -| main.rs:865:75:868:9 | { ... } | | main.rs:860:9:860:52 | GenericAssociatedType | -| main.rs:866:13:866:16 | self | | file://:0:0:0:0 | & | -| main.rs:866:13:866:16 | self | &T | main.rs:859:5:869:5 | Self [trait MyTraitAssoc2] | -| main.rs:866:13:866:23 | self.put(...) | | main.rs:860:9:860:52 | GenericAssociatedType | -| main.rs:866:22:866:22 | a | | main.rs:865:19:865:19 | A | -| main.rs:867:13:867:16 | self | | file://:0:0:0:0 | & | -| main.rs:867:13:867:16 | self | &T | main.rs:859:5:869:5 | Self [trait MyTraitAssoc2] | -| main.rs:867:13:867:23 | self.put(...) | | main.rs:860:9:860:52 | GenericAssociatedType | -| main.rs:867:22:867:22 | b | | main.rs:865:19:865:19 | A | -| main.rs:876:21:876:25 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:876:21:876:25 | SelfParam | &T | main.rs:871:5:881:5 | Self [trait TraitMultipleAssoc] | -| main.rs:878:20:878:24 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:878:20:878:24 | SelfParam | &T | main.rs:871:5:881:5 | Self [trait TraitMultipleAssoc] | -| main.rs:880:20:880:24 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:880:20:880:24 | SelfParam | &T | main.rs:871:5:881:5 | Self [trait TraitMultipleAssoc] | -| main.rs:896:15:896:18 | SelfParam | | main.rs:883:5:884:13 | S | -| main.rs:896:45:898:9 | { ... } | | main.rs:889:5:890:14 | AT | -| main.rs:897:13:897:14 | AT | | main.rs:889:5:890:14 | AT | -| main.rs:906:19:906:23 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:906:19:906:23 | SelfParam | &T | main.rs:883:5:884:13 | S | -| main.rs:906:26:906:26 | a | | main.rs:906:16:906:16 | A | -| main.rs:906:46:908:9 | { ... } | | main.rs:832:5:835:5 | Wrapper | -| main.rs:906:46:908:9 | { ... } | A | main.rs:906:16:906:16 | A | -| main.rs:907:13:907:32 | Wrapper {...} | | main.rs:832:5:835:5 | Wrapper | -| main.rs:907:13:907:32 | Wrapper {...} | A | main.rs:906:16:906:16 | A | -| main.rs:907:30:907:30 | a | | main.rs:906:16:906:16 | A | -| main.rs:915:15:915:18 | SelfParam | | main.rs:886:5:887:14 | S2 | -| main.rs:915:45:917:9 | { ... } | | main.rs:832:5:835:5 | Wrapper | -| main.rs:915:45:917:9 | { ... } | A | main.rs:886:5:887:14 | S2 | -| main.rs:916:13:916:35 | Wrapper {...} | | main.rs:832:5:835:5 | Wrapper | -| main.rs:916:13:916:35 | Wrapper {...} | A | main.rs:886:5:887:14 | S2 | -| main.rs:916:30:916:33 | self | | main.rs:886:5:887:14 | S2 | -| main.rs:922:30:924:9 | { ... } | | main.rs:832:5:835:5 | Wrapper | -| main.rs:922:30:924:9 | { ... } | A | main.rs:886:5:887:14 | S2 | -| main.rs:923:13:923:33 | Wrapper {...} | | main.rs:832:5:835:5 | Wrapper | -| main.rs:923:13:923:33 | Wrapper {...} | A | main.rs:886:5:887:14 | S2 | -| main.rs:923:30:923:31 | S2 | | main.rs:886:5:887:14 | S2 | -| main.rs:929:22:929:26 | thing | | main.rs:929:10:929:19 | T | -| main.rs:930:9:930:13 | thing | | main.rs:929:10:929:19 | T | -| main.rs:937:21:937:25 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:937:21:937:25 | SelfParam | &T | main.rs:889:5:890:14 | AT | -| main.rs:937:34:939:9 | { ... } | | main.rs:889:5:890:14 | AT | -| main.rs:938:13:938:14 | AT | | main.rs:889:5:890:14 | AT | -| main.rs:941:20:941:24 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:941:20:941:24 | SelfParam | &T | main.rs:889:5:890:14 | AT | -| main.rs:941:43:943:9 | { ... } | | main.rs:883:5:884:13 | S | -| main.rs:942:13:942:13 | S | | main.rs:883:5:884:13 | S | -| main.rs:945:20:945:24 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:945:20:945:24 | SelfParam | &T | main.rs:889:5:890:14 | AT | -| main.rs:945:43:947:9 | { ... } | | main.rs:886:5:887:14 | S2 | -| main.rs:946:13:946:14 | S2 | | main.rs:886:5:887:14 | S2 | -| main.rs:951:13:951:14 | x1 | | main.rs:883:5:884:13 | S | -| main.rs:951:18:951:18 | S | | main.rs:883:5:884:13 | S | -| main.rs:953:18:953:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:953:18:953:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:953:18:953:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:953:18:953:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:953:26:953:27 | x1 | | main.rs:883:5:884:13 | S | -| main.rs:953:26:953:32 | x1.m1() | | main.rs:889:5:890:14 | AT | -| main.rs:955:13:955:14 | x2 | | main.rs:883:5:884:13 | S | -| main.rs:955:18:955:18 | S | | main.rs:883:5:884:13 | S | -| main.rs:957:13:957:13 | y | | main.rs:889:5:890:14 | AT | -| main.rs:957:17:957:18 | x2 | | main.rs:883:5:884:13 | S | -| main.rs:957:17:957:23 | x2.m2() | | main.rs:889:5:890:14 | AT | -| main.rs:958:18:958:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:958:18:958:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:958:18:958:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:958:18:958:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:958:26:958:26 | y | | main.rs:889:5:890:14 | AT | -| main.rs:960:13:960:14 | x3 | | main.rs:883:5:884:13 | S | -| main.rs:960:18:960:18 | S | | main.rs:883:5:884:13 | S | -| main.rs:962:18:962:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:962:18:962:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:962:18:962:43 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:962:18:962:43 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:962:26:962:27 | x3 | | main.rs:883:5:884:13 | S | -| main.rs:962:26:962:34 | x3.put(...) | | main.rs:832:5:835:5 | Wrapper | -| main.rs:962:26:962:34 | x3.put(...) | A | {EXTERNAL LOCATION} | i32 | -| main.rs:962:26:962:43 | ... .unwrap() | | {EXTERNAL LOCATION} | i32 | -| main.rs:962:33:962:33 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:965:18:965:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:965:18:965:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:965:18:965:49 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:965:18:965:49 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:965:26:965:27 | x3 | | main.rs:883:5:884:13 | S | -| main.rs:965:26:965:40 | x3.putTwo(...) | | main.rs:832:5:835:5 | Wrapper | -| main.rs:965:26:965:40 | x3.putTwo(...) | A | main.rs:903:36:903:50 | AssociatedParam | -| main.rs:965:26:965:49 | ... .unwrap() | | main.rs:903:36:903:50 | AssociatedParam | -| main.rs:965:36:965:36 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:965:39:965:39 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:967:20:967:20 | S | | main.rs:883:5:884:13 | S | -| main.rs:968:18:968:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:968:18:968:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:968:18:968:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:968:18:968:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:970:13:970:14 | x5 | | main.rs:886:5:887:14 | S2 | -| main.rs:970:18:970:19 | S2 | | main.rs:886:5:887:14 | S2 | -| main.rs:971:18:971:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:971:18:971:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:971:18:971:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:971:18:971:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:971:26:971:27 | x5 | | main.rs:886:5:887:14 | S2 | -| main.rs:971:26:971:32 | x5.m1() | | main.rs:832:5:835:5 | Wrapper | -| main.rs:971:26:971:32 | x5.m1() | A | main.rs:886:5:887:14 | S2 | -| main.rs:972:13:972:14 | x6 | | main.rs:886:5:887:14 | S2 | -| main.rs:972:18:972:19 | S2 | | main.rs:886:5:887:14 | S2 | -| main.rs:973:18:973:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:973:18:973:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:973:18:973:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:973:18:973:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:973:26:973:27 | x6 | | main.rs:886:5:887:14 | S2 | -| main.rs:973:26:973:32 | x6.m2() | | main.rs:832:5:835:5 | Wrapper | -| main.rs:973:26:973:32 | x6.m2() | A | main.rs:886:5:887:14 | S2 | -| main.rs:975:13:975:22 | assoc_zero | | main.rs:889:5:890:14 | AT | -| main.rs:975:26:975:27 | AT | | main.rs:889:5:890:14 | AT | -| main.rs:975:26:975:38 | AT.get_zero() | | main.rs:889:5:890:14 | AT | -| main.rs:976:13:976:21 | assoc_one | | main.rs:883:5:884:13 | S | -| main.rs:976:25:976:26 | AT | | main.rs:889:5:890:14 | AT | -| main.rs:976:25:976:36 | AT.get_one() | | main.rs:883:5:884:13 | S | -| main.rs:977:13:977:21 | assoc_two | | main.rs:886:5:887:14 | S2 | -| main.rs:977:25:977:26 | AT | | main.rs:889:5:890:14 | AT | -| main.rs:977:25:977:36 | AT.get_two() | | main.rs:886:5:887:14 | S2 | -| main.rs:985:19:985:23 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:985:19:985:23 | SelfParam | &T | main.rs:982:5:986:5 | Self [trait Supertrait] | -| main.rs:985:26:985:32 | content | | main.rs:983:9:983:21 | Content | -| main.rs:990:24:990:28 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:990:24:990:28 | SelfParam | &T | main.rs:988:5:991:5 | Self [trait Subtrait] | -| main.rs:999:23:999:27 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:999:23:999:27 | SelfParam | &T | main.rs:993:5:1003:5 | Self [trait Subtrait2] | -| main.rs:999:30:999:31 | c1 | | main.rs:983:9:983:21 | Content | -| main.rs:999:49:999:50 | c2 | | main.rs:983:9:983:21 | Content | -| main.rs:1000:13:1000:16 | self | | file://:0:0:0:0 | & | -| main.rs:1000:13:1000:16 | self | &T | main.rs:993:5:1003:5 | Self [trait Subtrait2] | -| main.rs:1000:25:1000:26 | c1 | | main.rs:983:9:983:21 | Content | -| main.rs:1001:13:1001:16 | self | | file://:0:0:0:0 | & | -| main.rs:1001:13:1001:16 | self | &T | main.rs:993:5:1003:5 | Self [trait Subtrait2] | -| main.rs:1001:25:1001:26 | c2 | | main.rs:983:9:983:21 | Content | -| main.rs:1009:19:1009:23 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1009:19:1009:23 | SelfParam | &T | main.rs:1005:5:1005:24 | MyType | -| main.rs:1009:19:1009:23 | SelfParam | &T.T | main.rs:1007:10:1007:10 | T | -| main.rs:1009:26:1009:33 | _content | | main.rs:1007:10:1007:10 | T | -| main.rs:1010:22:1010:42 | "Inserting content: \\n" | | file://:0:0:0:0 | & | -| main.rs:1010:22:1010:42 | "Inserting content: \\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1010:22:1010:42 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1010:22:1010:42 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1016:24:1016:28 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1016:24:1016:28 | SelfParam | &T | main.rs:1005:5:1005:24 | MyType | -| main.rs:1016:24:1016:28 | SelfParam | &T.T | main.rs:1014:10:1014:17 | T | -| main.rs:1016:48:1018:9 | { ... } | | main.rs:1014:10:1014:17 | T | -| main.rs:1017:13:1017:19 | (...) | | main.rs:1005:5:1005:24 | MyType | -| main.rs:1017:13:1017:19 | (...) | T | main.rs:1014:10:1014:17 | T | -| main.rs:1017:13:1017:21 | ... .0 | | main.rs:1014:10:1014:17 | T | -| main.rs:1017:13:1017:29 | ... .clone() | | main.rs:1014:10:1014:17 | T | -| main.rs:1017:14:1017:18 | * ... | | main.rs:1005:5:1005:24 | MyType | -| main.rs:1017:14:1017:18 | * ... | T | main.rs:1014:10:1014:17 | T | -| main.rs:1017:15:1017:18 | self | | file://:0:0:0:0 | & | -| main.rs:1017:15:1017:18 | self | &T | main.rs:1005:5:1005:24 | MyType | -| main.rs:1017:15:1017:18 | self | &T.T | main.rs:1014:10:1014:17 | T | -| main.rs:1021:33:1021:36 | item | | file://:0:0:0:0 | & | -| main.rs:1021:33:1021:36 | item | &T | main.rs:1021:20:1021:30 | T | -| main.rs:1021:57:1023:5 | { ... } | | main.rs:983:9:983:21 | Content | -| main.rs:1022:9:1022:12 | item | | file://:0:0:0:0 | & | -| main.rs:1022:9:1022:12 | item | &T | main.rs:1021:20:1021:30 | T | -| main.rs:1022:9:1022:26 | item.get_content() | | main.rs:983:9:983:21 | Content | -| main.rs:1025:35:1025:38 | item | | file://:0:0:0:0 | & | -| main.rs:1025:35:1025:38 | item | &T | main.rs:1025:21:1025:32 | T | -| main.rs:1025:45:1025:46 | c1 | | main.rs:983:9:983:21 | Content | -| main.rs:1025:61:1025:62 | c2 | | main.rs:983:9:983:21 | Content | -| main.rs:1025:77:1025:78 | c3 | | main.rs:983:9:983:21 | Content | -| main.rs:1026:9:1026:12 | item | | file://:0:0:0:0 | & | -| main.rs:1026:9:1026:12 | item | &T | main.rs:1025:21:1025:32 | T | -| main.rs:1026:21:1026:22 | c1 | | main.rs:983:9:983:21 | Content | -| main.rs:1027:9:1027:12 | item | | file://:0:0:0:0 | & | -| main.rs:1027:9:1027:12 | item | &T | main.rs:1025:21:1025:32 | T | -| main.rs:1027:25:1027:26 | c2 | | main.rs:983:9:983:21 | Content | -| main.rs:1027:29:1027:30 | c3 | | main.rs:983:9:983:21 | Content | -| main.rs:1031:13:1031:17 | item1 | | main.rs:1005:5:1005:24 | MyType | -| main.rs:1031:13:1031:17 | item1 | T | {EXTERNAL LOCATION} | i64 | -| main.rs:1031:21:1031:33 | MyType(...) | | main.rs:1005:5:1005:24 | MyType | -| main.rs:1031:21:1031:33 | MyType(...) | T | {EXTERNAL LOCATION} | i64 | -| main.rs:1031:28:1031:32 | 42i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1032:25:1032:29 | item1 | | main.rs:1005:5:1005:24 | MyType | -| main.rs:1032:25:1032:29 | item1 | T | {EXTERNAL LOCATION} | i64 | -| main.rs:1034:13:1034:17 | item2 | | main.rs:1005:5:1005:24 | MyType | -| main.rs:1034:13:1034:17 | item2 | T | {EXTERNAL LOCATION} | bool | -| main.rs:1034:21:1034:32 | MyType(...) | | main.rs:1005:5:1005:24 | MyType | -| main.rs:1034:21:1034:32 | MyType(...) | T | {EXTERNAL LOCATION} | bool | -| main.rs:1034:28:1034:31 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1035:37:1035:42 | &item2 | | file://:0:0:0:0 | & | -| main.rs:1035:37:1035:42 | &item2 | &T | main.rs:1005:5:1005:24 | MyType | -| main.rs:1035:37:1035:42 | &item2 | &T.T | {EXTERNAL LOCATION} | bool | -| main.rs:1035:38:1035:42 | item2 | | main.rs:1005:5:1005:24 | MyType | -| main.rs:1035:38:1035:42 | item2 | T | {EXTERNAL LOCATION} | bool | -| main.rs:1052:15:1052:18 | SelfParam | | main.rs:1040:5:1044:5 | MyEnum | -| main.rs:1052:15:1052:18 | SelfParam | A | main.rs:1051:10:1051:10 | T | -| main.rs:1052:26:1057:9 | { ... } | | main.rs:1051:10:1051:10 | T | -| main.rs:1053:13:1056:13 | match self { ... } | | main.rs:1051:10:1051:10 | T | -| main.rs:1053:19:1053:22 | self | | main.rs:1040:5:1044:5 | MyEnum | -| main.rs:1053:19:1053:22 | self | A | main.rs:1051:10:1051:10 | T | -| main.rs:1054:17:1054:29 | ...::C1(...) | | main.rs:1040:5:1044:5 | MyEnum | -| main.rs:1054:17:1054:29 | ...::C1(...) | A | main.rs:1051:10:1051:10 | T | -| main.rs:1054:28:1054:28 | a | | main.rs:1051:10:1051:10 | T | -| main.rs:1054:34:1054:34 | a | | main.rs:1051:10:1051:10 | T | -| main.rs:1055:17:1055:32 | ...::C2 {...} | | main.rs:1040:5:1044:5 | MyEnum | -| main.rs:1055:17:1055:32 | ...::C2 {...} | A | main.rs:1051:10:1051:10 | T | -| main.rs:1055:30:1055:30 | a | | main.rs:1051:10:1051:10 | T | -| main.rs:1055:37:1055:37 | a | | main.rs:1051:10:1051:10 | T | -| main.rs:1061:13:1061:13 | x | | main.rs:1040:5:1044:5 | MyEnum | -| main.rs:1061:13:1061:13 | x | A | main.rs:1046:5:1047:14 | S1 | -| main.rs:1061:17:1061:30 | ...::C1(...) | | main.rs:1040:5:1044:5 | MyEnum | -| main.rs:1061:17:1061:30 | ...::C1(...) | A | main.rs:1046:5:1047:14 | S1 | -| main.rs:1061:28:1061:29 | S1 | | main.rs:1046:5:1047:14 | S1 | -| main.rs:1062:13:1062:13 | y | | main.rs:1040:5:1044:5 | MyEnum | -| main.rs:1062:13:1062:13 | y | A | main.rs:1048:5:1049:14 | S2 | -| main.rs:1062:17:1062:36 | ...::C2 {...} | | main.rs:1040:5:1044:5 | MyEnum | -| main.rs:1062:17:1062:36 | ...::C2 {...} | A | main.rs:1048:5:1049:14 | S2 | -| main.rs:1062:33:1062:34 | S2 | | main.rs:1048:5:1049:14 | S2 | -| main.rs:1064:18:1064:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1064:18:1064:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1064:18:1064:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1064:18:1064:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1064:26:1064:26 | x | | main.rs:1040:5:1044:5 | MyEnum | -| main.rs:1064:26:1064:26 | x | A | main.rs:1046:5:1047:14 | S1 | -| main.rs:1064:26:1064:31 | x.m1() | | main.rs:1046:5:1047:14 | S1 | -| main.rs:1065:18:1065:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1065:18:1065:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1065:18:1065:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1065:18:1065:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1065:26:1065:26 | y | | main.rs:1040:5:1044:5 | MyEnum | -| main.rs:1065:26:1065:26 | y | A | main.rs:1048:5:1049:14 | S2 | -| main.rs:1065:26:1065:31 | y.m1() | | main.rs:1048:5:1049:14 | S2 | -| main.rs:1087:15:1087:18 | SelfParam | | main.rs:1085:5:1088:5 | Self [trait MyTrait1] | -| main.rs:1092:15:1092:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1092:15:1092:19 | SelfParam | &T | main.rs:1090:5:1102:5 | Self [trait MyTrait2] | -| main.rs:1095:9:1101:9 | { ... } | | main.rs:1090:20:1090:22 | Tr2 | -| main.rs:1096:13:1100:13 | if ... {...} else {...} | | main.rs:1090:20:1090:22 | Tr2 | -| main.rs:1096:16:1096:16 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1096:16:1096:20 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1096:20:1096:20 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1096:22:1098:13 | { ... } | | main.rs:1090:20:1090:22 | Tr2 | -| main.rs:1097:17:1097:20 | self | | file://:0:0:0:0 | & | -| main.rs:1097:17:1097:20 | self | &T | main.rs:1090:5:1102:5 | Self [trait MyTrait2] | -| main.rs:1097:17:1097:25 | self.m1() | | main.rs:1090:20:1090:22 | Tr2 | -| main.rs:1098:20:1100:13 | { ... } | | main.rs:1090:20:1090:22 | Tr2 | -| main.rs:1099:17:1099:31 | ...::m1(...) | | main.rs:1090:20:1090:22 | Tr2 | -| main.rs:1099:26:1099:30 | * ... | | main.rs:1090:5:1102:5 | Self [trait MyTrait2] | -| main.rs:1099:27:1099:30 | self | | file://:0:0:0:0 | & | -| main.rs:1099:27:1099:30 | self | &T | main.rs:1090:5:1102:5 | Self [trait MyTrait2] | -| main.rs:1106:15:1106:18 | SelfParam | | main.rs:1104:5:1116:5 | Self [trait MyTrait3] | -| main.rs:1109:9:1115:9 | { ... } | | main.rs:1104:20:1104:22 | Tr3 | -| main.rs:1110:13:1114:13 | if ... {...} else {...} | | main.rs:1104:20:1104:22 | Tr3 | -| main.rs:1110:16:1110:16 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1110:16:1110:20 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1110:20:1110:20 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1110:22:1112:13 | { ... } | | main.rs:1104:20:1104:22 | Tr3 | -| main.rs:1111:17:1111:20 | self | | main.rs:1104:5:1116:5 | Self [trait MyTrait3] | -| main.rs:1111:17:1111:25 | self.m2() | | main.rs:1070:5:1073:5 | MyThing | -| main.rs:1111:17:1111:25 | self.m2() | A | main.rs:1104:20:1104:22 | Tr3 | -| main.rs:1111:17:1111:27 | ... .a | | main.rs:1104:20:1104:22 | Tr3 | -| main.rs:1112:20:1114:13 | { ... } | | main.rs:1104:20:1104:22 | Tr3 | -| main.rs:1113:17:1113:31 | ...::m2(...) | | main.rs:1070:5:1073:5 | MyThing | -| main.rs:1113:17:1113:31 | ...::m2(...) | A | main.rs:1104:20:1104:22 | Tr3 | -| main.rs:1113:17:1113:33 | ... .a | | main.rs:1104:20:1104:22 | Tr3 | -| main.rs:1113:26:1113:30 | &self | | file://:0:0:0:0 | & | -| main.rs:1113:26:1113:30 | &self | &T | main.rs:1104:5:1116:5 | Self [trait MyTrait3] | -| main.rs:1113:27:1113:30 | self | | main.rs:1104:5:1116:5 | Self [trait MyTrait3] | -| main.rs:1120:15:1120:18 | SelfParam | | main.rs:1070:5:1073:5 | MyThing | -| main.rs:1120:15:1120:18 | SelfParam | A | main.rs:1118:10:1118:10 | T | -| main.rs:1120:26:1122:9 | { ... } | | main.rs:1118:10:1118:10 | T | -| main.rs:1121:13:1121:16 | self | | main.rs:1070:5:1073:5 | MyThing | -| main.rs:1121:13:1121:16 | self | A | main.rs:1118:10:1118:10 | T | -| main.rs:1121:13:1121:18 | self.a | | main.rs:1118:10:1118:10 | T | -| main.rs:1129:15:1129:18 | SelfParam | | main.rs:1075:5:1078:5 | MyThing2 | -| main.rs:1129:15:1129:18 | SelfParam | A | main.rs:1127:10:1127:10 | T | -| main.rs:1129:35:1131:9 | { ... } | | main.rs:1070:5:1073:5 | MyThing | -| main.rs:1129:35:1131:9 | { ... } | A | main.rs:1127:10:1127:10 | T | -| main.rs:1130:13:1130:33 | MyThing {...} | | main.rs:1070:5:1073:5 | MyThing | -| main.rs:1130:13:1130:33 | MyThing {...} | A | main.rs:1127:10:1127:10 | T | -| main.rs:1130:26:1130:29 | self | | main.rs:1075:5:1078:5 | MyThing2 | -| main.rs:1130:26:1130:29 | self | A | main.rs:1127:10:1127:10 | T | -| main.rs:1130:26:1130:31 | self.a | | main.rs:1127:10:1127:10 | T | -| main.rs:1138:44:1138:44 | x | | main.rs:1138:26:1138:41 | T2 | -| main.rs:1138:57:1140:5 | { ... } | | main.rs:1138:22:1138:23 | T1 | -| main.rs:1139:9:1139:9 | x | | main.rs:1138:26:1138:41 | T2 | -| main.rs:1139:9:1139:14 | x.m1() | | main.rs:1138:22:1138:23 | T1 | -| main.rs:1142:56:1142:56 | x | | main.rs:1142:39:1142:53 | T | -| main.rs:1144:13:1144:13 | a | | main.rs:1070:5:1073:5 | MyThing | -| main.rs:1144:13:1144:13 | a | A | main.rs:1080:5:1081:14 | S1 | -| main.rs:1144:17:1144:17 | x | | main.rs:1142:39:1142:53 | T | -| main.rs:1144:17:1144:22 | x.m1() | | main.rs:1070:5:1073:5 | MyThing | -| main.rs:1144:17:1144:22 | x.m1() | A | main.rs:1080:5:1081:14 | S1 | -| main.rs:1145:18:1145:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1145:18:1145:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1145:18:1145:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1145:18:1145:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1145:26:1145:26 | a | | main.rs:1070:5:1073:5 | MyThing | -| main.rs:1145:26:1145:26 | a | A | main.rs:1080:5:1081:14 | S1 | -| main.rs:1149:13:1149:13 | x | | main.rs:1070:5:1073:5 | MyThing | -| main.rs:1149:13:1149:13 | x | A | main.rs:1080:5:1081:14 | S1 | -| main.rs:1149:17:1149:33 | MyThing {...} | | main.rs:1070:5:1073:5 | MyThing | -| main.rs:1149:17:1149:33 | MyThing {...} | A | main.rs:1080:5:1081:14 | S1 | -| main.rs:1149:30:1149:31 | S1 | | main.rs:1080:5:1081:14 | S1 | -| main.rs:1150:13:1150:13 | y | | main.rs:1070:5:1073:5 | MyThing | -| main.rs:1150:13:1150:13 | y | A | main.rs:1082:5:1083:14 | S2 | -| main.rs:1150:17:1150:33 | MyThing {...} | | main.rs:1070:5:1073:5 | MyThing | -| main.rs:1150:17:1150:33 | MyThing {...} | A | main.rs:1082:5:1083:14 | S2 | -| main.rs:1150:30:1150:31 | S2 | | main.rs:1082:5:1083:14 | S2 | -| main.rs:1152:18:1152:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1152:18:1152:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1152:18:1152:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1152:18:1152:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1152:26:1152:26 | x | | main.rs:1070:5:1073:5 | MyThing | -| main.rs:1152:26:1152:26 | x | A | main.rs:1080:5:1081:14 | S1 | -| main.rs:1152:26:1152:31 | x.m1() | | main.rs:1080:5:1081:14 | S1 | -| main.rs:1153:18:1153:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1153:18:1153:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1153:18:1153:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1153:18:1153:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1153:26:1153:26 | y | | main.rs:1070:5:1073:5 | MyThing | -| main.rs:1153:26:1153:26 | y | A | main.rs:1082:5:1083:14 | S2 | -| main.rs:1153:26:1153:31 | y.m1() | | main.rs:1082:5:1083:14 | S2 | -| main.rs:1155:13:1155:13 | x | | main.rs:1070:5:1073:5 | MyThing | -| main.rs:1155:13:1155:13 | x | A | main.rs:1080:5:1081:14 | S1 | -| main.rs:1155:17:1155:33 | MyThing {...} | | main.rs:1070:5:1073:5 | MyThing | -| main.rs:1155:17:1155:33 | MyThing {...} | A | main.rs:1080:5:1081:14 | S1 | -| main.rs:1155:30:1155:31 | S1 | | main.rs:1080:5:1081:14 | S1 | -| main.rs:1156:13:1156:13 | y | | main.rs:1070:5:1073:5 | MyThing | -| main.rs:1156:13:1156:13 | y | A | main.rs:1082:5:1083:14 | S2 | -| main.rs:1156:17:1156:33 | MyThing {...} | | main.rs:1070:5:1073:5 | MyThing | -| main.rs:1156:17:1156:33 | MyThing {...} | A | main.rs:1082:5:1083:14 | S2 | -| main.rs:1156:30:1156:31 | S2 | | main.rs:1082:5:1083:14 | S2 | -| main.rs:1158:18:1158:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1158:18:1158:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1158:18:1158:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1158:18:1158:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1158:26:1158:26 | x | | main.rs:1070:5:1073:5 | MyThing | -| main.rs:1158:26:1158:26 | x | A | main.rs:1080:5:1081:14 | S1 | -| main.rs:1158:26:1158:31 | x.m2() | | main.rs:1080:5:1081:14 | S1 | -| main.rs:1159:18:1159:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1159:18:1159:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1159:18:1159:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1159:18:1159:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1159:26:1159:26 | y | | main.rs:1070:5:1073:5 | MyThing | -| main.rs:1159:26:1159:26 | y | A | main.rs:1082:5:1083:14 | S2 | -| main.rs:1159:26:1159:31 | y.m2() | | main.rs:1082:5:1083:14 | S2 | -| main.rs:1161:13:1161:13 | x | | main.rs:1075:5:1078:5 | MyThing2 | -| main.rs:1161:13:1161:13 | x | A | main.rs:1080:5:1081:14 | S1 | -| main.rs:1161:17:1161:34 | MyThing2 {...} | | main.rs:1075:5:1078:5 | MyThing2 | -| main.rs:1161:17:1161:34 | MyThing2 {...} | A | main.rs:1080:5:1081:14 | S1 | -| main.rs:1161:31:1161:32 | S1 | | main.rs:1080:5:1081:14 | S1 | -| main.rs:1162:13:1162:13 | y | | main.rs:1075:5:1078:5 | MyThing2 | -| main.rs:1162:13:1162:13 | y | A | main.rs:1082:5:1083:14 | S2 | -| main.rs:1162:17:1162:34 | MyThing2 {...} | | main.rs:1075:5:1078:5 | MyThing2 | -| main.rs:1162:17:1162:34 | MyThing2 {...} | A | main.rs:1082:5:1083:14 | S2 | -| main.rs:1162:31:1162:32 | S2 | | main.rs:1082:5:1083:14 | S2 | -| main.rs:1164:18:1164:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1164:18:1164:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1164:18:1164:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1164:18:1164:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1164:26:1164:26 | x | | main.rs:1075:5:1078:5 | MyThing2 | -| main.rs:1164:26:1164:26 | x | A | main.rs:1080:5:1081:14 | S1 | -| main.rs:1164:26:1164:31 | x.m3() | | main.rs:1080:5:1081:14 | S1 | -| main.rs:1165:18:1165:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1165:18:1165:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1165:18:1165:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1165:18:1165:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1165:26:1165:26 | y | | main.rs:1075:5:1078:5 | MyThing2 | -| main.rs:1165:26:1165:26 | y | A | main.rs:1082:5:1083:14 | S2 | -| main.rs:1165:26:1165:31 | y.m3() | | main.rs:1082:5:1083:14 | S2 | -| main.rs:1167:13:1167:13 | x | | main.rs:1070:5:1073:5 | MyThing | -| main.rs:1167:13:1167:13 | x | A | main.rs:1080:5:1081:14 | S1 | -| main.rs:1167:17:1167:33 | MyThing {...} | | main.rs:1070:5:1073:5 | MyThing | -| main.rs:1167:17:1167:33 | MyThing {...} | A | main.rs:1080:5:1081:14 | S1 | -| main.rs:1167:30:1167:31 | S1 | | main.rs:1080:5:1081:14 | S1 | -| main.rs:1168:13:1168:13 | s | | main.rs:1080:5:1081:14 | S1 | -| main.rs:1168:17:1168:32 | call_trait_m1(...) | | main.rs:1080:5:1081:14 | S1 | -| main.rs:1168:31:1168:31 | x | | main.rs:1070:5:1073:5 | MyThing | -| main.rs:1168:31:1168:31 | x | A | main.rs:1080:5:1081:14 | S1 | -| main.rs:1170:13:1170:13 | x | | main.rs:1075:5:1078:5 | MyThing2 | -| main.rs:1170:13:1170:13 | x | A | main.rs:1082:5:1083:14 | S2 | -| main.rs:1170:17:1170:34 | MyThing2 {...} | | main.rs:1075:5:1078:5 | MyThing2 | -| main.rs:1170:17:1170:34 | MyThing2 {...} | A | main.rs:1082:5:1083:14 | S2 | -| main.rs:1170:31:1170:32 | S2 | | main.rs:1082:5:1083:14 | S2 | -| main.rs:1171:13:1171:13 | s | | main.rs:1070:5:1073:5 | MyThing | -| main.rs:1171:13:1171:13 | s | A | main.rs:1082:5:1083:14 | S2 | -| main.rs:1171:17:1171:32 | call_trait_m1(...) | | main.rs:1070:5:1073:5 | MyThing | -| main.rs:1171:17:1171:32 | call_trait_m1(...) | A | main.rs:1082:5:1083:14 | S2 | -| main.rs:1171:31:1171:31 | x | | main.rs:1075:5:1078:5 | MyThing2 | -| main.rs:1171:31:1171:31 | x | A | main.rs:1082:5:1083:14 | S2 | -| main.rs:1188:22:1188:22 | x | | file://:0:0:0:0 | & | -| main.rs:1188:22:1188:22 | x | &T | main.rs:1188:11:1188:19 | T | -| main.rs:1188:35:1190:5 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1188:35:1190:5 | { ... } | &T | main.rs:1188:11:1188:19 | T | -| main.rs:1189:9:1189:9 | x | | file://:0:0:0:0 | & | -| main.rs:1189:9:1189:9 | x | &T | main.rs:1188:11:1188:19 | T | -| main.rs:1193:17:1193:20 | SelfParam | | main.rs:1178:5:1179:14 | S1 | -| main.rs:1193:29:1195:9 | { ... } | | main.rs:1181:5:1182:14 | S2 | -| main.rs:1194:13:1194:14 | S2 | | main.rs:1181:5:1182:14 | S2 | -| main.rs:1198:21:1198:21 | x | | main.rs:1198:13:1198:14 | T1 | -| main.rs:1201:5:1203:5 | { ... } | | main.rs:1198:17:1198:18 | T2 | -| main.rs:1202:9:1202:9 | x | | main.rs:1198:13:1198:14 | T1 | -| main.rs:1202:9:1202:16 | x.into() | | main.rs:1198:17:1198:18 | T2 | -| main.rs:1206:13:1206:13 | x | | main.rs:1178:5:1179:14 | S1 | -| main.rs:1206:17:1206:18 | S1 | | main.rs:1178:5:1179:14 | S1 | -| main.rs:1207:18:1207:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1207:18:1207:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1207:18:1207:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1207:18:1207:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1207:26:1207:31 | id(...) | | file://:0:0:0:0 | & | -| main.rs:1207:26:1207:31 | id(...) | &T | main.rs:1178:5:1179:14 | S1 | -| main.rs:1207:29:1207:30 | &x | | file://:0:0:0:0 | & | -| main.rs:1207:29:1207:30 | &x | &T | main.rs:1178:5:1179:14 | S1 | -| main.rs:1207:30:1207:30 | x | | main.rs:1178:5:1179:14 | S1 | -| main.rs:1209:13:1209:13 | x | | main.rs:1178:5:1179:14 | S1 | -| main.rs:1209:17:1209:18 | S1 | | main.rs:1178:5:1179:14 | S1 | -| main.rs:1210:18:1210:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1210:18:1210:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1210:18:1210:37 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1210:18:1210:37 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1210:26:1210:37 | id::<...>(...) | | file://:0:0:0:0 | & | -| main.rs:1210:26:1210:37 | id::<...>(...) | &T | main.rs:1178:5:1179:14 | S1 | -| main.rs:1210:35:1210:36 | &x | | file://:0:0:0:0 | & | -| main.rs:1210:35:1210:36 | &x | &T | main.rs:1178:5:1179:14 | S1 | -| main.rs:1210:36:1210:36 | x | | main.rs:1178:5:1179:14 | S1 | -| main.rs:1212:13:1212:13 | x | | main.rs:1178:5:1179:14 | S1 | -| main.rs:1212:13:1212:13 | x | | main.rs:1184:5:1184:25 | dyn Trait | -| main.rs:1212:17:1212:18 | S1 | | main.rs:1178:5:1179:14 | S1 | -| main.rs:1212:17:1212:18 | S1 | | main.rs:1184:5:1184:25 | dyn Trait | -| main.rs:1214:18:1214:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1214:18:1214:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1214:18:1214:44 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1214:18:1214:44 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1214:26:1214:44 | id::<...>(...) | | file://:0:0:0:0 | & | -| main.rs:1214:26:1214:44 | id::<...>(...) | &T | main.rs:1184:5:1184:25 | dyn Trait | -| main.rs:1214:42:1214:43 | &x | | file://:0:0:0:0 | & | -| main.rs:1214:42:1214:43 | &x | &T | main.rs:1178:5:1179:14 | S1 | -| main.rs:1214:42:1214:43 | &x | &T | main.rs:1184:5:1184:25 | dyn Trait | -| main.rs:1214:43:1214:43 | x | | main.rs:1178:5:1179:14 | S1 | -| main.rs:1214:43:1214:43 | x | | main.rs:1184:5:1184:25 | dyn Trait | -| main.rs:1216:13:1216:13 | x | | main.rs:1178:5:1179:14 | S1 | -| main.rs:1216:17:1216:18 | S1 | | main.rs:1178:5:1179:14 | S1 | -| main.rs:1217:9:1217:25 | into::<...>(...) | | main.rs:1181:5:1182:14 | S2 | -| main.rs:1217:24:1217:24 | x | | main.rs:1178:5:1179:14 | S1 | -| main.rs:1219:13:1219:13 | x | | main.rs:1178:5:1179:14 | S1 | -| main.rs:1219:17:1219:18 | S1 | | main.rs:1178:5:1179:14 | S1 | -| main.rs:1220:13:1220:13 | y | | main.rs:1181:5:1182:14 | S2 | -| main.rs:1220:21:1220:27 | into(...) | | main.rs:1181:5:1182:14 | S2 | -| main.rs:1220:26:1220:26 | x | | main.rs:1178:5:1179:14 | S1 | -| main.rs:1234:22:1234:25 | SelfParam | | main.rs:1225:5:1231:5 | PairOption | -| main.rs:1234:22:1234:25 | SelfParam | Fst | main.rs:1233:10:1233:12 | Fst | -| main.rs:1234:22:1234:25 | SelfParam | Snd | main.rs:1233:15:1233:17 | Snd | -| main.rs:1234:35:1241:9 | { ... } | | main.rs:1233:15:1233:17 | Snd | -| main.rs:1235:13:1240:13 | match self { ... } | | main.rs:1233:15:1233:17 | Snd | -| main.rs:1235:19:1235:22 | self | | main.rs:1225:5:1231:5 | PairOption | -| main.rs:1235:19:1235:22 | self | Fst | main.rs:1233:10:1233:12 | Fst | -| main.rs:1235:19:1235:22 | self | Snd | main.rs:1233:15:1233:17 | Snd | -| main.rs:1236:17:1236:38 | ...::PairNone(...) | | main.rs:1225:5:1231:5 | PairOption | -| main.rs:1236:17:1236:38 | ...::PairNone(...) | Fst | main.rs:1233:10:1233:12 | Fst | -| main.rs:1236:17:1236:38 | ...::PairNone(...) | Snd | main.rs:1233:15:1233:17 | Snd | -| main.rs:1236:43:1236:82 | MacroExpr | | main.rs:1233:15:1233:17 | Snd | -| main.rs:1236:50:1236:81 | "PairNone has no second elemen... | | file://:0:0:0:0 | & | -| main.rs:1236:50:1236:81 | "PairNone has no second elemen... | &T | {EXTERNAL LOCATION} | str | -| main.rs:1236:50:1236:81 | ...::panic_fmt(...) | | file://:0:0:0:0 | ! | -| main.rs:1236:50:1236:81 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1236:50:1236:81 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1236:50:1236:81 | MacroExpr | | main.rs:1233:15:1233:17 | Snd | -| main.rs:1236:50:1236:81 | { ... } | | main.rs:1233:15:1233:17 | Snd | -| main.rs:1237:17:1237:38 | ...::PairFst(...) | | main.rs:1225:5:1231:5 | PairOption | -| main.rs:1237:17:1237:38 | ...::PairFst(...) | Fst | main.rs:1233:10:1233:12 | Fst | -| main.rs:1237:17:1237:38 | ...::PairFst(...) | Snd | main.rs:1233:15:1233:17 | Snd | -| main.rs:1237:37:1237:37 | _ | | main.rs:1233:10:1233:12 | Fst | -| main.rs:1237:43:1237:81 | MacroExpr | | main.rs:1233:15:1233:17 | Snd | -| main.rs:1237:50:1237:80 | "PairFst has no second element... | | file://:0:0:0:0 | & | -| main.rs:1237:50:1237:80 | "PairFst has no second element... | &T | {EXTERNAL LOCATION} | str | -| main.rs:1237:50:1237:80 | ...::panic_fmt(...) | | file://:0:0:0:0 | ! | -| main.rs:1237:50:1237:80 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1237:50:1237:80 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1237:50:1237:80 | MacroExpr | | main.rs:1233:15:1233:17 | Snd | -| main.rs:1237:50:1237:80 | { ... } | | main.rs:1233:15:1233:17 | Snd | -| main.rs:1238:17:1238:40 | ...::PairSnd(...) | | main.rs:1225:5:1231:5 | PairOption | -| main.rs:1238:17:1238:40 | ...::PairSnd(...) | Fst | main.rs:1233:10:1233:12 | Fst | -| main.rs:1238:17:1238:40 | ...::PairSnd(...) | Snd | main.rs:1233:15:1233:17 | Snd | -| main.rs:1238:37:1238:39 | snd | | main.rs:1233:15:1233:17 | Snd | -| main.rs:1238:45:1238:47 | snd | | main.rs:1233:15:1233:17 | Snd | -| main.rs:1239:17:1239:44 | ...::PairBoth(...) | | main.rs:1225:5:1231:5 | PairOption | -| main.rs:1239:17:1239:44 | ...::PairBoth(...) | Fst | main.rs:1233:10:1233:12 | Fst | -| main.rs:1239:17:1239:44 | ...::PairBoth(...) | Snd | main.rs:1233:15:1233:17 | Snd | -| main.rs:1239:38:1239:38 | _ | | main.rs:1233:10:1233:12 | Fst | -| main.rs:1239:41:1239:43 | snd | | main.rs:1233:15:1233:17 | Snd | -| main.rs:1239:49:1239:51 | snd | | main.rs:1233:15:1233:17 | Snd | -| main.rs:1265:10:1265:10 | t | | main.rs:1225:5:1231:5 | PairOption | -| main.rs:1265:10:1265:10 | t | Fst | main.rs:1247:5:1248:14 | S2 | -| main.rs:1265:10:1265:10 | t | Snd | main.rs:1225:5:1231:5 | PairOption | -| main.rs:1265:10:1265:10 | t | Snd.Fst | main.rs:1247:5:1248:14 | S2 | -| main.rs:1265:10:1265:10 | t | Snd.Snd | main.rs:1250:5:1251:14 | S3 | -| main.rs:1266:13:1266:13 | x | | main.rs:1250:5:1251:14 | S3 | -| main.rs:1266:17:1266:17 | t | | main.rs:1225:5:1231:5 | PairOption | -| main.rs:1266:17:1266:17 | t | Fst | main.rs:1247:5:1248:14 | S2 | -| main.rs:1266:17:1266:17 | t | Snd | main.rs:1225:5:1231:5 | PairOption | -| main.rs:1266:17:1266:17 | t | Snd.Fst | main.rs:1247:5:1248:14 | S2 | -| main.rs:1266:17:1266:17 | t | Snd.Snd | main.rs:1250:5:1251:14 | S3 | -| main.rs:1266:17:1266:29 | t.unwrapSnd() | | main.rs:1225:5:1231:5 | PairOption | -| main.rs:1266:17:1266:29 | t.unwrapSnd() | Fst | main.rs:1247:5:1248:14 | S2 | -| main.rs:1266:17:1266:29 | t.unwrapSnd() | Snd | main.rs:1250:5:1251:14 | S3 | -| main.rs:1266:17:1266:41 | ... .unwrapSnd() | | main.rs:1250:5:1251:14 | S3 | -| main.rs:1267:18:1267:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1267:18:1267:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1267:18:1267:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1267:18:1267:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1267:26:1267:26 | x | | main.rs:1250:5:1251:14 | S3 | -| main.rs:1282:22:1282:25 | SelfParam | | main.rs:1280:5:1283:5 | Self [trait TraitWithAssocType] | -| main.rs:1290:22:1290:25 | SelfParam | | main.rs:1278:5:1278:28 | GenS | -| main.rs:1290:22:1290:25 | SelfParam | GenT | main.rs:1285:10:1285:15 | Output | -| main.rs:1290:44:1292:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1290:44:1292:9 | { ... } | E | main.rs:1285:10:1285:15 | Output | -| main.rs:1290:44:1292:9 | { ... } | T | main.rs:1285:10:1285:15 | Output | -| main.rs:1291:13:1291:22 | Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1291:13:1291:22 | Ok(...) | E | main.rs:1285:10:1285:15 | Output | -| main.rs:1291:13:1291:22 | Ok(...) | T | main.rs:1285:10:1285:15 | Output | -| main.rs:1291:16:1291:19 | self | | main.rs:1278:5:1278:28 | GenS | -| main.rs:1291:16:1291:19 | self | GenT | main.rs:1285:10:1285:15 | Output | -| main.rs:1291:16:1291:21 | self.0 | | main.rs:1285:10:1285:15 | Output | -| main.rs:1297:13:1297:14 | p1 | | main.rs:1225:5:1231:5 | PairOption | -| main.rs:1297:13:1297:14 | p1 | Fst | main.rs:1244:5:1245:14 | S1 | -| main.rs:1297:13:1297:14 | p1 | Snd | main.rs:1247:5:1248:14 | S2 | -| main.rs:1297:26:1297:53 | ...::PairBoth(...) | | main.rs:1225:5:1231:5 | PairOption | -| main.rs:1297:26:1297:53 | ...::PairBoth(...) | Fst | main.rs:1244:5:1245:14 | S1 | -| main.rs:1297:26:1297:53 | ...::PairBoth(...) | Snd | main.rs:1247:5:1248:14 | S2 | -| main.rs:1297:47:1297:48 | S1 | | main.rs:1244:5:1245:14 | S1 | -| main.rs:1297:51:1297:52 | S2 | | main.rs:1247:5:1248:14 | S2 | -| main.rs:1298:18:1298:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1298:18:1298:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1298:18:1298:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1298:18:1298:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1298:26:1298:27 | p1 | | main.rs:1225:5:1231:5 | PairOption | -| main.rs:1298:26:1298:27 | p1 | Fst | main.rs:1244:5:1245:14 | S1 | -| main.rs:1298:26:1298:27 | p1 | Snd | main.rs:1247:5:1248:14 | S2 | -| main.rs:1301:13:1301:14 | p2 | | main.rs:1225:5:1231:5 | PairOption | -| main.rs:1301:13:1301:14 | p2 | Fst | main.rs:1244:5:1245:14 | S1 | -| main.rs:1301:13:1301:14 | p2 | Snd | main.rs:1247:5:1248:14 | S2 | -| main.rs:1301:26:1301:47 | ...::PairNone(...) | | main.rs:1225:5:1231:5 | PairOption | -| main.rs:1301:26:1301:47 | ...::PairNone(...) | Fst | main.rs:1244:5:1245:14 | S1 | -| main.rs:1301:26:1301:47 | ...::PairNone(...) | Snd | main.rs:1247:5:1248:14 | S2 | -| main.rs:1302:18:1302:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1302:18:1302:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1302:18:1302:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1302:18:1302:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1302:26:1302:27 | p2 | | main.rs:1225:5:1231:5 | PairOption | -| main.rs:1302:26:1302:27 | p2 | Fst | main.rs:1244:5:1245:14 | S1 | -| main.rs:1302:26:1302:27 | p2 | Snd | main.rs:1247:5:1248:14 | S2 | -| main.rs:1305:13:1305:14 | p3 | | main.rs:1225:5:1231:5 | PairOption | -| main.rs:1305:13:1305:14 | p3 | Fst | main.rs:1247:5:1248:14 | S2 | -| main.rs:1305:13:1305:14 | p3 | Snd | main.rs:1250:5:1251:14 | S3 | -| main.rs:1305:34:1305:56 | ...::PairSnd(...) | | main.rs:1225:5:1231:5 | PairOption | -| main.rs:1305:34:1305:56 | ...::PairSnd(...) | Fst | main.rs:1247:5:1248:14 | S2 | -| main.rs:1305:34:1305:56 | ...::PairSnd(...) | Snd | main.rs:1250:5:1251:14 | S3 | -| main.rs:1305:54:1305:55 | S3 | | main.rs:1250:5:1251:14 | S3 | -| main.rs:1306:18:1306:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1306:18:1306:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1306:18:1306:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1306:18:1306:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1306:26:1306:27 | p3 | | main.rs:1225:5:1231:5 | PairOption | -| main.rs:1306:26:1306:27 | p3 | Fst | main.rs:1247:5:1248:14 | S2 | -| main.rs:1306:26:1306:27 | p3 | Snd | main.rs:1250:5:1251:14 | S3 | -| main.rs:1309:13:1309:14 | p3 | | main.rs:1225:5:1231:5 | PairOption | -| main.rs:1309:13:1309:14 | p3 | Fst | main.rs:1247:5:1248:14 | S2 | -| main.rs:1309:13:1309:14 | p3 | Snd | main.rs:1250:5:1251:14 | S3 | -| main.rs:1309:35:1309:56 | ...::PairNone(...) | | main.rs:1225:5:1231:5 | PairOption | -| main.rs:1309:35:1309:56 | ...::PairNone(...) | Fst | main.rs:1247:5:1248:14 | S2 | -| main.rs:1309:35:1309:56 | ...::PairNone(...) | Snd | main.rs:1250:5:1251:14 | S3 | -| main.rs:1310:18:1310:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1310:18:1310:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1310:18:1310:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1310:18:1310:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1310:26:1310:27 | p3 | | main.rs:1225:5:1231:5 | PairOption | -| main.rs:1310:26:1310:27 | p3 | Fst | main.rs:1247:5:1248:14 | S2 | -| main.rs:1310:26:1310:27 | p3 | Snd | main.rs:1250:5:1251:14 | S3 | -| main.rs:1312:11:1312:54 | ...::PairSnd(...) | | main.rs:1225:5:1231:5 | PairOption | -| main.rs:1312:11:1312:54 | ...::PairSnd(...) | Fst | main.rs:1247:5:1248:14 | S2 | -| main.rs:1312:11:1312:54 | ...::PairSnd(...) | Snd | main.rs:1225:5:1231:5 | PairOption | -| main.rs:1312:11:1312:54 | ...::PairSnd(...) | Snd.Fst | main.rs:1247:5:1248:14 | S2 | -| main.rs:1312:11:1312:54 | ...::PairSnd(...) | Snd.Snd | main.rs:1250:5:1251:14 | S3 | -| main.rs:1312:31:1312:53 | ...::PairSnd(...) | | main.rs:1225:5:1231:5 | PairOption | -| main.rs:1312:31:1312:53 | ...::PairSnd(...) | Fst | main.rs:1247:5:1248:14 | S2 | -| main.rs:1312:31:1312:53 | ...::PairSnd(...) | Snd | main.rs:1250:5:1251:14 | S3 | -| main.rs:1312:51:1312:52 | S3 | | main.rs:1250:5:1251:14 | S3 | -| main.rs:1314:13:1314:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:1314:13:1314:13 | x | E | main.rs:1244:5:1245:14 | S1 | -| main.rs:1314:13:1314:13 | x | T | main.rs:1270:5:1270:34 | S4 | -| main.rs:1314:13:1314:13 | x | T.T41 | main.rs:1247:5:1248:14 | S2 | -| main.rs:1314:13:1314:13 | x | T.T42 | main.rs:1272:5:1272:22 | S5 | -| main.rs:1314:13:1314:13 | x | T.T42.T5 | main.rs:1247:5:1248:14 | S2 | -| main.rs:1316:13:1316:13 | y | | {EXTERNAL LOCATION} | Result | -| main.rs:1316:13:1316:13 | y | E | {EXTERNAL LOCATION} | bool | -| main.rs:1316:13:1316:13 | y | T | {EXTERNAL LOCATION} | bool | -| main.rs:1316:17:1316:26 | GenS(...) | | main.rs:1278:5:1278:28 | GenS | -| main.rs:1316:17:1316:26 | GenS(...) | GenT | {EXTERNAL LOCATION} | bool | -| main.rs:1316:17:1316:38 | ... .get_input() | | {EXTERNAL LOCATION} | Result | -| main.rs:1316:17:1316:38 | ... .get_input() | E | {EXTERNAL LOCATION} | bool | -| main.rs:1316:17:1316:38 | ... .get_input() | T | {EXTERNAL LOCATION} | bool | -| main.rs:1316:22:1316:25 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1329:16:1329:24 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1329:16:1329:24 | SelfParam | &T | main.rs:1327:5:1334:5 | Self [trait MyTrait] | -| main.rs:1329:27:1329:31 | value | | main.rs:1327:19:1327:19 | S | -| main.rs:1331:21:1331:29 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1331:21:1331:29 | SelfParam | &T | main.rs:1327:5:1334:5 | Self [trait MyTrait] | -| main.rs:1331:32:1331:36 | value | | main.rs:1327:19:1327:19 | S | -| main.rs:1332:13:1332:16 | self | | file://:0:0:0:0 | & | -| main.rs:1332:13:1332:16 | self | &T | main.rs:1327:5:1334:5 | Self [trait MyTrait] | -| main.rs:1332:22:1332:26 | value | | main.rs:1327:19:1327:19 | S | -| main.rs:1338:16:1338:24 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1338:16:1338:24 | SelfParam | &T | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1338:16:1338:24 | SelfParam | &T.T | main.rs:1336:10:1336:10 | T | -| main.rs:1338:27:1338:31 | value | | main.rs:1336:10:1336:10 | T | -| main.rs:1342:26:1344:9 | { ... } | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1342:26:1344:9 | { ... } | T | main.rs:1341:10:1341:10 | T | -| main.rs:1343:13:1343:30 | ...::MyNone(...) | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1343:13:1343:30 | ...::MyNone(...) | T | main.rs:1341:10:1341:10 | T | -| main.rs:1348:20:1348:23 | SelfParam | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1348:20:1348:23 | SelfParam | T | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1348:20:1348:23 | SelfParam | T.T | main.rs:1347:10:1347:10 | T | -| main.rs:1348:41:1353:9 | { ... } | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1348:41:1353:9 | { ... } | T | main.rs:1347:10:1347:10 | T | -| main.rs:1349:13:1352:13 | match self { ... } | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1349:13:1352:13 | match self { ... } | T | main.rs:1347:10:1347:10 | T | -| main.rs:1349:19:1349:22 | self | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1349:19:1349:22 | self | T | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1349:19:1349:22 | self | T.T | main.rs:1347:10:1347:10 | T | -| main.rs:1350:17:1350:34 | ...::MyNone(...) | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1350:17:1350:34 | ...::MyNone(...) | T | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1350:17:1350:34 | ...::MyNone(...) | T.T | main.rs:1347:10:1347:10 | T | -| main.rs:1350:39:1350:56 | ...::MyNone(...) | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1350:39:1350:56 | ...::MyNone(...) | T | main.rs:1347:10:1347:10 | T | -| main.rs:1351:17:1351:35 | ...::MySome(...) | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1351:17:1351:35 | ...::MySome(...) | T | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1351:17:1351:35 | ...::MySome(...) | T.T | main.rs:1347:10:1347:10 | T | -| main.rs:1351:34:1351:34 | x | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1351:34:1351:34 | x | T | main.rs:1347:10:1347:10 | T | -| main.rs:1351:40:1351:40 | x | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1351:40:1351:40 | x | T | main.rs:1347:10:1347:10 | T | -| main.rs:1360:13:1360:14 | x1 | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1360:13:1360:14 | x1 | T | main.rs:1356:5:1357:13 | S | -| main.rs:1360:18:1360:37 | ...::new(...) | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1360:18:1360:37 | ...::new(...) | T | main.rs:1356:5:1357:13 | S | -| main.rs:1361:18:1361:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1361:18:1361:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1361:18:1361:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1361:18:1361:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1361:26:1361:27 | x1 | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1361:26:1361:27 | x1 | T | main.rs:1356:5:1357:13 | S | -| main.rs:1363:17:1363:18 | x2 | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1363:17:1363:18 | x2 | T | main.rs:1356:5:1357:13 | S | -| main.rs:1363:22:1363:36 | ...::new(...) | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1363:22:1363:36 | ...::new(...) | T | main.rs:1356:5:1357:13 | S | -| main.rs:1364:9:1364:10 | x2 | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1364:9:1364:10 | x2 | T | main.rs:1356:5:1357:13 | S | -| main.rs:1364:16:1364:16 | S | | main.rs:1356:5:1357:13 | S | -| main.rs:1365:18:1365:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1365:18:1365:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1365:18:1365:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1365:18:1365:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1365:26:1365:27 | x2 | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1365:26:1365:27 | x2 | T | main.rs:1356:5:1357:13 | S | -| main.rs:1368:17:1368:18 | x3 | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1368:22:1368:36 | ...::new(...) | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1369:9:1369:10 | x3 | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1369:21:1369:21 | S | | main.rs:1356:5:1357:13 | S | -| main.rs:1370:18:1370:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1370:18:1370:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1370:18:1370:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1370:18:1370:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1370:26:1370:27 | x3 | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1372:17:1372:18 | x4 | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1372:17:1372:18 | x4 | T | main.rs:1356:5:1357:13 | S | -| main.rs:1372:22:1372:36 | ...::new(...) | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1372:22:1372:36 | ...::new(...) | T | main.rs:1356:5:1357:13 | S | -| main.rs:1373:23:1373:29 | &mut x4 | | file://:0:0:0:0 | & | -| main.rs:1373:23:1373:29 | &mut x4 | &T | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1373:23:1373:29 | &mut x4 | &T.T | main.rs:1356:5:1357:13 | S | -| main.rs:1373:28:1373:29 | x4 | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1373:28:1373:29 | x4 | T | main.rs:1356:5:1357:13 | S | -| main.rs:1373:32:1373:32 | S | | main.rs:1356:5:1357:13 | S | -| main.rs:1374:18:1374:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1374:18:1374:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1374:18:1374:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1374:18:1374:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1374:26:1374:27 | x4 | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1374:26:1374:27 | x4 | T | main.rs:1356:5:1357:13 | S | -| main.rs:1376:13:1376:14 | x5 | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1376:13:1376:14 | x5 | T | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1376:13:1376:14 | x5 | T.T | main.rs:1356:5:1357:13 | S | -| main.rs:1376:18:1376:58 | ...::MySome(...) | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1376:18:1376:58 | ...::MySome(...) | T | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1376:18:1376:58 | ...::MySome(...) | T.T | main.rs:1356:5:1357:13 | S | -| main.rs:1376:35:1376:57 | ...::MyNone(...) | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1376:35:1376:57 | ...::MyNone(...) | T | main.rs:1356:5:1357:13 | S | -| main.rs:1377:18:1377:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1377:18:1377:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1377:18:1377:37 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1377:18:1377:37 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1377:26:1377:27 | x5 | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1377:26:1377:27 | x5 | T | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1377:26:1377:27 | x5 | T.T | main.rs:1356:5:1357:13 | S | -| main.rs:1377:26:1377:37 | x5.flatten() | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1377:26:1377:37 | x5.flatten() | T | main.rs:1356:5:1357:13 | S | -| main.rs:1379:13:1379:14 | x6 | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1379:13:1379:14 | x6 | T | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1379:13:1379:14 | x6 | T.T | main.rs:1356:5:1357:13 | S | -| main.rs:1379:18:1379:58 | ...::MySome(...) | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1379:18:1379:58 | ...::MySome(...) | T | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1379:18:1379:58 | ...::MySome(...) | T.T | main.rs:1356:5:1357:13 | S | -| main.rs:1379:35:1379:57 | ...::MyNone(...) | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1379:35:1379:57 | ...::MyNone(...) | T | main.rs:1356:5:1357:13 | S | -| main.rs:1380:18:1380:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1380:18:1380:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1380:18:1380:61 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1380:18:1380:61 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1380:26:1380:61 | ...::flatten(...) | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1380:26:1380:61 | ...::flatten(...) | T | main.rs:1356:5:1357:13 | S | -| main.rs:1380:59:1380:60 | x6 | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1380:59:1380:60 | x6 | T | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1380:59:1380:60 | x6 | T.T | main.rs:1356:5:1357:13 | S | -| main.rs:1383:13:1383:19 | from_if | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1383:13:1383:19 | from_if | T | main.rs:1356:5:1357:13 | S | -| main.rs:1383:23:1387:9 | if ... {...} else {...} | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1383:23:1387:9 | if ... {...} else {...} | T | main.rs:1356:5:1357:13 | S | -| main.rs:1383:26:1383:26 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1383:26:1383:30 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1383:30:1383:30 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1383:32:1385:9 | { ... } | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1383:32:1385:9 | { ... } | T | main.rs:1356:5:1357:13 | S | -| main.rs:1384:13:1384:30 | ...::MyNone(...) | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1384:13:1384:30 | ...::MyNone(...) | T | main.rs:1356:5:1357:13 | S | -| main.rs:1385:16:1387:9 | { ... } | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1385:16:1387:9 | { ... } | T | main.rs:1356:5:1357:13 | S | -| main.rs:1386:13:1386:31 | ...::MySome(...) | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1386:13:1386:31 | ...::MySome(...) | T | main.rs:1356:5:1357:13 | S | -| main.rs:1386:30:1386:30 | S | | main.rs:1356:5:1357:13 | S | -| main.rs:1388:18:1388:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1388:18:1388:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1388:18:1388:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1388:18:1388:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1388:26:1388:32 | from_if | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1388:26:1388:32 | from_if | T | main.rs:1356:5:1357:13 | S | -| main.rs:1391:13:1391:22 | from_match | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1391:13:1391:22 | from_match | T | main.rs:1356:5:1357:13 | S | -| main.rs:1391:26:1394:9 | match ... { ... } | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1391:26:1394:9 | match ... { ... } | T | main.rs:1356:5:1357:13 | S | -| main.rs:1391:32:1391:32 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1391:32:1391:36 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1391:36:1391:36 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1392:13:1392:16 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1392:21:1392:38 | ...::MyNone(...) | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1392:21:1392:38 | ...::MyNone(...) | T | main.rs:1356:5:1357:13 | S | -| main.rs:1393:13:1393:17 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1393:22:1393:40 | ...::MySome(...) | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1393:22:1393:40 | ...::MySome(...) | T | main.rs:1356:5:1357:13 | S | -| main.rs:1393:39:1393:39 | S | | main.rs:1356:5:1357:13 | S | -| main.rs:1395:18:1395:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1395:18:1395:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1395:18:1395:35 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1395:18:1395:35 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1395:26:1395:35 | from_match | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1395:26:1395:35 | from_match | T | main.rs:1356:5:1357:13 | S | -| main.rs:1398:13:1398:21 | from_loop | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1398:13:1398:21 | from_loop | T | main.rs:1356:5:1357:13 | S | -| main.rs:1398:25:1403:9 | loop { ... } | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1398:25:1403:9 | loop { ... } | T | main.rs:1356:5:1357:13 | S | -| main.rs:1399:16:1399:16 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1399:16:1399:20 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1399:20:1399:20 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1400:23:1400:40 | ...::MyNone(...) | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1400:23:1400:40 | ...::MyNone(...) | T | main.rs:1356:5:1357:13 | S | -| main.rs:1402:19:1402:37 | ...::MySome(...) | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1402:19:1402:37 | ...::MySome(...) | T | main.rs:1356:5:1357:13 | S | -| main.rs:1402:36:1402:36 | S | | main.rs:1356:5:1357:13 | S | -| main.rs:1404:18:1404:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1404:18:1404:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1404:18:1404:34 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1404:18:1404:34 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1404:26:1404:34 | from_loop | | main.rs:1321:5:1325:5 | MyOption | -| main.rs:1404:26:1404:34 | from_loop | T | main.rs:1356:5:1357:13 | S | -| main.rs:1422:15:1422:18 | SelfParam | | main.rs:1410:5:1411:19 | S | -| main.rs:1422:15:1422:18 | SelfParam | T | main.rs:1421:10:1421:10 | T | -| main.rs:1422:26:1424:9 | { ... } | | main.rs:1421:10:1421:10 | T | -| main.rs:1423:13:1423:16 | self | | main.rs:1410:5:1411:19 | S | -| main.rs:1423:13:1423:16 | self | T | main.rs:1421:10:1421:10 | T | -| main.rs:1423:13:1423:18 | self.0 | | main.rs:1421:10:1421:10 | T | -| main.rs:1426:15:1426:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1426:15:1426:19 | SelfParam | &T | main.rs:1410:5:1411:19 | S | -| main.rs:1426:15:1426:19 | SelfParam | &T.T | main.rs:1421:10:1421:10 | T | -| main.rs:1426:28:1428:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1426:28:1428:9 | { ... } | &T | main.rs:1421:10:1421:10 | T | -| main.rs:1427:13:1427:19 | &... | | file://:0:0:0:0 | & | -| main.rs:1427:13:1427:19 | &... | &T | main.rs:1421:10:1421:10 | T | -| main.rs:1427:14:1427:17 | self | | file://:0:0:0:0 | & | -| main.rs:1427:14:1427:17 | self | &T | main.rs:1410:5:1411:19 | S | -| main.rs:1427:14:1427:17 | self | &T.T | main.rs:1421:10:1421:10 | T | -| main.rs:1427:14:1427:19 | self.0 | | main.rs:1421:10:1421:10 | T | -| main.rs:1430:15:1430:25 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1430:15:1430:25 | SelfParam | &T | main.rs:1410:5:1411:19 | S | -| main.rs:1430:15:1430:25 | SelfParam | &T.T | main.rs:1421:10:1421:10 | T | -| main.rs:1430:34:1432:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1430:34:1432:9 | { ... } | &T | main.rs:1421:10:1421:10 | T | -| main.rs:1431:13:1431:19 | &... | | file://:0:0:0:0 | & | -| main.rs:1431:13:1431:19 | &... | &T | main.rs:1421:10:1421:10 | T | -| main.rs:1431:14:1431:17 | self | | file://:0:0:0:0 | & | -| main.rs:1431:14:1431:17 | self | &T | main.rs:1410:5:1411:19 | S | -| main.rs:1431:14:1431:17 | self | &T.T | main.rs:1421:10:1421:10 | T | -| main.rs:1431:14:1431:19 | self.0 | | main.rs:1421:10:1421:10 | T | -| main.rs:1436:29:1436:33 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1436:29:1436:33 | SelfParam | &T | main.rs:1435:5:1438:5 | Self [trait ATrait] | -| main.rs:1437:33:1437:36 | SelfParam | | main.rs:1435:5:1438:5 | Self [trait ATrait] | -| main.rs:1443:29:1443:33 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1443:29:1443:33 | SelfParam | &T | file://:0:0:0:0 | & | -| main.rs:1443:29:1443:33 | SelfParam | &T.&T | main.rs:1416:5:1419:5 | MyInt | -| main.rs:1443:43:1445:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1444:13:1444:22 | (...) | | main.rs:1416:5:1419:5 | MyInt | -| main.rs:1444:13:1444:24 | ... .a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1444:14:1444:21 | * ... | | main.rs:1416:5:1419:5 | MyInt | -| main.rs:1444:15:1444:21 | (...) | | file://:0:0:0:0 | & | -| main.rs:1444:15:1444:21 | (...) | &T | main.rs:1416:5:1419:5 | MyInt | -| main.rs:1444:16:1444:20 | * ... | | file://:0:0:0:0 | & | -| main.rs:1444:16:1444:20 | * ... | &T | main.rs:1416:5:1419:5 | MyInt | -| main.rs:1444:17:1444:20 | self | | file://:0:0:0:0 | & | -| main.rs:1444:17:1444:20 | self | &T | file://:0:0:0:0 | & | -| main.rs:1444:17:1444:20 | self | &T.&T | main.rs:1416:5:1419:5 | MyInt | -| main.rs:1448:33:1448:36 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1448:33:1448:36 | SelfParam | &T | main.rs:1416:5:1419:5 | MyInt | -| main.rs:1448:46:1450:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1449:13:1449:19 | (...) | | main.rs:1416:5:1419:5 | MyInt | -| main.rs:1449:13:1449:21 | ... .a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1449:14:1449:18 | * ... | | main.rs:1416:5:1419:5 | MyInt | -| main.rs:1449:15:1449:18 | self | | file://:0:0:0:0 | & | -| main.rs:1449:15:1449:18 | self | &T | main.rs:1416:5:1419:5 | MyInt | -| main.rs:1454:13:1454:14 | x1 | | main.rs:1410:5:1411:19 | S | -| main.rs:1454:13:1454:14 | x1 | T | main.rs:1413:5:1414:14 | S2 | -| main.rs:1454:18:1454:22 | S(...) | | main.rs:1410:5:1411:19 | S | -| main.rs:1454:18:1454:22 | S(...) | T | main.rs:1413:5:1414:14 | S2 | -| main.rs:1454:20:1454:21 | S2 | | main.rs:1413:5:1414:14 | S2 | -| main.rs:1455:18:1455:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1455:18:1455:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1455:18:1455:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1455:18:1455:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1455:26:1455:27 | x1 | | main.rs:1410:5:1411:19 | S | -| main.rs:1455:26:1455:27 | x1 | T | main.rs:1413:5:1414:14 | S2 | -| main.rs:1455:26:1455:32 | x1.m1() | | main.rs:1413:5:1414:14 | S2 | -| main.rs:1457:13:1457:14 | x2 | | main.rs:1410:5:1411:19 | S | -| main.rs:1457:13:1457:14 | x2 | T | main.rs:1413:5:1414:14 | S2 | -| main.rs:1457:18:1457:22 | S(...) | | main.rs:1410:5:1411:19 | S | -| main.rs:1457:18:1457:22 | S(...) | T | main.rs:1413:5:1414:14 | S2 | -| main.rs:1457:20:1457:21 | S2 | | main.rs:1413:5:1414:14 | S2 | -| main.rs:1459:18:1459:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1459:18:1459:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1459:18:1459:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1459:18:1459:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1459:26:1459:27 | x2 | | main.rs:1410:5:1411:19 | S | -| main.rs:1459:26:1459:27 | x2 | T | main.rs:1413:5:1414:14 | S2 | -| main.rs:1459:26:1459:32 | x2.m2() | | file://:0:0:0:0 | & | -| main.rs:1459:26:1459:32 | x2.m2() | &T | main.rs:1413:5:1414:14 | S2 | -| main.rs:1460:18:1460:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1460:18:1460:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1460:18:1460:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1460:18:1460:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1460:26:1460:27 | x2 | | main.rs:1410:5:1411:19 | S | -| main.rs:1460:26:1460:27 | x2 | T | main.rs:1413:5:1414:14 | S2 | -| main.rs:1460:26:1460:32 | x2.m3() | | file://:0:0:0:0 | & | -| main.rs:1460:26:1460:32 | x2.m3() | &T | main.rs:1413:5:1414:14 | S2 | -| main.rs:1462:13:1462:14 | x3 | | main.rs:1410:5:1411:19 | S | -| main.rs:1462:13:1462:14 | x3 | T | main.rs:1413:5:1414:14 | S2 | -| main.rs:1462:18:1462:22 | S(...) | | main.rs:1410:5:1411:19 | S | -| main.rs:1462:18:1462:22 | S(...) | T | main.rs:1413:5:1414:14 | S2 | -| main.rs:1462:20:1462:21 | S2 | | main.rs:1413:5:1414:14 | S2 | -| main.rs:1464:18:1464:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1464:18:1464:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1464:18:1464:41 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1464:18:1464:41 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1464:26:1464:41 | ...::m2(...) | | file://:0:0:0:0 | & | -| main.rs:1464:26:1464:41 | ...::m2(...) | &T | main.rs:1413:5:1414:14 | S2 | -| main.rs:1464:38:1464:40 | &x3 | | file://:0:0:0:0 | & | -| main.rs:1464:38:1464:40 | &x3 | &T | main.rs:1410:5:1411:19 | S | -| main.rs:1464:38:1464:40 | &x3 | &T.T | main.rs:1413:5:1414:14 | S2 | -| main.rs:1464:39:1464:40 | x3 | | main.rs:1410:5:1411:19 | S | -| main.rs:1464:39:1464:40 | x3 | T | main.rs:1413:5:1414:14 | S2 | -| main.rs:1465:18:1465:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1465:18:1465:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1465:18:1465:41 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1465:18:1465:41 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1465:26:1465:41 | ...::m3(...) | | file://:0:0:0:0 | & | -| main.rs:1465:26:1465:41 | ...::m3(...) | &T | main.rs:1413:5:1414:14 | S2 | -| main.rs:1465:38:1465:40 | &x3 | | file://:0:0:0:0 | & | -| main.rs:1465:38:1465:40 | &x3 | &T | main.rs:1410:5:1411:19 | S | -| main.rs:1465:38:1465:40 | &x3 | &T.T | main.rs:1413:5:1414:14 | S2 | -| main.rs:1465:39:1465:40 | x3 | | main.rs:1410:5:1411:19 | S | -| main.rs:1465:39:1465:40 | x3 | T | main.rs:1413:5:1414:14 | S2 | -| main.rs:1467:13:1467:14 | x4 | | file://:0:0:0:0 | & | -| main.rs:1467:13:1467:14 | x4 | &T | main.rs:1410:5:1411:19 | S | -| main.rs:1467:13:1467:14 | x4 | &T.T | main.rs:1413:5:1414:14 | S2 | -| main.rs:1467:18:1467:23 | &... | | file://:0:0:0:0 | & | -| main.rs:1467:18:1467:23 | &... | &T | main.rs:1410:5:1411:19 | S | -| main.rs:1467:18:1467:23 | &... | &T.T | main.rs:1413:5:1414:14 | S2 | -| main.rs:1467:19:1467:23 | S(...) | | main.rs:1410:5:1411:19 | S | -| main.rs:1467:19:1467:23 | S(...) | T | main.rs:1413:5:1414:14 | S2 | -| main.rs:1467:21:1467:22 | S2 | | main.rs:1413:5:1414:14 | S2 | -| main.rs:1469:18:1469:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1469:18:1469:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1469:18:1469:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1469:18:1469:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1469:26:1469:27 | x4 | | file://:0:0:0:0 | & | -| main.rs:1469:26:1469:27 | x4 | &T | main.rs:1410:5:1411:19 | S | -| main.rs:1469:26:1469:27 | x4 | &T.T | main.rs:1413:5:1414:14 | S2 | -| main.rs:1469:26:1469:32 | x4.m2() | | file://:0:0:0:0 | & | -| main.rs:1469:26:1469:32 | x4.m2() | &T | main.rs:1413:5:1414:14 | S2 | -| main.rs:1470:18:1470:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1470:18:1470:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1470:18:1470:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1470:18:1470:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1470:26:1470:27 | x4 | | file://:0:0:0:0 | & | -| main.rs:1470:26:1470:27 | x4 | &T | main.rs:1410:5:1411:19 | S | -| main.rs:1470:26:1470:27 | x4 | &T.T | main.rs:1413:5:1414:14 | S2 | -| main.rs:1470:26:1470:32 | x4.m3() | | file://:0:0:0:0 | & | -| main.rs:1470:26:1470:32 | x4.m3() | &T | main.rs:1413:5:1414:14 | S2 | -| main.rs:1472:13:1472:14 | x5 | | file://:0:0:0:0 | & | -| main.rs:1472:13:1472:14 | x5 | &T | main.rs:1410:5:1411:19 | S | -| main.rs:1472:13:1472:14 | x5 | &T.T | main.rs:1413:5:1414:14 | S2 | -| main.rs:1472:18:1472:23 | &... | | file://:0:0:0:0 | & | -| main.rs:1472:18:1472:23 | &... | &T | main.rs:1410:5:1411:19 | S | -| main.rs:1472:18:1472:23 | &... | &T.T | main.rs:1413:5:1414:14 | S2 | -| main.rs:1472:19:1472:23 | S(...) | | main.rs:1410:5:1411:19 | S | -| main.rs:1472:19:1472:23 | S(...) | T | main.rs:1413:5:1414:14 | S2 | -| main.rs:1472:21:1472:22 | S2 | | main.rs:1413:5:1414:14 | S2 | -| main.rs:1474:18:1474:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1474:18:1474:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1474:18:1474:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1474:18:1474:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1474:26:1474:27 | x5 | | file://:0:0:0:0 | & | -| main.rs:1474:26:1474:27 | x5 | &T | main.rs:1410:5:1411:19 | S | -| main.rs:1474:26:1474:27 | x5 | &T.T | main.rs:1413:5:1414:14 | S2 | -| main.rs:1474:26:1474:32 | x5.m1() | | main.rs:1413:5:1414:14 | S2 | -| main.rs:1475:18:1475:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1475:18:1475:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1475:18:1475:29 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1475:18:1475:29 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1475:26:1475:27 | x5 | | file://:0:0:0:0 | & | -| main.rs:1475:26:1475:27 | x5 | &T | main.rs:1410:5:1411:19 | S | -| main.rs:1475:26:1475:27 | x5 | &T.T | main.rs:1413:5:1414:14 | S2 | -| main.rs:1475:26:1475:29 | x5.0 | | main.rs:1413:5:1414:14 | S2 | -| main.rs:1477:13:1477:14 | x6 | | file://:0:0:0:0 | & | -| main.rs:1477:13:1477:14 | x6 | &T | main.rs:1410:5:1411:19 | S | -| main.rs:1477:13:1477:14 | x6 | &T.T | main.rs:1413:5:1414:14 | S2 | -| main.rs:1477:18:1477:23 | &... | | file://:0:0:0:0 | & | -| main.rs:1477:18:1477:23 | &... | &T | main.rs:1410:5:1411:19 | S | -| main.rs:1477:18:1477:23 | &... | &T.T | main.rs:1413:5:1414:14 | S2 | -| main.rs:1477:19:1477:23 | S(...) | | main.rs:1410:5:1411:19 | S | -| main.rs:1477:19:1477:23 | S(...) | T | main.rs:1413:5:1414:14 | S2 | -| main.rs:1477:21:1477:22 | S2 | | main.rs:1413:5:1414:14 | S2 | -| main.rs:1480:18:1480:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1480:18:1480:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1480:18:1480:35 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1480:18:1480:35 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1480:26:1480:30 | (...) | | main.rs:1410:5:1411:19 | S | -| main.rs:1480:26:1480:30 | (...) | T | main.rs:1413:5:1414:14 | S2 | -| main.rs:1480:26:1480:35 | ... .m1() | | main.rs:1413:5:1414:14 | S2 | -| main.rs:1480:27:1480:29 | * ... | | main.rs:1410:5:1411:19 | S | -| main.rs:1480:27:1480:29 | * ... | T | main.rs:1413:5:1414:14 | S2 | -| main.rs:1480:28:1480:29 | x6 | | file://:0:0:0:0 | & | -| main.rs:1480:28:1480:29 | x6 | &T | main.rs:1410:5:1411:19 | S | -| main.rs:1480:28:1480:29 | x6 | &T.T | main.rs:1413:5:1414:14 | S2 | -| main.rs:1482:13:1482:14 | x7 | | main.rs:1410:5:1411:19 | S | -| main.rs:1482:13:1482:14 | x7 | T | file://:0:0:0:0 | & | -| main.rs:1482:13:1482:14 | x7 | T.&T | main.rs:1413:5:1414:14 | S2 | -| main.rs:1482:18:1482:23 | S(...) | | main.rs:1410:5:1411:19 | S | -| main.rs:1482:18:1482:23 | S(...) | T | file://:0:0:0:0 | & | -| main.rs:1482:18:1482:23 | S(...) | T.&T | main.rs:1413:5:1414:14 | S2 | -| main.rs:1482:20:1482:22 | &S2 | | file://:0:0:0:0 | & | -| main.rs:1482:20:1482:22 | &S2 | &T | main.rs:1413:5:1414:14 | S2 | -| main.rs:1482:21:1482:22 | S2 | | main.rs:1413:5:1414:14 | S2 | -| main.rs:1485:13:1485:13 | t | | file://:0:0:0:0 | & | -| main.rs:1485:13:1485:13 | t | &T | main.rs:1413:5:1414:14 | S2 | -| main.rs:1485:17:1485:18 | x7 | | main.rs:1410:5:1411:19 | S | -| main.rs:1485:17:1485:18 | x7 | T | file://:0:0:0:0 | & | -| main.rs:1485:17:1485:18 | x7 | T.&T | main.rs:1413:5:1414:14 | S2 | -| main.rs:1485:17:1485:23 | x7.m1() | | file://:0:0:0:0 | & | -| main.rs:1485:17:1485:23 | x7.m1() | &T | main.rs:1413:5:1414:14 | S2 | -| main.rs:1486:18:1486:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1486:18:1486:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1486:18:1486:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1486:18:1486:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1486:26:1486:27 | x7 | | main.rs:1410:5:1411:19 | S | -| main.rs:1486:26:1486:27 | x7 | T | file://:0:0:0:0 | & | -| main.rs:1486:26:1486:27 | x7 | T.&T | main.rs:1413:5:1414:14 | S2 | -| main.rs:1488:13:1488:14 | x9 | | {EXTERNAL LOCATION} | String | -| main.rs:1488:26:1488:32 | "Hello" | | file://:0:0:0:0 | & | -| main.rs:1488:26:1488:32 | "Hello" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1488:26:1488:44 | "Hello".to_string() | | {EXTERNAL LOCATION} | String | -| main.rs:1492:13:1492:13 | u | | {EXTERNAL LOCATION} | Result | -| main.rs:1492:13:1492:13 | u | T | {EXTERNAL LOCATION} | u32 | -| main.rs:1492:17:1492:18 | x9 | | {EXTERNAL LOCATION} | String | -| main.rs:1492:17:1492:33 | x9.parse() | | {EXTERNAL LOCATION} | Result | -| main.rs:1492:17:1492:33 | x9.parse() | T | {EXTERNAL LOCATION} | u32 | -| main.rs:1494:13:1494:20 | my_thing | | file://:0:0:0:0 | & | -| main.rs:1494:13:1494:20 | my_thing | &T | main.rs:1416:5:1419:5 | MyInt | -| main.rs:1494:24:1494:39 | &... | | file://:0:0:0:0 | & | -| main.rs:1494:24:1494:39 | &... | &T | main.rs:1416:5:1419:5 | MyInt | -| main.rs:1494:25:1494:39 | MyInt {...} | | main.rs:1416:5:1419:5 | MyInt | -| main.rs:1494:36:1494:37 | 37 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1494:36:1494:37 | 37 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1496:13:1496:13 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1496:17:1496:24 | my_thing | | file://:0:0:0:0 | & | -| main.rs:1496:17:1496:24 | my_thing | &T | main.rs:1416:5:1419:5 | MyInt | -| main.rs:1496:17:1496:43 | my_thing.method_on_borrow() | | {EXTERNAL LOCATION} | i64 | +| main.rs:827:26:827:26 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:828:13:828:13 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:828:17:828:35 | call_trait_m1_2(...) | | main.rs:743:5:744:14 | S1 | +| main.rs:828:33:828:34 | x2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:828:33:828:34 | x2 | T | main.rs:743:5:744:14 | S1 | +| main.rs:829:18:829:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:829:18:829:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:829:18:829:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:829:18:829:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:829:26:829:26 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:830:13:830:13 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:830:17:830:35 | call_trait_m1_3(...) | | main.rs:743:5:744:14 | S1 | +| main.rs:830:33:830:34 | x2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:830:33:830:34 | x2 | T | main.rs:743:5:744:14 | S1 | +| main.rs:831:18:831:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:831:18:831:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:831:18:831:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:831:18:831:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:831:26:831:26 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:832:13:832:13 | a | | main.rs:745:5:746:14 | S2 | +| main.rs:832:17:832:33 | call_trait_m1(...) | | main.rs:745:5:746:14 | S2 | +| main.rs:832:31:832:32 | y2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:832:31:832:32 | y2 | T | main.rs:745:5:746:14 | S2 | +| main.rs:833:18:833:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:833:18:833:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:833:18:833:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:833:18:833:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:833:26:833:26 | a | | main.rs:745:5:746:14 | S2 | +| main.rs:834:13:834:13 | a | | main.rs:745:5:746:14 | S2 | +| main.rs:834:17:834:35 | call_trait_m1_2(...) | | main.rs:745:5:746:14 | S2 | +| main.rs:834:33:834:34 | y2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:834:33:834:34 | y2 | T | main.rs:745:5:746:14 | S2 | +| main.rs:835:18:835:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:835:18:835:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:835:18:835:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:835:18:835:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:835:26:835:26 | a | | main.rs:745:5:746:14 | S2 | +| main.rs:836:13:836:13 | a | | main.rs:745:5:746:14 | S2 | +| main.rs:836:17:836:35 | call_trait_m1_3(...) | | main.rs:745:5:746:14 | S2 | +| main.rs:836:33:836:34 | y2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:836:33:836:34 | y2 | T | main.rs:745:5:746:14 | S2 | +| main.rs:837:18:837:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:837:18:837:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:837:18:837:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:837:18:837:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:837:26:837:26 | a | | main.rs:745:5:746:14 | S2 | +| main.rs:838:13:838:13 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:838:17:838:38 | call_trait_assoc_1(...) | | main.rs:743:5:744:14 | S1 | +| main.rs:838:36:838:37 | x2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:838:36:838:37 | x2 | T | main.rs:743:5:744:14 | S1 | +| main.rs:839:18:839:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:839:18:839:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:839:18:839:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:839:18:839:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:839:26:839:26 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:840:13:840:13 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:840:17:840:38 | call_trait_assoc_2(...) | | main.rs:743:5:744:14 | S1 | +| main.rs:840:36:840:37 | x2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:840:36:840:37 | x2 | T | main.rs:743:5:744:14 | S1 | +| main.rs:841:18:841:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:841:18:841:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:841:18:841:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:841:18:841:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:841:26:841:26 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:842:13:842:13 | a | | main.rs:745:5:746:14 | S2 | +| main.rs:842:17:842:38 | call_trait_assoc_1(...) | | main.rs:745:5:746:14 | S2 | +| main.rs:842:36:842:37 | y2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:842:36:842:37 | y2 | T | main.rs:745:5:746:14 | S2 | +| main.rs:843:18:843:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:843:18:843:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:843:18:843:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:843:18:843:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:843:26:843:26 | a | | main.rs:745:5:746:14 | S2 | +| main.rs:844:13:844:13 | a | | main.rs:745:5:746:14 | S2 | +| main.rs:844:17:844:38 | call_trait_assoc_2(...) | | main.rs:745:5:746:14 | S2 | +| main.rs:844:36:844:37 | y2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:844:36:844:37 | y2 | T | main.rs:745:5:746:14 | S2 | +| main.rs:845:18:845:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:845:18:845:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:845:18:845:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:845:18:845:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:845:26:845:26 | a | | main.rs:745:5:746:14 | S2 | +| main.rs:847:13:847:14 | x3 | | main.rs:738:5:741:5 | MyThing | +| main.rs:847:13:847:14 | x3 | T | main.rs:738:5:741:5 | MyThing | +| main.rs:847:13:847:14 | x3 | T.T | main.rs:743:5:744:14 | S1 | +| main.rs:847:18:849:9 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:847:18:849:9 | MyThing {...} | T | main.rs:738:5:741:5 | MyThing | +| main.rs:847:18:849:9 | MyThing {...} | T.T | main.rs:743:5:744:14 | S1 | +| main.rs:848:16:848:32 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:848:16:848:32 | MyThing {...} | T | main.rs:743:5:744:14 | S1 | +| main.rs:848:29:848:30 | S1 | | main.rs:743:5:744:14 | S1 | +| main.rs:850:13:850:14 | y3 | | main.rs:738:5:741:5 | MyThing | +| main.rs:850:13:850:14 | y3 | T | main.rs:738:5:741:5 | MyThing | +| main.rs:850:13:850:14 | y3 | T.T | main.rs:745:5:746:14 | S2 | +| main.rs:850:18:852:9 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:850:18:852:9 | MyThing {...} | T | main.rs:738:5:741:5 | MyThing | +| main.rs:850:18:852:9 | MyThing {...} | T.T | main.rs:745:5:746:14 | S2 | +| main.rs:851:16:851:32 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:851:16:851:32 | MyThing {...} | T | main.rs:745:5:746:14 | S2 | +| main.rs:851:29:851:30 | S2 | | main.rs:745:5:746:14 | S2 | +| main.rs:854:13:854:13 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:854:17:854:39 | call_trait_thing_m1(...) | | main.rs:743:5:744:14 | S1 | +| main.rs:854:37:854:38 | x3 | | main.rs:738:5:741:5 | MyThing | +| main.rs:854:37:854:38 | x3 | T | main.rs:738:5:741:5 | MyThing | +| main.rs:854:37:854:38 | x3 | T.T | main.rs:743:5:744:14 | S1 | +| main.rs:855:18:855:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:855:18:855:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:855:18:855:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:855:18:855:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:855:26:855:26 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:856:13:856:13 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:856:17:856:41 | call_trait_thing_m1_2(...) | | main.rs:743:5:744:14 | S1 | +| main.rs:856:39:856:40 | x3 | | main.rs:738:5:741:5 | MyThing | +| main.rs:856:39:856:40 | x3 | T | main.rs:738:5:741:5 | MyThing | +| main.rs:856:39:856:40 | x3 | T.T | main.rs:743:5:744:14 | S1 | +| main.rs:857:18:857:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:857:18:857:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:857:18:857:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:857:18:857:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:857:26:857:26 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:858:13:858:13 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:858:17:858:41 | call_trait_thing_m1_3(...) | | main.rs:743:5:744:14 | S1 | +| main.rs:858:39:858:40 | x3 | | main.rs:738:5:741:5 | MyThing | +| main.rs:858:39:858:40 | x3 | T | main.rs:738:5:741:5 | MyThing | +| main.rs:858:39:858:40 | x3 | T.T | main.rs:743:5:744:14 | S1 | +| main.rs:859:18:859:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:859:18:859:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:859:18:859:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:859:18:859:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:859:26:859:26 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:860:13:860:13 | b | | main.rs:745:5:746:14 | S2 | +| main.rs:860:17:860:39 | call_trait_thing_m1(...) | | main.rs:745:5:746:14 | S2 | +| main.rs:860:37:860:38 | y3 | | main.rs:738:5:741:5 | MyThing | +| main.rs:860:37:860:38 | y3 | T | main.rs:738:5:741:5 | MyThing | +| main.rs:860:37:860:38 | y3 | T.T | main.rs:745:5:746:14 | S2 | +| main.rs:861:18:861:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:861:18:861:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:861:18:861:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:861:18:861:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:861:26:861:26 | b | | main.rs:745:5:746:14 | S2 | +| main.rs:862:13:862:13 | b | | main.rs:745:5:746:14 | S2 | +| main.rs:862:17:862:41 | call_trait_thing_m1_2(...) | | main.rs:745:5:746:14 | S2 | +| main.rs:862:39:862:40 | y3 | | main.rs:738:5:741:5 | MyThing | +| main.rs:862:39:862:40 | y3 | T | main.rs:738:5:741:5 | MyThing | +| main.rs:862:39:862:40 | y3 | T.T | main.rs:745:5:746:14 | S2 | +| main.rs:863:18:863:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:863:18:863:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:863:18:863:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:863:18:863:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:863:26:863:26 | b | | main.rs:745:5:746:14 | S2 | +| main.rs:864:13:864:13 | b | | main.rs:745:5:746:14 | S2 | +| main.rs:864:17:864:41 | call_trait_thing_m1_3(...) | | main.rs:745:5:746:14 | S2 | +| main.rs:864:39:864:40 | y3 | | main.rs:738:5:741:5 | MyThing | +| main.rs:864:39:864:40 | y3 | T | main.rs:738:5:741:5 | MyThing | +| main.rs:864:39:864:40 | y3 | T.T | main.rs:745:5:746:14 | S2 | +| main.rs:865:18:865:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:865:18:865:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:865:18:865:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:865:18:865:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:865:26:865:26 | b | | main.rs:745:5:746:14 | S2 | +| main.rs:876:19:876:22 | SelfParam | | main.rs:870:5:873:5 | Wrapper | +| main.rs:876:19:876:22 | SelfParam | A | main.rs:875:10:875:10 | A | +| main.rs:876:30:878:9 | { ... } | | main.rs:875:10:875:10 | A | +| main.rs:877:13:877:16 | self | | main.rs:870:5:873:5 | Wrapper | +| main.rs:877:13:877:16 | self | A | main.rs:875:10:875:10 | A | +| main.rs:877:13:877:22 | self.field | | main.rs:875:10:875:10 | A | +| main.rs:885:15:885:18 | SelfParam | | main.rs:881:5:895:5 | Self [trait MyTrait] | +| main.rs:887:15:887:18 | SelfParam | | main.rs:881:5:895:5 | Self [trait MyTrait] | +| main.rs:891:9:894:9 | { ... } | | main.rs:882:9:882:28 | AssociatedType | +| main.rs:892:13:892:16 | self | | main.rs:881:5:895:5 | Self [trait MyTrait] | +| main.rs:892:13:892:21 | self.m1() | | main.rs:882:9:882:28 | AssociatedType | +| main.rs:893:13:893:43 | ...::default(...) | | main.rs:882:9:882:28 | AssociatedType | +| main.rs:901:19:901:23 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:901:19:901:23 | SelfParam | &T | main.rs:897:5:907:5 | Self [trait MyTraitAssoc2] | +| main.rs:901:26:901:26 | a | | main.rs:901:16:901:16 | A | +| main.rs:903:22:903:26 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:903:22:903:26 | SelfParam | &T | main.rs:897:5:907:5 | Self [trait MyTraitAssoc2] | +| main.rs:903:29:903:29 | a | | main.rs:903:19:903:19 | A | +| main.rs:903:35:903:35 | b | | main.rs:903:19:903:19 | A | +| main.rs:903:75:906:9 | { ... } | | main.rs:898:9:898:52 | GenericAssociatedType | +| main.rs:904:13:904:16 | self | | file://:0:0:0:0 | & | +| main.rs:904:13:904:16 | self | &T | main.rs:897:5:907:5 | Self [trait MyTraitAssoc2] | +| main.rs:904:13:904:23 | self.put(...) | | main.rs:898:9:898:52 | GenericAssociatedType | +| main.rs:904:22:904:22 | a | | main.rs:903:19:903:19 | A | +| main.rs:905:13:905:16 | self | | file://:0:0:0:0 | & | +| main.rs:905:13:905:16 | self | &T | main.rs:897:5:907:5 | Self [trait MyTraitAssoc2] | +| main.rs:905:13:905:23 | self.put(...) | | main.rs:898:9:898:52 | GenericAssociatedType | +| main.rs:905:22:905:22 | b | | main.rs:903:19:903:19 | A | +| main.rs:914:21:914:25 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:914:21:914:25 | SelfParam | &T | main.rs:909:5:919:5 | Self [trait TraitMultipleAssoc] | +| main.rs:916:20:916:24 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:916:20:916:24 | SelfParam | &T | main.rs:909:5:919:5 | Self [trait TraitMultipleAssoc] | +| main.rs:918:20:918:24 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:918:20:918:24 | SelfParam | &T | main.rs:909:5:919:5 | Self [trait TraitMultipleAssoc] | +| main.rs:934:15:934:18 | SelfParam | | main.rs:921:5:922:13 | S | +| main.rs:934:45:936:9 | { ... } | | main.rs:927:5:928:14 | AT | +| main.rs:935:13:935:14 | AT | | main.rs:927:5:928:14 | AT | +| main.rs:944:19:944:23 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:944:19:944:23 | SelfParam | &T | main.rs:921:5:922:13 | S | +| main.rs:944:26:944:26 | a | | main.rs:944:16:944:16 | A | +| main.rs:944:46:946:9 | { ... } | | main.rs:870:5:873:5 | Wrapper | +| main.rs:944:46:946:9 | { ... } | A | main.rs:944:16:944:16 | A | +| main.rs:945:13:945:32 | Wrapper {...} | | main.rs:870:5:873:5 | Wrapper | +| main.rs:945:13:945:32 | Wrapper {...} | A | main.rs:944:16:944:16 | A | +| main.rs:945:30:945:30 | a | | main.rs:944:16:944:16 | A | +| main.rs:953:15:953:18 | SelfParam | | main.rs:924:5:925:14 | S2 | +| main.rs:953:45:955:9 | { ... } | | main.rs:870:5:873:5 | Wrapper | +| main.rs:953:45:955:9 | { ... } | A | main.rs:924:5:925:14 | S2 | +| main.rs:954:13:954:35 | Wrapper {...} | | main.rs:870:5:873:5 | Wrapper | +| main.rs:954:13:954:35 | Wrapper {...} | A | main.rs:924:5:925:14 | S2 | +| main.rs:954:30:954:33 | self | | main.rs:924:5:925:14 | S2 | +| main.rs:960:30:962:9 | { ... } | | main.rs:870:5:873:5 | Wrapper | +| main.rs:960:30:962:9 | { ... } | A | main.rs:924:5:925:14 | S2 | +| main.rs:961:13:961:33 | Wrapper {...} | | main.rs:870:5:873:5 | Wrapper | +| main.rs:961:13:961:33 | Wrapper {...} | A | main.rs:924:5:925:14 | S2 | +| main.rs:961:30:961:31 | S2 | | main.rs:924:5:925:14 | S2 | +| main.rs:967:22:967:26 | thing | | main.rs:967:10:967:19 | T | +| main.rs:968:9:968:13 | thing | | main.rs:967:10:967:19 | T | +| main.rs:975:21:975:25 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:975:21:975:25 | SelfParam | &T | main.rs:927:5:928:14 | AT | +| main.rs:975:34:977:9 | { ... } | | main.rs:927:5:928:14 | AT | +| main.rs:976:13:976:14 | AT | | main.rs:927:5:928:14 | AT | +| main.rs:979:20:979:24 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:979:20:979:24 | SelfParam | &T | main.rs:927:5:928:14 | AT | +| main.rs:979:43:981:9 | { ... } | | main.rs:921:5:922:13 | S | +| main.rs:980:13:980:13 | S | | main.rs:921:5:922:13 | S | +| main.rs:983:20:983:24 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:983:20:983:24 | SelfParam | &T | main.rs:927:5:928:14 | AT | +| main.rs:983:43:985:9 | { ... } | | main.rs:924:5:925:14 | S2 | +| main.rs:984:13:984:14 | S2 | | main.rs:924:5:925:14 | S2 | +| main.rs:989:13:989:14 | x1 | | main.rs:921:5:922:13 | S | +| main.rs:989:18:989:18 | S | | main.rs:921:5:922:13 | S | +| main.rs:991:18:991:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:991:18:991:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:991:18:991:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:991:18:991:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:991:26:991:27 | x1 | | main.rs:921:5:922:13 | S | +| main.rs:991:26:991:32 | x1.m1() | | main.rs:927:5:928:14 | AT | +| main.rs:993:13:993:14 | x2 | | main.rs:921:5:922:13 | S | +| main.rs:993:18:993:18 | S | | main.rs:921:5:922:13 | S | +| main.rs:995:13:995:13 | y | | main.rs:927:5:928:14 | AT | +| main.rs:995:17:995:18 | x2 | | main.rs:921:5:922:13 | S | +| main.rs:995:17:995:23 | x2.m2() | | main.rs:927:5:928:14 | AT | +| main.rs:996:18:996:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:996:18:996:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:996:18:996:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:996:18:996:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:996:26:996:26 | y | | main.rs:927:5:928:14 | AT | +| main.rs:998:13:998:14 | x3 | | main.rs:921:5:922:13 | S | +| main.rs:998:18:998:18 | S | | main.rs:921:5:922:13 | S | +| main.rs:1000:18:1000:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1000:18:1000:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1000:18:1000:43 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1000:18:1000:43 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1000:26:1000:27 | x3 | | main.rs:921:5:922:13 | S | +| main.rs:1000:26:1000:34 | x3.put(...) | | main.rs:870:5:873:5 | Wrapper | +| main.rs:1000:26:1000:34 | x3.put(...) | A | {EXTERNAL LOCATION} | i32 | +| main.rs:1000:26:1000:43 | ... .unwrap() | | {EXTERNAL LOCATION} | i32 | +| main.rs:1000:33:1000:33 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1003:18:1003:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1003:18:1003:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1003:18:1003:49 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1003:18:1003:49 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1003:26:1003:27 | x3 | | main.rs:921:5:922:13 | S | +| main.rs:1003:26:1003:40 | x3.putTwo(...) | | main.rs:870:5:873:5 | Wrapper | +| main.rs:1003:26:1003:40 | x3.putTwo(...) | A | main.rs:941:36:941:50 | AssociatedParam | +| main.rs:1003:26:1003:49 | ... .unwrap() | | main.rs:941:36:941:50 | AssociatedParam | +| main.rs:1003:36:1003:36 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1003:39:1003:39 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1005:20:1005:20 | S | | main.rs:921:5:922:13 | S | +| main.rs:1006:18:1006:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1006:18:1006:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1006:18:1006:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1006:18:1006:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1008:13:1008:14 | x5 | | main.rs:924:5:925:14 | S2 | +| main.rs:1008:18:1008:19 | S2 | | main.rs:924:5:925:14 | S2 | +| main.rs:1009:18:1009:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1009:18:1009:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1009:18:1009:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1009:18:1009:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1009:26:1009:27 | x5 | | main.rs:924:5:925:14 | S2 | +| main.rs:1009:26:1009:32 | x5.m1() | | main.rs:870:5:873:5 | Wrapper | +| main.rs:1009:26:1009:32 | x5.m1() | A | main.rs:924:5:925:14 | S2 | +| main.rs:1010:13:1010:14 | x6 | | main.rs:924:5:925:14 | S2 | +| main.rs:1010:18:1010:19 | S2 | | main.rs:924:5:925:14 | S2 | +| main.rs:1011:18:1011:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1011:18:1011:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1011:18:1011:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1011:18:1011:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1011:26:1011:27 | x6 | | main.rs:924:5:925:14 | S2 | +| main.rs:1011:26:1011:32 | x6.m2() | | main.rs:870:5:873:5 | Wrapper | +| main.rs:1011:26:1011:32 | x6.m2() | A | main.rs:924:5:925:14 | S2 | +| main.rs:1013:13:1013:22 | assoc_zero | | main.rs:927:5:928:14 | AT | +| main.rs:1013:26:1013:27 | AT | | main.rs:927:5:928:14 | AT | +| main.rs:1013:26:1013:38 | AT.get_zero() | | main.rs:927:5:928:14 | AT | +| main.rs:1014:13:1014:21 | assoc_one | | main.rs:921:5:922:13 | S | +| main.rs:1014:25:1014:26 | AT | | main.rs:927:5:928:14 | AT | +| main.rs:1014:25:1014:36 | AT.get_one() | | main.rs:921:5:922:13 | S | +| main.rs:1015:13:1015:21 | assoc_two | | main.rs:924:5:925:14 | S2 | +| main.rs:1015:25:1015:26 | AT | | main.rs:927:5:928:14 | AT | +| main.rs:1015:25:1015:36 | AT.get_two() | | main.rs:924:5:925:14 | S2 | +| main.rs:1023:19:1023:23 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1023:19:1023:23 | SelfParam | &T | main.rs:1020:5:1024:5 | Self [trait Supertrait] | +| main.rs:1023:26:1023:32 | content | | main.rs:1021:9:1021:21 | Content | +| main.rs:1028:24:1028:28 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1028:24:1028:28 | SelfParam | &T | main.rs:1026:5:1029:5 | Self [trait Subtrait] | +| main.rs:1037:23:1037:27 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1037:23:1037:27 | SelfParam | &T | main.rs:1031:5:1041:5 | Self [trait Subtrait2] | +| main.rs:1037:30:1037:31 | c1 | | main.rs:1021:9:1021:21 | Content | +| main.rs:1037:49:1037:50 | c2 | | main.rs:1021:9:1021:21 | Content | +| main.rs:1038:13:1038:16 | self | | file://:0:0:0:0 | & | +| main.rs:1038:13:1038:16 | self | &T | main.rs:1031:5:1041:5 | Self [trait Subtrait2] | +| main.rs:1038:25:1038:26 | c1 | | main.rs:1021:9:1021:21 | Content | +| main.rs:1039:13:1039:16 | self | | file://:0:0:0:0 | & | +| main.rs:1039:13:1039:16 | self | &T | main.rs:1031:5:1041:5 | Self [trait Subtrait2] | +| main.rs:1039:25:1039:26 | c2 | | main.rs:1021:9:1021:21 | Content | +| main.rs:1047:19:1047:23 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1047:19:1047:23 | SelfParam | &T | main.rs:1043:5:1043:24 | MyType | +| main.rs:1047:19:1047:23 | SelfParam | &T.T | main.rs:1045:10:1045:10 | T | +| main.rs:1047:26:1047:33 | _content | | main.rs:1045:10:1045:10 | T | +| main.rs:1048:22:1048:42 | "Inserting content: \\n" | | file://:0:0:0:0 | & | +| main.rs:1048:22:1048:42 | "Inserting content: \\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1048:22:1048:42 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1048:22:1048:42 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1054:24:1054:28 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1054:24:1054:28 | SelfParam | &T | main.rs:1043:5:1043:24 | MyType | +| main.rs:1054:24:1054:28 | SelfParam | &T.T | main.rs:1052:10:1052:17 | T | +| main.rs:1054:48:1056:9 | { ... } | | main.rs:1052:10:1052:17 | T | +| main.rs:1055:13:1055:19 | (...) | | main.rs:1043:5:1043:24 | MyType | +| main.rs:1055:13:1055:19 | (...) | T | main.rs:1052:10:1052:17 | T | +| main.rs:1055:13:1055:21 | ... .0 | | main.rs:1052:10:1052:17 | T | +| main.rs:1055:13:1055:29 | ... .clone() | | main.rs:1052:10:1052:17 | T | +| main.rs:1055:14:1055:18 | * ... | | main.rs:1043:5:1043:24 | MyType | +| main.rs:1055:14:1055:18 | * ... | T | main.rs:1052:10:1052:17 | T | +| main.rs:1055:15:1055:18 | self | | file://:0:0:0:0 | & | +| main.rs:1055:15:1055:18 | self | &T | main.rs:1043:5:1043:24 | MyType | +| main.rs:1055:15:1055:18 | self | &T.T | main.rs:1052:10:1052:17 | T | +| main.rs:1059:33:1059:36 | item | | file://:0:0:0:0 | & | +| main.rs:1059:33:1059:36 | item | &T | main.rs:1059:20:1059:30 | T | +| main.rs:1059:57:1061:5 | { ... } | | main.rs:1021:9:1021:21 | Content | +| main.rs:1060:9:1060:12 | item | | file://:0:0:0:0 | & | +| main.rs:1060:9:1060:12 | item | &T | main.rs:1059:20:1059:30 | T | +| main.rs:1060:9:1060:26 | item.get_content() | | main.rs:1021:9:1021:21 | Content | +| main.rs:1063:35:1063:38 | item | | file://:0:0:0:0 | & | +| main.rs:1063:35:1063:38 | item | &T | main.rs:1063:21:1063:32 | T | +| main.rs:1063:45:1063:46 | c1 | | main.rs:1021:9:1021:21 | Content | +| main.rs:1063:61:1063:62 | c2 | | main.rs:1021:9:1021:21 | Content | +| main.rs:1063:77:1063:78 | c3 | | main.rs:1021:9:1021:21 | Content | +| main.rs:1064:9:1064:12 | item | | file://:0:0:0:0 | & | +| main.rs:1064:9:1064:12 | item | &T | main.rs:1063:21:1063:32 | T | +| main.rs:1064:21:1064:22 | c1 | | main.rs:1021:9:1021:21 | Content | +| main.rs:1065:9:1065:12 | item | | file://:0:0:0:0 | & | +| main.rs:1065:9:1065:12 | item | &T | main.rs:1063:21:1063:32 | T | +| main.rs:1065:25:1065:26 | c2 | | main.rs:1021:9:1021:21 | Content | +| main.rs:1065:29:1065:30 | c3 | | main.rs:1021:9:1021:21 | Content | +| main.rs:1069:13:1069:17 | item1 | | main.rs:1043:5:1043:24 | MyType | +| main.rs:1069:13:1069:17 | item1 | T | {EXTERNAL LOCATION} | i64 | +| main.rs:1069:21:1069:33 | MyType(...) | | main.rs:1043:5:1043:24 | MyType | +| main.rs:1069:21:1069:33 | MyType(...) | T | {EXTERNAL LOCATION} | i64 | +| main.rs:1069:28:1069:32 | 42i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1070:25:1070:29 | item1 | | main.rs:1043:5:1043:24 | MyType | +| main.rs:1070:25:1070:29 | item1 | T | {EXTERNAL LOCATION} | i64 | +| main.rs:1072:13:1072:17 | item2 | | main.rs:1043:5:1043:24 | MyType | +| main.rs:1072:13:1072:17 | item2 | T | {EXTERNAL LOCATION} | bool | +| main.rs:1072:21:1072:32 | MyType(...) | | main.rs:1043:5:1043:24 | MyType | +| main.rs:1072:21:1072:32 | MyType(...) | T | {EXTERNAL LOCATION} | bool | +| main.rs:1072:28:1072:31 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1073:37:1073:42 | &item2 | | file://:0:0:0:0 | & | +| main.rs:1073:37:1073:42 | &item2 | &T | main.rs:1043:5:1043:24 | MyType | +| main.rs:1073:37:1073:42 | &item2 | &T.T | {EXTERNAL LOCATION} | bool | +| main.rs:1073:38:1073:42 | item2 | | main.rs:1043:5:1043:24 | MyType | +| main.rs:1073:38:1073:42 | item2 | T | {EXTERNAL LOCATION} | bool | +| main.rs:1090:15:1090:18 | SelfParam | | main.rs:1078:5:1082:5 | MyEnum | +| main.rs:1090:15:1090:18 | SelfParam | A | main.rs:1089:10:1089:10 | T | +| main.rs:1090:26:1095:9 | { ... } | | main.rs:1089:10:1089:10 | T | +| main.rs:1091:13:1094:13 | match self { ... } | | main.rs:1089:10:1089:10 | T | +| main.rs:1091:19:1091:22 | self | | main.rs:1078:5:1082:5 | MyEnum | +| main.rs:1091:19:1091:22 | self | A | main.rs:1089:10:1089:10 | T | +| main.rs:1092:17:1092:29 | ...::C1(...) | | main.rs:1078:5:1082:5 | MyEnum | +| main.rs:1092:17:1092:29 | ...::C1(...) | A | main.rs:1089:10:1089:10 | T | +| main.rs:1092:28:1092:28 | a | | main.rs:1089:10:1089:10 | T | +| main.rs:1092:34:1092:34 | a | | main.rs:1089:10:1089:10 | T | +| main.rs:1093:17:1093:32 | ...::C2 {...} | | main.rs:1078:5:1082:5 | MyEnum | +| main.rs:1093:17:1093:32 | ...::C2 {...} | A | main.rs:1089:10:1089:10 | T | +| main.rs:1093:30:1093:30 | a | | main.rs:1089:10:1089:10 | T | +| main.rs:1093:37:1093:37 | a | | main.rs:1089:10:1089:10 | T | +| main.rs:1099:13:1099:13 | x | | main.rs:1078:5:1082:5 | MyEnum | +| main.rs:1099:13:1099:13 | x | A | main.rs:1084:5:1085:14 | S1 | +| main.rs:1099:17:1099:30 | ...::C1(...) | | main.rs:1078:5:1082:5 | MyEnum | +| main.rs:1099:17:1099:30 | ...::C1(...) | A | main.rs:1084:5:1085:14 | S1 | +| main.rs:1099:28:1099:29 | S1 | | main.rs:1084:5:1085:14 | S1 | +| main.rs:1100:13:1100:13 | y | | main.rs:1078:5:1082:5 | MyEnum | +| main.rs:1100:13:1100:13 | y | A | main.rs:1086:5:1087:14 | S2 | +| main.rs:1100:17:1100:36 | ...::C2 {...} | | main.rs:1078:5:1082:5 | MyEnum | +| main.rs:1100:17:1100:36 | ...::C2 {...} | A | main.rs:1086:5:1087:14 | S2 | +| main.rs:1100:33:1100:34 | S2 | | main.rs:1086:5:1087:14 | S2 | +| main.rs:1102:18:1102:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1102:18:1102:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1102:18:1102:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1102:18:1102:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1102:26:1102:26 | x | | main.rs:1078:5:1082:5 | MyEnum | +| main.rs:1102:26:1102:26 | x | A | main.rs:1084:5:1085:14 | S1 | +| main.rs:1102:26:1102:31 | x.m1() | | main.rs:1084:5:1085:14 | S1 | +| main.rs:1103:18:1103:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1103:18:1103:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1103:18:1103:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1103:18:1103:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1103:26:1103:26 | y | | main.rs:1078:5:1082:5 | MyEnum | +| main.rs:1103:26:1103:26 | y | A | main.rs:1086:5:1087:14 | S2 | +| main.rs:1103:26:1103:31 | y.m1() | | main.rs:1086:5:1087:14 | S2 | +| main.rs:1125:15:1125:18 | SelfParam | | main.rs:1123:5:1126:5 | Self [trait MyTrait1] | +| main.rs:1130:15:1130:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1130:15:1130:19 | SelfParam | &T | main.rs:1128:5:1140:5 | Self [trait MyTrait2] | +| main.rs:1133:9:1139:9 | { ... } | | main.rs:1128:20:1128:22 | Tr2 | +| main.rs:1134:13:1138:13 | if ... {...} else {...} | | main.rs:1128:20:1128:22 | Tr2 | +| main.rs:1134:16:1134:16 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1134:16:1134:20 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1134:20:1134:20 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1134:22:1136:13 | { ... } | | main.rs:1128:20:1128:22 | Tr2 | +| main.rs:1135:17:1135:20 | self | | file://:0:0:0:0 | & | +| main.rs:1135:17:1135:20 | self | &T | main.rs:1128:5:1140:5 | Self [trait MyTrait2] | +| main.rs:1135:17:1135:25 | self.m1() | | main.rs:1128:20:1128:22 | Tr2 | +| main.rs:1136:20:1138:13 | { ... } | | main.rs:1128:20:1128:22 | Tr2 | +| main.rs:1137:17:1137:31 | ...::m1(...) | | main.rs:1128:20:1128:22 | Tr2 | +| main.rs:1137:26:1137:30 | * ... | | main.rs:1128:5:1140:5 | Self [trait MyTrait2] | +| main.rs:1137:27:1137:30 | self | | file://:0:0:0:0 | & | +| main.rs:1137:27:1137:30 | self | &T | main.rs:1128:5:1140:5 | Self [trait MyTrait2] | +| main.rs:1144:15:1144:18 | SelfParam | | main.rs:1142:5:1154:5 | Self [trait MyTrait3] | +| main.rs:1147:9:1153:9 | { ... } | | main.rs:1142:20:1142:22 | Tr3 | +| main.rs:1148:13:1152:13 | if ... {...} else {...} | | main.rs:1142:20:1142:22 | Tr3 | +| main.rs:1148:16:1148:16 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1148:16:1148:20 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1148:20:1148:20 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1148:22:1150:13 | { ... } | | main.rs:1142:20:1142:22 | Tr3 | +| main.rs:1149:17:1149:20 | self | | main.rs:1142:5:1154:5 | Self [trait MyTrait3] | +| main.rs:1149:17:1149:25 | self.m2() | | main.rs:1108:5:1111:5 | MyThing | +| main.rs:1149:17:1149:25 | self.m2() | A | main.rs:1142:20:1142:22 | Tr3 | +| main.rs:1149:17:1149:27 | ... .a | | main.rs:1142:20:1142:22 | Tr3 | +| main.rs:1150:20:1152:13 | { ... } | | main.rs:1142:20:1142:22 | Tr3 | +| main.rs:1151:17:1151:31 | ...::m2(...) | | main.rs:1108:5:1111:5 | MyThing | +| main.rs:1151:17:1151:31 | ...::m2(...) | A | main.rs:1142:20:1142:22 | Tr3 | +| main.rs:1151:17:1151:33 | ... .a | | main.rs:1142:20:1142:22 | Tr3 | +| main.rs:1151:26:1151:30 | &self | | file://:0:0:0:0 | & | +| main.rs:1151:26:1151:30 | &self | &T | main.rs:1142:5:1154:5 | Self [trait MyTrait3] | +| main.rs:1151:27:1151:30 | self | | main.rs:1142:5:1154:5 | Self [trait MyTrait3] | +| main.rs:1158:15:1158:18 | SelfParam | | main.rs:1108:5:1111:5 | MyThing | +| main.rs:1158:15:1158:18 | SelfParam | A | main.rs:1156:10:1156:10 | T | +| main.rs:1158:26:1160:9 | { ... } | | main.rs:1156:10:1156:10 | T | +| main.rs:1159:13:1159:16 | self | | main.rs:1108:5:1111:5 | MyThing | +| main.rs:1159:13:1159:16 | self | A | main.rs:1156:10:1156:10 | T | +| main.rs:1159:13:1159:18 | self.a | | main.rs:1156:10:1156:10 | T | +| main.rs:1167:15:1167:18 | SelfParam | | main.rs:1113:5:1116:5 | MyThing2 | +| main.rs:1167:15:1167:18 | SelfParam | A | main.rs:1165:10:1165:10 | T | +| main.rs:1167:35:1169:9 | { ... } | | main.rs:1108:5:1111:5 | MyThing | +| main.rs:1167:35:1169:9 | { ... } | A | main.rs:1165:10:1165:10 | T | +| main.rs:1168:13:1168:33 | MyThing {...} | | main.rs:1108:5:1111:5 | MyThing | +| main.rs:1168:13:1168:33 | MyThing {...} | A | main.rs:1165:10:1165:10 | T | +| main.rs:1168:26:1168:29 | self | | main.rs:1113:5:1116:5 | MyThing2 | +| main.rs:1168:26:1168:29 | self | A | main.rs:1165:10:1165:10 | T | +| main.rs:1168:26:1168:31 | self.a | | main.rs:1165:10:1165:10 | T | +| main.rs:1176:44:1176:44 | x | | main.rs:1176:26:1176:41 | T2 | +| main.rs:1176:57:1178:5 | { ... } | | main.rs:1176:22:1176:23 | T1 | +| main.rs:1177:9:1177:9 | x | | main.rs:1176:26:1176:41 | T2 | +| main.rs:1177:9:1177:14 | x.m1() | | main.rs:1176:22:1176:23 | T1 | +| main.rs:1180:56:1180:56 | x | | main.rs:1180:39:1180:53 | T | +| main.rs:1182:13:1182:13 | a | | main.rs:1108:5:1111:5 | MyThing | +| main.rs:1182:13:1182:13 | a | A | main.rs:1118:5:1119:14 | S1 | +| main.rs:1182:17:1182:17 | x | | main.rs:1180:39:1180:53 | T | +| main.rs:1182:17:1182:22 | x.m1() | | main.rs:1108:5:1111:5 | MyThing | +| main.rs:1182:17:1182:22 | x.m1() | A | main.rs:1118:5:1119:14 | S1 | +| main.rs:1183:18:1183:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1183:18:1183:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1183:18:1183:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1183:18:1183:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1183:26:1183:26 | a | | main.rs:1108:5:1111:5 | MyThing | +| main.rs:1183:26:1183:26 | a | A | main.rs:1118:5:1119:14 | S1 | +| main.rs:1187:13:1187:13 | x | | main.rs:1108:5:1111:5 | MyThing | +| main.rs:1187:13:1187:13 | x | A | main.rs:1118:5:1119:14 | S1 | +| main.rs:1187:17:1187:33 | MyThing {...} | | main.rs:1108:5:1111:5 | MyThing | +| main.rs:1187:17:1187:33 | MyThing {...} | A | main.rs:1118:5:1119:14 | S1 | +| main.rs:1187:30:1187:31 | S1 | | main.rs:1118:5:1119:14 | S1 | +| main.rs:1188:13:1188:13 | y | | main.rs:1108:5:1111:5 | MyThing | +| main.rs:1188:13:1188:13 | y | A | main.rs:1120:5:1121:14 | S2 | +| main.rs:1188:17:1188:33 | MyThing {...} | | main.rs:1108:5:1111:5 | MyThing | +| main.rs:1188:17:1188:33 | MyThing {...} | A | main.rs:1120:5:1121:14 | S2 | +| main.rs:1188:30:1188:31 | S2 | | main.rs:1120:5:1121:14 | S2 | +| main.rs:1190:18:1190:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1190:18:1190:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1190:18:1190:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1190:18:1190:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1190:26:1190:26 | x | | main.rs:1108:5:1111:5 | MyThing | +| main.rs:1190:26:1190:26 | x | A | main.rs:1118:5:1119:14 | S1 | +| main.rs:1190:26:1190:31 | x.m1() | | main.rs:1118:5:1119:14 | S1 | +| main.rs:1191:18:1191:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1191:18:1191:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1191:18:1191:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1191:18:1191:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1191:26:1191:26 | y | | main.rs:1108:5:1111:5 | MyThing | +| main.rs:1191:26:1191:26 | y | A | main.rs:1120:5:1121:14 | S2 | +| main.rs:1191:26:1191:31 | y.m1() | | main.rs:1120:5:1121:14 | S2 | +| main.rs:1193:13:1193:13 | x | | main.rs:1108:5:1111:5 | MyThing | +| main.rs:1193:13:1193:13 | x | A | main.rs:1118:5:1119:14 | S1 | +| main.rs:1193:17:1193:33 | MyThing {...} | | main.rs:1108:5:1111:5 | MyThing | +| main.rs:1193:17:1193:33 | MyThing {...} | A | main.rs:1118:5:1119:14 | S1 | +| main.rs:1193:30:1193:31 | S1 | | main.rs:1118:5:1119:14 | S1 | +| main.rs:1194:13:1194:13 | y | | main.rs:1108:5:1111:5 | MyThing | +| main.rs:1194:13:1194:13 | y | A | main.rs:1120:5:1121:14 | S2 | +| main.rs:1194:17:1194:33 | MyThing {...} | | main.rs:1108:5:1111:5 | MyThing | +| main.rs:1194:17:1194:33 | MyThing {...} | A | main.rs:1120:5:1121:14 | S2 | +| main.rs:1194:30:1194:31 | S2 | | main.rs:1120:5:1121:14 | S2 | +| main.rs:1196:18:1196:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1196:18:1196:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1196:18:1196:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1196:18:1196:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1196:26:1196:26 | x | | main.rs:1108:5:1111:5 | MyThing | +| main.rs:1196:26:1196:26 | x | A | main.rs:1118:5:1119:14 | S1 | +| main.rs:1196:26:1196:31 | x.m2() | | main.rs:1118:5:1119:14 | S1 | +| main.rs:1197:18:1197:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1197:18:1197:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1197:18:1197:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1197:18:1197:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1197:26:1197:26 | y | | main.rs:1108:5:1111:5 | MyThing | +| main.rs:1197:26:1197:26 | y | A | main.rs:1120:5:1121:14 | S2 | +| main.rs:1197:26:1197:31 | y.m2() | | main.rs:1120:5:1121:14 | S2 | +| main.rs:1199:13:1199:13 | x | | main.rs:1113:5:1116:5 | MyThing2 | +| main.rs:1199:13:1199:13 | x | A | main.rs:1118:5:1119:14 | S1 | +| main.rs:1199:17:1199:34 | MyThing2 {...} | | main.rs:1113:5:1116:5 | MyThing2 | +| main.rs:1199:17:1199:34 | MyThing2 {...} | A | main.rs:1118:5:1119:14 | S1 | +| main.rs:1199:31:1199:32 | S1 | | main.rs:1118:5:1119:14 | S1 | +| main.rs:1200:13:1200:13 | y | | main.rs:1113:5:1116:5 | MyThing2 | +| main.rs:1200:13:1200:13 | y | A | main.rs:1120:5:1121:14 | S2 | +| main.rs:1200:17:1200:34 | MyThing2 {...} | | main.rs:1113:5:1116:5 | MyThing2 | +| main.rs:1200:17:1200:34 | MyThing2 {...} | A | main.rs:1120:5:1121:14 | S2 | +| main.rs:1200:31:1200:32 | S2 | | main.rs:1120:5:1121:14 | S2 | +| main.rs:1202:18:1202:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1202:18:1202:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1202:18:1202:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1202:18:1202:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1202:26:1202:26 | x | | main.rs:1113:5:1116:5 | MyThing2 | +| main.rs:1202:26:1202:26 | x | A | main.rs:1118:5:1119:14 | S1 | +| main.rs:1202:26:1202:31 | x.m3() | | main.rs:1118:5:1119:14 | S1 | +| main.rs:1203:18:1203:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1203:18:1203:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1203:18:1203:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1203:18:1203:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1203:26:1203:26 | y | | main.rs:1113:5:1116:5 | MyThing2 | +| main.rs:1203:26:1203:26 | y | A | main.rs:1120:5:1121:14 | S2 | +| main.rs:1203:26:1203:31 | y.m3() | | main.rs:1120:5:1121:14 | S2 | +| main.rs:1205:13:1205:13 | x | | main.rs:1108:5:1111:5 | MyThing | +| main.rs:1205:13:1205:13 | x | A | main.rs:1118:5:1119:14 | S1 | +| main.rs:1205:17:1205:33 | MyThing {...} | | main.rs:1108:5:1111:5 | MyThing | +| main.rs:1205:17:1205:33 | MyThing {...} | A | main.rs:1118:5:1119:14 | S1 | +| main.rs:1205:30:1205:31 | S1 | | main.rs:1118:5:1119:14 | S1 | +| main.rs:1206:13:1206:13 | s | | main.rs:1118:5:1119:14 | S1 | +| main.rs:1206:17:1206:32 | call_trait_m1(...) | | main.rs:1118:5:1119:14 | S1 | +| main.rs:1206:31:1206:31 | x | | main.rs:1108:5:1111:5 | MyThing | +| main.rs:1206:31:1206:31 | x | A | main.rs:1118:5:1119:14 | S1 | +| main.rs:1208:13:1208:13 | x | | main.rs:1113:5:1116:5 | MyThing2 | +| main.rs:1208:13:1208:13 | x | A | main.rs:1120:5:1121:14 | S2 | +| main.rs:1208:17:1208:34 | MyThing2 {...} | | main.rs:1113:5:1116:5 | MyThing2 | +| main.rs:1208:17:1208:34 | MyThing2 {...} | A | main.rs:1120:5:1121:14 | S2 | +| main.rs:1208:31:1208:32 | S2 | | main.rs:1120:5:1121:14 | S2 | +| main.rs:1209:13:1209:13 | s | | main.rs:1108:5:1111:5 | MyThing | +| main.rs:1209:13:1209:13 | s | A | main.rs:1120:5:1121:14 | S2 | +| main.rs:1209:17:1209:32 | call_trait_m1(...) | | main.rs:1108:5:1111:5 | MyThing | +| main.rs:1209:17:1209:32 | call_trait_m1(...) | A | main.rs:1120:5:1121:14 | S2 | +| main.rs:1209:31:1209:31 | x | | main.rs:1113:5:1116:5 | MyThing2 | +| main.rs:1209:31:1209:31 | x | A | main.rs:1120:5:1121:14 | S2 | +| main.rs:1226:22:1226:22 | x | | file://:0:0:0:0 | & | +| main.rs:1226:22:1226:22 | x | &T | main.rs:1226:11:1226:19 | T | +| main.rs:1226:35:1228:5 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1226:35:1228:5 | { ... } | &T | main.rs:1226:11:1226:19 | T | +| main.rs:1227:9:1227:9 | x | | file://:0:0:0:0 | & | +| main.rs:1227:9:1227:9 | x | &T | main.rs:1226:11:1226:19 | T | +| main.rs:1231:17:1231:20 | SelfParam | | main.rs:1216:5:1217:14 | S1 | +| main.rs:1231:29:1233:9 | { ... } | | main.rs:1219:5:1220:14 | S2 | +| main.rs:1232:13:1232:14 | S2 | | main.rs:1219:5:1220:14 | S2 | +| main.rs:1236:21:1236:21 | x | | main.rs:1236:13:1236:14 | T1 | +| main.rs:1239:5:1241:5 | { ... } | | main.rs:1236:17:1236:18 | T2 | +| main.rs:1240:9:1240:9 | x | | main.rs:1236:13:1236:14 | T1 | +| main.rs:1240:9:1240:16 | x.into() | | main.rs:1236:17:1236:18 | T2 | +| main.rs:1244:13:1244:13 | x | | main.rs:1216:5:1217:14 | S1 | +| main.rs:1244:17:1244:18 | S1 | | main.rs:1216:5:1217:14 | S1 | +| main.rs:1245:18:1245:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1245:18:1245:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1245:18:1245:31 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1245:18:1245:31 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1245:26:1245:31 | id(...) | | file://:0:0:0:0 | & | +| main.rs:1245:26:1245:31 | id(...) | &T | main.rs:1216:5:1217:14 | S1 | +| main.rs:1245:29:1245:30 | &x | | file://:0:0:0:0 | & | +| main.rs:1245:29:1245:30 | &x | &T | main.rs:1216:5:1217:14 | S1 | +| main.rs:1245:30:1245:30 | x | | main.rs:1216:5:1217:14 | S1 | +| main.rs:1247:13:1247:13 | x | | main.rs:1216:5:1217:14 | S1 | +| main.rs:1247:17:1247:18 | S1 | | main.rs:1216:5:1217:14 | S1 | +| main.rs:1248:18:1248:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1248:18:1248:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1248:18:1248:37 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1248:18:1248:37 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1248:26:1248:37 | id::<...>(...) | | file://:0:0:0:0 | & | +| main.rs:1248:26:1248:37 | id::<...>(...) | &T | main.rs:1216:5:1217:14 | S1 | +| main.rs:1248:35:1248:36 | &x | | file://:0:0:0:0 | & | +| main.rs:1248:35:1248:36 | &x | &T | main.rs:1216:5:1217:14 | S1 | +| main.rs:1248:36:1248:36 | x | | main.rs:1216:5:1217:14 | S1 | +| main.rs:1250:13:1250:13 | x | | main.rs:1216:5:1217:14 | S1 | +| main.rs:1250:13:1250:13 | x | | main.rs:1222:5:1222:25 | dyn Trait | +| main.rs:1250:17:1250:18 | S1 | | main.rs:1216:5:1217:14 | S1 | +| main.rs:1250:17:1250:18 | S1 | | main.rs:1222:5:1222:25 | dyn Trait | +| main.rs:1252:18:1252:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1252:18:1252:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1252:18:1252:44 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1252:18:1252:44 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1252:26:1252:44 | id::<...>(...) | | file://:0:0:0:0 | & | +| main.rs:1252:26:1252:44 | id::<...>(...) | &T | main.rs:1222:5:1222:25 | dyn Trait | +| main.rs:1252:42:1252:43 | &x | | file://:0:0:0:0 | & | +| main.rs:1252:42:1252:43 | &x | &T | main.rs:1216:5:1217:14 | S1 | +| main.rs:1252:42:1252:43 | &x | &T | main.rs:1222:5:1222:25 | dyn Trait | +| main.rs:1252:43:1252:43 | x | | main.rs:1216:5:1217:14 | S1 | +| main.rs:1252:43:1252:43 | x | | main.rs:1222:5:1222:25 | dyn Trait | +| main.rs:1254:13:1254:13 | x | | main.rs:1216:5:1217:14 | S1 | +| main.rs:1254:17:1254:18 | S1 | | main.rs:1216:5:1217:14 | S1 | +| main.rs:1255:9:1255:25 | into::<...>(...) | | main.rs:1219:5:1220:14 | S2 | +| main.rs:1255:24:1255:24 | x | | main.rs:1216:5:1217:14 | S1 | +| main.rs:1257:13:1257:13 | x | | main.rs:1216:5:1217:14 | S1 | +| main.rs:1257:17:1257:18 | S1 | | main.rs:1216:5:1217:14 | S1 | +| main.rs:1258:13:1258:13 | y | | main.rs:1219:5:1220:14 | S2 | +| main.rs:1258:21:1258:27 | into(...) | | main.rs:1219:5:1220:14 | S2 | +| main.rs:1258:26:1258:26 | x | | main.rs:1216:5:1217:14 | S1 | +| main.rs:1272:22:1272:25 | SelfParam | | main.rs:1263:5:1269:5 | PairOption | +| main.rs:1272:22:1272:25 | SelfParam | Fst | main.rs:1271:10:1271:12 | Fst | +| main.rs:1272:22:1272:25 | SelfParam | Snd | main.rs:1271:15:1271:17 | Snd | +| main.rs:1272:35:1279:9 | { ... } | | main.rs:1271:15:1271:17 | Snd | +| main.rs:1273:13:1278:13 | match self { ... } | | main.rs:1271:15:1271:17 | Snd | +| main.rs:1273:19:1273:22 | self | | main.rs:1263:5:1269:5 | PairOption | +| main.rs:1273:19:1273:22 | self | Fst | main.rs:1271:10:1271:12 | Fst | +| main.rs:1273:19:1273:22 | self | Snd | main.rs:1271:15:1271:17 | Snd | +| main.rs:1274:17:1274:38 | ...::PairNone(...) | | main.rs:1263:5:1269:5 | PairOption | +| main.rs:1274:17:1274:38 | ...::PairNone(...) | Fst | main.rs:1271:10:1271:12 | Fst | +| main.rs:1274:17:1274:38 | ...::PairNone(...) | Snd | main.rs:1271:15:1271:17 | Snd | +| main.rs:1274:43:1274:82 | MacroExpr | | main.rs:1271:15:1271:17 | Snd | +| main.rs:1274:50:1274:81 | "PairNone has no second elemen... | | file://:0:0:0:0 | & | +| main.rs:1274:50:1274:81 | "PairNone has no second elemen... | &T | {EXTERNAL LOCATION} | str | +| main.rs:1274:50:1274:81 | ...::panic_fmt(...) | | file://:0:0:0:0 | ! | +| main.rs:1274:50:1274:81 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1274:50:1274:81 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1274:50:1274:81 | MacroExpr | | main.rs:1271:15:1271:17 | Snd | +| main.rs:1274:50:1274:81 | { ... } | | main.rs:1271:15:1271:17 | Snd | +| main.rs:1275:17:1275:38 | ...::PairFst(...) | | main.rs:1263:5:1269:5 | PairOption | +| main.rs:1275:17:1275:38 | ...::PairFst(...) | Fst | main.rs:1271:10:1271:12 | Fst | +| main.rs:1275:17:1275:38 | ...::PairFst(...) | Snd | main.rs:1271:15:1271:17 | Snd | +| main.rs:1275:37:1275:37 | _ | | main.rs:1271:10:1271:12 | Fst | +| main.rs:1275:43:1275:81 | MacroExpr | | main.rs:1271:15:1271:17 | Snd | +| main.rs:1275:50:1275:80 | "PairFst has no second element... | | file://:0:0:0:0 | & | +| main.rs:1275:50:1275:80 | "PairFst has no second element... | &T | {EXTERNAL LOCATION} | str | +| main.rs:1275:50:1275:80 | ...::panic_fmt(...) | | file://:0:0:0:0 | ! | +| main.rs:1275:50:1275:80 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1275:50:1275:80 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1275:50:1275:80 | MacroExpr | | main.rs:1271:15:1271:17 | Snd | +| main.rs:1275:50:1275:80 | { ... } | | main.rs:1271:15:1271:17 | Snd | +| main.rs:1276:17:1276:40 | ...::PairSnd(...) | | main.rs:1263:5:1269:5 | PairOption | +| main.rs:1276:17:1276:40 | ...::PairSnd(...) | Fst | main.rs:1271:10:1271:12 | Fst | +| main.rs:1276:17:1276:40 | ...::PairSnd(...) | Snd | main.rs:1271:15:1271:17 | Snd | +| main.rs:1276:37:1276:39 | snd | | main.rs:1271:15:1271:17 | Snd | +| main.rs:1276:45:1276:47 | snd | | main.rs:1271:15:1271:17 | Snd | +| main.rs:1277:17:1277:44 | ...::PairBoth(...) | | main.rs:1263:5:1269:5 | PairOption | +| main.rs:1277:17:1277:44 | ...::PairBoth(...) | Fst | main.rs:1271:10:1271:12 | Fst | +| main.rs:1277:17:1277:44 | ...::PairBoth(...) | Snd | main.rs:1271:15:1271:17 | Snd | +| main.rs:1277:38:1277:38 | _ | | main.rs:1271:10:1271:12 | Fst | +| main.rs:1277:41:1277:43 | snd | | main.rs:1271:15:1271:17 | Snd | +| main.rs:1277:49:1277:51 | snd | | main.rs:1271:15:1271:17 | Snd | +| main.rs:1303:10:1303:10 | t | | main.rs:1263:5:1269:5 | PairOption | +| main.rs:1303:10:1303:10 | t | Fst | main.rs:1285:5:1286:14 | S2 | +| main.rs:1303:10:1303:10 | t | Snd | main.rs:1263:5:1269:5 | PairOption | +| main.rs:1303:10:1303:10 | t | Snd.Fst | main.rs:1285:5:1286:14 | S2 | +| main.rs:1303:10:1303:10 | t | Snd.Snd | main.rs:1288:5:1289:14 | S3 | +| main.rs:1304:13:1304:13 | x | | main.rs:1288:5:1289:14 | S3 | +| main.rs:1304:17:1304:17 | t | | main.rs:1263:5:1269:5 | PairOption | +| main.rs:1304:17:1304:17 | t | Fst | main.rs:1285:5:1286:14 | S2 | +| main.rs:1304:17:1304:17 | t | Snd | main.rs:1263:5:1269:5 | PairOption | +| main.rs:1304:17:1304:17 | t | Snd.Fst | main.rs:1285:5:1286:14 | S2 | +| main.rs:1304:17:1304:17 | t | Snd.Snd | main.rs:1288:5:1289:14 | S3 | +| main.rs:1304:17:1304:29 | t.unwrapSnd() | | main.rs:1263:5:1269:5 | PairOption | +| main.rs:1304:17:1304:29 | t.unwrapSnd() | Fst | main.rs:1285:5:1286:14 | S2 | +| main.rs:1304:17:1304:29 | t.unwrapSnd() | Snd | main.rs:1288:5:1289:14 | S3 | +| main.rs:1304:17:1304:41 | ... .unwrapSnd() | | main.rs:1288:5:1289:14 | S3 | +| main.rs:1305:18:1305:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1305:18:1305:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1305:18:1305:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1305:18:1305:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1305:26:1305:26 | x | | main.rs:1288:5:1289:14 | S3 | +| main.rs:1320:22:1320:25 | SelfParam | | main.rs:1318:5:1321:5 | Self [trait TraitWithAssocType] | +| main.rs:1328:22:1328:25 | SelfParam | | main.rs:1316:5:1316:28 | GenS | +| main.rs:1328:22:1328:25 | SelfParam | GenT | main.rs:1323:10:1323:15 | Output | +| main.rs:1328:44:1330:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1328:44:1330:9 | { ... } | E | main.rs:1323:10:1323:15 | Output | +| main.rs:1328:44:1330:9 | { ... } | T | main.rs:1323:10:1323:15 | Output | +| main.rs:1329:13:1329:22 | Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1329:13:1329:22 | Ok(...) | E | main.rs:1323:10:1323:15 | Output | +| main.rs:1329:13:1329:22 | Ok(...) | T | main.rs:1323:10:1323:15 | Output | +| main.rs:1329:16:1329:19 | self | | main.rs:1316:5:1316:28 | GenS | +| main.rs:1329:16:1329:19 | self | GenT | main.rs:1323:10:1323:15 | Output | +| main.rs:1329:16:1329:21 | self.0 | | main.rs:1323:10:1323:15 | Output | +| main.rs:1335:13:1335:14 | p1 | | main.rs:1263:5:1269:5 | PairOption | +| main.rs:1335:13:1335:14 | p1 | Fst | main.rs:1282:5:1283:14 | S1 | +| main.rs:1335:13:1335:14 | p1 | Snd | main.rs:1285:5:1286:14 | S2 | +| main.rs:1335:26:1335:53 | ...::PairBoth(...) | | main.rs:1263:5:1269:5 | PairOption | +| main.rs:1335:26:1335:53 | ...::PairBoth(...) | Fst | main.rs:1282:5:1283:14 | S1 | +| main.rs:1335:26:1335:53 | ...::PairBoth(...) | Snd | main.rs:1285:5:1286:14 | S2 | +| main.rs:1335:47:1335:48 | S1 | | main.rs:1282:5:1283:14 | S1 | +| main.rs:1335:51:1335:52 | S2 | | main.rs:1285:5:1286:14 | S2 | +| main.rs:1336:18:1336:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1336:18:1336:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1336:18:1336:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1336:18:1336:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1336:26:1336:27 | p1 | | main.rs:1263:5:1269:5 | PairOption | +| main.rs:1336:26:1336:27 | p1 | Fst | main.rs:1282:5:1283:14 | S1 | +| main.rs:1336:26:1336:27 | p1 | Snd | main.rs:1285:5:1286:14 | S2 | +| main.rs:1339:13:1339:14 | p2 | | main.rs:1263:5:1269:5 | PairOption | +| main.rs:1339:13:1339:14 | p2 | Fst | main.rs:1282:5:1283:14 | S1 | +| main.rs:1339:13:1339:14 | p2 | Snd | main.rs:1285:5:1286:14 | S2 | +| main.rs:1339:26:1339:47 | ...::PairNone(...) | | main.rs:1263:5:1269:5 | PairOption | +| main.rs:1339:26:1339:47 | ...::PairNone(...) | Fst | main.rs:1282:5:1283:14 | S1 | +| main.rs:1339:26:1339:47 | ...::PairNone(...) | Snd | main.rs:1285:5:1286:14 | S2 | +| main.rs:1340:18:1340:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1340:18:1340:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1340:18:1340:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1340:18:1340:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1340:26:1340:27 | p2 | | main.rs:1263:5:1269:5 | PairOption | +| main.rs:1340:26:1340:27 | p2 | Fst | main.rs:1282:5:1283:14 | S1 | +| main.rs:1340:26:1340:27 | p2 | Snd | main.rs:1285:5:1286:14 | S2 | +| main.rs:1343:13:1343:14 | p3 | | main.rs:1263:5:1269:5 | PairOption | +| main.rs:1343:13:1343:14 | p3 | Fst | main.rs:1285:5:1286:14 | S2 | +| main.rs:1343:13:1343:14 | p3 | Snd | main.rs:1288:5:1289:14 | S3 | +| main.rs:1343:34:1343:56 | ...::PairSnd(...) | | main.rs:1263:5:1269:5 | PairOption | +| main.rs:1343:34:1343:56 | ...::PairSnd(...) | Fst | main.rs:1285:5:1286:14 | S2 | +| main.rs:1343:34:1343:56 | ...::PairSnd(...) | Snd | main.rs:1288:5:1289:14 | S3 | +| main.rs:1343:54:1343:55 | S3 | | main.rs:1288:5:1289:14 | S3 | +| main.rs:1344:18:1344:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1344:18:1344:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1344:18:1344:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1344:18:1344:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1344:26:1344:27 | p3 | | main.rs:1263:5:1269:5 | PairOption | +| main.rs:1344:26:1344:27 | p3 | Fst | main.rs:1285:5:1286:14 | S2 | +| main.rs:1344:26:1344:27 | p3 | Snd | main.rs:1288:5:1289:14 | S3 | +| main.rs:1347:13:1347:14 | p3 | | main.rs:1263:5:1269:5 | PairOption | +| main.rs:1347:13:1347:14 | p3 | Fst | main.rs:1285:5:1286:14 | S2 | +| main.rs:1347:13:1347:14 | p3 | Snd | main.rs:1288:5:1289:14 | S3 | +| main.rs:1347:35:1347:56 | ...::PairNone(...) | | main.rs:1263:5:1269:5 | PairOption | +| main.rs:1347:35:1347:56 | ...::PairNone(...) | Fst | main.rs:1285:5:1286:14 | S2 | +| main.rs:1347:35:1347:56 | ...::PairNone(...) | Snd | main.rs:1288:5:1289:14 | S3 | +| main.rs:1348:18:1348:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1348:18:1348:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1348:18:1348:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1348:18:1348:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1348:26:1348:27 | p3 | | main.rs:1263:5:1269:5 | PairOption | +| main.rs:1348:26:1348:27 | p3 | Fst | main.rs:1285:5:1286:14 | S2 | +| main.rs:1348:26:1348:27 | p3 | Snd | main.rs:1288:5:1289:14 | S3 | +| main.rs:1350:11:1350:54 | ...::PairSnd(...) | | main.rs:1263:5:1269:5 | PairOption | +| main.rs:1350:11:1350:54 | ...::PairSnd(...) | Fst | main.rs:1285:5:1286:14 | S2 | +| main.rs:1350:11:1350:54 | ...::PairSnd(...) | Snd | main.rs:1263:5:1269:5 | PairOption | +| main.rs:1350:11:1350:54 | ...::PairSnd(...) | Snd.Fst | main.rs:1285:5:1286:14 | S2 | +| main.rs:1350:11:1350:54 | ...::PairSnd(...) | Snd.Snd | main.rs:1288:5:1289:14 | S3 | +| main.rs:1350:31:1350:53 | ...::PairSnd(...) | | main.rs:1263:5:1269:5 | PairOption | +| main.rs:1350:31:1350:53 | ...::PairSnd(...) | Fst | main.rs:1285:5:1286:14 | S2 | +| main.rs:1350:31:1350:53 | ...::PairSnd(...) | Snd | main.rs:1288:5:1289:14 | S3 | +| main.rs:1350:51:1350:52 | S3 | | main.rs:1288:5:1289:14 | S3 | +| main.rs:1352:13:1352:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1352:13:1352:13 | x | E | main.rs:1282:5:1283:14 | S1 | +| main.rs:1352:13:1352:13 | x | T | main.rs:1308:5:1308:34 | S4 | +| main.rs:1352:13:1352:13 | x | T.T41 | main.rs:1285:5:1286:14 | S2 | +| main.rs:1352:13:1352:13 | x | T.T42 | main.rs:1310:5:1310:22 | S5 | +| main.rs:1352:13:1352:13 | x | T.T42.T5 | main.rs:1285:5:1286:14 | S2 | +| main.rs:1354:13:1354:13 | y | | {EXTERNAL LOCATION} | Result | +| main.rs:1354:13:1354:13 | y | E | {EXTERNAL LOCATION} | bool | +| main.rs:1354:13:1354:13 | y | T | {EXTERNAL LOCATION} | bool | +| main.rs:1354:17:1354:26 | GenS(...) | | main.rs:1316:5:1316:28 | GenS | +| main.rs:1354:17:1354:26 | GenS(...) | GenT | {EXTERNAL LOCATION} | bool | +| main.rs:1354:17:1354:38 | ... .get_input() | | {EXTERNAL LOCATION} | Result | +| main.rs:1354:17:1354:38 | ... .get_input() | E | {EXTERNAL LOCATION} | bool | +| main.rs:1354:17:1354:38 | ... .get_input() | T | {EXTERNAL LOCATION} | bool | +| main.rs:1354:22:1354:25 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1367:16:1367:24 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1367:16:1367:24 | SelfParam | &T | main.rs:1365:5:1372:5 | Self [trait MyTrait] | +| main.rs:1367:27:1367:31 | value | | main.rs:1365:19:1365:19 | S | +| main.rs:1369:21:1369:29 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1369:21:1369:29 | SelfParam | &T | main.rs:1365:5:1372:5 | Self [trait MyTrait] | +| main.rs:1369:32:1369:36 | value | | main.rs:1365:19:1365:19 | S | +| main.rs:1370:13:1370:16 | self | | file://:0:0:0:0 | & | +| main.rs:1370:13:1370:16 | self | &T | main.rs:1365:5:1372:5 | Self [trait MyTrait] | +| main.rs:1370:22:1370:26 | value | | main.rs:1365:19:1365:19 | S | +| main.rs:1376:16:1376:24 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1376:16:1376:24 | SelfParam | &T | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1376:16:1376:24 | SelfParam | &T.T | main.rs:1374:10:1374:10 | T | +| main.rs:1376:27:1376:31 | value | | main.rs:1374:10:1374:10 | T | +| main.rs:1380:26:1382:9 | { ... } | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1380:26:1382:9 | { ... } | T | main.rs:1379:10:1379:10 | T | +| main.rs:1381:13:1381:30 | ...::MyNone(...) | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1381:13:1381:30 | ...::MyNone(...) | T | main.rs:1379:10:1379:10 | T | +| main.rs:1386:20:1386:23 | SelfParam | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1386:20:1386:23 | SelfParam | T | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1386:20:1386:23 | SelfParam | T.T | main.rs:1385:10:1385:10 | T | +| main.rs:1386:41:1391:9 | { ... } | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1386:41:1391:9 | { ... } | T | main.rs:1385:10:1385:10 | T | +| main.rs:1387:13:1390:13 | match self { ... } | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1387:13:1390:13 | match self { ... } | T | main.rs:1385:10:1385:10 | T | +| main.rs:1387:19:1387:22 | self | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1387:19:1387:22 | self | T | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1387:19:1387:22 | self | T.T | main.rs:1385:10:1385:10 | T | +| main.rs:1388:17:1388:34 | ...::MyNone(...) | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1388:17:1388:34 | ...::MyNone(...) | T | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1388:17:1388:34 | ...::MyNone(...) | T.T | main.rs:1385:10:1385:10 | T | +| main.rs:1388:39:1388:56 | ...::MyNone(...) | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1388:39:1388:56 | ...::MyNone(...) | T | main.rs:1385:10:1385:10 | T | +| main.rs:1389:17:1389:35 | ...::MySome(...) | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1389:17:1389:35 | ...::MySome(...) | T | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1389:17:1389:35 | ...::MySome(...) | T.T | main.rs:1385:10:1385:10 | T | +| main.rs:1389:34:1389:34 | x | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1389:34:1389:34 | x | T | main.rs:1385:10:1385:10 | T | +| main.rs:1389:40:1389:40 | x | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1389:40:1389:40 | x | T | main.rs:1385:10:1385:10 | T | +| main.rs:1398:13:1398:14 | x1 | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1398:13:1398:14 | x1 | T | main.rs:1394:5:1395:13 | S | +| main.rs:1398:18:1398:37 | ...::new(...) | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1398:18:1398:37 | ...::new(...) | T | main.rs:1394:5:1395:13 | S | +| main.rs:1399:18:1399:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1399:18:1399:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1399:18:1399:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1399:18:1399:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1399:26:1399:27 | x1 | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1399:26:1399:27 | x1 | T | main.rs:1394:5:1395:13 | S | +| main.rs:1401:17:1401:18 | x2 | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1401:17:1401:18 | x2 | T | main.rs:1394:5:1395:13 | S | +| main.rs:1401:22:1401:36 | ...::new(...) | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1401:22:1401:36 | ...::new(...) | T | main.rs:1394:5:1395:13 | S | +| main.rs:1402:9:1402:10 | x2 | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1402:9:1402:10 | x2 | T | main.rs:1394:5:1395:13 | S | +| main.rs:1402:16:1402:16 | S | | main.rs:1394:5:1395:13 | S | +| main.rs:1403:18:1403:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1403:18:1403:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1403:18:1403:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1403:18:1403:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1403:26:1403:27 | x2 | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1403:26:1403:27 | x2 | T | main.rs:1394:5:1395:13 | S | +| main.rs:1406:17:1406:18 | x3 | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1406:22:1406:36 | ...::new(...) | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1407:9:1407:10 | x3 | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1407:21:1407:21 | S | | main.rs:1394:5:1395:13 | S | +| main.rs:1408:18:1408:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1408:18:1408:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1408:18:1408:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1408:18:1408:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1408:26:1408:27 | x3 | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1410:17:1410:18 | x4 | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1410:17:1410:18 | x4 | T | main.rs:1394:5:1395:13 | S | +| main.rs:1410:22:1410:36 | ...::new(...) | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1410:22:1410:36 | ...::new(...) | T | main.rs:1394:5:1395:13 | S | +| main.rs:1411:23:1411:29 | &mut x4 | | file://:0:0:0:0 | & | +| main.rs:1411:23:1411:29 | &mut x4 | &T | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1411:23:1411:29 | &mut x4 | &T.T | main.rs:1394:5:1395:13 | S | +| main.rs:1411:28:1411:29 | x4 | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1411:28:1411:29 | x4 | T | main.rs:1394:5:1395:13 | S | +| main.rs:1411:32:1411:32 | S | | main.rs:1394:5:1395:13 | S | +| main.rs:1412:18:1412:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1412:18:1412:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1412:18:1412:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1412:18:1412:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1412:26:1412:27 | x4 | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1412:26:1412:27 | x4 | T | main.rs:1394:5:1395:13 | S | +| main.rs:1414:13:1414:14 | x5 | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1414:13:1414:14 | x5 | T | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1414:13:1414:14 | x5 | T.T | main.rs:1394:5:1395:13 | S | +| main.rs:1414:18:1414:58 | ...::MySome(...) | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1414:18:1414:58 | ...::MySome(...) | T | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1414:18:1414:58 | ...::MySome(...) | T.T | main.rs:1394:5:1395:13 | S | +| main.rs:1414:35:1414:57 | ...::MyNone(...) | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1414:35:1414:57 | ...::MyNone(...) | T | main.rs:1394:5:1395:13 | S | +| main.rs:1415:18:1415:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1415:18:1415:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1415:18:1415:37 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1415:18:1415:37 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1415:26:1415:27 | x5 | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1415:26:1415:27 | x5 | T | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1415:26:1415:27 | x5 | T.T | main.rs:1394:5:1395:13 | S | +| main.rs:1415:26:1415:37 | x5.flatten() | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1415:26:1415:37 | x5.flatten() | T | main.rs:1394:5:1395:13 | S | +| main.rs:1417:13:1417:14 | x6 | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1417:13:1417:14 | x6 | T | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1417:13:1417:14 | x6 | T.T | main.rs:1394:5:1395:13 | S | +| main.rs:1417:18:1417:58 | ...::MySome(...) | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1417:18:1417:58 | ...::MySome(...) | T | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1417:18:1417:58 | ...::MySome(...) | T.T | main.rs:1394:5:1395:13 | S | +| main.rs:1417:35:1417:57 | ...::MyNone(...) | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1417:35:1417:57 | ...::MyNone(...) | T | main.rs:1394:5:1395:13 | S | +| main.rs:1418:18:1418:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1418:18:1418:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1418:18:1418:61 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1418:18:1418:61 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1418:26:1418:61 | ...::flatten(...) | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1418:26:1418:61 | ...::flatten(...) | T | main.rs:1394:5:1395:13 | S | +| main.rs:1418:59:1418:60 | x6 | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1418:59:1418:60 | x6 | T | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1418:59:1418:60 | x6 | T.T | main.rs:1394:5:1395:13 | S | +| main.rs:1421:13:1421:19 | from_if | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1421:13:1421:19 | from_if | T | main.rs:1394:5:1395:13 | S | +| main.rs:1421:23:1425:9 | if ... {...} else {...} | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1421:23:1425:9 | if ... {...} else {...} | T | main.rs:1394:5:1395:13 | S | +| main.rs:1421:26:1421:26 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1421:26:1421:30 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1421:30:1421:30 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1421:32:1423:9 | { ... } | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1421:32:1423:9 | { ... } | T | main.rs:1394:5:1395:13 | S | +| main.rs:1422:13:1422:30 | ...::MyNone(...) | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1422:13:1422:30 | ...::MyNone(...) | T | main.rs:1394:5:1395:13 | S | +| main.rs:1423:16:1425:9 | { ... } | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1423:16:1425:9 | { ... } | T | main.rs:1394:5:1395:13 | S | +| main.rs:1424:13:1424:31 | ...::MySome(...) | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1424:13:1424:31 | ...::MySome(...) | T | main.rs:1394:5:1395:13 | S | +| main.rs:1424:30:1424:30 | S | | main.rs:1394:5:1395:13 | S | +| main.rs:1426:18:1426:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1426:18:1426:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1426:18:1426:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1426:18:1426:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1426:26:1426:32 | from_if | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1426:26:1426:32 | from_if | T | main.rs:1394:5:1395:13 | S | +| main.rs:1429:13:1429:22 | from_match | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1429:13:1429:22 | from_match | T | main.rs:1394:5:1395:13 | S | +| main.rs:1429:26:1432:9 | match ... { ... } | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1429:26:1432:9 | match ... { ... } | T | main.rs:1394:5:1395:13 | S | +| main.rs:1429:32:1429:32 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1429:32:1429:36 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1429:36:1429:36 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1430:13:1430:16 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1430:21:1430:38 | ...::MyNone(...) | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1430:21:1430:38 | ...::MyNone(...) | T | main.rs:1394:5:1395:13 | S | +| main.rs:1431:13:1431:17 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1431:22:1431:40 | ...::MySome(...) | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1431:22:1431:40 | ...::MySome(...) | T | main.rs:1394:5:1395:13 | S | +| main.rs:1431:39:1431:39 | S | | main.rs:1394:5:1395:13 | S | +| main.rs:1433:18:1433:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1433:18:1433:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1433:18:1433:35 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1433:18:1433:35 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1433:26:1433:35 | from_match | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1433:26:1433:35 | from_match | T | main.rs:1394:5:1395:13 | S | +| main.rs:1436:13:1436:21 | from_loop | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1436:13:1436:21 | from_loop | T | main.rs:1394:5:1395:13 | S | +| main.rs:1436:25:1441:9 | loop { ... } | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1436:25:1441:9 | loop { ... } | T | main.rs:1394:5:1395:13 | S | +| main.rs:1437:16:1437:16 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1437:16:1437:20 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1437:20:1437:20 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1438:23:1438:40 | ...::MyNone(...) | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1438:23:1438:40 | ...::MyNone(...) | T | main.rs:1394:5:1395:13 | S | +| main.rs:1440:19:1440:37 | ...::MySome(...) | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1440:19:1440:37 | ...::MySome(...) | T | main.rs:1394:5:1395:13 | S | +| main.rs:1440:36:1440:36 | S | | main.rs:1394:5:1395:13 | S | +| main.rs:1442:18:1442:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1442:18:1442:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1442:18:1442:34 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1442:18:1442:34 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1442:26:1442:34 | from_loop | | main.rs:1359:5:1363:5 | MyOption | +| main.rs:1442:26:1442:34 | from_loop | T | main.rs:1394:5:1395:13 | S | +| main.rs:1460:15:1460:18 | SelfParam | | main.rs:1448:5:1449:19 | S | +| main.rs:1460:15:1460:18 | SelfParam | T | main.rs:1459:10:1459:10 | T | +| main.rs:1460:26:1462:9 | { ... } | | main.rs:1459:10:1459:10 | T | +| main.rs:1461:13:1461:16 | self | | main.rs:1448:5:1449:19 | S | +| main.rs:1461:13:1461:16 | self | T | main.rs:1459:10:1459:10 | T | +| main.rs:1461:13:1461:18 | self.0 | | main.rs:1459:10:1459:10 | T | +| main.rs:1464:15:1464:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1464:15:1464:19 | SelfParam | &T | main.rs:1448:5:1449:19 | S | +| main.rs:1464:15:1464:19 | SelfParam | &T.T | main.rs:1459:10:1459:10 | T | +| main.rs:1464:28:1466:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1464:28:1466:9 | { ... } | &T | main.rs:1459:10:1459:10 | T | +| main.rs:1465:13:1465:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1465:13:1465:19 | &... | &T | main.rs:1459:10:1459:10 | T | +| main.rs:1465:14:1465:17 | self | | file://:0:0:0:0 | & | +| main.rs:1465:14:1465:17 | self | &T | main.rs:1448:5:1449:19 | S | +| main.rs:1465:14:1465:17 | self | &T.T | main.rs:1459:10:1459:10 | T | +| main.rs:1465:14:1465:19 | self.0 | | main.rs:1459:10:1459:10 | T | +| main.rs:1468:15:1468:25 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1468:15:1468:25 | SelfParam | &T | main.rs:1448:5:1449:19 | S | +| main.rs:1468:15:1468:25 | SelfParam | &T.T | main.rs:1459:10:1459:10 | T | +| main.rs:1468:34:1470:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1468:34:1470:9 | { ... } | &T | main.rs:1459:10:1459:10 | T | +| main.rs:1469:13:1469:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1469:13:1469:19 | &... | &T | main.rs:1459:10:1459:10 | T | +| main.rs:1469:14:1469:17 | self | | file://:0:0:0:0 | & | +| main.rs:1469:14:1469:17 | self | &T | main.rs:1448:5:1449:19 | S | +| main.rs:1469:14:1469:17 | self | &T.T | main.rs:1459:10:1459:10 | T | +| main.rs:1469:14:1469:19 | self.0 | | main.rs:1459:10:1459:10 | T | +| main.rs:1474:29:1474:33 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1474:29:1474:33 | SelfParam | &T | main.rs:1473:5:1476:5 | Self [trait ATrait] | +| main.rs:1475:33:1475:36 | SelfParam | | main.rs:1473:5:1476:5 | Self [trait ATrait] | +| main.rs:1481:29:1481:33 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1481:29:1481:33 | SelfParam | &T | file://:0:0:0:0 | & | +| main.rs:1481:29:1481:33 | SelfParam | &T.&T | main.rs:1454:5:1457:5 | MyInt | +| main.rs:1481:43:1483:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1482:13:1482:22 | (...) | | main.rs:1454:5:1457:5 | MyInt | +| main.rs:1482:13:1482:24 | ... .a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1482:14:1482:21 | * ... | | main.rs:1454:5:1457:5 | MyInt | +| main.rs:1482:15:1482:21 | (...) | | file://:0:0:0:0 | & | +| main.rs:1482:15:1482:21 | (...) | &T | main.rs:1454:5:1457:5 | MyInt | +| main.rs:1482:16:1482:20 | * ... | | file://:0:0:0:0 | & | +| main.rs:1482:16:1482:20 | * ... | &T | main.rs:1454:5:1457:5 | MyInt | +| main.rs:1482:17:1482:20 | self | | file://:0:0:0:0 | & | +| main.rs:1482:17:1482:20 | self | &T | file://:0:0:0:0 | & | +| main.rs:1482:17:1482:20 | self | &T.&T | main.rs:1454:5:1457:5 | MyInt | +| main.rs:1486:33:1486:36 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1486:33:1486:36 | SelfParam | &T | main.rs:1454:5:1457:5 | MyInt | +| main.rs:1486:46:1488:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1487:13:1487:19 | (...) | | main.rs:1454:5:1457:5 | MyInt | +| main.rs:1487:13:1487:21 | ... .a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1487:14:1487:18 | * ... | | main.rs:1454:5:1457:5 | MyInt | +| main.rs:1487:15:1487:18 | self | | file://:0:0:0:0 | & | +| main.rs:1487:15:1487:18 | self | &T | main.rs:1454:5:1457:5 | MyInt | +| main.rs:1492:13:1492:14 | x1 | | main.rs:1448:5:1449:19 | S | +| main.rs:1492:13:1492:14 | x1 | T | main.rs:1451:5:1452:14 | S2 | +| main.rs:1492:18:1492:22 | S(...) | | main.rs:1448:5:1449:19 | S | +| main.rs:1492:18:1492:22 | S(...) | T | main.rs:1451:5:1452:14 | S2 | +| main.rs:1492:20:1492:21 | S2 | | main.rs:1451:5:1452:14 | S2 | +| main.rs:1493:18:1493:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1493:18:1493:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1493:18:1493:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1493:18:1493:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1493:26:1493:27 | x1 | | main.rs:1448:5:1449:19 | S | +| main.rs:1493:26:1493:27 | x1 | T | main.rs:1451:5:1452:14 | S2 | +| main.rs:1493:26:1493:32 | x1.m1() | | main.rs:1451:5:1452:14 | S2 | +| main.rs:1495:13:1495:14 | x2 | | main.rs:1448:5:1449:19 | S | +| main.rs:1495:13:1495:14 | x2 | T | main.rs:1451:5:1452:14 | S2 | +| main.rs:1495:18:1495:22 | S(...) | | main.rs:1448:5:1449:19 | S | +| main.rs:1495:18:1495:22 | S(...) | T | main.rs:1451:5:1452:14 | S2 | +| main.rs:1495:20:1495:21 | S2 | | main.rs:1451:5:1452:14 | S2 | | main.rs:1497:18:1497:23 | "{:?}\\n" | | file://:0:0:0:0 | & | | main.rs:1497:18:1497:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1497:18:1497:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1497:18:1497:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1497:26:1497:26 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1500:13:1500:20 | my_thing | | file://:0:0:0:0 | & | -| main.rs:1500:13:1500:20 | my_thing | &T | main.rs:1416:5:1419:5 | MyInt | -| main.rs:1500:24:1500:39 | &... | | file://:0:0:0:0 | & | -| main.rs:1500:24:1500:39 | &... | &T | main.rs:1416:5:1419:5 | MyInt | -| main.rs:1500:25:1500:39 | MyInt {...} | | main.rs:1416:5:1419:5 | MyInt | -| main.rs:1500:36:1500:37 | 38 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1500:36:1500:37 | 38 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1501:13:1501:13 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1501:17:1501:24 | my_thing | | file://:0:0:0:0 | & | -| main.rs:1501:17:1501:24 | my_thing | &T | main.rs:1416:5:1419:5 | MyInt | -| main.rs:1501:17:1501:47 | my_thing.method_not_on_borrow() | | {EXTERNAL LOCATION} | i64 | +| main.rs:1497:18:1497:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1497:18:1497:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1497:26:1497:27 | x2 | | main.rs:1448:5:1449:19 | S | +| main.rs:1497:26:1497:27 | x2 | T | main.rs:1451:5:1452:14 | S2 | +| main.rs:1497:26:1497:32 | x2.m2() | | file://:0:0:0:0 | & | +| main.rs:1497:26:1497:32 | x2.m2() | &T | main.rs:1451:5:1452:14 | S2 | +| main.rs:1498:18:1498:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1498:18:1498:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1498:18:1498:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1498:18:1498:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1498:26:1498:27 | x2 | | main.rs:1448:5:1449:19 | S | +| main.rs:1498:26:1498:27 | x2 | T | main.rs:1451:5:1452:14 | S2 | +| main.rs:1498:26:1498:32 | x2.m3() | | file://:0:0:0:0 | & | +| main.rs:1498:26:1498:32 | x2.m3() | &T | main.rs:1451:5:1452:14 | S2 | +| main.rs:1500:13:1500:14 | x3 | | main.rs:1448:5:1449:19 | S | +| main.rs:1500:13:1500:14 | x3 | T | main.rs:1451:5:1452:14 | S2 | +| main.rs:1500:18:1500:22 | S(...) | | main.rs:1448:5:1449:19 | S | +| main.rs:1500:18:1500:22 | S(...) | T | main.rs:1451:5:1452:14 | S2 | +| main.rs:1500:20:1500:21 | S2 | | main.rs:1451:5:1452:14 | S2 | | main.rs:1502:18:1502:23 | "{:?}\\n" | | file://:0:0:0:0 | & | | main.rs:1502:18:1502:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1502:18:1502:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1502:18:1502:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1502:26:1502:26 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1509:16:1509:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1509:16:1509:20 | SelfParam | &T | main.rs:1507:5:1515:5 | Self [trait MyTrait] | -| main.rs:1512:16:1512:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1512:16:1512:20 | SelfParam | &T | main.rs:1507:5:1515:5 | Self [trait MyTrait] | -| main.rs:1512:32:1514:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1512:32:1514:9 | { ... } | &T | main.rs:1507:5:1515:5 | Self [trait MyTrait] | -| main.rs:1513:13:1513:16 | self | | file://:0:0:0:0 | & | -| main.rs:1513:13:1513:16 | self | &T | main.rs:1507:5:1515:5 | Self [trait MyTrait] | -| main.rs:1513:13:1513:22 | self.foo() | | file://:0:0:0:0 | & | -| main.rs:1513:13:1513:22 | self.foo() | &T | main.rs:1507:5:1515:5 | Self [trait MyTrait] | -| main.rs:1521:16:1521:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1521:16:1521:20 | SelfParam | &T | main.rs:1517:5:1517:20 | MyStruct | -| main.rs:1521:36:1523:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1521:36:1523:9 | { ... } | &T | main.rs:1517:5:1517:20 | MyStruct | -| main.rs:1522:13:1522:16 | self | | file://:0:0:0:0 | & | -| main.rs:1522:13:1522:16 | self | &T | main.rs:1517:5:1517:20 | MyStruct | -| main.rs:1527:13:1527:13 | x | | main.rs:1517:5:1517:20 | MyStruct | -| main.rs:1527:17:1527:24 | MyStruct | | main.rs:1517:5:1517:20 | MyStruct | -| main.rs:1528:9:1528:9 | x | | main.rs:1517:5:1517:20 | MyStruct | -| main.rs:1528:9:1528:15 | x.bar() | | file://:0:0:0:0 | & | -| main.rs:1528:9:1528:15 | x.bar() | &T | main.rs:1517:5:1517:20 | MyStruct | -| main.rs:1538:16:1538:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1538:16:1538:20 | SelfParam | &T | main.rs:1535:5:1535:26 | MyStruct | -| main.rs:1538:16:1538:20 | SelfParam | &T.T | main.rs:1537:10:1537:10 | T | -| main.rs:1538:32:1540:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1538:32:1540:9 | { ... } | &T | main.rs:1535:5:1535:26 | MyStruct | -| main.rs:1538:32:1540:9 | { ... } | &T.T | main.rs:1537:10:1537:10 | T | -| main.rs:1539:13:1539:16 | self | | file://:0:0:0:0 | & | -| main.rs:1539:13:1539:16 | self | &T | main.rs:1535:5:1535:26 | MyStruct | -| main.rs:1539:13:1539:16 | self | &T.T | main.rs:1537:10:1537:10 | T | -| main.rs:1544:13:1544:13 | x | | main.rs:1535:5:1535:26 | MyStruct | -| main.rs:1544:13:1544:13 | x | T | main.rs:1533:5:1533:13 | S | -| main.rs:1544:17:1544:27 | MyStruct(...) | | main.rs:1535:5:1535:26 | MyStruct | -| main.rs:1544:17:1544:27 | MyStruct(...) | T | main.rs:1533:5:1533:13 | S | -| main.rs:1544:26:1544:26 | S | | main.rs:1533:5:1533:13 | S | -| main.rs:1545:9:1545:9 | x | | main.rs:1535:5:1535:26 | MyStruct | -| main.rs:1545:9:1545:9 | x | T | main.rs:1533:5:1533:13 | S | -| main.rs:1545:9:1545:15 | x.foo() | | file://:0:0:0:0 | & | -| main.rs:1545:9:1545:15 | x.foo() | &T | main.rs:1535:5:1535:26 | MyStruct | -| main.rs:1545:9:1545:15 | x.foo() | &T.T | main.rs:1533:5:1533:13 | S | -| main.rs:1556:17:1556:25 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1556:17:1556:25 | SelfParam | &T | main.rs:1550:5:1553:5 | MyFlag | -| main.rs:1557:13:1557:16 | self | | file://:0:0:0:0 | & | -| main.rs:1557:13:1557:16 | self | &T | main.rs:1550:5:1553:5 | MyFlag | -| main.rs:1557:13:1557:21 | self.bool | | {EXTERNAL LOCATION} | bool | -| main.rs:1557:13:1557:34 | ... = ... | | file://:0:0:0:0 | () | -| main.rs:1557:25:1557:34 | ! ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1557:26:1557:29 | self | | file://:0:0:0:0 | & | -| main.rs:1557:26:1557:29 | self | &T | main.rs:1550:5:1553:5 | MyFlag | -| main.rs:1557:26:1557:34 | self.bool | | {EXTERNAL LOCATION} | bool | -| main.rs:1564:15:1564:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1564:15:1564:19 | SelfParam | &T | main.rs:1561:5:1561:13 | S | -| main.rs:1564:31:1566:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1564:31:1566:9 | { ... } | &T | main.rs:1561:5:1561:13 | S | -| main.rs:1565:13:1565:19 | &... | | file://:0:0:0:0 | & | -| main.rs:1565:13:1565:19 | &... | &T | file://:0:0:0:0 | & | -| main.rs:1565:13:1565:19 | &... | &T | main.rs:1561:5:1561:13 | S | -| main.rs:1565:13:1565:19 | &... | &T.&T | file://:0:0:0:0 | & | -| main.rs:1565:13:1565:19 | &... | &T.&T.&T | file://:0:0:0:0 | & | -| main.rs:1565:13:1565:19 | &... | &T.&T.&T.&T | main.rs:1561:5:1561:13 | S | -| main.rs:1565:14:1565:19 | &... | | file://:0:0:0:0 | & | -| main.rs:1565:14:1565:19 | &... | &T | file://:0:0:0:0 | & | -| main.rs:1565:14:1565:19 | &... | &T.&T | file://:0:0:0:0 | & | -| main.rs:1565:14:1565:19 | &... | &T.&T.&T | main.rs:1561:5:1561:13 | S | -| main.rs:1565:15:1565:19 | &self | | file://:0:0:0:0 | & | -| main.rs:1565:15:1565:19 | &self | &T | file://:0:0:0:0 | & | -| main.rs:1565:15:1565:19 | &self | &T.&T | main.rs:1561:5:1561:13 | S | -| main.rs:1565:16:1565:19 | self | | file://:0:0:0:0 | & | -| main.rs:1565:16:1565:19 | self | &T | main.rs:1561:5:1561:13 | S | -| main.rs:1568:15:1568:25 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1568:15:1568:25 | SelfParam | &T | main.rs:1561:5:1561:13 | S | -| main.rs:1568:37:1570:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1568:37:1570:9 | { ... } | &T | main.rs:1561:5:1561:13 | S | -| main.rs:1569:13:1569:19 | &... | | file://:0:0:0:0 | & | -| main.rs:1569:13:1569:19 | &... | &T | file://:0:0:0:0 | & | -| main.rs:1569:13:1569:19 | &... | &T | main.rs:1561:5:1561:13 | S | -| main.rs:1569:13:1569:19 | &... | &T.&T | file://:0:0:0:0 | & | -| main.rs:1569:13:1569:19 | &... | &T.&T.&T | file://:0:0:0:0 | & | -| main.rs:1569:13:1569:19 | &... | &T.&T.&T.&T | main.rs:1561:5:1561:13 | S | -| main.rs:1569:14:1569:19 | &... | | file://:0:0:0:0 | & | -| main.rs:1569:14:1569:19 | &... | &T | file://:0:0:0:0 | & | -| main.rs:1569:14:1569:19 | &... | &T.&T | file://:0:0:0:0 | & | -| main.rs:1569:14:1569:19 | &... | &T.&T.&T | main.rs:1561:5:1561:13 | S | -| main.rs:1569:15:1569:19 | &self | | file://:0:0:0:0 | & | -| main.rs:1569:15:1569:19 | &self | &T | file://:0:0:0:0 | & | -| main.rs:1569:15:1569:19 | &self | &T.&T | main.rs:1561:5:1561:13 | S | -| main.rs:1569:16:1569:19 | self | | file://:0:0:0:0 | & | -| main.rs:1569:16:1569:19 | self | &T | main.rs:1561:5:1561:13 | S | -| main.rs:1572:15:1572:15 | x | | file://:0:0:0:0 | & | -| main.rs:1572:15:1572:15 | x | &T | main.rs:1561:5:1561:13 | S | -| main.rs:1572:34:1574:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1572:34:1574:9 | { ... } | &T | main.rs:1561:5:1561:13 | S | -| main.rs:1573:13:1573:13 | x | | file://:0:0:0:0 | & | -| main.rs:1573:13:1573:13 | x | &T | main.rs:1561:5:1561:13 | S | -| main.rs:1576:15:1576:15 | x | | file://:0:0:0:0 | & | -| main.rs:1576:15:1576:15 | x | &T | main.rs:1561:5:1561:13 | S | -| main.rs:1576:34:1578:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1576:34:1578:9 | { ... } | &T | main.rs:1561:5:1561:13 | S | -| main.rs:1577:13:1577:16 | &... | | file://:0:0:0:0 | & | -| main.rs:1577:13:1577:16 | &... | &T | file://:0:0:0:0 | & | -| main.rs:1577:13:1577:16 | &... | &T | main.rs:1561:5:1561:13 | S | -| main.rs:1577:13:1577:16 | &... | &T.&T | file://:0:0:0:0 | & | -| main.rs:1577:13:1577:16 | &... | &T.&T.&T | file://:0:0:0:0 | & | -| main.rs:1577:13:1577:16 | &... | &T.&T.&T.&T | main.rs:1561:5:1561:13 | S | -| main.rs:1577:14:1577:16 | &... | | file://:0:0:0:0 | & | -| main.rs:1577:14:1577:16 | &... | &T | file://:0:0:0:0 | & | -| main.rs:1577:14:1577:16 | &... | &T.&T | file://:0:0:0:0 | & | -| main.rs:1577:14:1577:16 | &... | &T.&T.&T | main.rs:1561:5:1561:13 | S | -| main.rs:1577:15:1577:16 | &x | | file://:0:0:0:0 | & | -| main.rs:1577:15:1577:16 | &x | &T | file://:0:0:0:0 | & | -| main.rs:1577:15:1577:16 | &x | &T.&T | main.rs:1561:5:1561:13 | S | -| main.rs:1577:16:1577:16 | x | | file://:0:0:0:0 | & | -| main.rs:1577:16:1577:16 | x | &T | main.rs:1561:5:1561:13 | S | -| main.rs:1582:13:1582:13 | x | | main.rs:1561:5:1561:13 | S | -| main.rs:1582:17:1582:20 | S {...} | | main.rs:1561:5:1561:13 | S | -| main.rs:1583:9:1583:9 | x | | main.rs:1561:5:1561:13 | S | -| main.rs:1583:9:1583:14 | x.f1() | | file://:0:0:0:0 | & | -| main.rs:1583:9:1583:14 | x.f1() | &T | main.rs:1561:5:1561:13 | S | -| main.rs:1584:9:1584:9 | x | | main.rs:1561:5:1561:13 | S | -| main.rs:1584:9:1584:14 | x.f2() | | file://:0:0:0:0 | & | -| main.rs:1584:9:1584:14 | x.f2() | &T | main.rs:1561:5:1561:13 | S | -| main.rs:1585:9:1585:17 | ...::f3(...) | | file://:0:0:0:0 | & | -| main.rs:1585:9:1585:17 | ...::f3(...) | &T | main.rs:1561:5:1561:13 | S | -| main.rs:1585:15:1585:16 | &x | | file://:0:0:0:0 | & | -| main.rs:1585:15:1585:16 | &x | &T | main.rs:1561:5:1561:13 | S | -| main.rs:1585:16:1585:16 | x | | main.rs:1561:5:1561:13 | S | -| main.rs:1587:13:1587:13 | n | | {EXTERNAL LOCATION} | bool | -| main.rs:1587:17:1587:24 | * ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1587:18:1587:24 | * ... | | file://:0:0:0:0 | & | -| main.rs:1587:18:1587:24 | * ... | &T | {EXTERNAL LOCATION} | bool | -| main.rs:1587:19:1587:24 | &... | | file://:0:0:0:0 | & | -| main.rs:1587:19:1587:24 | &... | &T | file://:0:0:0:0 | & | -| main.rs:1587:19:1587:24 | &... | &T.&T | {EXTERNAL LOCATION} | bool | -| main.rs:1587:20:1587:24 | &true | | file://:0:0:0:0 | & | -| main.rs:1587:20:1587:24 | &true | &T | {EXTERNAL LOCATION} | bool | -| main.rs:1587:21:1587:24 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1591:17:1591:20 | flag | | main.rs:1550:5:1553:5 | MyFlag | -| main.rs:1591:24:1591:41 | ...::default(...) | | main.rs:1550:5:1553:5 | MyFlag | -| main.rs:1592:22:1592:30 | &mut flag | | file://:0:0:0:0 | & | -| main.rs:1592:22:1592:30 | &mut flag | &T | main.rs:1550:5:1553:5 | MyFlag | -| main.rs:1592:27:1592:30 | flag | | main.rs:1550:5:1553:5 | MyFlag | -| main.rs:1593:18:1593:23 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1593:18:1593:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1593:18:1593:29 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1593:18:1593:29 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1593:26:1593:29 | flag | | main.rs:1550:5:1553:5 | MyFlag | -| main.rs:1608:43:1611:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1608:43:1611:5 | { ... } | E | main.rs:1600:5:1601:14 | S1 | -| main.rs:1608:43:1611:5 | { ... } | T | main.rs:1600:5:1601:14 | S1 | -| main.rs:1609:13:1609:13 | x | | main.rs:1600:5:1601:14 | S1 | -| main.rs:1609:17:1609:30 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1609:17:1609:30 | ...::Ok(...) | T | main.rs:1600:5:1601:14 | S1 | -| main.rs:1609:17:1609:31 | TryExpr | | main.rs:1600:5:1601:14 | S1 | -| main.rs:1609:28:1609:29 | S1 | | main.rs:1600:5:1601:14 | S1 | -| main.rs:1610:9:1610:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1610:9:1610:22 | ...::Ok(...) | E | main.rs:1600:5:1601:14 | S1 | -| main.rs:1610:9:1610:22 | ...::Ok(...) | T | main.rs:1600:5:1601:14 | S1 | -| main.rs:1610:20:1610:21 | S1 | | main.rs:1600:5:1601:14 | S1 | -| main.rs:1615:46:1619:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1615:46:1619:5 | { ... } | E | main.rs:1603:5:1604:14 | S2 | -| main.rs:1615:46:1619:5 | { ... } | T | main.rs:1600:5:1601:14 | S1 | -| main.rs:1616:13:1616:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:1616:13:1616:13 | x | T | main.rs:1600:5:1601:14 | S1 | -| main.rs:1616:17:1616:30 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1616:17:1616:30 | ...::Ok(...) | T | main.rs:1600:5:1601:14 | S1 | -| main.rs:1616:28:1616:29 | S1 | | main.rs:1600:5:1601:14 | S1 | -| main.rs:1617:13:1617:13 | y | | main.rs:1600:5:1601:14 | S1 | -| main.rs:1617:17:1617:17 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:1617:17:1617:17 | x | T | main.rs:1600:5:1601:14 | S1 | -| main.rs:1617:17:1617:18 | TryExpr | | main.rs:1600:5:1601:14 | S1 | -| main.rs:1618:9:1618:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1618:9:1618:22 | ...::Ok(...) | E | main.rs:1603:5:1604:14 | S2 | -| main.rs:1618:9:1618:22 | ...::Ok(...) | T | main.rs:1600:5:1601:14 | S1 | -| main.rs:1618:20:1618:21 | S1 | | main.rs:1600:5:1601:14 | S1 | -| main.rs:1623:40:1628:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1623:40:1628:5 | { ... } | E | main.rs:1603:5:1604:14 | S2 | -| main.rs:1623:40:1628:5 | { ... } | T | main.rs:1600:5:1601:14 | S1 | -| main.rs:1624:13:1624:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:1624:13:1624:13 | x | T | {EXTERNAL LOCATION} | Result | -| main.rs:1624:13:1624:13 | x | T.T | main.rs:1600:5:1601:14 | S1 | -| main.rs:1624:17:1624:42 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1624:17:1624:42 | ...::Ok(...) | T | {EXTERNAL LOCATION} | Result | -| main.rs:1624:17:1624:42 | ...::Ok(...) | T.T | main.rs:1600:5:1601:14 | S1 | -| main.rs:1624:28:1624:41 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1624:28:1624:41 | ...::Ok(...) | T | main.rs:1600:5:1601:14 | S1 | -| main.rs:1624:39:1624:40 | S1 | | main.rs:1600:5:1601:14 | S1 | -| main.rs:1626:17:1626:17 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:1626:17:1626:17 | x | T | {EXTERNAL LOCATION} | Result | -| main.rs:1626:17:1626:17 | x | T.T | main.rs:1600:5:1601:14 | S1 | -| main.rs:1626:17:1626:18 | TryExpr | | {EXTERNAL LOCATION} | Result | -| main.rs:1626:17:1626:18 | TryExpr | T | main.rs:1600:5:1601:14 | S1 | -| main.rs:1626:17:1626:29 | ... .map(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1626:24:1626:28 | \|...\| s | | {EXTERNAL LOCATION} | dyn FnOnce | -| main.rs:1626:24:1626:28 | \|...\| s | dyn(Args) | file://:0:0:0:0 | (T_1) | -| main.rs:1627:9:1627:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1627:9:1627:22 | ...::Ok(...) | E | main.rs:1603:5:1604:14 | S2 | -| main.rs:1627:9:1627:22 | ...::Ok(...) | T | main.rs:1600:5:1601:14 | S1 | -| main.rs:1627:20:1627:21 | S1 | | main.rs:1600:5:1601:14 | S1 | -| main.rs:1632:30:1632:34 | input | | {EXTERNAL LOCATION} | Result | -| main.rs:1632:30:1632:34 | input | E | main.rs:1600:5:1601:14 | S1 | -| main.rs:1632:30:1632:34 | input | T | main.rs:1632:20:1632:27 | T | -| main.rs:1632:69:1639:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1632:69:1639:5 | { ... } | E | main.rs:1600:5:1601:14 | S1 | -| main.rs:1632:69:1639:5 | { ... } | T | main.rs:1632:20:1632:27 | T | -| main.rs:1633:13:1633:17 | value | | main.rs:1632:20:1632:27 | T | -| main.rs:1633:21:1633:25 | input | | {EXTERNAL LOCATION} | Result | -| main.rs:1633:21:1633:25 | input | E | main.rs:1600:5:1601:14 | S1 | -| main.rs:1633:21:1633:25 | input | T | main.rs:1632:20:1632:27 | T | -| main.rs:1633:21:1633:26 | TryExpr | | main.rs:1632:20:1632:27 | T | -| main.rs:1634:22:1634:38 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1634:22:1634:38 | ...::Ok(...) | E | main.rs:1600:5:1601:14 | S1 | -| main.rs:1634:22:1634:38 | ...::Ok(...) | T | main.rs:1632:20:1632:27 | T | -| main.rs:1634:22:1637:10 | ... .and_then(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1634:22:1637:10 | ... .and_then(...) | E | main.rs:1600:5:1601:14 | S1 | -| main.rs:1634:33:1634:37 | value | | main.rs:1632:20:1632:27 | T | -| main.rs:1634:49:1637:9 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | -| main.rs:1634:49:1637:9 | \|...\| ... | dyn(Args) | file://:0:0:0:0 | (T_1) | -| main.rs:1634:49:1637:9 | \|...\| ... | dyn(Output) | {EXTERNAL LOCATION} | Result | -| main.rs:1634:49:1637:9 | \|...\| ... | dyn(Output).E | main.rs:1600:5:1601:14 | S1 | -| main.rs:1634:53:1637:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1634:53:1637:9 | { ... } | E | main.rs:1600:5:1601:14 | S1 | -| main.rs:1635:22:1635:27 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1635:22:1635:27 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1635:22:1635:30 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1635:22:1635:30 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1636:13:1636:34 | ...::Ok::<...>(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1636:13:1636:34 | ...::Ok::<...>(...) | E | main.rs:1600:5:1601:14 | S1 | -| main.rs:1638:9:1638:23 | ...::Err(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1638:9:1638:23 | ...::Err(...) | E | main.rs:1600:5:1601:14 | S1 | -| main.rs:1638:9:1638:23 | ...::Err(...) | T | main.rs:1632:20:1632:27 | T | -| main.rs:1638:21:1638:22 | S1 | | main.rs:1600:5:1601:14 | S1 | -| main.rs:1643:16:1643:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1643:16:1643:33 | ...::Ok(...) | E | main.rs:1600:5:1601:14 | S1 | -| main.rs:1643:16:1643:33 | ...::Ok(...) | T | main.rs:1600:5:1601:14 | S1 | -| main.rs:1643:27:1643:32 | result | | main.rs:1600:5:1601:14 | S1 | -| main.rs:1643:37:1643:52 | try_same_error(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1643:37:1643:52 | try_same_error(...) | E | main.rs:1600:5:1601:14 | S1 | -| main.rs:1643:37:1643:52 | try_same_error(...) | T | main.rs:1600:5:1601:14 | S1 | -| main.rs:1644:22:1644:27 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1644:22:1644:27 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1644:22:1644:35 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1644:22:1644:35 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1644:30:1644:35 | result | | main.rs:1600:5:1601:14 | S1 | -| main.rs:1647:16:1647:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1647:16:1647:33 | ...::Ok(...) | E | main.rs:1603:5:1604:14 | S2 | -| main.rs:1647:16:1647:33 | ...::Ok(...) | T | main.rs:1600:5:1601:14 | S1 | -| main.rs:1647:27:1647:32 | result | | main.rs:1600:5:1601:14 | S1 | -| main.rs:1647:37:1647:55 | try_convert_error(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1647:37:1647:55 | try_convert_error(...) | E | main.rs:1603:5:1604:14 | S2 | -| main.rs:1647:37:1647:55 | try_convert_error(...) | T | main.rs:1600:5:1601:14 | S1 | -| main.rs:1648:22:1648:27 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1648:22:1648:27 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1648:22:1648:35 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1648:22:1648:35 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1648:30:1648:35 | result | | main.rs:1600:5:1601:14 | S1 | -| main.rs:1651:16:1651:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1651:16:1651:33 | ...::Ok(...) | E | main.rs:1603:5:1604:14 | S2 | -| main.rs:1651:16:1651:33 | ...::Ok(...) | T | main.rs:1600:5:1601:14 | S1 | -| main.rs:1651:27:1651:32 | result | | main.rs:1600:5:1601:14 | S1 | -| main.rs:1651:37:1651:49 | try_chained(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1651:37:1651:49 | try_chained(...) | E | main.rs:1603:5:1604:14 | S2 | -| main.rs:1651:37:1651:49 | try_chained(...) | T | main.rs:1600:5:1601:14 | S1 | -| main.rs:1652:22:1652:27 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1652:22:1652:27 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1652:22:1652:35 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1652:22:1652:35 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1652:30:1652:35 | result | | main.rs:1600:5:1601:14 | S1 | -| main.rs:1655:16:1655:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1655:16:1655:33 | ...::Ok(...) | E | main.rs:1600:5:1601:14 | S1 | -| main.rs:1655:16:1655:33 | ...::Ok(...) | T | main.rs:1600:5:1601:14 | S1 | -| main.rs:1655:27:1655:32 | result | | main.rs:1600:5:1601:14 | S1 | -| main.rs:1655:37:1655:63 | try_complex(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1655:37:1655:63 | try_complex(...) | E | main.rs:1600:5:1601:14 | S1 | -| main.rs:1655:37:1655:63 | try_complex(...) | T | main.rs:1600:5:1601:14 | S1 | -| main.rs:1655:49:1655:62 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1655:49:1655:62 | ...::Ok(...) | E | main.rs:1600:5:1601:14 | S1 | -| main.rs:1655:49:1655:62 | ...::Ok(...) | T | main.rs:1600:5:1601:14 | S1 | -| main.rs:1655:60:1655:61 | S1 | | main.rs:1600:5:1601:14 | S1 | -| main.rs:1656:22:1656:27 | "{:?}\\n" | | file://:0:0:0:0 | & | -| main.rs:1656:22:1656:27 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1656:22:1656:35 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1656:22:1656:35 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:1656:30:1656:35 | result | | main.rs:1600:5:1601:14 | S1 | -| main.rs:1663:13:1663:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1663:22:1663:22 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1664:13:1664:13 | y | | {EXTERNAL LOCATION} | i32 | -| main.rs:1664:17:1664:17 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1665:13:1665:13 | z | | {EXTERNAL LOCATION} | i32 | -| main.rs:1665:17:1665:17 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1665:17:1665:21 | ... + ... | | {EXTERNAL LOCATION} | i32 | -| main.rs:1665:21:1665:21 | y | | {EXTERNAL LOCATION} | i32 | -| main.rs:1666:13:1666:13 | z | | {EXTERNAL LOCATION} | i32 | -| main.rs:1666:17:1666:17 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1666:17:1666:23 | x.abs() | | {EXTERNAL LOCATION} | i32 | -| main.rs:1667:13:1667:13 | c | | {EXTERNAL LOCATION} | char | -| main.rs:1667:17:1667:19 | 'c' | | {EXTERNAL LOCATION} | char | -| main.rs:1668:13:1668:17 | hello | | file://:0:0:0:0 | & | -| main.rs:1668:13:1668:17 | hello | &T | {EXTERNAL LOCATION} | str | -| main.rs:1668:21:1668:27 | "Hello" | | file://:0:0:0:0 | & | -| main.rs:1668:21:1668:27 | "Hello" | &T | {EXTERNAL LOCATION} | str | -| main.rs:1669:13:1669:13 | f | | {EXTERNAL LOCATION} | f64 | -| main.rs:1669:17:1669:24 | 123.0f64 | | {EXTERNAL LOCATION} | f64 | -| main.rs:1670:13:1670:13 | t | | {EXTERNAL LOCATION} | bool | -| main.rs:1670:17:1670:20 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1671:13:1671:13 | f | | {EXTERNAL LOCATION} | bool | -| main.rs:1671:17:1671:21 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1678:13:1678:13 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:1678:17:1678:20 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1678:17:1678:29 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1678:25:1678:29 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1679:13:1679:13 | y | | {EXTERNAL LOCATION} | bool | -| main.rs:1679:17:1679:20 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1679:17:1679:29 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1679:25:1679:29 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1681:17:1681:17 | a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1682:13:1682:16 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:1682:20:1682:21 | 34 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1682:20:1682:27 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1682:26:1682:27 | 33 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1683:12:1683:15 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:1684:17:1684:17 | z | | file://:0:0:0:0 | () | -| main.rs:1684:21:1684:27 | (...) | | file://:0:0:0:0 | () | -| main.rs:1684:22:1684:22 | a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1684:22:1684:26 | ... = ... | | file://:0:0:0:0 | () | -| main.rs:1684:26:1684:26 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1686:13:1686:13 | a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1686:13:1686:17 | ... = ... | | file://:0:0:0:0 | () | -| main.rs:1686:17:1686:17 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1688:9:1688:9 | a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1702:30:1704:9 | { ... } | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1703:13:1703:31 | Vec2 {...} | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1703:23:1703:23 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1703:23:1703:23 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1703:29:1703:29 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1703:29:1703:29 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1710:16:1710:19 | SelfParam | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1710:22:1710:24 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1710:41:1715:9 | { ... } | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1711:13:1714:13 | Vec2 {...} | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1712:20:1712:23 | self | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1712:20:1712:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1712:20:1712:33 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1712:29:1712:31 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1712:29:1712:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1713:20:1713:23 | self | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1713:20:1713:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1713:20:1713:33 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1713:29:1713:31 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1713:29:1713:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1720:23:1720:31 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1720:23:1720:31 | SelfParam | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1720:34:1720:36 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1721:13:1721:16 | self | | file://:0:0:0:0 | & | -| main.rs:1721:13:1721:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1721:13:1721:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1721:13:1721:27 | ... += ... | | file://:0:0:0:0 | () | -| main.rs:1721:23:1721:25 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1721:23:1721:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1722:13:1722:16 | self | | file://:0:0:0:0 | & | -| main.rs:1722:13:1722:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1722:13:1722:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1722:13:1722:27 | ... += ... | | file://:0:0:0:0 | () | -| main.rs:1722:23:1722:25 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1722:23:1722:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1728:16:1728:19 | SelfParam | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1728:22:1728:24 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1728:41:1733:9 | { ... } | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1729:13:1732:13 | Vec2 {...} | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1730:20:1730:23 | self | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1730:20:1730:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1730:20:1730:33 | ... - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1730:29:1730:31 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1730:29:1730:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1731:20:1731:23 | self | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1731:20:1731:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1731:20:1731:33 | ... - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1731:29:1731:31 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1731:29:1731:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1738:23:1738:31 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1738:23:1738:31 | SelfParam | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1738:34:1738:36 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1739:13:1739:16 | self | | file://:0:0:0:0 | & | -| main.rs:1739:13:1739:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1739:13:1739:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1739:13:1739:27 | ... -= ... | | file://:0:0:0:0 | () | -| main.rs:1739:23:1739:25 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1739:23:1739:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1740:13:1740:16 | self | | file://:0:0:0:0 | & | -| main.rs:1740:13:1740:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1740:13:1740:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1740:13:1740:27 | ... -= ... | | file://:0:0:0:0 | () | -| main.rs:1740:23:1740:25 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1740:23:1740:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1746:16:1746:19 | SelfParam | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1746:22:1746:24 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1746:41:1751:9 | { ... } | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1747:13:1750:13 | Vec2 {...} | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1748:20:1748:23 | self | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1748:20:1748:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1748:20:1748:33 | ... * ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1748:29:1748:31 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1748:29:1748:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1749:20:1749:23 | self | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1749:20:1749:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1749:20:1749:33 | ... * ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1749:29:1749:31 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1749:29:1749:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1755:23:1755:31 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1755:23:1755:31 | SelfParam | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1755:34:1755:36 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1756:13:1756:16 | self | | file://:0:0:0:0 | & | -| main.rs:1756:13:1756:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1756:13:1756:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1756:13:1756:27 | ... *= ... | | file://:0:0:0:0 | () | -| main.rs:1756:23:1756:25 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1756:23:1756:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1757:13:1757:16 | self | | file://:0:0:0:0 | & | -| main.rs:1757:13:1757:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1757:13:1757:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1757:13:1757:27 | ... *= ... | | file://:0:0:0:0 | () | -| main.rs:1757:23:1757:25 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1757:23:1757:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1763:16:1763:19 | SelfParam | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1763:22:1763:24 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1763:41:1768:9 | { ... } | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1764:13:1767:13 | Vec2 {...} | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1765:20:1765:23 | self | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1765:20:1765:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1765:20:1765:33 | ... / ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1765:29:1765:31 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1765:29:1765:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1766:20:1766:23 | self | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1766:20:1766:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1766:20:1766:33 | ... / ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1766:29:1766:31 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1766:29:1766:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1772:23:1772:31 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1772:23:1772:31 | SelfParam | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1772:34:1772:36 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1773:13:1773:16 | self | | file://:0:0:0:0 | & | -| main.rs:1773:13:1773:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1773:13:1773:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1773:13:1773:27 | ... /= ... | | file://:0:0:0:0 | () | -| main.rs:1773:23:1773:25 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1773:23:1773:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1774:13:1774:16 | self | | file://:0:0:0:0 | & | -| main.rs:1774:13:1774:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1774:13:1774:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1774:13:1774:27 | ... /= ... | | file://:0:0:0:0 | () | -| main.rs:1774:23:1774:25 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1774:23:1774:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1780:16:1780:19 | SelfParam | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1780:22:1780:24 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1780:41:1785:9 | { ... } | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1781:13:1784:13 | Vec2 {...} | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1782:20:1782:23 | self | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1782:20:1782:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1782:20:1782:33 | ... % ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1782:29:1782:31 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1782:29:1782:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1783:20:1783:23 | self | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1783:20:1783:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1783:20:1783:33 | ... % ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1783:29:1783:31 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1783:29:1783:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1789:23:1789:31 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1789:23:1789:31 | SelfParam | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1789:34:1789:36 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1790:13:1790:16 | self | | file://:0:0:0:0 | & | -| main.rs:1790:13:1790:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1790:13:1790:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1790:13:1790:27 | ... %= ... | | file://:0:0:0:0 | () | -| main.rs:1790:23:1790:25 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1790:23:1790:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1791:13:1791:16 | self | | file://:0:0:0:0 | & | -| main.rs:1791:13:1791:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1791:13:1791:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1791:13:1791:27 | ... %= ... | | file://:0:0:0:0 | () | -| main.rs:1791:23:1791:25 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1791:23:1791:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1797:19:1797:22 | SelfParam | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1797:25:1797:27 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1797:44:1802:9 | { ... } | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1798:13:1801:13 | Vec2 {...} | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1799:20:1799:23 | self | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1799:20:1799:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1799:20:1799:33 | ... & ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1799:29:1799:31 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1799:29:1799:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1800:20:1800:23 | self | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1800:20:1800:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1800:20:1800:33 | ... & ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1800:29:1800:31 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1800:29:1800:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1806:26:1806:34 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1806:26:1806:34 | SelfParam | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1806:37:1806:39 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1807:13:1807:16 | self | | file://:0:0:0:0 | & | -| main.rs:1807:13:1807:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1807:13:1807:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1807:13:1807:27 | ... &= ... | | file://:0:0:0:0 | () | -| main.rs:1807:23:1807:25 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1807:23:1807:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1808:13:1808:16 | self | | file://:0:0:0:0 | & | -| main.rs:1808:13:1808:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1808:13:1808:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1808:13:1808:27 | ... &= ... | | file://:0:0:0:0 | () | -| main.rs:1808:23:1808:25 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1808:23:1808:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1814:18:1814:21 | SelfParam | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1814:24:1814:26 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1814:43:1819:9 | { ... } | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1815:13:1818:13 | Vec2 {...} | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1816:20:1816:23 | self | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1816:20:1816:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1816:20:1816:33 | ... \| ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1816:29:1816:31 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1816:29:1816:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1817:20:1817:23 | self | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1817:20:1817:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1817:20:1817:33 | ... \| ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1817:29:1817:31 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1817:29:1817:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1823:25:1823:33 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1823:25:1823:33 | SelfParam | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1823:36:1823:38 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1824:13:1824:16 | self | | file://:0:0:0:0 | & | -| main.rs:1824:13:1824:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1824:13:1824:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1824:13:1824:27 | ... \|= ... | | file://:0:0:0:0 | () | -| main.rs:1824:23:1824:25 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1824:23:1824:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1825:13:1825:16 | self | | file://:0:0:0:0 | & | -| main.rs:1825:13:1825:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1825:13:1825:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1825:13:1825:27 | ... \|= ... | | file://:0:0:0:0 | () | -| main.rs:1825:23:1825:25 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1825:23:1825:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1831:19:1831:22 | SelfParam | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1831:25:1831:27 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1831:44:1836:9 | { ... } | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1832:13:1835:13 | Vec2 {...} | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1833:20:1833:23 | self | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1833:20:1833:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1833:20:1833:33 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1833:29:1833:31 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1833:29:1833:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1834:20:1834:23 | self | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1834:20:1834:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1834:20:1834:33 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1834:29:1834:31 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1834:29:1834:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1840:26:1840:34 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1840:26:1840:34 | SelfParam | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1840:37:1840:39 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1841:13:1841:16 | self | | file://:0:0:0:0 | & | -| main.rs:1841:13:1841:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1841:13:1841:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1841:13:1841:27 | ... ^= ... | | file://:0:0:0:0 | () | -| main.rs:1841:23:1841:25 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1841:23:1841:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1842:13:1842:16 | self | | file://:0:0:0:0 | & | -| main.rs:1842:13:1842:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1842:13:1842:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1842:13:1842:27 | ... ^= ... | | file://:0:0:0:0 | () | -| main.rs:1842:23:1842:25 | rhs | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1842:23:1842:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1848:16:1848:19 | SelfParam | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1848:22:1848:24 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1848:40:1853:9 | { ... } | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1849:13:1852:13 | Vec2 {...} | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1850:20:1850:23 | self | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1850:20:1850:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1850:20:1850:32 | ... << ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1850:30:1850:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1851:20:1851:23 | self | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1851:20:1851:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1851:20:1851:32 | ... << ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1851:30:1851:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1857:23:1857:31 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1857:23:1857:31 | SelfParam | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1857:34:1857:36 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1858:13:1858:16 | self | | file://:0:0:0:0 | & | -| main.rs:1858:13:1858:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1858:13:1858:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1858:13:1858:26 | ... <<= ... | | file://:0:0:0:0 | () | -| main.rs:1858:24:1858:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1859:13:1859:16 | self | | file://:0:0:0:0 | & | -| main.rs:1859:13:1859:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1859:13:1859:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1859:13:1859:26 | ... <<= ... | | file://:0:0:0:0 | () | -| main.rs:1859:24:1859:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1865:16:1865:19 | SelfParam | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1865:22:1865:24 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1865:40:1870:9 | { ... } | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1866:13:1869:13 | Vec2 {...} | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1867:20:1867:23 | self | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1867:20:1867:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1867:20:1867:32 | ... >> ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1867:30:1867:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1868:20:1868:23 | self | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1868:20:1868:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1868:20:1868:32 | ... >> ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1868:30:1868:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1874:23:1874:31 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1874:23:1874:31 | SelfParam | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1874:34:1874:36 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1875:13:1875:16 | self | | file://:0:0:0:0 | & | -| main.rs:1875:13:1875:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1875:13:1875:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1875:13:1875:26 | ... >>= ... | | file://:0:0:0:0 | () | -| main.rs:1875:24:1875:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1876:13:1876:16 | self | | file://:0:0:0:0 | & | -| main.rs:1876:13:1876:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1876:13:1876:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1876:13:1876:26 | ... >>= ... | | file://:0:0:0:0 | () | -| main.rs:1876:24:1876:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1882:16:1882:19 | SelfParam | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1882:30:1887:9 | { ... } | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1883:13:1886:13 | Vec2 {...} | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1884:20:1884:26 | - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1884:21:1884:24 | self | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1884:21:1884:26 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1885:20:1885:26 | - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1885:21:1885:24 | self | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1885:21:1885:26 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1892:16:1892:19 | SelfParam | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1892:30:1897:9 | { ... } | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1893:13:1896:13 | Vec2 {...} | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1894:20:1894:26 | ! ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1894:21:1894:24 | self | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1894:21:1894:26 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1895:20:1895:26 | ! ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1895:21:1895:24 | self | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1895:21:1895:26 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1901:15:1901:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1901:15:1901:19 | SelfParam | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1901:22:1901:26 | other | | file://:0:0:0:0 | & | -| main.rs:1901:22:1901:26 | other | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1901:44:1903:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:1902:13:1902:16 | self | | file://:0:0:0:0 | & | -| main.rs:1902:13:1902:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1902:13:1902:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1902:13:1902:29 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1902:13:1902:50 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1902:23:1902:27 | other | | file://:0:0:0:0 | & | -| main.rs:1902:23:1902:27 | other | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1902:23:1902:29 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1902:34:1902:37 | self | | file://:0:0:0:0 | & | -| main.rs:1902:34:1902:37 | self | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1902:34:1902:39 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1902:34:1902:50 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1902:44:1902:48 | other | | file://:0:0:0:0 | & | -| main.rs:1902:44:1902:48 | other | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1902:44:1902:50 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1905:15:1905:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1905:15:1905:19 | SelfParam | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1905:22:1905:26 | other | | file://:0:0:0:0 | & | -| main.rs:1905:22:1905:26 | other | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1905:44:1907:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:1906:13:1906:16 | self | | file://:0:0:0:0 | & | -| main.rs:1906:13:1906:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1906:13:1906:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1906:13:1906:29 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1906:13:1906:50 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1906:23:1906:27 | other | | file://:0:0:0:0 | & | -| main.rs:1906:23:1906:27 | other | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1906:23:1906:29 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1906:34:1906:37 | self | | file://:0:0:0:0 | & | -| main.rs:1906:34:1906:37 | self | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1906:34:1906:39 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1906:34:1906:50 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1906:44:1906:48 | other | | file://:0:0:0:0 | & | -| main.rs:1906:44:1906:48 | other | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1906:44:1906:50 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1911:24:1911:28 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1911:24:1911:28 | SelfParam | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1911:31:1911:35 | other | | file://:0:0:0:0 | & | -| main.rs:1911:31:1911:35 | other | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1911:75:1913:9 | { ... } | | {EXTERNAL LOCATION} | Option | -| main.rs:1911:75:1913:9 | { ... } | T | {EXTERNAL LOCATION} | Ordering | -| main.rs:1912:13:1912:29 | (...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:1912:13:1912:63 | ... .partial_cmp(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:1912:13:1912:63 | ... .partial_cmp(...) | T | {EXTERNAL LOCATION} | Ordering | -| main.rs:1912:14:1912:17 | self | | file://:0:0:0:0 | & | -| main.rs:1912:14:1912:17 | self | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1912:14:1912:19 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1912:14:1912:28 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1912:23:1912:26 | self | | file://:0:0:0:0 | & | -| main.rs:1912:23:1912:26 | self | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1912:23:1912:28 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1912:43:1912:62 | &... | | file://:0:0:0:0 | & | -| main.rs:1912:43:1912:62 | &... | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:1912:44:1912:62 | (...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:1912:45:1912:49 | other | | file://:0:0:0:0 | & | -| main.rs:1912:45:1912:49 | other | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1912:45:1912:51 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1912:45:1912:61 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1912:55:1912:59 | other | | file://:0:0:0:0 | & | -| main.rs:1912:55:1912:59 | other | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1912:55:1912:61 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1915:15:1915:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1915:15:1915:19 | SelfParam | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1915:22:1915:26 | other | | file://:0:0:0:0 | & | -| main.rs:1915:22:1915:26 | other | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1915:44:1917:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:1916:13:1916:16 | self | | file://:0:0:0:0 | & | -| main.rs:1916:13:1916:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1916:13:1916:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1916:13:1916:28 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1916:13:1916:48 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1916:22:1916:26 | other | | file://:0:0:0:0 | & | -| main.rs:1916:22:1916:26 | other | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1916:22:1916:28 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1916:33:1916:36 | self | | file://:0:0:0:0 | & | -| main.rs:1916:33:1916:36 | self | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1916:33:1916:38 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1916:33:1916:48 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1916:42:1916:46 | other | | file://:0:0:0:0 | & | -| main.rs:1916:42:1916:46 | other | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1916:42:1916:48 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1919:15:1919:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1919:15:1919:19 | SelfParam | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1919:22:1919:26 | other | | file://:0:0:0:0 | & | -| main.rs:1919:22:1919:26 | other | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1919:44:1921:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:1920:13:1920:16 | self | | file://:0:0:0:0 | & | -| main.rs:1920:13:1920:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1920:13:1920:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1920:13:1920:29 | ... <= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1920:13:1920:50 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1920:23:1920:27 | other | | file://:0:0:0:0 | & | -| main.rs:1920:23:1920:27 | other | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1920:23:1920:29 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1920:34:1920:37 | self | | file://:0:0:0:0 | & | -| main.rs:1920:34:1920:37 | self | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1920:34:1920:39 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1920:34:1920:50 | ... <= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1920:44:1920:48 | other | | file://:0:0:0:0 | & | -| main.rs:1920:44:1920:48 | other | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1920:44:1920:50 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1923:15:1923:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1923:15:1923:19 | SelfParam | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1923:22:1923:26 | other | | file://:0:0:0:0 | & | -| main.rs:1923:22:1923:26 | other | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1923:44:1925:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:1924:13:1924:16 | self | | file://:0:0:0:0 | & | -| main.rs:1924:13:1924:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1924:13:1924:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1924:13:1924:28 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1924:13:1924:48 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1924:22:1924:26 | other | | file://:0:0:0:0 | & | -| main.rs:1924:22:1924:26 | other | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1924:22:1924:28 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1924:33:1924:36 | self | | file://:0:0:0:0 | & | -| main.rs:1924:33:1924:36 | self | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1924:33:1924:38 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1924:33:1924:48 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1924:42:1924:46 | other | | file://:0:0:0:0 | & | -| main.rs:1924:42:1924:46 | other | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1924:42:1924:48 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1927:15:1927:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1927:15:1927:19 | SelfParam | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1927:22:1927:26 | other | | file://:0:0:0:0 | & | -| main.rs:1927:22:1927:26 | other | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1927:44:1929:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:1928:13:1928:16 | self | | file://:0:0:0:0 | & | -| main.rs:1928:13:1928:16 | self | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1928:13:1928:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1928:13:1928:29 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1928:13:1928:50 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1928:23:1928:27 | other | | file://:0:0:0:0 | & | -| main.rs:1928:23:1928:27 | other | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1928:23:1928:29 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1928:34:1928:37 | self | | file://:0:0:0:0 | & | -| main.rs:1928:34:1928:37 | self | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1928:34:1928:39 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1928:34:1928:50 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1928:44:1928:48 | other | | file://:0:0:0:0 | & | -| main.rs:1928:44:1928:48 | other | &T | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1928:44:1928:50 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1932:26:1932:26 | a | | main.rs:1932:18:1932:23 | T | -| main.rs:1932:32:1932:32 | b | | main.rs:1932:18:1932:23 | T | -| main.rs:1932:51:1934:5 | { ... } | | {EXTERNAL LOCATION} | Output | -| main.rs:1933:9:1933:9 | a | | main.rs:1932:18:1932:23 | T | -| main.rs:1933:9:1933:13 | ... + ... | | {EXTERNAL LOCATION} | Output | -| main.rs:1933:13:1933:13 | b | | main.rs:1932:18:1932:23 | T | -| main.rs:1940:13:1940:18 | i64_eq | | {EXTERNAL LOCATION} | bool | -| main.rs:1940:22:1940:35 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:1940:23:1940:26 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1940:23:1940:34 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1940:31:1940:34 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1941:13:1941:18 | i64_ne | | {EXTERNAL LOCATION} | bool | -| main.rs:1941:22:1941:35 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:1941:23:1941:26 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1941:23:1941:34 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1941:31:1941:34 | 4i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1942:13:1942:18 | i64_lt | | {EXTERNAL LOCATION} | bool | -| main.rs:1942:22:1942:34 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:1942:23:1942:26 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1942:23:1942:33 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1942:30:1942:33 | 6i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1943:13:1943:18 | i64_le | | {EXTERNAL LOCATION} | bool | -| main.rs:1943:22:1943:35 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:1943:23:1943:26 | 7i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1943:23:1943:34 | ... <= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1943:31:1943:34 | 8i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1944:13:1944:18 | i64_gt | | {EXTERNAL LOCATION} | bool | -| main.rs:1944:22:1944:35 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:1944:23:1944:26 | 9i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1944:23:1944:34 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1944:30:1944:34 | 10i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1945:13:1945:18 | i64_ge | | {EXTERNAL LOCATION} | bool | -| main.rs:1945:22:1945:37 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:1945:23:1945:27 | 11i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1945:23:1945:36 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1945:32:1945:36 | 12i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1948:13:1948:19 | i64_add | | {EXTERNAL LOCATION} | i64 | -| main.rs:1948:23:1948:27 | 13i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1948:23:1948:35 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1948:31:1948:35 | 14i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1949:13:1949:19 | i64_sub | | {EXTERNAL LOCATION} | i64 | -| main.rs:1949:23:1949:27 | 15i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1949:23:1949:35 | ... - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1949:31:1949:35 | 16i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1950:13:1950:19 | i64_mul | | {EXTERNAL LOCATION} | i64 | -| main.rs:1950:23:1950:27 | 17i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1950:23:1950:35 | ... * ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1950:31:1950:35 | 18i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1951:13:1951:19 | i64_div | | {EXTERNAL LOCATION} | i64 | -| main.rs:1951:23:1951:27 | 19i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1951:23:1951:35 | ... / ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1951:31:1951:35 | 20i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1952:13:1952:19 | i64_rem | | {EXTERNAL LOCATION} | i64 | -| main.rs:1952:23:1952:27 | 21i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1952:23:1952:35 | ... % ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1952:31:1952:35 | 22i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1953:39:1953:42 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1953:45:1953:48 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1956:17:1956:30 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1956:34:1956:38 | 23i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1957:9:1957:22 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1957:9:1957:31 | ... += ... | | file://:0:0:0:0 | () | -| main.rs:1957:27:1957:31 | 24i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1959:17:1959:30 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1959:34:1959:38 | 25i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1960:9:1960:22 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1960:9:1960:31 | ... -= ... | | file://:0:0:0:0 | () | -| main.rs:1960:27:1960:31 | 26i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1962:17:1962:30 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1962:34:1962:38 | 27i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1963:9:1963:22 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1963:9:1963:31 | ... *= ... | | file://:0:0:0:0 | () | -| main.rs:1963:27:1963:31 | 28i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1965:17:1965:30 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1965:34:1965:38 | 29i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1966:9:1966:22 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1966:9:1966:31 | ... /= ... | | file://:0:0:0:0 | () | -| main.rs:1966:27:1966:31 | 30i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1968:17:1968:30 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1968:34:1968:38 | 31i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1969:9:1969:22 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1969:9:1969:31 | ... %= ... | | file://:0:0:0:0 | () | -| main.rs:1969:27:1969:31 | 32i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1972:13:1972:22 | i64_bitand | | {EXTERNAL LOCATION} | i64 | -| main.rs:1972:26:1972:30 | 33i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1972:26:1972:38 | ... & ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1972:34:1972:38 | 34i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1973:13:1973:21 | i64_bitor | | {EXTERNAL LOCATION} | i64 | -| main.rs:1973:25:1973:29 | 35i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1973:25:1973:37 | ... \| ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1973:33:1973:37 | 36i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1974:13:1974:22 | i64_bitxor | | {EXTERNAL LOCATION} | i64 | -| main.rs:1974:26:1974:30 | 37i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1974:26:1974:38 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1974:34:1974:38 | 38i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1975:13:1975:19 | i64_shl | | {EXTERNAL LOCATION} | i64 | -| main.rs:1975:23:1975:27 | 39i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1975:23:1975:36 | ... << ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1975:32:1975:36 | 40i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1976:13:1976:19 | i64_shr | | {EXTERNAL LOCATION} | i64 | -| main.rs:1976:23:1976:27 | 41i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1976:23:1976:36 | ... >> ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1976:32:1976:36 | 42i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1979:17:1979:33 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1979:37:1979:41 | 43i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1980:9:1980:25 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1980:9:1980:34 | ... &= ... | | file://:0:0:0:0 | () | -| main.rs:1980:30:1980:34 | 44i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1982:17:1982:32 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1982:36:1982:40 | 45i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1983:9:1983:24 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1983:9:1983:33 | ... \|= ... | | file://:0:0:0:0 | () | -| main.rs:1983:29:1983:33 | 46i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1985:17:1985:33 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1985:37:1985:41 | 47i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1986:9:1986:25 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1986:9:1986:34 | ... ^= ... | | file://:0:0:0:0 | () | -| main.rs:1986:30:1986:34 | 48i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1988:17:1988:30 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1988:34:1988:38 | 49i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1989:9:1989:22 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1989:9:1989:32 | ... <<= ... | | file://:0:0:0:0 | () | -| main.rs:1989:28:1989:32 | 50i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1991:17:1991:30 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1991:34:1991:38 | 51i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1992:9:1992:22 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1992:9:1992:32 | ... >>= ... | | file://:0:0:0:0 | () | -| main.rs:1992:28:1992:32 | 52i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1994:13:1994:19 | i64_neg | | {EXTERNAL LOCATION} | i64 | -| main.rs:1994:23:1994:28 | - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1994:24:1994:28 | 53i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1995:13:1995:19 | i64_not | | {EXTERNAL LOCATION} | i64 | -| main.rs:1995:23:1995:28 | ! ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1995:24:1995:28 | 54i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1998:13:1998:14 | v1 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1998:18:1998:36 | Vec2 {...} | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1998:28:1998:28 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1998:28:1998:28 | 1 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1998:34:1998:34 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1998:34:1998:34 | 2 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1999:13:1999:14 | v2 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1999:18:1999:36 | Vec2 {...} | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:1999:28:1999:28 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1999:28:1999:28 | 3 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1999:34:1999:34 | 4 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1999:34:1999:34 | 4 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2002:13:2002:19 | vec2_eq | | {EXTERNAL LOCATION} | bool | -| main.rs:2002:23:2002:24 | v1 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2002:23:2002:30 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2002:29:2002:30 | v2 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2003:13:2003:19 | vec2_ne | | {EXTERNAL LOCATION} | bool | -| main.rs:2003:23:2003:24 | v1 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2003:23:2003:30 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2003:29:2003:30 | v2 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2004:13:2004:19 | vec2_lt | | {EXTERNAL LOCATION} | bool | -| main.rs:2004:23:2004:24 | v1 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2004:23:2004:29 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2004:28:2004:29 | v2 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2005:13:2005:19 | vec2_le | | {EXTERNAL LOCATION} | bool | -| main.rs:2005:23:2005:24 | v1 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2005:23:2005:30 | ... <= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2005:29:2005:30 | v2 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2006:13:2006:19 | vec2_gt | | {EXTERNAL LOCATION} | bool | -| main.rs:2006:23:2006:24 | v1 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2006:23:2006:29 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2006:28:2006:29 | v2 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2007:13:2007:19 | vec2_ge | | {EXTERNAL LOCATION} | bool | -| main.rs:2007:23:2007:24 | v1 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2007:23:2007:30 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2007:29:2007:30 | v2 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2010:13:2010:20 | vec2_add | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2010:24:2010:25 | v1 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2010:24:2010:30 | ... + ... | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2010:29:2010:30 | v2 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2011:13:2011:20 | vec2_sub | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2011:24:2011:25 | v1 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2011:24:2011:30 | ... - ... | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2011:29:2011:30 | v2 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2012:13:2012:20 | vec2_mul | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2012:24:2012:25 | v1 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2012:24:2012:30 | ... * ... | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2012:29:2012:30 | v2 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2013:13:2013:20 | vec2_div | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2013:24:2013:25 | v1 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2013:24:2013:30 | ... / ... | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2013:29:2013:30 | v2 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2014:13:2014:20 | vec2_rem | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2014:24:2014:25 | v1 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2014:24:2014:30 | ... % ... | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2014:29:2014:30 | v2 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2017:17:2017:31 | vec2_add_assign | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2017:35:2017:36 | v1 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2018:9:2018:23 | vec2_add_assign | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2018:9:2018:29 | ... += ... | | file://:0:0:0:0 | () | -| main.rs:2018:28:2018:29 | v2 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2020:17:2020:31 | vec2_sub_assign | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2020:35:2020:36 | v1 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2021:9:2021:23 | vec2_sub_assign | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2021:9:2021:29 | ... -= ... | | file://:0:0:0:0 | () | -| main.rs:2021:28:2021:29 | v2 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2023:17:2023:31 | vec2_mul_assign | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2023:35:2023:36 | v1 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2024:9:2024:23 | vec2_mul_assign | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2024:9:2024:29 | ... *= ... | | file://:0:0:0:0 | () | -| main.rs:2024:28:2024:29 | v2 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2026:17:2026:31 | vec2_div_assign | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2026:35:2026:36 | v1 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2027:9:2027:23 | vec2_div_assign | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2027:9:2027:29 | ... /= ... | | file://:0:0:0:0 | () | -| main.rs:2027:28:2027:29 | v2 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2029:17:2029:31 | vec2_rem_assign | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2029:35:2029:36 | v1 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2030:9:2030:23 | vec2_rem_assign | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2030:9:2030:29 | ... %= ... | | file://:0:0:0:0 | () | -| main.rs:2030:28:2030:29 | v2 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2033:13:2033:23 | vec2_bitand | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2033:27:2033:28 | v1 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2033:27:2033:33 | ... & ... | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2033:32:2033:33 | v2 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2034:13:2034:22 | vec2_bitor | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2034:26:2034:27 | v1 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2034:26:2034:32 | ... \| ... | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2034:31:2034:32 | v2 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2035:13:2035:23 | vec2_bitxor | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2035:27:2035:28 | v1 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2035:27:2035:33 | ... ^ ... | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2035:32:2035:33 | v2 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2036:13:2036:20 | vec2_shl | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2036:24:2036:25 | v1 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2036:24:2036:33 | ... << ... | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2036:30:2036:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2037:13:2037:20 | vec2_shr | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2037:24:2037:25 | v1 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2037:24:2037:33 | ... >> ... | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2037:30:2037:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2040:17:2040:34 | vec2_bitand_assign | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2040:38:2040:39 | v1 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2041:9:2041:26 | vec2_bitand_assign | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2041:9:2041:32 | ... &= ... | | file://:0:0:0:0 | () | -| main.rs:2041:31:2041:32 | v2 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2043:17:2043:33 | vec2_bitor_assign | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2043:37:2043:38 | v1 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2044:9:2044:25 | vec2_bitor_assign | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2044:9:2044:31 | ... \|= ... | | file://:0:0:0:0 | () | -| main.rs:2044:30:2044:31 | v2 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2046:17:2046:34 | vec2_bitxor_assign | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2046:38:2046:39 | v1 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2047:9:2047:26 | vec2_bitxor_assign | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2047:9:2047:32 | ... ^= ... | | file://:0:0:0:0 | () | -| main.rs:2047:31:2047:32 | v2 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2049:17:2049:31 | vec2_shl_assign | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2049:35:2049:36 | v1 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2050:9:2050:23 | vec2_shl_assign | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2050:9:2050:32 | ... <<= ... | | file://:0:0:0:0 | () | -| main.rs:2050:29:2050:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2052:17:2052:31 | vec2_shr_assign | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2052:35:2052:36 | v1 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2053:9:2053:23 | vec2_shr_assign | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2053:9:2053:32 | ... >>= ... | | file://:0:0:0:0 | () | -| main.rs:2053:29:2053:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2056:13:2056:20 | vec2_neg | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2056:24:2056:26 | - ... | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2056:25:2056:26 | v1 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2057:13:2057:20 | vec2_not | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2057:24:2057:26 | ! ... | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2057:25:2057:26 | v1 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2060:13:2060:24 | default_vec2 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2060:28:2060:45 | ...::default(...) | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2061:13:2061:26 | vec2_zero_plus | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2061:30:2061:48 | Vec2 {...} | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2061:30:2061:63 | ... + ... | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2061:40:2061:40 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2061:40:2061:40 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2061:46:2061:46 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2061:46:2061:46 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2061:52:2061:63 | default_vec2 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2065:13:2065:24 | default_vec2 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2065:28:2065:45 | ...::default(...) | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2066:13:2066:26 | vec2_zero_plus | | {EXTERNAL LOCATION} | bool | -| main.rs:2066:30:2066:48 | Vec2 {...} | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2066:30:2066:64 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2066:40:2066:40 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2066:40:2066:40 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2066:46:2066:46 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2066:46:2066:46 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2066:53:2066:64 | default_vec2 | | main.rs:1695:5:1700:5 | Vec2 | -| main.rs:2076:18:2076:21 | SelfParam | | main.rs:2073:5:2073:14 | S1 | -| main.rs:2079:25:2081:5 | { ... } | | main.rs:2073:5:2073:14 | S1 | -| main.rs:2080:9:2080:10 | S1 | | main.rs:2073:5:2073:14 | S1 | -| main.rs:2083:41:2085:5 | { ... } | | main.rs:2083:16:2083:39 | impl ... | -| main.rs:2084:9:2084:20 | { ... } | | {EXTERNAL LOCATION} | trait Future | -| main.rs:2084:9:2084:20 | { ... } | Output | main.rs:2073:5:2073:14 | S1 | -| main.rs:2084:17:2084:18 | S1 | | main.rs:2073:5:2073:14 | S1 | -| main.rs:2093:13:2093:42 | SelfParam | | {EXTERNAL LOCATION} | Pin | -| main.rs:2093:13:2093:42 | SelfParam | Ptr | file://:0:0:0:0 | & | -| main.rs:2093:13:2093:42 | SelfParam | Ptr.&T | main.rs:2087:5:2087:14 | S2 | -| main.rs:2094:13:2094:15 | _cx | | file://:0:0:0:0 | & | -| main.rs:2094:13:2094:15 | _cx | &T | {EXTERNAL LOCATION} | Context | -| main.rs:2095:44:2097:9 | { ... } | | {EXTERNAL LOCATION} | Poll | -| main.rs:2095:44:2097:9 | { ... } | T | main.rs:2073:5:2073:14 | S1 | -| main.rs:2096:13:2096:38 | ...::Ready(...) | | {EXTERNAL LOCATION} | Poll | -| main.rs:2096:13:2096:38 | ...::Ready(...) | T | main.rs:2073:5:2073:14 | S1 | -| main.rs:2096:36:2096:37 | S1 | | main.rs:2073:5:2073:14 | S1 | -| main.rs:2100:41:2102:5 | { ... } | | main.rs:2100:16:2100:39 | impl ... | -| main.rs:2101:9:2101:10 | S2 | | main.rs:2087:5:2087:14 | S2 | -| main.rs:2101:9:2101:10 | S2 | | main.rs:2100:16:2100:39 | impl ... | -| main.rs:2105:9:2105:12 | f1(...) | | {EXTERNAL LOCATION} | trait Future | -| main.rs:2105:9:2105:12 | f1(...) | Output | main.rs:2073:5:2073:14 | S1 | -| main.rs:2105:9:2105:18 | await ... | | main.rs:2073:5:2073:14 | S1 | -| main.rs:2106:9:2106:12 | f2(...) | | main.rs:2083:16:2083:39 | impl ... | -| main.rs:2106:9:2106:18 | await ... | | main.rs:2073:5:2073:14 | S1 | -| main.rs:2107:9:2107:12 | f3(...) | | main.rs:2100:16:2100:39 | impl ... | -| main.rs:2107:9:2107:18 | await ... | | main.rs:2073:5:2073:14 | S1 | -| main.rs:2108:9:2108:10 | S2 | | main.rs:2087:5:2087:14 | S2 | -| main.rs:2108:9:2108:16 | await S2 | | main.rs:2073:5:2073:14 | S1 | -| main.rs:2109:13:2109:13 | b | | {EXTERNAL LOCATION} | trait Future | -| main.rs:2109:13:2109:13 | b | Output | main.rs:2073:5:2073:14 | S1 | -| main.rs:2109:17:2109:28 | { ... } | | {EXTERNAL LOCATION} | trait Future | -| main.rs:2109:17:2109:28 | { ... } | Output | main.rs:2073:5:2073:14 | S1 | -| main.rs:2109:25:2109:26 | S1 | | main.rs:2073:5:2073:14 | S1 | -| main.rs:2110:9:2110:9 | b | | {EXTERNAL LOCATION} | trait Future | -| main.rs:2110:9:2110:9 | b | Output | main.rs:2073:5:2073:14 | S1 | -| main.rs:2110:9:2110:15 | await b | | main.rs:2073:5:2073:14 | S1 | -| main.rs:2121:15:2121:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2121:15:2121:19 | SelfParam | &T | main.rs:2120:5:2122:5 | Self [trait Trait1] | -| main.rs:2125:15:2125:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2125:15:2125:19 | SelfParam | &T | main.rs:2124:5:2126:5 | Self [trait Trait2] | -| main.rs:2129:15:2129:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2129:15:2129:19 | SelfParam | &T | main.rs:2115:5:2116:14 | S1 | -| main.rs:2133:15:2133:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2133:15:2133:19 | SelfParam | &T | main.rs:2115:5:2116:14 | S1 | -| main.rs:2136:37:2138:5 | { ... } | | main.rs:2136:16:2136:35 | impl ... + ... | -| main.rs:2137:9:2137:10 | S1 | | main.rs:2115:5:2116:14 | S1 | -| main.rs:2137:9:2137:10 | S1 | | main.rs:2136:16:2136:35 | impl ... + ... | -| main.rs:2141:18:2141:22 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2141:18:2141:22 | SelfParam | &T | main.rs:2140:5:2142:5 | Self [trait MyTrait] | -| main.rs:2145:18:2145:22 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2145:18:2145:22 | SelfParam | &T | main.rs:2115:5:2116:14 | S1 | -| main.rs:2145:31:2147:9 | { ... } | | main.rs:2117:5:2117:14 | S2 | -| main.rs:2146:13:2146:14 | S2 | | main.rs:2117:5:2117:14 | S2 | -| main.rs:2151:18:2151:22 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2151:18:2151:22 | SelfParam | &T | main.rs:2118:5:2118:22 | S3 | -| main.rs:2151:18:2151:22 | SelfParam | &T.T3 | main.rs:2150:10:2150:17 | T | -| main.rs:2151:30:2154:9 | { ... } | | main.rs:2150:10:2150:17 | T | -| main.rs:2152:17:2152:21 | S3(...) | | file://:0:0:0:0 | & | -| main.rs:2152:17:2152:21 | S3(...) | | main.rs:2118:5:2118:22 | S3 | -| main.rs:2152:17:2152:21 | S3(...) | &T | main.rs:2118:5:2118:22 | S3 | -| main.rs:2152:17:2152:21 | S3(...) | &T.T3 | main.rs:2150:10:2150:17 | T | -| main.rs:2152:25:2152:28 | self | | file://:0:0:0:0 | & | -| main.rs:2152:25:2152:28 | self | &T | main.rs:2118:5:2118:22 | S3 | -| main.rs:2152:25:2152:28 | self | &T.T3 | main.rs:2150:10:2150:17 | T | -| main.rs:2153:13:2153:21 | t.clone() | | main.rs:2150:10:2150:17 | T | -| main.rs:2157:45:2159:5 | { ... } | | main.rs:2157:28:2157:43 | impl ... | -| main.rs:2158:9:2158:10 | S1 | | main.rs:2115:5:2116:14 | S1 | -| main.rs:2158:9:2158:10 | S1 | | main.rs:2157:28:2157:43 | impl ... | -| main.rs:2161:41:2161:41 | t | | main.rs:2161:26:2161:38 | B | -| main.rs:2161:52:2163:5 | { ... } | | main.rs:2161:23:2161:23 | A | -| main.rs:2162:9:2162:9 | t | | main.rs:2161:26:2161:38 | B | -| main.rs:2162:9:2162:17 | t.get_a() | | main.rs:2161:23:2161:23 | A | -| main.rs:2165:34:2165:34 | x | | main.rs:2165:24:2165:31 | T | -| main.rs:2165:59:2167:5 | { ... } | | main.rs:2165:43:2165:57 | impl ... | -| main.rs:2165:59:2167:5 | { ... } | impl(T) | main.rs:2165:24:2165:31 | T | -| main.rs:2166:9:2166:13 | S3(...) | | main.rs:2118:5:2118:22 | S3 | -| main.rs:2166:9:2166:13 | S3(...) | | main.rs:2165:43:2165:57 | impl ... | -| main.rs:2166:9:2166:13 | S3(...) | T3 | main.rs:2165:24:2165:31 | T | -| main.rs:2166:9:2166:13 | S3(...) | impl(T) | main.rs:2165:24:2165:31 | T | -| main.rs:2166:12:2166:12 | x | | main.rs:2165:24:2165:31 | T | -| main.rs:2169:34:2169:34 | x | | main.rs:2169:24:2169:31 | T | -| main.rs:2169:67:2171:5 | { ... } | | {EXTERNAL LOCATION} | Option | -| main.rs:2169:67:2171:5 | { ... } | T | main.rs:2169:50:2169:64 | impl ... | -| main.rs:2169:67:2171:5 | { ... } | T.impl(T) | main.rs:2169:24:2169:31 | T | -| main.rs:2170:9:2170:19 | Some(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2170:9:2170:19 | Some(...) | T | main.rs:2118:5:2118:22 | S3 | -| main.rs:2170:9:2170:19 | Some(...) | T | main.rs:2169:50:2169:64 | impl ... | -| main.rs:2170:9:2170:19 | Some(...) | T.T3 | main.rs:2169:24:2169:31 | T | -| main.rs:2170:9:2170:19 | Some(...) | T.impl(T) | main.rs:2169:24:2169:31 | T | -| main.rs:2170:14:2170:18 | S3(...) | | main.rs:2118:5:2118:22 | S3 | -| main.rs:2170:14:2170:18 | S3(...) | | main.rs:2169:50:2169:64 | impl ... | -| main.rs:2170:14:2170:18 | S3(...) | T3 | main.rs:2169:24:2169:31 | T | -| main.rs:2170:14:2170:18 | S3(...) | impl(T) | main.rs:2169:24:2169:31 | T | -| main.rs:2170:17:2170:17 | x | | main.rs:2169:24:2169:31 | T | -| main.rs:2173:34:2173:34 | x | | main.rs:2173:24:2173:31 | T | -| main.rs:2173:78:2175:5 | { ... } | | file://:0:0:0:0 | (T_2) | -| main.rs:2173:78:2175:5 | { ... } | 0(2) | main.rs:2173:44:2173:58 | impl ... | -| main.rs:2173:78:2175:5 | { ... } | 0(2).impl(T) | main.rs:2173:24:2173:31 | T | -| main.rs:2173:78:2175:5 | { ... } | 1(2) | main.rs:2173:61:2173:75 | impl ... | -| main.rs:2173:78:2175:5 | { ... } | 1(2).impl(T) | main.rs:2173:24:2173:31 | T | -| main.rs:2174:9:2174:30 | TupleExpr | | file://:0:0:0:0 | (T_2) | -| main.rs:2174:9:2174:30 | TupleExpr | 0(2) | main.rs:2118:5:2118:22 | S3 | -| main.rs:2174:9:2174:30 | TupleExpr | 0(2) | main.rs:2173:44:2173:58 | impl ... | -| main.rs:2174:9:2174:30 | TupleExpr | 0(2).T3 | main.rs:2173:24:2173:31 | T | -| main.rs:2174:9:2174:30 | TupleExpr | 0(2).impl(T) | main.rs:2173:24:2173:31 | T | -| main.rs:2174:9:2174:30 | TupleExpr | 1(2) | main.rs:2118:5:2118:22 | S3 | -| main.rs:2174:9:2174:30 | TupleExpr | 1(2) | main.rs:2173:61:2173:75 | impl ... | -| main.rs:2174:9:2174:30 | TupleExpr | 1(2).T3 | main.rs:2173:24:2173:31 | T | -| main.rs:2174:9:2174:30 | TupleExpr | 1(2).impl(T) | main.rs:2173:24:2173:31 | T | -| main.rs:2174:10:2174:22 | S3(...) | | main.rs:2118:5:2118:22 | S3 | -| main.rs:2174:10:2174:22 | S3(...) | | main.rs:2173:44:2173:58 | impl ... | -| main.rs:2174:10:2174:22 | S3(...) | T3 | main.rs:2173:24:2173:31 | T | -| main.rs:2174:10:2174:22 | S3(...) | impl(T) | main.rs:2173:24:2173:31 | T | -| main.rs:2174:13:2174:13 | x | | main.rs:2173:24:2173:31 | T | -| main.rs:2174:13:2174:21 | x.clone() | | main.rs:2173:24:2173:31 | T | -| main.rs:2174:25:2174:29 | S3(...) | | main.rs:2118:5:2118:22 | S3 | -| main.rs:2174:25:2174:29 | S3(...) | | main.rs:2173:61:2173:75 | impl ... | -| main.rs:2174:25:2174:29 | S3(...) | T3 | main.rs:2173:24:2173:31 | T | -| main.rs:2174:25:2174:29 | S3(...) | impl(T) | main.rs:2173:24:2173:31 | T | -| main.rs:2174:28:2174:28 | x | | main.rs:2173:24:2173:31 | T | -| main.rs:2177:26:2177:26 | t | | main.rs:2177:29:2177:43 | impl ... | -| main.rs:2177:51:2179:5 | { ... } | | main.rs:2177:23:2177:23 | A | -| main.rs:2178:9:2178:9 | t | | main.rs:2177:29:2177:43 | impl ... | -| main.rs:2178:9:2178:17 | t.get_a() | | main.rs:2177:23:2177:23 | A | -| main.rs:2182:13:2182:13 | x | | main.rs:2136:16:2136:35 | impl ... + ... | -| main.rs:2182:17:2182:20 | f1(...) | | main.rs:2136:16:2136:35 | impl ... + ... | -| main.rs:2183:9:2183:9 | x | | main.rs:2136:16:2136:35 | impl ... + ... | -| main.rs:2184:9:2184:9 | x | | main.rs:2136:16:2136:35 | impl ... + ... | -| main.rs:2185:13:2185:13 | a | | main.rs:2157:28:2157:43 | impl ... | -| main.rs:2185:17:2185:32 | get_a_my_trait(...) | | main.rs:2157:28:2157:43 | impl ... | -| main.rs:2186:13:2186:13 | b | | main.rs:2117:5:2117:14 | S2 | -| main.rs:2186:17:2186:33 | uses_my_trait1(...) | | main.rs:2117:5:2117:14 | S2 | -| main.rs:2186:32:2186:32 | a | | main.rs:2157:28:2157:43 | impl ... | -| main.rs:2187:13:2187:13 | a | | main.rs:2157:28:2157:43 | impl ... | -| main.rs:2187:17:2187:32 | get_a_my_trait(...) | | main.rs:2157:28:2157:43 | impl ... | -| main.rs:2188:13:2188:13 | c | | main.rs:2117:5:2117:14 | S2 | -| main.rs:2188:17:2188:33 | uses_my_trait2(...) | | main.rs:2117:5:2117:14 | S2 | -| main.rs:2188:32:2188:32 | a | | main.rs:2157:28:2157:43 | impl ... | -| main.rs:2189:13:2189:13 | d | | main.rs:2117:5:2117:14 | S2 | -| main.rs:2189:17:2189:34 | uses_my_trait2(...) | | main.rs:2117:5:2117:14 | S2 | -| main.rs:2189:32:2189:33 | S1 | | main.rs:2115:5:2116:14 | S1 | -| main.rs:2190:13:2190:13 | e | | main.rs:2115:5:2116:14 | S1 | -| main.rs:2190:17:2190:35 | get_a_my_trait2(...) | | main.rs:2165:43:2165:57 | impl ... | -| main.rs:2190:17:2190:35 | get_a_my_trait2(...) | impl(T) | main.rs:2115:5:2116:14 | S1 | -| main.rs:2190:17:2190:43 | ... .get_a() | | main.rs:2115:5:2116:14 | S1 | -| main.rs:2190:33:2190:34 | S1 | | main.rs:2115:5:2116:14 | S1 | -| main.rs:2193:13:2193:13 | f | | main.rs:2115:5:2116:14 | S1 | -| main.rs:2193:17:2193:35 | get_a_my_trait3(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2193:17:2193:35 | get_a_my_trait3(...) | T | main.rs:2169:50:2169:64 | impl ... | -| main.rs:2193:17:2193:35 | get_a_my_trait3(...) | T.impl(T) | main.rs:2115:5:2116:14 | S1 | -| main.rs:2193:17:2193:44 | ... .unwrap() | | main.rs:2169:50:2169:64 | impl ... | -| main.rs:2193:17:2193:44 | ... .unwrap() | impl(T) | main.rs:2115:5:2116:14 | S1 | -| main.rs:2193:17:2193:52 | ... .get_a() | | main.rs:2115:5:2116:14 | S1 | -| main.rs:2193:33:2193:34 | S1 | | main.rs:2115:5:2116:14 | S1 | -| main.rs:2194:13:2194:13 | g | | main.rs:2115:5:2116:14 | S1 | -| main.rs:2194:17:2194:35 | get_a_my_trait4(...) | | file://:0:0:0:0 | (T_2) | -| main.rs:2194:17:2194:35 | get_a_my_trait4(...) | 0(2) | main.rs:2173:44:2173:58 | impl ... | -| main.rs:2194:17:2194:35 | get_a_my_trait4(...) | 0(2).impl(T) | main.rs:2115:5:2116:14 | S1 | -| main.rs:2194:17:2194:35 | get_a_my_trait4(...) | 1(2) | main.rs:2173:61:2173:75 | impl ... | -| main.rs:2194:17:2194:35 | get_a_my_trait4(...) | 1(2).impl(T) | main.rs:2115:5:2116:14 | S1 | -| main.rs:2194:17:2194:37 | ... .0 | | main.rs:2173:44:2173:58 | impl ... | -| main.rs:2194:17:2194:37 | ... .0 | impl(T) | main.rs:2115:5:2116:14 | S1 | -| main.rs:2194:17:2194:45 | ... .get_a() | | main.rs:2115:5:2116:14 | S1 | -| main.rs:2194:33:2194:34 | S1 | | main.rs:2115:5:2116:14 | S1 | -| main.rs:2205:16:2205:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2205:16:2205:20 | SelfParam | &T | main.rs:2201:5:2202:13 | S | -| main.rs:2205:31:2207:9 | { ... } | | main.rs:2201:5:2202:13 | S | -| main.rs:2206:13:2206:13 | S | | main.rs:2201:5:2202:13 | S | -| main.rs:2216:26:2218:9 | { ... } | | main.rs:2210:5:2213:5 | MyVec | -| main.rs:2216:26:2218:9 | { ... } | T | main.rs:2215:10:2215:10 | T | -| main.rs:2217:13:2217:38 | MyVec {...} | | main.rs:2210:5:2213:5 | MyVec | -| main.rs:2217:13:2217:38 | MyVec {...} | T | main.rs:2215:10:2215:10 | T | -| main.rs:2217:27:2217:36 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2217:27:2217:36 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2217:27:2217:36 | ...::new(...) | T | main.rs:2215:10:2215:10 | T | -| main.rs:2220:17:2220:25 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2220:17:2220:25 | SelfParam | &T | main.rs:2210:5:2213:5 | MyVec | -| main.rs:2220:17:2220:25 | SelfParam | &T.T | main.rs:2215:10:2215:10 | T | -| main.rs:2220:28:2220:32 | value | | main.rs:2215:10:2215:10 | T | -| main.rs:2221:13:2221:16 | self | | file://:0:0:0:0 | & | -| main.rs:2221:13:2221:16 | self | &T | main.rs:2210:5:2213:5 | MyVec | -| main.rs:2221:13:2221:16 | self | &T.T | main.rs:2215:10:2215:10 | T | -| main.rs:2221:13:2221:21 | self.data | | {EXTERNAL LOCATION} | Vec | -| main.rs:2221:13:2221:21 | self.data | A | {EXTERNAL LOCATION} | Global | -| main.rs:2221:13:2221:21 | self.data | T | main.rs:2215:10:2215:10 | T | -| main.rs:2221:28:2221:32 | value | | main.rs:2215:10:2215:10 | T | -| main.rs:2229:18:2229:22 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2229:18:2229:22 | SelfParam | &T | main.rs:2210:5:2213:5 | MyVec | -| main.rs:2229:18:2229:22 | SelfParam | &T.T | main.rs:2225:10:2225:10 | T | -| main.rs:2229:25:2229:29 | index | | {EXTERNAL LOCATION} | usize | -| main.rs:2229:56:2231:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:2229:56:2231:9 | { ... } | &T | main.rs:2225:10:2225:10 | T | -| main.rs:2230:13:2230:29 | &... | | file://:0:0:0:0 | & | -| main.rs:2230:13:2230:29 | &... | &T | main.rs:2225:10:2225:10 | T | -| main.rs:2230:14:2230:17 | self | | file://:0:0:0:0 | & | -| main.rs:2230:14:2230:17 | self | &T | main.rs:2210:5:2213:5 | MyVec | -| main.rs:2230:14:2230:17 | self | &T.T | main.rs:2225:10:2225:10 | T | -| main.rs:2230:14:2230:22 | self.data | | {EXTERNAL LOCATION} | Vec | -| main.rs:2230:14:2230:22 | self.data | A | {EXTERNAL LOCATION} | Global | -| main.rs:2230:14:2230:22 | self.data | T | main.rs:2225:10:2225:10 | T | -| main.rs:2230:14:2230:29 | ...[index] | | main.rs:2225:10:2225:10 | T | -| main.rs:2230:24:2230:28 | index | | {EXTERNAL LOCATION} | usize | -| main.rs:2234:22:2234:26 | slice | | file://:0:0:0:0 | & | -| main.rs:2234:22:2234:26 | slice | &T | file://:0:0:0:0 | [] | -| main.rs:2234:22:2234:26 | slice | &T.[T] | main.rs:2201:5:2202:13 | S | -| main.rs:2235:13:2235:13 | x | | main.rs:2201:5:2202:13 | S | -| main.rs:2235:17:2235:21 | slice | | file://:0:0:0:0 | & | -| main.rs:2235:17:2235:21 | slice | &T | file://:0:0:0:0 | [] | -| main.rs:2235:17:2235:21 | slice | &T.[T] | main.rs:2201:5:2202:13 | S | -| main.rs:2235:17:2235:24 | slice[0] | | main.rs:2201:5:2202:13 | S | -| main.rs:2235:17:2235:30 | ... .foo() | | main.rs:2201:5:2202:13 | S | -| main.rs:2235:23:2235:23 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2238:37:2238:37 | a | | main.rs:2238:20:2238:34 | T | -| main.rs:2238:43:2238:43 | b | | {EXTERNAL LOCATION} | usize | -| main.rs:2241:5:2243:5 | { ... } | | {EXTERNAL LOCATION} | Output | -| main.rs:2242:9:2242:9 | a | | main.rs:2238:20:2238:34 | T | -| main.rs:2242:9:2242:12 | a[b] | | {EXTERNAL LOCATION} | Output | -| main.rs:2242:11:2242:11 | b | | {EXTERNAL LOCATION} | usize | -| main.rs:2246:17:2246:19 | vec | | main.rs:2210:5:2213:5 | MyVec | -| main.rs:2246:17:2246:19 | vec | T | main.rs:2201:5:2202:13 | S | -| main.rs:2246:23:2246:34 | ...::new(...) | | main.rs:2210:5:2213:5 | MyVec | -| main.rs:2246:23:2246:34 | ...::new(...) | T | main.rs:2201:5:2202:13 | S | -| main.rs:2247:9:2247:11 | vec | | main.rs:2210:5:2213:5 | MyVec | -| main.rs:2247:9:2247:11 | vec | T | main.rs:2201:5:2202:13 | S | -| main.rs:2247:18:2247:18 | S | | main.rs:2201:5:2202:13 | S | -| main.rs:2248:9:2248:11 | vec | | main.rs:2210:5:2213:5 | MyVec | -| main.rs:2248:9:2248:11 | vec | T | main.rs:2201:5:2202:13 | S | -| main.rs:2248:9:2248:14 | vec[0] | | main.rs:2201:5:2202:13 | S | -| main.rs:2248:9:2248:20 | ... .foo() | | main.rs:2201:5:2202:13 | S | -| main.rs:2248:13:2248:13 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2248:13:2248:13 | 0 | | {EXTERNAL LOCATION} | usize | -| main.rs:2250:13:2250:14 | xs | | file://:0:0:0:0 | [] | -| main.rs:2250:13:2250:14 | xs | [T;...] | main.rs:2201:5:2202:13 | S | -| main.rs:2250:21:2250:21 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2250:26:2250:28 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2250:26:2250:28 | [...] | [T;...] | main.rs:2201:5:2202:13 | S | -| main.rs:2250:27:2250:27 | S | | main.rs:2201:5:2202:13 | S | -| main.rs:2251:13:2251:13 | x | | main.rs:2201:5:2202:13 | S | -| main.rs:2251:17:2251:18 | xs | | file://:0:0:0:0 | [] | -| main.rs:2251:17:2251:18 | xs | [T;...] | main.rs:2201:5:2202:13 | S | -| main.rs:2251:17:2251:21 | xs[0] | | main.rs:2201:5:2202:13 | S | -| main.rs:2251:17:2251:27 | ... .foo() | | main.rs:2201:5:2202:13 | S | -| main.rs:2251:20:2251:20 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2253:29:2253:31 | vec | | main.rs:2210:5:2213:5 | MyVec | -| main.rs:2253:29:2253:31 | vec | T | main.rs:2201:5:2202:13 | S | -| main.rs:2253:34:2253:34 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2253:34:2253:34 | 0 | | {EXTERNAL LOCATION} | usize | -| main.rs:2255:23:2255:25 | &xs | | file://:0:0:0:0 | & | -| main.rs:2255:23:2255:25 | &xs | &T | file://:0:0:0:0 | [] | -| main.rs:2255:23:2255:25 | &xs | &T | file://:0:0:0:0 | [] | -| main.rs:2255:23:2255:25 | &xs | &T.[T;...] | main.rs:2201:5:2202:13 | S | -| main.rs:2255:23:2255:25 | &xs | &T.[T] | main.rs:2201:5:2202:13 | S | -| main.rs:2255:24:2255:25 | xs | | file://:0:0:0:0 | [] | -| main.rs:2255:24:2255:25 | xs | [T;...] | main.rs:2201:5:2202:13 | S | -| main.rs:2261:13:2261:13 | x | | {EXTERNAL LOCATION} | String | -| main.rs:2261:17:2261:46 | MacroExpr | | {EXTERNAL LOCATION} | String | -| main.rs:2261:25:2261:35 | "Hello, {}" | | file://:0:0:0:0 | & | -| main.rs:2261:25:2261:35 | "Hello, {}" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2261:25:2261:45 | ...::format(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2261:25:2261:45 | ...::must_use(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2261:25:2261:45 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2261:25:2261:45 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2261:25:2261:45 | { ... } | | {EXTERNAL LOCATION} | String | -| main.rs:2261:38:2261:45 | "World!" | | file://:0:0:0:0 | & | -| main.rs:2261:38:2261:45 | "World!" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2270:19:2270:22 | SelfParam | | main.rs:2266:5:2271:5 | Self [trait MyAdd] | -| main.rs:2270:25:2270:27 | rhs | | main.rs:2266:17:2266:26 | Rhs | -| main.rs:2277:19:2277:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | -| main.rs:2277:25:2277:29 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2277:45:2279:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2278:13:2278:17 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2286:19:2286:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | -| main.rs:2286:25:2286:29 | value | | file://:0:0:0:0 | & | -| main.rs:2286:25:2286:29 | value | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:2286:46:2288:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2287:13:2287:18 | * ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2287:14:2287:18 | value | | file://:0:0:0:0 | & | -| main.rs:2287:14:2287:18 | value | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:2295:19:2295:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | -| main.rs:2295:25:2295:29 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2295:46:2301:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2296:13:2300:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | -| main.rs:2296:13:2300:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | -| main.rs:2296:16:2296:20 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2296:22:2298:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2296:22:2298:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2297:17:2297:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2297:17:2297:17 | 1 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2298:20:2300:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2298:20:2300:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2299:17:2299:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2299:17:2299:17 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2310:19:2310:22 | SelfParam | | main.rs:2304:5:2304:19 | S | -| main.rs:2310:19:2310:22 | SelfParam | T | main.rs:2306:10:2306:17 | T | -| main.rs:2310:25:2310:29 | other | | main.rs:2304:5:2304:19 | S | -| main.rs:2310:25:2310:29 | other | T | main.rs:2306:10:2306:17 | T | -| main.rs:2310:54:2312:9 | { ... } | | main.rs:2304:5:2304:19 | S | -| main.rs:2310:54:2312:9 | { ... } | T | main.rs:2267:9:2267:20 | Output | -| main.rs:2311:13:2311:39 | S(...) | | main.rs:2304:5:2304:19 | S | -| main.rs:2311:13:2311:39 | S(...) | T | main.rs:2267:9:2267:20 | Output | -| main.rs:2311:15:2311:22 | (...) | | main.rs:2306:10:2306:17 | T | -| main.rs:2311:15:2311:38 | ... .my_add(...) | | main.rs:2267:9:2267:20 | Output | -| main.rs:2311:16:2311:19 | self | | main.rs:2304:5:2304:19 | S | -| main.rs:2311:16:2311:19 | self | T | main.rs:2306:10:2306:17 | T | -| main.rs:2311:16:2311:21 | self.0 | | main.rs:2306:10:2306:17 | T | -| main.rs:2311:31:2311:35 | other | | main.rs:2304:5:2304:19 | S | -| main.rs:2311:31:2311:35 | other | T | main.rs:2306:10:2306:17 | T | -| main.rs:2311:31:2311:37 | other.0 | | main.rs:2306:10:2306:17 | T | -| main.rs:2319:19:2319:22 | SelfParam | | main.rs:2304:5:2304:19 | S | -| main.rs:2319:19:2319:22 | SelfParam | T | main.rs:2315:10:2315:17 | T | -| main.rs:2319:25:2319:29 | other | | main.rs:2315:10:2315:17 | T | -| main.rs:2319:51:2321:9 | { ... } | | main.rs:2304:5:2304:19 | S | -| main.rs:2319:51:2321:9 | { ... } | T | main.rs:2267:9:2267:20 | Output | -| main.rs:2320:13:2320:37 | S(...) | | main.rs:2304:5:2304:19 | S | -| main.rs:2320:13:2320:37 | S(...) | T | main.rs:2267:9:2267:20 | Output | -| main.rs:2320:15:2320:22 | (...) | | main.rs:2315:10:2315:17 | T | -| main.rs:2320:15:2320:36 | ... .my_add(...) | | main.rs:2267:9:2267:20 | Output | -| main.rs:2320:16:2320:19 | self | | main.rs:2304:5:2304:19 | S | -| main.rs:2320:16:2320:19 | self | T | main.rs:2315:10:2315:17 | T | -| main.rs:2320:16:2320:21 | self.0 | | main.rs:2315:10:2315:17 | T | -| main.rs:2320:31:2320:35 | other | | main.rs:2315:10:2315:17 | T | -| main.rs:2331:19:2331:22 | SelfParam | | main.rs:2304:5:2304:19 | S | -| main.rs:2331:19:2331:22 | SelfParam | T | main.rs:2324:14:2324:14 | T | -| main.rs:2331:25:2331:29 | other | | file://:0:0:0:0 | & | -| main.rs:2331:25:2331:29 | other | &T | main.rs:2324:14:2324:14 | T | -| main.rs:2331:55:2333:9 | { ... } | | main.rs:2304:5:2304:19 | S | -| main.rs:2332:13:2332:37 | S(...) | | main.rs:2304:5:2304:19 | S | -| main.rs:2332:15:2332:22 | (...) | | main.rs:2324:14:2324:14 | T | -| main.rs:2332:16:2332:19 | self | | main.rs:2304:5:2304:19 | S | -| main.rs:2332:16:2332:19 | self | T | main.rs:2324:14:2324:14 | T | -| main.rs:2332:16:2332:21 | self.0 | | main.rs:2324:14:2324:14 | T | -| main.rs:2332:31:2332:35 | other | | file://:0:0:0:0 | & | -| main.rs:2332:31:2332:35 | other | &T | main.rs:2324:14:2324:14 | T | -| main.rs:2338:20:2338:24 | value | | main.rs:2336:18:2336:18 | T | -| main.rs:2343:20:2343:24 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2343:40:2345:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2344:13:2344:17 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2350:20:2350:24 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2350:41:2356:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2351:13:2355:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | -| main.rs:2351:13:2355:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | -| main.rs:2351:16:2351:20 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2351:22:2353:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2351:22:2353:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2352:17:2352:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2352:17:2352:17 | 1 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2353:20:2355:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2353:20:2355:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2354:17:2354:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2354:17:2354:17 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2361:21:2361:25 | value | | main.rs:2359:19:2359:19 | T | -| main.rs:2361:31:2361:31 | x | | main.rs:2359:5:2362:5 | Self [trait MyFrom2] | -| main.rs:2366:21:2366:25 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2366:33:2366:33 | _ | | {EXTERNAL LOCATION} | i64 | -| main.rs:2366:48:2368:9 | { ... } | | file://:0:0:0:0 | () | -| main.rs:2367:13:2367:17 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2373:21:2373:25 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2373:34:2373:34 | _ | | {EXTERNAL LOCATION} | i64 | -| main.rs:2373:49:2379:9 | { ... } | | file://:0:0:0:0 | () | -| main.rs:2374:13:2378:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | -| main.rs:2374:16:2374:20 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2374:22:2376:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2375:17:2375:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2376:20:2378:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2377:17:2377:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2384:15:2384:15 | x | | main.rs:2382:5:2388:5 | Self [trait MySelfTrait] | -| main.rs:2387:15:2387:15 | x | | main.rs:2382:5:2388:5 | Self [trait MySelfTrait] | -| main.rs:2392:15:2392:15 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2392:31:2394:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2393:13:2393:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2393:13:2393:17 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2393:17:2393:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2397:15:2397:15 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2397:32:2399:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2398:13:2398:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2398:13:2398:17 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2398:17:2398:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2404:15:2404:15 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:2404:31:2406:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2405:13:2405:13 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2405:13:2405:13 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2409:15:2409:15 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:2409:32:2411:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2410:13:2410:13 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:2415:13:2415:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2415:22:2415:23 | 73 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2415:22:2415:23 | 73 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2416:9:2416:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2416:9:2416:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2416:18:2416:21 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2417:9:2417:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2417:9:2417:23 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2417:18:2417:22 | &5i64 | | file://:0:0:0:0 | & | -| main.rs:2417:18:2417:22 | &5i64 | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:2417:19:2417:22 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2418:9:2418:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2418:9:2418:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2418:18:2418:21 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2420:9:2420:15 | S(...) | | main.rs:2304:5:2304:19 | S | -| main.rs:2420:9:2420:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | -| main.rs:2420:9:2420:31 | ... .my_add(...) | | main.rs:2304:5:2304:19 | S | -| main.rs:2420:11:2420:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2420:24:2420:30 | S(...) | | main.rs:2304:5:2304:19 | S | -| main.rs:2420:24:2420:30 | S(...) | T | {EXTERNAL LOCATION} | i64 | -| main.rs:2420:26:2420:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2421:9:2421:15 | S(...) | | main.rs:2304:5:2304:19 | S | -| main.rs:2421:9:2421:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | -| main.rs:2421:11:2421:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2421:24:2421:27 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2422:9:2422:15 | S(...) | | main.rs:2304:5:2304:19 | S | -| main.rs:2422:9:2422:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | -| main.rs:2422:9:2422:29 | ... .my_add(...) | | main.rs:2304:5:2304:19 | S | -| main.rs:2422:11:2422:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2422:24:2422:28 | &3i64 | | file://:0:0:0:0 | & | -| main.rs:2422:24:2422:28 | &3i64 | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:2422:25:2422:28 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2424:13:2424:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2424:17:2424:35 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2424:30:2424:34 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2425:13:2425:13 | y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2425:17:2425:34 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2425:30:2425:33 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2426:13:2426:13 | z | | {EXTERNAL LOCATION} | i64 | -| main.rs:2426:22:2426:43 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2426:38:2426:42 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2427:9:2427:34 | ...::my_from2(...) | | file://:0:0:0:0 | () | -| main.rs:2427:23:2427:27 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2427:30:2427:33 | 0i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2428:9:2428:33 | ...::my_from2(...) | | file://:0:0:0:0 | () | -| main.rs:2428:23:2428:26 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2428:29:2428:32 | 0i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2429:9:2429:38 | ...::my_from2(...) | | file://:0:0:0:0 | () | -| main.rs:2429:27:2429:31 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2429:34:2429:37 | 0i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2431:9:2431:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2431:17:2431:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2432:9:2432:22 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2432:17:2432:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2433:9:2433:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2433:18:2433:21 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2434:9:2434:22 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2434:18:2434:21 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2435:9:2435:30 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2435:25:2435:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2436:9:2436:30 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2436:25:2436:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2437:9:2437:29 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2437:25:2437:28 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2438:9:2438:29 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2438:25:2438:28 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2446:26:2448:9 | { ... } | | main.rs:2443:5:2443:24 | MyCallable | -| main.rs:2447:13:2447:25 | MyCallable {...} | | main.rs:2443:5:2443:24 | MyCallable | -| main.rs:2450:17:2450:21 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2450:17:2450:21 | SelfParam | &T | main.rs:2443:5:2443:24 | MyCallable | -| main.rs:2450:31:2452:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2451:13:2451:13 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2451:13:2451:13 | 1 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2458:13:2458:13 | i | | {EXTERNAL LOCATION} | i32 | -| main.rs:2458:18:2458:26 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2458:18:2458:26 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2458:19:2458:19 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2458:22:2458:22 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2458:25:2458:25 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2459:18:2459:26 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2459:18:2459:26 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2459:18:2459:41 | ... .map(...) | | file://:0:0:0:0 | [] | -| main.rs:2459:19:2459:19 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2459:22:2459:22 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2459:25:2459:25 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2459:32:2459:40 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | -| main.rs:2459:32:2459:40 | \|...\| ... | dyn(Args) | file://:0:0:0:0 | (T_1) | -| main.rs:2459:40:2459:40 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2460:13:2460:13 | i | | {EXTERNAL LOCATION} | Item | -| main.rs:2460:13:2460:13 | i | | {EXTERNAL LOCATION} | i32 | -| main.rs:2460:18:2460:26 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2460:18:2460:26 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2460:18:2460:38 | ... .into_iter() | | {EXTERNAL LOCATION} | IntoIter | -| main.rs:2460:18:2460:38 | ... .into_iter() | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2460:19:2460:19 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2460:22:2460:22 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2460:25:2460:25 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2462:13:2462:17 | vals1 | | file://:0:0:0:0 | [] | -| main.rs:2462:13:2462:17 | vals1 | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2462:13:2462:17 | vals1 | [T;...] | {EXTERNAL LOCATION} | u8 | -| main.rs:2462:21:2462:31 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2462:21:2462:31 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2462:21:2462:31 | [...] | [T;...] | {EXTERNAL LOCATION} | u8 | -| main.rs:2462:22:2462:24 | 1u8 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2462:27:2462:27 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2462:27:2462:27 | 2 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2462:30:2462:30 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2462:30:2462:30 | 3 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2463:13:2463:13 | u | | {EXTERNAL LOCATION} | i32 | -| main.rs:2463:13:2463:13 | u | | {EXTERNAL LOCATION} | u8 | -| main.rs:2463:18:2463:22 | vals1 | | file://:0:0:0:0 | [] | -| main.rs:2463:18:2463:22 | vals1 | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2463:18:2463:22 | vals1 | [T;...] | {EXTERNAL LOCATION} | u8 | -| main.rs:2465:13:2465:17 | vals2 | | file://:0:0:0:0 | [] | -| main.rs:2465:13:2465:17 | vals2 | [T;...] | {EXTERNAL LOCATION} | u16 | -| main.rs:2465:21:2465:29 | [1u16; 3] | | file://:0:0:0:0 | [] | -| main.rs:2465:21:2465:29 | [1u16; 3] | [T;...] | {EXTERNAL LOCATION} | u16 | -| main.rs:2465:22:2465:25 | 1u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2465:28:2465:28 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2466:13:2466:13 | u | | {EXTERNAL LOCATION} | u16 | -| main.rs:2466:18:2466:22 | vals2 | | file://:0:0:0:0 | [] | -| main.rs:2466:18:2466:22 | vals2 | [T;...] | {EXTERNAL LOCATION} | u16 | -| main.rs:2468:13:2468:17 | vals3 | | file://:0:0:0:0 | [] | -| main.rs:2468:13:2468:17 | vals3 | [T;...] | {EXTERNAL LOCATION} | u32 | -| main.rs:2468:26:2468:26 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2468:31:2468:39 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2468:31:2468:39 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2468:31:2468:39 | [...] | [T;...] | {EXTERNAL LOCATION} | u32 | -| main.rs:2468:32:2468:32 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2468:32:2468:32 | 1 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2468:35:2468:35 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2468:35:2468:35 | 2 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2468:38:2468:38 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2468:38:2468:38 | 3 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2469:13:2469:13 | u | | {EXTERNAL LOCATION} | u32 | -| main.rs:2469:18:2469:22 | vals3 | | file://:0:0:0:0 | [] | -| main.rs:2469:18:2469:22 | vals3 | [T;...] | {EXTERNAL LOCATION} | u32 | -| main.rs:2471:13:2471:17 | vals4 | | file://:0:0:0:0 | [] | -| main.rs:2471:13:2471:17 | vals4 | [T;...] | {EXTERNAL LOCATION} | u64 | -| main.rs:2471:26:2471:26 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2471:31:2471:36 | [1; 3] | | file://:0:0:0:0 | [] | -| main.rs:2471:31:2471:36 | [1; 3] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2471:31:2471:36 | [1; 3] | [T;...] | {EXTERNAL LOCATION} | u64 | -| main.rs:2471:32:2471:32 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2471:32:2471:32 | 1 | | {EXTERNAL LOCATION} | u64 | -| main.rs:2471:35:2471:35 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2472:13:2472:13 | u | | {EXTERNAL LOCATION} | u64 | -| main.rs:2472:18:2472:22 | vals4 | | file://:0:0:0:0 | [] | -| main.rs:2472:18:2472:22 | vals4 | [T;...] | {EXTERNAL LOCATION} | u64 | -| main.rs:2474:17:2474:24 | strings1 | | file://:0:0:0:0 | [] | -| main.rs:2474:17:2474:24 | strings1 | [T;...] | file://:0:0:0:0 | & | -| main.rs:2474:17:2474:24 | strings1 | [T;...].&T | {EXTERNAL LOCATION} | str | -| main.rs:2474:28:2474:48 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2474:28:2474:48 | [...] | [T;...] | file://:0:0:0:0 | & | -| main.rs:2474:28:2474:48 | [...] | [T;...].&T | {EXTERNAL LOCATION} | str | -| main.rs:2474:29:2474:33 | "foo" | | file://:0:0:0:0 | & | -| main.rs:2474:29:2474:33 | "foo" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2474:36:2474:40 | "bar" | | file://:0:0:0:0 | & | -| main.rs:2474:36:2474:40 | "bar" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2474:43:2474:47 | "baz" | | file://:0:0:0:0 | & | -| main.rs:2474:43:2474:47 | "baz" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2475:13:2475:13 | s | | {EXTERNAL LOCATION} | Item | -| main.rs:2475:13:2475:13 | s | | file://:0:0:0:0 | & | -| main.rs:2475:13:2475:13 | s | &T | file://:0:0:0:0 | & | -| main.rs:2475:13:2475:13 | s | &T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2475:18:2475:26 | &strings1 | | file://:0:0:0:0 | & | -| main.rs:2475:18:2475:26 | &strings1 | &T | file://:0:0:0:0 | [] | -| main.rs:2475:18:2475:26 | &strings1 | &T.[T;...] | file://:0:0:0:0 | & | -| main.rs:2475:18:2475:26 | &strings1 | &T.[T;...].&T | {EXTERNAL LOCATION} | str | -| main.rs:2475:19:2475:26 | strings1 | | file://:0:0:0:0 | [] | -| main.rs:2475:19:2475:26 | strings1 | [T;...] | file://:0:0:0:0 | & | -| main.rs:2475:19:2475:26 | strings1 | [T;...].&T | {EXTERNAL LOCATION} | str | -| main.rs:2476:13:2476:13 | s | | {EXTERNAL LOCATION} | Item | -| main.rs:2476:13:2476:13 | s | | file://:0:0:0:0 | & | -| main.rs:2476:13:2476:13 | s | &T | file://:0:0:0:0 | & | -| main.rs:2476:13:2476:13 | s | &T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2476:18:2476:30 | &mut strings1 | | file://:0:0:0:0 | & | -| main.rs:2476:18:2476:30 | &mut strings1 | &T | file://:0:0:0:0 | [] | -| main.rs:2476:18:2476:30 | &mut strings1 | &T.[T;...] | file://:0:0:0:0 | & | -| main.rs:2476:18:2476:30 | &mut strings1 | &T.[T;...].&T | {EXTERNAL LOCATION} | str | -| main.rs:2476:23:2476:30 | strings1 | | file://:0:0:0:0 | [] | -| main.rs:2476:23:2476:30 | strings1 | [T;...] | file://:0:0:0:0 | & | -| main.rs:2476:23:2476:30 | strings1 | [T;...].&T | {EXTERNAL LOCATION} | str | -| main.rs:2477:13:2477:13 | s | | file://:0:0:0:0 | & | -| main.rs:2477:13:2477:13 | s | &T | {EXTERNAL LOCATION} | str | -| main.rs:2477:18:2477:25 | strings1 | | file://:0:0:0:0 | [] | -| main.rs:2477:18:2477:25 | strings1 | [T;...] | file://:0:0:0:0 | & | -| main.rs:2477:18:2477:25 | strings1 | [T;...].&T | {EXTERNAL LOCATION} | str | -| main.rs:2479:13:2479:20 | strings2 | | file://:0:0:0:0 | [] | -| main.rs:2479:13:2479:20 | strings2 | [T;...] | {EXTERNAL LOCATION} | String | -| main.rs:2480:9:2484:9 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2480:9:2484:9 | [...] | [T;...] | {EXTERNAL LOCATION} | String | -| main.rs:2481:13:2481:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2481:26:2481:30 | "foo" | | file://:0:0:0:0 | & | -| main.rs:2481:26:2481:30 | "foo" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2482:13:2482:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2482:26:2482:30 | "bar" | | file://:0:0:0:0 | & | -| main.rs:2482:26:2482:30 | "bar" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2483:13:2483:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2483:26:2483:30 | "baz" | | file://:0:0:0:0 | & | -| main.rs:2483:26:2483:30 | "baz" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2485:13:2485:13 | s | | {EXTERNAL LOCATION} | String | -| main.rs:2485:18:2485:25 | strings2 | | file://:0:0:0:0 | [] | -| main.rs:2485:18:2485:25 | strings2 | [T;...] | {EXTERNAL LOCATION} | String | -| main.rs:2487:13:2487:20 | strings3 | | file://:0:0:0:0 | & | -| main.rs:2487:13:2487:20 | strings3 | &T | file://:0:0:0:0 | [] | -| main.rs:2487:13:2487:20 | strings3 | &T.[T;...] | {EXTERNAL LOCATION} | String | -| main.rs:2488:9:2492:9 | &... | | file://:0:0:0:0 | & | -| main.rs:2488:9:2492:9 | &... | &T | file://:0:0:0:0 | [] | -| main.rs:2488:9:2492:9 | &... | &T.[T;...] | {EXTERNAL LOCATION} | String | -| main.rs:2488:10:2492:9 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2488:10:2492:9 | [...] | [T;...] | {EXTERNAL LOCATION} | String | -| main.rs:2489:13:2489:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2489:26:2489:30 | "foo" | | file://:0:0:0:0 | & | -| main.rs:2489:26:2489:30 | "foo" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2490:13:2490:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2490:26:2490:30 | "bar" | | file://:0:0:0:0 | & | -| main.rs:2490:26:2490:30 | "bar" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2491:13:2491:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2491:26:2491:30 | "baz" | | file://:0:0:0:0 | & | -| main.rs:2491:26:2491:30 | "baz" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2493:13:2493:13 | s | | {EXTERNAL LOCATION} | Item | -| main.rs:2493:13:2493:13 | s | | file://:0:0:0:0 | & | -| main.rs:2493:13:2493:13 | s | &T | {EXTERNAL LOCATION} | String | -| main.rs:2493:18:2493:25 | strings3 | | file://:0:0:0:0 | & | -| main.rs:2493:18:2493:25 | strings3 | &T | file://:0:0:0:0 | [] | -| main.rs:2493:18:2493:25 | strings3 | &T.[T;...] | {EXTERNAL LOCATION} | String | -| main.rs:2495:13:2495:21 | callables | | file://:0:0:0:0 | [] | -| main.rs:2495:13:2495:21 | callables | [T;...] | main.rs:2443:5:2443:24 | MyCallable | -| main.rs:2495:25:2495:81 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2495:25:2495:81 | [...] | [T;...] | main.rs:2443:5:2443:24 | MyCallable | -| main.rs:2495:26:2495:42 | ...::new(...) | | main.rs:2443:5:2443:24 | MyCallable | -| main.rs:2495:45:2495:61 | ...::new(...) | | main.rs:2443:5:2443:24 | MyCallable | -| main.rs:2495:64:2495:80 | ...::new(...) | | main.rs:2443:5:2443:24 | MyCallable | -| main.rs:2496:13:2496:13 | c | | main.rs:2443:5:2443:24 | MyCallable | -| main.rs:2497:12:2497:20 | callables | | file://:0:0:0:0 | [] | -| main.rs:2497:12:2497:20 | callables | [T;...] | main.rs:2443:5:2443:24 | MyCallable | -| main.rs:2499:17:2499:22 | result | | {EXTERNAL LOCATION} | i64 | -| main.rs:2499:26:2499:26 | c | | main.rs:2443:5:2443:24 | MyCallable | -| main.rs:2499:26:2499:33 | c.call() | | {EXTERNAL LOCATION} | i64 | -| main.rs:2504:13:2504:13 | i | | {EXTERNAL LOCATION} | Item | -| main.rs:2504:13:2504:13 | i | | {EXTERNAL LOCATION} | i32 | -| main.rs:2504:18:2504:18 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2504:18:2504:22 | 0..10 | | {EXTERNAL LOCATION} | Range | -| main.rs:2504:18:2504:22 | 0..10 | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2504:21:2504:22 | 10 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2505:13:2505:13 | u | | {EXTERNAL LOCATION} | Range | -| main.rs:2505:13:2505:13 | u | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2505:13:2505:13 | u | Idx | {EXTERNAL LOCATION} | u8 | -| main.rs:2505:18:2505:26 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2505:18:2505:26 | [...] | [T;...] | {EXTERNAL LOCATION} | Range | -| main.rs:2505:18:2505:26 | [...] | [T;...].Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2505:18:2505:26 | [...] | [T;...].Idx | {EXTERNAL LOCATION} | u8 | -| main.rs:2505:19:2505:21 | 0u8 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2505:19:2505:25 | 0u8..10 | | {EXTERNAL LOCATION} | Range | -| main.rs:2505:19:2505:25 | 0u8..10 | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2505:19:2505:25 | 0u8..10 | Idx | {EXTERNAL LOCATION} | u8 | -| main.rs:2505:24:2505:25 | 10 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2505:24:2505:25 | 10 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2506:13:2506:17 | range | | {EXTERNAL LOCATION} | Range | -| main.rs:2506:13:2506:17 | range | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2506:21:2506:21 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2506:21:2506:25 | 0..10 | | {EXTERNAL LOCATION} | Range | -| main.rs:2506:21:2506:25 | 0..10 | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2506:24:2506:25 | 10 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2507:13:2507:13 | i | | {EXTERNAL LOCATION} | Item | -| main.rs:2507:13:2507:13 | i | | {EXTERNAL LOCATION} | i32 | -| main.rs:2507:18:2507:22 | range | | {EXTERNAL LOCATION} | Range | -| main.rs:2507:18:2507:22 | range | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2508:13:2508:22 | range_full | | {EXTERNAL LOCATION} | RangeFull | -| main.rs:2508:26:2508:27 | .. | | {EXTERNAL LOCATION} | RangeFull | -| main.rs:2509:13:2509:13 | i | | {EXTERNAL LOCATION} | Item | -| main.rs:2509:18:2509:48 | &... | | file://:0:0:0:0 | & | -| main.rs:2509:19:2509:36 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2509:19:2509:36 | [...] | [T;...] | {EXTERNAL LOCATION} | i64 | -| main.rs:2509:20:2509:23 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2509:26:2509:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2509:32:2509:35 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2509:38:2509:47 | range_full | | {EXTERNAL LOCATION} | RangeFull | -| main.rs:2511:13:2511:18 | range1 | | {EXTERNAL LOCATION} | Range | -| main.rs:2511:13:2511:18 | range1 | Idx | {EXTERNAL LOCATION} | u16 | -| main.rs:2512:9:2515:9 | ...::Range {...} | | {EXTERNAL LOCATION} | Range | -| main.rs:2512:9:2515:9 | ...::Range {...} | Idx | {EXTERNAL LOCATION} | u16 | -| main.rs:2513:20:2513:23 | 0u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2514:18:2514:22 | 10u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2516:13:2516:13 | u | | {EXTERNAL LOCATION} | Item | -| main.rs:2516:13:2516:13 | u | | {EXTERNAL LOCATION} | u16 | -| main.rs:2516:18:2516:23 | range1 | | {EXTERNAL LOCATION} | Range | -| main.rs:2516:18:2516:23 | range1 | Idx | {EXTERNAL LOCATION} | u16 | -| main.rs:2520:26:2520:26 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2520:29:2520:29 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2520:32:2520:32 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2523:13:2523:18 | vals4a | | {EXTERNAL LOCATION} | Vec | -| main.rs:2523:13:2523:18 | vals4a | A | {EXTERNAL LOCATION} | Global | -| main.rs:2523:13:2523:18 | vals4a | T | {EXTERNAL LOCATION} | u16 | -| main.rs:2523:32:2523:43 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2523:32:2523:43 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2523:32:2523:43 | [...] | [T;...] | {EXTERNAL LOCATION} | u16 | -| main.rs:2523:32:2523:52 | ... .to_vec() | | {EXTERNAL LOCATION} | Vec | -| main.rs:2523:32:2523:52 | ... .to_vec() | A | {EXTERNAL LOCATION} | Global | -| main.rs:2523:32:2523:52 | ... .to_vec() | T | {EXTERNAL LOCATION} | u16 | -| main.rs:2523:33:2523:36 | 1u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2523:39:2523:39 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2523:42:2523:42 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2524:13:2524:13 | u | | {EXTERNAL LOCATION} | u16 | -| main.rs:2524:13:2524:13 | u | | file://:0:0:0:0 | & | -| main.rs:2524:18:2524:23 | vals4a | | {EXTERNAL LOCATION} | Vec | -| main.rs:2524:18:2524:23 | vals4a | A | {EXTERNAL LOCATION} | Global | -| main.rs:2524:18:2524:23 | vals4a | T | {EXTERNAL LOCATION} | u16 | -| main.rs:2526:22:2526:33 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2526:22:2526:33 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2526:22:2526:33 | [...] | [T;...] | {EXTERNAL LOCATION} | u16 | -| main.rs:2526:23:2526:26 | 1u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2526:29:2526:29 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2526:32:2526:32 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2529:13:2529:17 | vals5 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2529:13:2529:17 | vals5 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2529:13:2529:17 | vals5 | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2529:13:2529:17 | vals5 | T | {EXTERNAL LOCATION} | u32 | -| main.rs:2529:21:2529:43 | ...::from(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2529:21:2529:43 | ...::from(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2529:21:2529:43 | ...::from(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2529:21:2529:43 | ...::from(...) | T | {EXTERNAL LOCATION} | u32 | -| main.rs:2529:31:2529:42 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2529:31:2529:42 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2529:31:2529:42 | [...] | [T;...] | {EXTERNAL LOCATION} | u32 | -| main.rs:2529:32:2529:35 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2529:38:2529:38 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2529:41:2529:41 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2530:13:2530:13 | u | | {EXTERNAL LOCATION} | i32 | -| main.rs:2530:13:2530:13 | u | | {EXTERNAL LOCATION} | u32 | -| main.rs:2530:13:2530:13 | u | | file://:0:0:0:0 | & | -| main.rs:2530:18:2530:22 | vals5 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2530:18:2530:22 | vals5 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2530:18:2530:22 | vals5 | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2530:18:2530:22 | vals5 | T | {EXTERNAL LOCATION} | u32 | -| main.rs:2532:13:2532:17 | vals6 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2532:13:2532:17 | vals6 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2532:13:2532:17 | vals6 | T | file://:0:0:0:0 | & | -| main.rs:2532:13:2532:17 | vals6 | T.&T | {EXTERNAL LOCATION} | u64 | -| main.rs:2532:32:2532:43 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2532:32:2532:43 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2532:32:2532:43 | [...] | [T;...] | {EXTERNAL LOCATION} | u64 | -| main.rs:2532:32:2532:60 | ... .collect() | | {EXTERNAL LOCATION} | Vec | -| main.rs:2532:32:2532:60 | ... .collect() | A | {EXTERNAL LOCATION} | Global | -| main.rs:2532:32:2532:60 | ... .collect() | T | file://:0:0:0:0 | & | -| main.rs:2532:32:2532:60 | ... .collect() | T.&T | {EXTERNAL LOCATION} | u64 | -| main.rs:2532:33:2532:36 | 1u64 | | {EXTERNAL LOCATION} | u64 | -| main.rs:2532:39:2532:39 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2532:42:2532:42 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2533:13:2533:13 | u | | file://:0:0:0:0 | & | -| main.rs:2533:13:2533:13 | u | &T | {EXTERNAL LOCATION} | u64 | -| main.rs:2533:18:2533:22 | vals6 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2533:18:2533:22 | vals6 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2533:18:2533:22 | vals6 | T | file://:0:0:0:0 | & | -| main.rs:2533:18:2533:22 | vals6 | T.&T | {EXTERNAL LOCATION} | u64 | -| main.rs:2535:17:2535:21 | vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2535:17:2535:21 | vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2535:17:2535:21 | vals7 | T | {EXTERNAL LOCATION} | u8 | -| main.rs:2535:25:2535:34 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2535:25:2535:34 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2535:25:2535:34 | ...::new(...) | T | {EXTERNAL LOCATION} | u8 | -| main.rs:2536:9:2536:13 | vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2536:9:2536:13 | vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2536:9:2536:13 | vals7 | T | {EXTERNAL LOCATION} | u8 | -| main.rs:2536:20:2536:22 | 1u8 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2537:13:2537:13 | u | | {EXTERNAL LOCATION} | u8 | -| main.rs:2537:13:2537:13 | u | | file://:0:0:0:0 | & | -| main.rs:2537:18:2537:22 | vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2537:18:2537:22 | vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2537:18:2537:22 | vals7 | T | {EXTERNAL LOCATION} | u8 | -| main.rs:2539:33:2539:33 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2539:36:2539:36 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2539:45:2539:45 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2539:48:2539:48 | 4 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2546:17:2546:20 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2546:17:2546:20 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2546:17:2546:20 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2546:17:2546:20 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2546:17:2546:20 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2546:17:2546:20 | map1 | V.T | file://:0:0:0:0 | & | -| main.rs:2546:17:2546:20 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2546:24:2546:55 | ...::new(...) | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2546:24:2546:55 | ...::new(...) | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2546:24:2546:55 | ...::new(...) | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2546:24:2546:55 | ...::new(...) | V | {EXTERNAL LOCATION} | Box | -| main.rs:2546:24:2546:55 | ...::new(...) | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2546:24:2546:55 | ...::new(...) | V.T | file://:0:0:0:0 | & | -| main.rs:2546:24:2546:55 | ...::new(...) | V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2547:9:2547:12 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2547:9:2547:12 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2547:9:2547:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2547:9:2547:12 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2547:9:2547:12 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2547:9:2547:12 | map1 | V.T | file://:0:0:0:0 | & | -| main.rs:2547:9:2547:12 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2547:9:2547:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2547:9:2547:39 | map1.insert(...) | T | {EXTERNAL LOCATION} | Box | -| main.rs:2547:9:2547:39 | map1.insert(...) | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2547:9:2547:39 | map1.insert(...) | T.T | file://:0:0:0:0 | & | -| main.rs:2547:9:2547:39 | map1.insert(...) | T.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2547:21:2547:21 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2547:24:2547:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2547:24:2547:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2547:24:2547:38 | ...::new(...) | T | file://:0:0:0:0 | & | -| main.rs:2547:24:2547:38 | ...::new(...) | T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2547:33:2547:37 | "one" | | file://:0:0:0:0 | & | -| main.rs:2547:33:2547:37 | "one" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2548:9:2548:12 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2548:9:2548:12 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2548:9:2548:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2548:9:2548:12 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2548:9:2548:12 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2548:9:2548:12 | map1 | V.T | file://:0:0:0:0 | & | -| main.rs:2548:9:2548:12 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2548:9:2548:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2548:9:2548:39 | map1.insert(...) | T | {EXTERNAL LOCATION} | Box | -| main.rs:2548:9:2548:39 | map1.insert(...) | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2548:9:2548:39 | map1.insert(...) | T.T | file://:0:0:0:0 | & | -| main.rs:2548:9:2548:39 | map1.insert(...) | T.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2548:21:2548:21 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2548:24:2548:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2548:24:2548:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2548:24:2548:38 | ...::new(...) | T | file://:0:0:0:0 | & | -| main.rs:2548:24:2548:38 | ...::new(...) | T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2548:33:2548:37 | "two" | | file://:0:0:0:0 | & | -| main.rs:2548:33:2548:37 | "two" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2549:13:2549:15 | key | | {EXTERNAL LOCATION} | Item | -| main.rs:2549:13:2549:15 | key | | file://:0:0:0:0 | & | -| main.rs:2549:13:2549:15 | key | &T | {EXTERNAL LOCATION} | i32 | -| main.rs:2549:20:2549:23 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2549:20:2549:23 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2549:20:2549:23 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2549:20:2549:23 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2549:20:2549:23 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2549:20:2549:23 | map1 | V.T | file://:0:0:0:0 | & | -| main.rs:2549:20:2549:23 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2549:20:2549:30 | map1.keys() | | {EXTERNAL LOCATION} | Keys | -| main.rs:2549:20:2549:30 | map1.keys() | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2549:20:2549:30 | map1.keys() | V | {EXTERNAL LOCATION} | Box | -| main.rs:2549:20:2549:30 | map1.keys() | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2549:20:2549:30 | map1.keys() | V.T | file://:0:0:0:0 | & | -| main.rs:2549:20:2549:30 | map1.keys() | V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2550:13:2550:17 | value | | {EXTERNAL LOCATION} | Item | -| main.rs:2550:13:2550:17 | value | | file://:0:0:0:0 | & | -| main.rs:2550:13:2550:17 | value | &T | {EXTERNAL LOCATION} | Box | -| main.rs:2550:13:2550:17 | value | &T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2550:13:2550:17 | value | &T.T | file://:0:0:0:0 | & | -| main.rs:2550:13:2550:17 | value | &T.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2550:22:2550:25 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2550:22:2550:25 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2550:22:2550:25 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2550:22:2550:25 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2550:22:2550:25 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2550:22:2550:25 | map1 | V.T | file://:0:0:0:0 | & | -| main.rs:2550:22:2550:25 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2550:22:2550:34 | map1.values() | | {EXTERNAL LOCATION} | Values | -| main.rs:2550:22:2550:34 | map1.values() | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2550:22:2550:34 | map1.values() | V | {EXTERNAL LOCATION} | Box | -| main.rs:2550:22:2550:34 | map1.values() | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2550:22:2550:34 | map1.values() | V.T | file://:0:0:0:0 | & | -| main.rs:2550:22:2550:34 | map1.values() | V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2551:13:2551:24 | TuplePat | | file://:0:0:0:0 | (T_2) | -| main.rs:2551:13:2551:24 | TuplePat | 0(2) | file://:0:0:0:0 | & | -| main.rs:2551:13:2551:24 | TuplePat | 0(2).&T | {EXTERNAL LOCATION} | i32 | -| main.rs:2551:13:2551:24 | TuplePat | 1(2) | file://:0:0:0:0 | & | -| main.rs:2551:13:2551:24 | TuplePat | 1(2).&T | {EXTERNAL LOCATION} | Box | -| main.rs:2551:13:2551:24 | TuplePat | 1(2).&T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2551:13:2551:24 | TuplePat | 1(2).&T.T | file://:0:0:0:0 | & | -| main.rs:2551:13:2551:24 | TuplePat | 1(2).&T.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2551:14:2551:16 | key | | file://:0:0:0:0 | & | -| main.rs:2551:14:2551:16 | key | &T | {EXTERNAL LOCATION} | i32 | -| main.rs:2551:19:2551:23 | value | | file://:0:0:0:0 | & | -| main.rs:2551:19:2551:23 | value | &T | {EXTERNAL LOCATION} | Box | -| main.rs:2551:19:2551:23 | value | &T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2551:19:2551:23 | value | &T.T | file://:0:0:0:0 | & | -| main.rs:2551:19:2551:23 | value | &T.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2551:29:2551:32 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2551:29:2551:32 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2551:29:2551:32 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2551:29:2551:32 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2551:29:2551:32 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2551:29:2551:32 | map1 | V.T | file://:0:0:0:0 | & | -| main.rs:2551:29:2551:32 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2551:29:2551:39 | map1.iter() | | {EXTERNAL LOCATION} | Iter | -| main.rs:2551:29:2551:39 | map1.iter() | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2551:29:2551:39 | map1.iter() | V | {EXTERNAL LOCATION} | Box | -| main.rs:2551:29:2551:39 | map1.iter() | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2551:29:2551:39 | map1.iter() | V.T | file://:0:0:0:0 | & | -| main.rs:2551:29:2551:39 | map1.iter() | V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2552:13:2552:24 | TuplePat | | file://:0:0:0:0 | (T_2) | -| main.rs:2552:13:2552:24 | TuplePat | 0(2) | file://:0:0:0:0 | & | -| main.rs:2552:13:2552:24 | TuplePat | 0(2).&T | {EXTERNAL LOCATION} | i32 | -| main.rs:2552:13:2552:24 | TuplePat | 1(2) | file://:0:0:0:0 | & | -| main.rs:2552:13:2552:24 | TuplePat | 1(2).&T | {EXTERNAL LOCATION} | Box | -| main.rs:2552:13:2552:24 | TuplePat | 1(2).&T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2552:13:2552:24 | TuplePat | 1(2).&T.T | file://:0:0:0:0 | & | -| main.rs:2552:13:2552:24 | TuplePat | 1(2).&T.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2552:14:2552:16 | key | | file://:0:0:0:0 | & | -| main.rs:2552:14:2552:16 | key | &T | {EXTERNAL LOCATION} | i32 | -| main.rs:2552:19:2552:23 | value | | file://:0:0:0:0 | & | -| main.rs:2552:19:2552:23 | value | &T | {EXTERNAL LOCATION} | Box | -| main.rs:2552:19:2552:23 | value | &T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2552:19:2552:23 | value | &T.T | file://:0:0:0:0 | & | -| main.rs:2552:19:2552:23 | value | &T.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2552:29:2552:33 | &map1 | | file://:0:0:0:0 | & | -| main.rs:2552:29:2552:33 | &map1 | &T | {EXTERNAL LOCATION} | HashMap | -| main.rs:2552:29:2552:33 | &map1 | &T.K | {EXTERNAL LOCATION} | i32 | -| main.rs:2552:29:2552:33 | &map1 | &T.S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2552:29:2552:33 | &map1 | &T.V | {EXTERNAL LOCATION} | Box | -| main.rs:2552:29:2552:33 | &map1 | &T.V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2552:29:2552:33 | &map1 | &T.V.T | file://:0:0:0:0 | & | -| main.rs:2552:29:2552:33 | &map1 | &T.V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2552:30:2552:33 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2552:30:2552:33 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2552:30:2552:33 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2552:30:2552:33 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2552:30:2552:33 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2552:30:2552:33 | map1 | V.T | file://:0:0:0:0 | & | -| main.rs:2552:30:2552:33 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2556:17:2556:17 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2556:26:2556:26 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2556:26:2556:26 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2558:23:2558:23 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2558:23:2558:28 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2558:27:2558:28 | 10 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2558:27:2558:28 | 10 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2560:13:2560:13 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2560:13:2560:18 | ... += ... | | file://:0:0:0:0 | () | -| main.rs:2560:18:2560:18 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2572:40:2574:9 | { ... } | | {EXTERNAL LOCATION} | Option | -| main.rs:2572:40:2574:9 | { ... } | T | main.rs:2566:5:2566:20 | S1 | -| main.rs:2572:40:2574:9 | { ... } | T.T | main.rs:2571:10:2571:19 | T | -| main.rs:2573:13:2573:16 | None | | {EXTERNAL LOCATION} | Option | -| main.rs:2573:13:2573:16 | None | T | main.rs:2566:5:2566:20 | S1 | -| main.rs:2573:13:2573:16 | None | T.T | main.rs:2571:10:2571:19 | T | -| main.rs:2576:30:2578:9 | { ... } | | main.rs:2566:5:2566:20 | S1 | -| main.rs:2576:30:2578:9 | { ... } | T | main.rs:2571:10:2571:19 | T | -| main.rs:2577:13:2577:28 | S1(...) | | main.rs:2566:5:2566:20 | S1 | -| main.rs:2577:13:2577:28 | S1(...) | T | main.rs:2571:10:2571:19 | T | -| main.rs:2577:16:2577:27 | ...::default(...) | | main.rs:2571:10:2571:19 | T | -| main.rs:2580:19:2580:22 | SelfParam | | main.rs:2566:5:2566:20 | S1 | -| main.rs:2580:19:2580:22 | SelfParam | T | main.rs:2571:10:2571:19 | T | -| main.rs:2580:33:2582:9 | { ... } | | main.rs:2566:5:2566:20 | S1 | -| main.rs:2580:33:2582:9 | { ... } | T | main.rs:2571:10:2571:19 | T | -| main.rs:2581:13:2581:16 | self | | main.rs:2566:5:2566:20 | S1 | -| main.rs:2581:13:2581:16 | self | T | main.rs:2571:10:2571:19 | T | -| main.rs:2593:15:2593:15 | x | | main.rs:2593:12:2593:12 | T | -| main.rs:2593:26:2595:5 | { ... } | | main.rs:2593:12:2593:12 | T | -| main.rs:2594:9:2594:9 | x | | main.rs:2593:12:2593:12 | T | -| main.rs:2598:13:2598:14 | x1 | | {EXTERNAL LOCATION} | Option | -| main.rs:2598:13:2598:14 | x1 | T | main.rs:2566:5:2566:20 | S1 | -| main.rs:2598:13:2598:14 | x1 | T.T | main.rs:2568:5:2569:14 | S2 | -| main.rs:2598:34:2598:48 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2598:34:2598:48 | ...::assoc_fun(...) | T | main.rs:2566:5:2566:20 | S1 | -| main.rs:2598:34:2598:48 | ...::assoc_fun(...) | T.T | main.rs:2568:5:2569:14 | S2 | -| main.rs:2599:13:2599:14 | x2 | | {EXTERNAL LOCATION} | Option | -| main.rs:2599:13:2599:14 | x2 | T | main.rs:2566:5:2566:20 | S1 | -| main.rs:2599:13:2599:14 | x2 | T.T | main.rs:2568:5:2569:14 | S2 | -| main.rs:2599:18:2599:38 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2599:18:2599:38 | ...::assoc_fun(...) | T | main.rs:2566:5:2566:20 | S1 | -| main.rs:2599:18:2599:38 | ...::assoc_fun(...) | T.T | main.rs:2568:5:2569:14 | S2 | -| main.rs:2600:13:2600:14 | x3 | | {EXTERNAL LOCATION} | Option | -| main.rs:2600:13:2600:14 | x3 | T | main.rs:2566:5:2566:20 | S1 | -| main.rs:2600:13:2600:14 | x3 | T.T | main.rs:2568:5:2569:14 | S2 | -| main.rs:2600:18:2600:32 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2600:18:2600:32 | ...::assoc_fun(...) | T | main.rs:2566:5:2566:20 | S1 | -| main.rs:2600:18:2600:32 | ...::assoc_fun(...) | T.T | main.rs:2568:5:2569:14 | S2 | -| main.rs:2601:13:2601:14 | x4 | | main.rs:2566:5:2566:20 | S1 | -| main.rs:2601:13:2601:14 | x4 | T | main.rs:2568:5:2569:14 | S2 | -| main.rs:2601:18:2601:48 | ...::method(...) | | main.rs:2566:5:2566:20 | S1 | -| main.rs:2601:18:2601:48 | ...::method(...) | T | main.rs:2568:5:2569:14 | S2 | -| main.rs:2601:35:2601:47 | ...::default(...) | | main.rs:2566:5:2566:20 | S1 | -| main.rs:2601:35:2601:47 | ...::default(...) | T | main.rs:2568:5:2569:14 | S2 | -| main.rs:2602:13:2602:14 | x5 | | main.rs:2566:5:2566:20 | S1 | -| main.rs:2602:13:2602:14 | x5 | T | main.rs:2568:5:2569:14 | S2 | -| main.rs:2602:18:2602:42 | ...::method(...) | | main.rs:2566:5:2566:20 | S1 | -| main.rs:2602:18:2602:42 | ...::method(...) | T | main.rs:2568:5:2569:14 | S2 | -| main.rs:2602:29:2602:41 | ...::default(...) | | main.rs:2566:5:2566:20 | S1 | -| main.rs:2602:29:2602:41 | ...::default(...) | T | main.rs:2568:5:2569:14 | S2 | -| main.rs:2603:13:2603:14 | x6 | | main.rs:2587:5:2587:27 | S4 | -| main.rs:2603:13:2603:14 | x6 | T4 | main.rs:2568:5:2569:14 | S2 | -| main.rs:2603:18:2603:45 | S4::<...>(...) | | main.rs:2587:5:2587:27 | S4 | -| main.rs:2603:18:2603:45 | S4::<...>(...) | T4 | main.rs:2568:5:2569:14 | S2 | -| main.rs:2603:27:2603:44 | ...::default(...) | | main.rs:2568:5:2569:14 | S2 | -| main.rs:2604:13:2604:14 | x7 | | main.rs:2587:5:2587:27 | S4 | -| main.rs:2604:13:2604:14 | x7 | T4 | main.rs:2568:5:2569:14 | S2 | -| main.rs:2604:18:2604:23 | S4(...) | | main.rs:2587:5:2587:27 | S4 | -| main.rs:2604:18:2604:23 | S4(...) | T4 | main.rs:2568:5:2569:14 | S2 | -| main.rs:2604:21:2604:22 | S2 | | main.rs:2568:5:2569:14 | S2 | -| main.rs:2605:13:2605:14 | x8 | | main.rs:2587:5:2587:27 | S4 | -| main.rs:2605:13:2605:14 | x8 | T4 | {EXTERNAL LOCATION} | i32 | -| main.rs:2605:18:2605:22 | S4(...) | | main.rs:2587:5:2587:27 | S4 | -| main.rs:2605:18:2605:22 | S4(...) | T4 | {EXTERNAL LOCATION} | i32 | -| main.rs:2605:21:2605:21 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2606:13:2606:14 | x9 | | main.rs:2587:5:2587:27 | S4 | -| main.rs:2606:13:2606:14 | x9 | T4 | main.rs:2568:5:2569:14 | S2 | -| main.rs:2606:18:2606:34 | S4(...) | | main.rs:2587:5:2587:27 | S4 | -| main.rs:2606:18:2606:34 | S4(...) | T4 | main.rs:2568:5:2569:14 | S2 | -| main.rs:2606:21:2606:33 | ...::default(...) | | main.rs:2568:5:2569:14 | S2 | -| main.rs:2607:13:2607:15 | x10 | | main.rs:2589:5:2591:5 | S5 | -| main.rs:2607:13:2607:15 | x10 | T5 | main.rs:2568:5:2569:14 | S2 | -| main.rs:2607:19:2610:9 | S5::<...> {...} | | main.rs:2589:5:2591:5 | S5 | -| main.rs:2607:19:2610:9 | S5::<...> {...} | T5 | main.rs:2568:5:2569:14 | S2 | -| main.rs:2609:20:2609:37 | ...::default(...) | | main.rs:2568:5:2569:14 | S2 | -| main.rs:2611:13:2611:15 | x11 | | main.rs:2589:5:2591:5 | S5 | -| main.rs:2611:13:2611:15 | x11 | T5 | main.rs:2568:5:2569:14 | S2 | -| main.rs:2611:19:2611:34 | S5 {...} | | main.rs:2589:5:2591:5 | S5 | -| main.rs:2611:19:2611:34 | S5 {...} | T5 | main.rs:2568:5:2569:14 | S2 | -| main.rs:2611:31:2611:32 | S2 | | main.rs:2568:5:2569:14 | S2 | -| main.rs:2612:13:2612:15 | x12 | | main.rs:2589:5:2591:5 | S5 | -| main.rs:2612:13:2612:15 | x12 | T5 | {EXTERNAL LOCATION} | i32 | -| main.rs:2612:19:2612:33 | S5 {...} | | main.rs:2589:5:2591:5 | S5 | -| main.rs:2612:19:2612:33 | S5 {...} | T5 | {EXTERNAL LOCATION} | i32 | -| main.rs:2612:31:2612:31 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2613:13:2613:15 | x13 | | main.rs:2589:5:2591:5 | S5 | -| main.rs:2613:13:2613:15 | x13 | T5 | main.rs:2568:5:2569:14 | S2 | -| main.rs:2613:19:2616:9 | S5 {...} | | main.rs:2589:5:2591:5 | S5 | -| main.rs:2613:19:2616:9 | S5 {...} | T5 | main.rs:2568:5:2569:14 | S2 | -| main.rs:2615:20:2615:32 | ...::default(...) | | main.rs:2568:5:2569:14 | S2 | -| main.rs:2617:13:2617:15 | x14 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2617:19:2617:48 | foo::<...>(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:2617:30:2617:47 | ...::default(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:2618:13:2618:15 | x15 | | main.rs:2566:5:2566:20 | S1 | -| main.rs:2618:13:2618:15 | x15 | T | main.rs:2568:5:2569:14 | S2 | -| main.rs:2618:19:2618:37 | ...::default(...) | | main.rs:2566:5:2566:20 | S1 | -| main.rs:2618:19:2618:37 | ...::default(...) | T | main.rs:2568:5:2569:14 | S2 | -| main.rs:2627:35:2629:9 | { ... } | | file://:0:0:0:0 | (T_2) | -| main.rs:2627:35:2629:9 | { ... } | 0(2) | main.rs:2623:5:2624:16 | S1 | -| main.rs:2627:35:2629:9 | { ... } | 1(2) | main.rs:2623:5:2624:16 | S1 | -| main.rs:2628:13:2628:26 | TupleExpr | | file://:0:0:0:0 | (T_2) | -| main.rs:2628:13:2628:26 | TupleExpr | 0(2) | main.rs:2623:5:2624:16 | S1 | -| main.rs:2628:13:2628:26 | TupleExpr | 1(2) | main.rs:2623:5:2624:16 | S1 | -| main.rs:2628:14:2628:18 | S1 {...} | | main.rs:2623:5:2624:16 | S1 | -| main.rs:2628:21:2628:25 | S1 {...} | | main.rs:2623:5:2624:16 | S1 | -| main.rs:2630:16:2630:19 | SelfParam | | main.rs:2623:5:2624:16 | S1 | -| main.rs:2634:13:2634:13 | a | | file://:0:0:0:0 | (T_2) | -| main.rs:2634:13:2634:13 | a | 0(2) | main.rs:2623:5:2624:16 | S1 | -| main.rs:2634:13:2634:13 | a | 1(2) | main.rs:2623:5:2624:16 | S1 | -| main.rs:2634:17:2634:30 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | -| main.rs:2634:17:2634:30 | ...::get_pair(...) | 0(2) | main.rs:2623:5:2624:16 | S1 | -| main.rs:2634:17:2634:30 | ...::get_pair(...) | 1(2) | main.rs:2623:5:2624:16 | S1 | -| main.rs:2635:17:2635:17 | b | | file://:0:0:0:0 | (T_2) | -| main.rs:2635:17:2635:17 | b | 0(2) | main.rs:2623:5:2624:16 | S1 | -| main.rs:2635:17:2635:17 | b | 1(2) | main.rs:2623:5:2624:16 | S1 | -| main.rs:2635:21:2635:34 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | -| main.rs:2635:21:2635:34 | ...::get_pair(...) | 0(2) | main.rs:2623:5:2624:16 | S1 | -| main.rs:2635:21:2635:34 | ...::get_pair(...) | 1(2) | main.rs:2623:5:2624:16 | S1 | -| main.rs:2636:13:2636:18 | TuplePat | | file://:0:0:0:0 | (T_2) | -| main.rs:2636:13:2636:18 | TuplePat | 0(2) | main.rs:2623:5:2624:16 | S1 | -| main.rs:2636:13:2636:18 | TuplePat | 1(2) | main.rs:2623:5:2624:16 | S1 | -| main.rs:2636:14:2636:14 | c | | main.rs:2623:5:2624:16 | S1 | -| main.rs:2636:17:2636:17 | d | | main.rs:2623:5:2624:16 | S1 | -| main.rs:2636:22:2636:35 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | -| main.rs:2636:22:2636:35 | ...::get_pair(...) | 0(2) | main.rs:2623:5:2624:16 | S1 | -| main.rs:2636:22:2636:35 | ...::get_pair(...) | 1(2) | main.rs:2623:5:2624:16 | S1 | -| main.rs:2637:13:2637:22 | TuplePat | | file://:0:0:0:0 | (T_2) | -| main.rs:2637:13:2637:22 | TuplePat | 0(2) | main.rs:2623:5:2624:16 | S1 | -| main.rs:2637:13:2637:22 | TuplePat | 1(2) | main.rs:2623:5:2624:16 | S1 | -| main.rs:2637:18:2637:18 | e | | main.rs:2623:5:2624:16 | S1 | -| main.rs:2637:21:2637:21 | f | | main.rs:2623:5:2624:16 | S1 | -| main.rs:2637:26:2637:39 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | -| main.rs:2637:26:2637:39 | ...::get_pair(...) | 0(2) | main.rs:2623:5:2624:16 | S1 | -| main.rs:2637:26:2637:39 | ...::get_pair(...) | 1(2) | main.rs:2623:5:2624:16 | S1 | -| main.rs:2638:13:2638:26 | TuplePat | | file://:0:0:0:0 | (T_2) | -| main.rs:2638:13:2638:26 | TuplePat | 0(2) | main.rs:2623:5:2624:16 | S1 | -| main.rs:2638:13:2638:26 | TuplePat | 1(2) | main.rs:2623:5:2624:16 | S1 | -| main.rs:2638:18:2638:18 | g | | main.rs:2623:5:2624:16 | S1 | -| main.rs:2638:25:2638:25 | h | | main.rs:2623:5:2624:16 | S1 | -| main.rs:2638:30:2638:43 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | -| main.rs:2638:30:2638:43 | ...::get_pair(...) | 0(2) | main.rs:2623:5:2624:16 | S1 | -| main.rs:2638:30:2638:43 | ...::get_pair(...) | 1(2) | main.rs:2623:5:2624:16 | S1 | -| main.rs:2640:9:2640:9 | a | | file://:0:0:0:0 | (T_2) | -| main.rs:2640:9:2640:9 | a | 0(2) | main.rs:2623:5:2624:16 | S1 | -| main.rs:2640:9:2640:9 | a | 1(2) | main.rs:2623:5:2624:16 | S1 | -| main.rs:2640:9:2640:11 | a.0 | | main.rs:2623:5:2624:16 | S1 | -| main.rs:2641:9:2641:9 | b | | file://:0:0:0:0 | (T_2) | -| main.rs:2641:9:2641:9 | b | 0(2) | main.rs:2623:5:2624:16 | S1 | -| main.rs:2641:9:2641:9 | b | 1(2) | main.rs:2623:5:2624:16 | S1 | -| main.rs:2641:9:2641:11 | b.1 | | main.rs:2623:5:2624:16 | S1 | -| main.rs:2642:9:2642:9 | c | | main.rs:2623:5:2624:16 | S1 | -| main.rs:2643:9:2643:9 | d | | main.rs:2623:5:2624:16 | S1 | -| main.rs:2644:9:2644:9 | e | | main.rs:2623:5:2624:16 | S1 | -| main.rs:2645:9:2645:9 | f | | main.rs:2623:5:2624:16 | S1 | -| main.rs:2646:9:2646:9 | g | | main.rs:2623:5:2624:16 | S1 | -| main.rs:2647:9:2647:9 | h | | main.rs:2623:5:2624:16 | S1 | -| main.rs:2652:13:2652:13 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2652:17:2652:34 | ...::default(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2653:13:2653:13 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2653:17:2653:34 | ...::default(...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2654:13:2654:16 | pair | | file://:0:0:0:0 | (T_2) | -| main.rs:2654:13:2654:16 | pair | 0(2) | {EXTERNAL LOCATION} | i64 | -| main.rs:2654:13:2654:16 | pair | 1(2) | {EXTERNAL LOCATION} | bool | -| main.rs:2654:20:2654:25 | TupleExpr | | file://:0:0:0:0 | (T_2) | -| main.rs:2654:20:2654:25 | TupleExpr | 0(2) | {EXTERNAL LOCATION} | i64 | -| main.rs:2654:20:2654:25 | TupleExpr | 1(2) | {EXTERNAL LOCATION} | bool | -| main.rs:2654:21:2654:21 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2654:24:2654:24 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2655:13:2655:13 | i | | {EXTERNAL LOCATION} | i64 | -| main.rs:2655:22:2655:25 | pair | | file://:0:0:0:0 | (T_2) | -| main.rs:2655:22:2655:25 | pair | 0(2) | {EXTERNAL LOCATION} | i64 | -| main.rs:2655:22:2655:25 | pair | 1(2) | {EXTERNAL LOCATION} | bool | -| main.rs:2655:22:2655:27 | pair.0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2656:13:2656:13 | j | | {EXTERNAL LOCATION} | bool | -| main.rs:2656:23:2656:26 | pair | | file://:0:0:0:0 | (T_2) | -| main.rs:2656:23:2656:26 | pair | 0(2) | {EXTERNAL LOCATION} | i64 | -| main.rs:2656:23:2656:26 | pair | 1(2) | {EXTERNAL LOCATION} | bool | -| main.rs:2656:23:2656:28 | pair.1 | | {EXTERNAL LOCATION} | bool | -| main.rs:2658:13:2658:16 | pair | | file://:0:0:0:0 | (T_2) | -| main.rs:2658:13:2658:16 | pair | 0(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2658:13:2658:16 | pair | 1(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2658:20:2658:25 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2658:20:2658:25 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2658:20:2658:32 | ... .into() | | file://:0:0:0:0 | (T_2) | -| main.rs:2658:20:2658:32 | ... .into() | 0(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2658:20:2658:32 | ... .into() | 1(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2658:21:2658:21 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2658:24:2658:24 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2659:15:2659:18 | pair | | file://:0:0:0:0 | (T_2) | -| main.rs:2659:15:2659:18 | pair | 0(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2659:15:2659:18 | pair | 1(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2660:13:2660:18 | TuplePat | | file://:0:0:0:0 | (T_2) | -| main.rs:2660:13:2660:18 | TuplePat | 0(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2660:13:2660:18 | TuplePat | 1(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2660:14:2660:14 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2660:17:2660:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2660:30:2660:41 | "unexpected" | | file://:0:0:0:0 | & | -| main.rs:2660:30:2660:41 | "unexpected" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2660:30:2660:41 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2660:30:2660:41 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2661:13:2661:13 | _ | | file://:0:0:0:0 | (T_2) | -| main.rs:2661:13:2661:13 | _ | 0(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2661:13:2661:13 | _ | 1(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2661:25:2661:34 | "expected" | | file://:0:0:0:0 | & | -| main.rs:2661:25:2661:34 | "expected" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2661:25:2661:34 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2661:25:2661:34 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2663:13:2663:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:2663:17:2663:20 | pair | | file://:0:0:0:0 | (T_2) | -| main.rs:2663:17:2663:20 | pair | 0(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2663:17:2663:20 | pair | 1(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2663:17:2663:22 | pair.0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2665:13:2665:13 | y | | file://:0:0:0:0 | & | -| main.rs:2665:13:2665:13 | y | &T | file://:0:0:0:0 | (T_2) | -| main.rs:2665:13:2665:13 | y | &T.0(2) | main.rs:2623:5:2624:16 | S1 | -| main.rs:2665:13:2665:13 | y | &T.1(2) | main.rs:2623:5:2624:16 | S1 | -| main.rs:2665:17:2665:31 | &... | | file://:0:0:0:0 | & | -| main.rs:2665:17:2665:31 | &... | &T | file://:0:0:0:0 | (T_2) | -| main.rs:2665:17:2665:31 | &... | &T.0(2) | main.rs:2623:5:2624:16 | S1 | -| main.rs:2665:17:2665:31 | &... | &T.1(2) | main.rs:2623:5:2624:16 | S1 | -| main.rs:2665:18:2665:31 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | -| main.rs:2665:18:2665:31 | ...::get_pair(...) | 0(2) | main.rs:2623:5:2624:16 | S1 | -| main.rs:2665:18:2665:31 | ...::get_pair(...) | 1(2) | main.rs:2623:5:2624:16 | S1 | -| main.rs:2666:9:2666:9 | y | | file://:0:0:0:0 | & | -| main.rs:2666:9:2666:9 | y | &T | file://:0:0:0:0 | (T_2) | -| main.rs:2666:9:2666:9 | y | &T.0(2) | main.rs:2623:5:2624:16 | S1 | -| main.rs:2666:9:2666:9 | y | &T.1(2) | main.rs:2623:5:2624:16 | S1 | -| main.rs:2666:9:2666:11 | y.0 | | main.rs:2623:5:2624:16 | S1 | -| main.rs:2673:13:2673:23 | boxed_value | | {EXTERNAL LOCATION} | Box | -| main.rs:2673:13:2673:23 | boxed_value | A | {EXTERNAL LOCATION} | Global | -| main.rs:2673:13:2673:23 | boxed_value | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2673:27:2673:42 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2673:27:2673:42 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2673:27:2673:42 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2673:36:2673:41 | 100i32 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2676:15:2676:25 | boxed_value | | {EXTERNAL LOCATION} | Box | -| main.rs:2676:15:2676:25 | boxed_value | A | {EXTERNAL LOCATION} | Global | -| main.rs:2676:15:2676:25 | boxed_value | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2677:13:2677:19 | box 100 | | {EXTERNAL LOCATION} | Box | -| main.rs:2677:13:2677:19 | box 100 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2677:13:2677:19 | box 100 | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2677:17:2677:19 | 100 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2678:26:2678:36 | "Boxed 100\\n" | | file://:0:0:0:0 | & | -| main.rs:2678:26:2678:36 | "Boxed 100\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2678:26:2678:36 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2678:26:2678:36 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2680:13:2680:17 | box ... | | {EXTERNAL LOCATION} | Box | -| main.rs:2680:13:2680:17 | box ... | A | {EXTERNAL LOCATION} | Global | -| main.rs:2680:13:2680:17 | box ... | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2682:26:2682:42 | "Boxed value: {}\\n" | | file://:0:0:0:0 | & | -| main.rs:2682:26:2682:42 | "Boxed value: {}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2682:26:2682:51 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2682:26:2682:51 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2687:13:2687:22 | nested_box | | {EXTERNAL LOCATION} | Box | -| main.rs:2687:13:2687:22 | nested_box | A | {EXTERNAL LOCATION} | Global | -| main.rs:2687:13:2687:22 | nested_box | T | {EXTERNAL LOCATION} | Box | -| main.rs:2687:13:2687:22 | nested_box | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2687:13:2687:22 | nested_box | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2687:26:2687:50 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2687:26:2687:50 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2687:26:2687:50 | ...::new(...) | T | {EXTERNAL LOCATION} | Box | -| main.rs:2687:26:2687:50 | ...::new(...) | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2687:26:2687:50 | ...::new(...) | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2687:35:2687:49 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2687:35:2687:49 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2687:35:2687:49 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2687:44:2687:48 | 42i32 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2688:15:2688:24 | nested_box | | {EXTERNAL LOCATION} | Box | -| main.rs:2688:15:2688:24 | nested_box | A | {EXTERNAL LOCATION} | Global | -| main.rs:2688:15:2688:24 | nested_box | T | {EXTERNAL LOCATION} | Box | -| main.rs:2688:15:2688:24 | nested_box | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2688:15:2688:24 | nested_box | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2689:13:2689:21 | box ... | | {EXTERNAL LOCATION} | Box | -| main.rs:2689:13:2689:21 | box ... | A | {EXTERNAL LOCATION} | Global | -| main.rs:2689:13:2689:21 | box ... | T | {EXTERNAL LOCATION} | Box | -| main.rs:2689:13:2689:21 | box ... | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2689:13:2689:21 | box ... | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2691:26:2691:43 | "Nested boxed: {}\\n" | | file://:0:0:0:0 | & | -| main.rs:2691:26:2691:43 | "Nested boxed: {}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2691:26:2691:59 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2691:26:2691:59 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2703:36:2705:9 | { ... } | | main.rs:2700:5:2700:22 | Path | -| main.rs:2704:13:2704:19 | Path {...} | | main.rs:2700:5:2700:22 | Path | -| main.rs:2707:29:2707:33 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2707:29:2707:33 | SelfParam | &T | main.rs:2700:5:2700:22 | Path | -| main.rs:2707:59:2709:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:2707:59:2709:9 | { ... } | E | file://:0:0:0:0 | () | -| main.rs:2707:59:2709:9 | { ... } | T | main.rs:2712:5:2712:25 | PathBuf | -| main.rs:2708:13:2708:30 | Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:2708:13:2708:30 | Ok(...) | E | file://:0:0:0:0 | () | -| main.rs:2708:13:2708:30 | Ok(...) | T | main.rs:2712:5:2712:25 | PathBuf | -| main.rs:2708:16:2708:29 | ...::new(...) | | main.rs:2712:5:2712:25 | PathBuf | -| main.rs:2715:39:2717:9 | { ... } | | main.rs:2712:5:2712:25 | PathBuf | -| main.rs:2716:13:2716:22 | PathBuf {...} | | main.rs:2712:5:2712:25 | PathBuf | -| main.rs:2725:18:2725:22 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2725:18:2725:22 | SelfParam | &T | main.rs:2712:5:2712:25 | PathBuf | -| main.rs:2725:34:2729:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:2725:34:2729:9 | { ... } | &T | main.rs:2700:5:2700:22 | Path | -| main.rs:2727:33:2727:43 | ...::new(...) | | main.rs:2700:5:2700:22 | Path | -| main.rs:2728:13:2728:17 | &path | | file://:0:0:0:0 | & | -| main.rs:2728:13:2728:17 | &path | &T | main.rs:2700:5:2700:22 | Path | -| main.rs:2728:14:2728:17 | path | | main.rs:2700:5:2700:22 | Path | -| main.rs:2733:13:2733:17 | path1 | | main.rs:2700:5:2700:22 | Path | -| main.rs:2733:21:2733:31 | ...::new(...) | | main.rs:2700:5:2700:22 | Path | -| main.rs:2734:13:2734:17 | path2 | | {EXTERNAL LOCATION} | Result | -| main.rs:2734:13:2734:17 | path2 | E | file://:0:0:0:0 | () | -| main.rs:2734:13:2734:17 | path2 | T | main.rs:2712:5:2712:25 | PathBuf | -| main.rs:2734:21:2734:25 | path1 | | main.rs:2700:5:2700:22 | Path | -| main.rs:2734:21:2734:40 | path1.canonicalize() | | {EXTERNAL LOCATION} | Result | -| main.rs:2734:21:2734:40 | path1.canonicalize() | E | file://:0:0:0:0 | () | -| main.rs:2734:21:2734:40 | path1.canonicalize() | T | main.rs:2712:5:2712:25 | PathBuf | -| main.rs:2735:13:2735:17 | path3 | | main.rs:2712:5:2712:25 | PathBuf | -| main.rs:2735:21:2735:25 | path2 | | {EXTERNAL LOCATION} | Result | -| main.rs:2735:21:2735:25 | path2 | E | file://:0:0:0:0 | () | -| main.rs:2735:21:2735:25 | path2 | T | main.rs:2712:5:2712:25 | PathBuf | -| main.rs:2735:21:2735:34 | path2.unwrap() | | main.rs:2712:5:2712:25 | PathBuf | -| main.rs:2737:13:2737:20 | pathbuf1 | | main.rs:2712:5:2712:25 | PathBuf | -| main.rs:2737:24:2737:37 | ...::new(...) | | main.rs:2712:5:2712:25 | PathBuf | -| main.rs:2738:24:2738:31 | pathbuf1 | | main.rs:2712:5:2712:25 | PathBuf | -| main.rs:2745:14:2745:18 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2745:14:2745:18 | SelfParam | &T | main.rs:2744:5:2746:5 | Self [trait MyTrait] | -| main.rs:2752:14:2752:18 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2752:14:2752:18 | SelfParam | &T | main.rs:2748:5:2749:19 | S | -| main.rs:2752:14:2752:18 | SelfParam | &T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2752:28:2754:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2753:13:2753:16 | self | | file://:0:0:0:0 | & | -| main.rs:2753:13:2753:16 | self | &T | main.rs:2748:5:2749:19 | S | -| main.rs:2753:13:2753:16 | self | &T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2753:13:2753:18 | self.0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2758:14:2758:18 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2758:14:2758:18 | SelfParam | &T | main.rs:2748:5:2749:19 | S | -| main.rs:2758:14:2758:18 | SelfParam | &T.T | main.rs:2748:5:2749:19 | S | -| main.rs:2758:14:2758:18 | SelfParam | &T.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2758:28:2760:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2759:13:2759:16 | self | | file://:0:0:0:0 | & | -| main.rs:2759:13:2759:16 | self | &T | main.rs:2748:5:2749:19 | S | -| main.rs:2759:13:2759:16 | self | &T.T | main.rs:2748:5:2749:19 | S | -| main.rs:2759:13:2759:16 | self | &T.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2759:13:2759:18 | self.0 | | main.rs:2748:5:2749:19 | S | -| main.rs:2759:13:2759:18 | self.0 | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2759:13:2759:21 | ... .0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2764:15:2764:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2764:15:2764:19 | SelfParam | &T | main.rs:2748:5:2749:19 | S | -| main.rs:2764:15:2764:19 | SelfParam | &T.T | main.rs:2763:10:2763:16 | T | -| main.rs:2764:33:2766:9 | { ... } | | main.rs:2748:5:2749:19 | S | -| main.rs:2764:33:2766:9 | { ... } | T | main.rs:2748:5:2749:19 | S | -| main.rs:2764:33:2766:9 | { ... } | T.T | main.rs:2763:10:2763:16 | T | -| main.rs:2765:13:2765:24 | S(...) | | main.rs:2748:5:2749:19 | S | -| main.rs:2765:13:2765:24 | S(...) | T | main.rs:2748:5:2749:19 | S | -| main.rs:2765:13:2765:24 | S(...) | T.T | main.rs:2763:10:2763:16 | T | -| main.rs:2765:15:2765:23 | S(...) | | main.rs:2748:5:2749:19 | S | -| main.rs:2765:15:2765:23 | S(...) | T | main.rs:2763:10:2763:16 | T | -| main.rs:2765:17:2765:20 | self | | file://:0:0:0:0 | & | -| main.rs:2765:17:2765:20 | self | &T | main.rs:2748:5:2749:19 | S | -| main.rs:2765:17:2765:20 | self | &T.T | main.rs:2763:10:2763:16 | T | -| main.rs:2765:17:2765:22 | self.0 | | main.rs:2763:10:2763:16 | T | -| main.rs:2769:14:2769:14 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2769:48:2786:5 | { ... } | | {EXTERNAL LOCATION} | Box | -| main.rs:2769:48:2786:5 | { ... } | A | {EXTERNAL LOCATION} | Global | -| main.rs:2769:48:2786:5 | { ... } | T | main.rs:2744:5:2746:5 | dyn MyTrait | -| main.rs:2769:48:2786:5 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2770:13:2770:13 | x | | main.rs:2748:5:2749:19 | S | -| main.rs:2770:13:2770:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2770:17:2775:9 | if b {...} else {...} | | main.rs:2748:5:2749:19 | S | -| main.rs:2770:17:2775:9 | if b {...} else {...} | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2770:20:2770:20 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2770:22:2773:9 | { ... } | | main.rs:2748:5:2749:19 | S | -| main.rs:2770:22:2773:9 | { ... } | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2771:17:2771:17 | y | | main.rs:2748:5:2749:19 | S | -| main.rs:2771:17:2771:17 | y | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2771:21:2771:38 | ...::default(...) | | main.rs:2748:5:2749:19 | S | -| main.rs:2771:21:2771:38 | ...::default(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2772:13:2772:13 | y | | main.rs:2748:5:2749:19 | S | -| main.rs:2772:13:2772:13 | y | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2773:16:2775:9 | { ... } | | main.rs:2748:5:2749:19 | S | -| main.rs:2773:16:2775:9 | { ... } | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2774:13:2774:16 | S(...) | | main.rs:2748:5:2749:19 | S | -| main.rs:2774:13:2774:16 | S(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2774:15:2774:15 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2779:13:2779:13 | x | | main.rs:2744:5:2746:5 | dyn MyTrait | -| main.rs:2779:13:2779:13 | x | | main.rs:2748:5:2749:19 | S | -| main.rs:2779:13:2779:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2779:13:2779:13 | x | dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2779:17:2779:20 | S(...) | | main.rs:2744:5:2746:5 | dyn MyTrait | -| main.rs:2779:17:2779:20 | S(...) | | main.rs:2748:5:2749:19 | S | -| main.rs:2779:17:2779:20 | S(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2779:17:2779:20 | S(...) | dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2779:19:2779:19 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2780:9:2785:9 | if b {...} else {...} | | {EXTERNAL LOCATION} | Box | -| main.rs:2780:9:2785:9 | if b {...} else {...} | A | {EXTERNAL LOCATION} | Global | -| main.rs:2780:9:2785:9 | if b {...} else {...} | T | main.rs:2744:5:2746:5 | dyn MyTrait | -| main.rs:2780:9:2785:9 | if b {...} else {...} | T | main.rs:2748:5:2749:19 | S | -| main.rs:2780:9:2785:9 | if b {...} else {...} | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2780:9:2785:9 | if b {...} else {...} | T.T | main.rs:2748:5:2749:19 | S | -| main.rs:2780:9:2785:9 | if b {...} else {...} | T.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2780:9:2785:9 | if b {...} else {...} | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2780:12:2780:12 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2780:14:2783:9 | { ... } | | {EXTERNAL LOCATION} | Box | -| main.rs:2780:14:2783:9 | { ... } | A | {EXTERNAL LOCATION} | Global | -| main.rs:2780:14:2783:9 | { ... } | T | main.rs:2744:5:2746:5 | dyn MyTrait | -| main.rs:2780:14:2783:9 | { ... } | T | main.rs:2748:5:2749:19 | S | -| main.rs:2780:14:2783:9 | { ... } | T.T | main.rs:2748:5:2749:19 | S | -| main.rs:2780:14:2783:9 | { ... } | T.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2780:14:2783:9 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2781:17:2781:17 | x | | main.rs:2744:5:2746:5 | dyn MyTrait | -| main.rs:2781:17:2781:17 | x | | main.rs:2748:5:2749:19 | S | -| main.rs:2781:17:2781:17 | x | T | main.rs:2748:5:2749:19 | S | -| main.rs:2781:17:2781:17 | x | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2781:17:2781:17 | x | dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2781:21:2781:21 | x | | main.rs:2744:5:2746:5 | dyn MyTrait | -| main.rs:2781:21:2781:21 | x | | main.rs:2748:5:2749:19 | S | -| main.rs:2781:21:2781:21 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2781:21:2781:21 | x | dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2781:21:2781:26 | x.m2() | | main.rs:2744:5:2746:5 | dyn MyTrait | -| main.rs:2781:21:2781:26 | x.m2() | | main.rs:2748:5:2749:19 | S | -| main.rs:2781:21:2781:26 | x.m2() | T | main.rs:2748:5:2749:19 | S | -| main.rs:2781:21:2781:26 | x.m2() | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2781:21:2781:26 | x.m2() | dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2782:13:2782:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2782:13:2782:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2782:13:2782:23 | ...::new(...) | T | main.rs:2744:5:2746:5 | dyn MyTrait | -| main.rs:2782:13:2782:23 | ...::new(...) | T | main.rs:2748:5:2749:19 | S | -| main.rs:2782:13:2782:23 | ...::new(...) | T.T | main.rs:2748:5:2749:19 | S | -| main.rs:2782:13:2782:23 | ...::new(...) | T.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2782:13:2782:23 | ...::new(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2782:22:2782:22 | x | | main.rs:2744:5:2746:5 | dyn MyTrait | -| main.rs:2782:22:2782:22 | x | | main.rs:2748:5:2749:19 | S | -| main.rs:2782:22:2782:22 | x | T | main.rs:2748:5:2749:19 | S | -| main.rs:2782:22:2782:22 | x | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2782:22:2782:22 | x | dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2783:16:2785:9 | { ... } | | {EXTERNAL LOCATION} | Box | -| main.rs:2783:16:2785:9 | { ... } | A | {EXTERNAL LOCATION} | Global | -| main.rs:2783:16:2785:9 | { ... } | T | main.rs:2744:5:2746:5 | dyn MyTrait | -| main.rs:2783:16:2785:9 | { ... } | T | main.rs:2748:5:2749:19 | S | -| main.rs:2783:16:2785:9 | { ... } | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2783:16:2785:9 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2784:13:2784:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2784:13:2784:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2784:13:2784:23 | ...::new(...) | T | main.rs:2744:5:2746:5 | dyn MyTrait | -| main.rs:2784:13:2784:23 | ...::new(...) | T | main.rs:2748:5:2749:19 | S | -| main.rs:2784:13:2784:23 | ...::new(...) | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2784:13:2784:23 | ...::new(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2784:22:2784:22 | x | | main.rs:2744:5:2746:5 | dyn MyTrait | -| main.rs:2784:22:2784:22 | x | | main.rs:2748:5:2749:19 | S | -| main.rs:2784:22:2784:22 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2784:22:2784:22 | x | dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2796:5:2796:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:2797:5:2797:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:2797:20:2797:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:2797:41:2797:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:2814:5:2814:15 | ...::f(...) | | {EXTERNAL LOCATION} | trait Future | -| main.rs:2827:5:2827:20 | ...::f(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2827:5:2827:20 | ...::f(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2827:5:2827:20 | ...::f(...) | T | main.rs:2744:5:2746:5 | dyn MyTrait | -| main.rs:2827:5:2827:20 | ...::f(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2827:16:2827:19 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1502:18:1502:41 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1502:18:1502:41 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1502:26:1502:41 | ...::m2(...) | | file://:0:0:0:0 | & | +| main.rs:1502:26:1502:41 | ...::m2(...) | &T | main.rs:1451:5:1452:14 | S2 | +| main.rs:1502:38:1502:40 | &x3 | | file://:0:0:0:0 | & | +| main.rs:1502:38:1502:40 | &x3 | &T | main.rs:1448:5:1449:19 | S | +| main.rs:1502:38:1502:40 | &x3 | &T.T | main.rs:1451:5:1452:14 | S2 | +| main.rs:1502:39:1502:40 | x3 | | main.rs:1448:5:1449:19 | S | +| main.rs:1502:39:1502:40 | x3 | T | main.rs:1451:5:1452:14 | S2 | +| main.rs:1503:18:1503:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1503:18:1503:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1503:18:1503:41 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1503:18:1503:41 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1503:26:1503:41 | ...::m3(...) | | file://:0:0:0:0 | & | +| main.rs:1503:26:1503:41 | ...::m3(...) | &T | main.rs:1451:5:1452:14 | S2 | +| main.rs:1503:38:1503:40 | &x3 | | file://:0:0:0:0 | & | +| main.rs:1503:38:1503:40 | &x3 | &T | main.rs:1448:5:1449:19 | S | +| main.rs:1503:38:1503:40 | &x3 | &T.T | main.rs:1451:5:1452:14 | S2 | +| main.rs:1503:39:1503:40 | x3 | | main.rs:1448:5:1449:19 | S | +| main.rs:1503:39:1503:40 | x3 | T | main.rs:1451:5:1452:14 | S2 | +| main.rs:1505:13:1505:14 | x4 | | file://:0:0:0:0 | & | +| main.rs:1505:13:1505:14 | x4 | &T | main.rs:1448:5:1449:19 | S | +| main.rs:1505:13:1505:14 | x4 | &T.T | main.rs:1451:5:1452:14 | S2 | +| main.rs:1505:18:1505:23 | &... | | file://:0:0:0:0 | & | +| main.rs:1505:18:1505:23 | &... | &T | main.rs:1448:5:1449:19 | S | +| main.rs:1505:18:1505:23 | &... | &T.T | main.rs:1451:5:1452:14 | S2 | +| main.rs:1505:19:1505:23 | S(...) | | main.rs:1448:5:1449:19 | S | +| main.rs:1505:19:1505:23 | S(...) | T | main.rs:1451:5:1452:14 | S2 | +| main.rs:1505:21:1505:22 | S2 | | main.rs:1451:5:1452:14 | S2 | +| main.rs:1507:18:1507:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1507:18:1507:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1507:18:1507:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1507:18:1507:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1507:26:1507:27 | x4 | | file://:0:0:0:0 | & | +| main.rs:1507:26:1507:27 | x4 | &T | main.rs:1448:5:1449:19 | S | +| main.rs:1507:26:1507:27 | x4 | &T.T | main.rs:1451:5:1452:14 | S2 | +| main.rs:1507:26:1507:32 | x4.m2() | | file://:0:0:0:0 | & | +| main.rs:1507:26:1507:32 | x4.m2() | &T | main.rs:1451:5:1452:14 | S2 | +| main.rs:1508:18:1508:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1508:18:1508:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1508:18:1508:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1508:18:1508:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1508:26:1508:27 | x4 | | file://:0:0:0:0 | & | +| main.rs:1508:26:1508:27 | x4 | &T | main.rs:1448:5:1449:19 | S | +| main.rs:1508:26:1508:27 | x4 | &T.T | main.rs:1451:5:1452:14 | S2 | +| main.rs:1508:26:1508:32 | x4.m3() | | file://:0:0:0:0 | & | +| main.rs:1508:26:1508:32 | x4.m3() | &T | main.rs:1451:5:1452:14 | S2 | +| main.rs:1510:13:1510:14 | x5 | | file://:0:0:0:0 | & | +| main.rs:1510:13:1510:14 | x5 | &T | main.rs:1448:5:1449:19 | S | +| main.rs:1510:13:1510:14 | x5 | &T.T | main.rs:1451:5:1452:14 | S2 | +| main.rs:1510:18:1510:23 | &... | | file://:0:0:0:0 | & | +| main.rs:1510:18:1510:23 | &... | &T | main.rs:1448:5:1449:19 | S | +| main.rs:1510:18:1510:23 | &... | &T.T | main.rs:1451:5:1452:14 | S2 | +| main.rs:1510:19:1510:23 | S(...) | | main.rs:1448:5:1449:19 | S | +| main.rs:1510:19:1510:23 | S(...) | T | main.rs:1451:5:1452:14 | S2 | +| main.rs:1510:21:1510:22 | S2 | | main.rs:1451:5:1452:14 | S2 | +| main.rs:1512:18:1512:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1512:18:1512:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1512:18:1512:32 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1512:18:1512:32 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1512:26:1512:27 | x5 | | file://:0:0:0:0 | & | +| main.rs:1512:26:1512:27 | x5 | &T | main.rs:1448:5:1449:19 | S | +| main.rs:1512:26:1512:27 | x5 | &T.T | main.rs:1451:5:1452:14 | S2 | +| main.rs:1512:26:1512:32 | x5.m1() | | main.rs:1451:5:1452:14 | S2 | +| main.rs:1513:18:1513:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1513:18:1513:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1513:18:1513:29 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1513:18:1513:29 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1513:26:1513:27 | x5 | | file://:0:0:0:0 | & | +| main.rs:1513:26:1513:27 | x5 | &T | main.rs:1448:5:1449:19 | S | +| main.rs:1513:26:1513:27 | x5 | &T.T | main.rs:1451:5:1452:14 | S2 | +| main.rs:1513:26:1513:29 | x5.0 | | main.rs:1451:5:1452:14 | S2 | +| main.rs:1515:13:1515:14 | x6 | | file://:0:0:0:0 | & | +| main.rs:1515:13:1515:14 | x6 | &T | main.rs:1448:5:1449:19 | S | +| main.rs:1515:13:1515:14 | x6 | &T.T | main.rs:1451:5:1452:14 | S2 | +| main.rs:1515:18:1515:23 | &... | | file://:0:0:0:0 | & | +| main.rs:1515:18:1515:23 | &... | &T | main.rs:1448:5:1449:19 | S | +| main.rs:1515:18:1515:23 | &... | &T.T | main.rs:1451:5:1452:14 | S2 | +| main.rs:1515:19:1515:23 | S(...) | | main.rs:1448:5:1449:19 | S | +| main.rs:1515:19:1515:23 | S(...) | T | main.rs:1451:5:1452:14 | S2 | +| main.rs:1515:21:1515:22 | S2 | | main.rs:1451:5:1452:14 | S2 | +| main.rs:1518:18:1518:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1518:18:1518:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1518:18:1518:35 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1518:18:1518:35 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1518:26:1518:30 | (...) | | main.rs:1448:5:1449:19 | S | +| main.rs:1518:26:1518:30 | (...) | T | main.rs:1451:5:1452:14 | S2 | +| main.rs:1518:26:1518:35 | ... .m1() | | main.rs:1451:5:1452:14 | S2 | +| main.rs:1518:27:1518:29 | * ... | | main.rs:1448:5:1449:19 | S | +| main.rs:1518:27:1518:29 | * ... | T | main.rs:1451:5:1452:14 | S2 | +| main.rs:1518:28:1518:29 | x6 | | file://:0:0:0:0 | & | +| main.rs:1518:28:1518:29 | x6 | &T | main.rs:1448:5:1449:19 | S | +| main.rs:1518:28:1518:29 | x6 | &T.T | main.rs:1451:5:1452:14 | S2 | +| main.rs:1520:13:1520:14 | x7 | | main.rs:1448:5:1449:19 | S | +| main.rs:1520:13:1520:14 | x7 | T | file://:0:0:0:0 | & | +| main.rs:1520:13:1520:14 | x7 | T.&T | main.rs:1451:5:1452:14 | S2 | +| main.rs:1520:18:1520:23 | S(...) | | main.rs:1448:5:1449:19 | S | +| main.rs:1520:18:1520:23 | S(...) | T | file://:0:0:0:0 | & | +| main.rs:1520:18:1520:23 | S(...) | T.&T | main.rs:1451:5:1452:14 | S2 | +| main.rs:1520:20:1520:22 | &S2 | | file://:0:0:0:0 | & | +| main.rs:1520:20:1520:22 | &S2 | &T | main.rs:1451:5:1452:14 | S2 | +| main.rs:1520:21:1520:22 | S2 | | main.rs:1451:5:1452:14 | S2 | +| main.rs:1523:13:1523:13 | t | | file://:0:0:0:0 | & | +| main.rs:1523:13:1523:13 | t | &T | main.rs:1451:5:1452:14 | S2 | +| main.rs:1523:17:1523:18 | x7 | | main.rs:1448:5:1449:19 | S | +| main.rs:1523:17:1523:18 | x7 | T | file://:0:0:0:0 | & | +| main.rs:1523:17:1523:18 | x7 | T.&T | main.rs:1451:5:1452:14 | S2 | +| main.rs:1523:17:1523:23 | x7.m1() | | file://:0:0:0:0 | & | +| main.rs:1523:17:1523:23 | x7.m1() | &T | main.rs:1451:5:1452:14 | S2 | +| main.rs:1524:18:1524:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1524:18:1524:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1524:18:1524:27 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1524:18:1524:27 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1524:26:1524:27 | x7 | | main.rs:1448:5:1449:19 | S | +| main.rs:1524:26:1524:27 | x7 | T | file://:0:0:0:0 | & | +| main.rs:1524:26:1524:27 | x7 | T.&T | main.rs:1451:5:1452:14 | S2 | +| main.rs:1526:13:1526:14 | x9 | | {EXTERNAL LOCATION} | String | +| main.rs:1526:26:1526:32 | "Hello" | | file://:0:0:0:0 | & | +| main.rs:1526:26:1526:32 | "Hello" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1526:26:1526:44 | "Hello".to_string() | | {EXTERNAL LOCATION} | String | +| main.rs:1530:13:1530:13 | u | | {EXTERNAL LOCATION} | Result | +| main.rs:1530:13:1530:13 | u | T | {EXTERNAL LOCATION} | u32 | +| main.rs:1530:17:1530:18 | x9 | | {EXTERNAL LOCATION} | String | +| main.rs:1530:17:1530:33 | x9.parse() | | {EXTERNAL LOCATION} | Result | +| main.rs:1530:17:1530:33 | x9.parse() | T | {EXTERNAL LOCATION} | u32 | +| main.rs:1532:13:1532:20 | my_thing | | file://:0:0:0:0 | & | +| main.rs:1532:13:1532:20 | my_thing | &T | main.rs:1454:5:1457:5 | MyInt | +| main.rs:1532:24:1532:39 | &... | | file://:0:0:0:0 | & | +| main.rs:1532:24:1532:39 | &... | &T | main.rs:1454:5:1457:5 | MyInt | +| main.rs:1532:25:1532:39 | MyInt {...} | | main.rs:1454:5:1457:5 | MyInt | +| main.rs:1532:36:1532:37 | 37 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1532:36:1532:37 | 37 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1534:13:1534:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1534:17:1534:24 | my_thing | | file://:0:0:0:0 | & | +| main.rs:1534:17:1534:24 | my_thing | &T | main.rs:1454:5:1457:5 | MyInt | +| main.rs:1534:17:1534:43 | my_thing.method_on_borrow() | | {EXTERNAL LOCATION} | i64 | +| main.rs:1535:18:1535:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1535:18:1535:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1535:18:1535:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1535:18:1535:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1535:26:1535:26 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1538:13:1538:20 | my_thing | | file://:0:0:0:0 | & | +| main.rs:1538:13:1538:20 | my_thing | &T | main.rs:1454:5:1457:5 | MyInt | +| main.rs:1538:24:1538:39 | &... | | file://:0:0:0:0 | & | +| main.rs:1538:24:1538:39 | &... | &T | main.rs:1454:5:1457:5 | MyInt | +| main.rs:1538:25:1538:39 | MyInt {...} | | main.rs:1454:5:1457:5 | MyInt | +| main.rs:1538:36:1538:37 | 38 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1538:36:1538:37 | 38 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1539:13:1539:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1539:17:1539:24 | my_thing | | file://:0:0:0:0 | & | +| main.rs:1539:17:1539:24 | my_thing | &T | main.rs:1454:5:1457:5 | MyInt | +| main.rs:1539:17:1539:47 | my_thing.method_not_on_borrow() | | {EXTERNAL LOCATION} | i64 | +| main.rs:1540:18:1540:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1540:18:1540:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1540:18:1540:26 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1540:18:1540:26 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1540:26:1540:26 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1547:16:1547:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1547:16:1547:20 | SelfParam | &T | main.rs:1545:5:1553:5 | Self [trait MyTrait] | +| main.rs:1550:16:1550:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1550:16:1550:20 | SelfParam | &T | main.rs:1545:5:1553:5 | Self [trait MyTrait] | +| main.rs:1550:32:1552:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1550:32:1552:9 | { ... } | &T | main.rs:1545:5:1553:5 | Self [trait MyTrait] | +| main.rs:1551:13:1551:16 | self | | file://:0:0:0:0 | & | +| main.rs:1551:13:1551:16 | self | &T | main.rs:1545:5:1553:5 | Self [trait MyTrait] | +| main.rs:1551:13:1551:22 | self.foo() | | file://:0:0:0:0 | & | +| main.rs:1551:13:1551:22 | self.foo() | &T | main.rs:1545:5:1553:5 | Self [trait MyTrait] | +| main.rs:1559:16:1559:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1559:16:1559:20 | SelfParam | &T | main.rs:1555:5:1555:20 | MyStruct | +| main.rs:1559:36:1561:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1559:36:1561:9 | { ... } | &T | main.rs:1555:5:1555:20 | MyStruct | +| main.rs:1560:13:1560:16 | self | | file://:0:0:0:0 | & | +| main.rs:1560:13:1560:16 | self | &T | main.rs:1555:5:1555:20 | MyStruct | +| main.rs:1565:13:1565:13 | x | | main.rs:1555:5:1555:20 | MyStruct | +| main.rs:1565:17:1565:24 | MyStruct | | main.rs:1555:5:1555:20 | MyStruct | +| main.rs:1566:9:1566:9 | x | | main.rs:1555:5:1555:20 | MyStruct | +| main.rs:1566:9:1566:15 | x.bar() | | file://:0:0:0:0 | & | +| main.rs:1566:9:1566:15 | x.bar() | &T | main.rs:1555:5:1555:20 | MyStruct | +| main.rs:1576:16:1576:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1576:16:1576:20 | SelfParam | &T | main.rs:1573:5:1573:26 | MyStruct | +| main.rs:1576:16:1576:20 | SelfParam | &T.T | main.rs:1575:10:1575:10 | T | +| main.rs:1576:32:1578:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1576:32:1578:9 | { ... } | &T | main.rs:1573:5:1573:26 | MyStruct | +| main.rs:1576:32:1578:9 | { ... } | &T.T | main.rs:1575:10:1575:10 | T | +| main.rs:1577:13:1577:16 | self | | file://:0:0:0:0 | & | +| main.rs:1577:13:1577:16 | self | &T | main.rs:1573:5:1573:26 | MyStruct | +| main.rs:1577:13:1577:16 | self | &T.T | main.rs:1575:10:1575:10 | T | +| main.rs:1582:13:1582:13 | x | | main.rs:1573:5:1573:26 | MyStruct | +| main.rs:1582:13:1582:13 | x | T | main.rs:1571:5:1571:13 | S | +| main.rs:1582:17:1582:27 | MyStruct(...) | | main.rs:1573:5:1573:26 | MyStruct | +| main.rs:1582:17:1582:27 | MyStruct(...) | T | main.rs:1571:5:1571:13 | S | +| main.rs:1582:26:1582:26 | S | | main.rs:1571:5:1571:13 | S | +| main.rs:1583:9:1583:9 | x | | main.rs:1573:5:1573:26 | MyStruct | +| main.rs:1583:9:1583:9 | x | T | main.rs:1571:5:1571:13 | S | +| main.rs:1583:9:1583:15 | x.foo() | | file://:0:0:0:0 | & | +| main.rs:1583:9:1583:15 | x.foo() | &T | main.rs:1573:5:1573:26 | MyStruct | +| main.rs:1583:9:1583:15 | x.foo() | &T.T | main.rs:1571:5:1571:13 | S | +| main.rs:1594:17:1594:25 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1594:17:1594:25 | SelfParam | &T | main.rs:1588:5:1591:5 | MyFlag | +| main.rs:1595:13:1595:16 | self | | file://:0:0:0:0 | & | +| main.rs:1595:13:1595:16 | self | &T | main.rs:1588:5:1591:5 | MyFlag | +| main.rs:1595:13:1595:21 | self.bool | | {EXTERNAL LOCATION} | bool | +| main.rs:1595:13:1595:34 | ... = ... | | file://:0:0:0:0 | () | +| main.rs:1595:25:1595:34 | ! ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1595:26:1595:29 | self | | file://:0:0:0:0 | & | +| main.rs:1595:26:1595:29 | self | &T | main.rs:1588:5:1591:5 | MyFlag | +| main.rs:1595:26:1595:34 | self.bool | | {EXTERNAL LOCATION} | bool | +| main.rs:1602:15:1602:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1602:15:1602:19 | SelfParam | &T | main.rs:1599:5:1599:13 | S | +| main.rs:1602:31:1604:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1602:31:1604:9 | { ... } | &T | main.rs:1599:5:1599:13 | S | +| main.rs:1603:13:1603:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1603:13:1603:19 | &... | &T | file://:0:0:0:0 | & | +| main.rs:1603:13:1603:19 | &... | &T | main.rs:1599:5:1599:13 | S | +| main.rs:1603:13:1603:19 | &... | &T.&T | file://:0:0:0:0 | & | +| main.rs:1603:13:1603:19 | &... | &T.&T.&T | file://:0:0:0:0 | & | +| main.rs:1603:13:1603:19 | &... | &T.&T.&T.&T | main.rs:1599:5:1599:13 | S | +| main.rs:1603:14:1603:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1603:14:1603:19 | &... | &T | file://:0:0:0:0 | & | +| main.rs:1603:14:1603:19 | &... | &T.&T | file://:0:0:0:0 | & | +| main.rs:1603:14:1603:19 | &... | &T.&T.&T | main.rs:1599:5:1599:13 | S | +| main.rs:1603:15:1603:19 | &self | | file://:0:0:0:0 | & | +| main.rs:1603:15:1603:19 | &self | &T | file://:0:0:0:0 | & | +| main.rs:1603:15:1603:19 | &self | &T.&T | main.rs:1599:5:1599:13 | S | +| main.rs:1603:16:1603:19 | self | | file://:0:0:0:0 | & | +| main.rs:1603:16:1603:19 | self | &T | main.rs:1599:5:1599:13 | S | +| main.rs:1606:15:1606:25 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1606:15:1606:25 | SelfParam | &T | main.rs:1599:5:1599:13 | S | +| main.rs:1606:37:1608:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1606:37:1608:9 | { ... } | &T | main.rs:1599:5:1599:13 | S | +| main.rs:1607:13:1607:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1607:13:1607:19 | &... | &T | file://:0:0:0:0 | & | +| main.rs:1607:13:1607:19 | &... | &T | main.rs:1599:5:1599:13 | S | +| main.rs:1607:13:1607:19 | &... | &T.&T | file://:0:0:0:0 | & | +| main.rs:1607:13:1607:19 | &... | &T.&T.&T | file://:0:0:0:0 | & | +| main.rs:1607:13:1607:19 | &... | &T.&T.&T.&T | main.rs:1599:5:1599:13 | S | +| main.rs:1607:14:1607:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1607:14:1607:19 | &... | &T | file://:0:0:0:0 | & | +| main.rs:1607:14:1607:19 | &... | &T.&T | file://:0:0:0:0 | & | +| main.rs:1607:14:1607:19 | &... | &T.&T.&T | main.rs:1599:5:1599:13 | S | +| main.rs:1607:15:1607:19 | &self | | file://:0:0:0:0 | & | +| main.rs:1607:15:1607:19 | &self | &T | file://:0:0:0:0 | & | +| main.rs:1607:15:1607:19 | &self | &T.&T | main.rs:1599:5:1599:13 | S | +| main.rs:1607:16:1607:19 | self | | file://:0:0:0:0 | & | +| main.rs:1607:16:1607:19 | self | &T | main.rs:1599:5:1599:13 | S | +| main.rs:1610:15:1610:15 | x | | file://:0:0:0:0 | & | +| main.rs:1610:15:1610:15 | x | &T | main.rs:1599:5:1599:13 | S | +| main.rs:1610:34:1612:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1610:34:1612:9 | { ... } | &T | main.rs:1599:5:1599:13 | S | +| main.rs:1611:13:1611:13 | x | | file://:0:0:0:0 | & | +| main.rs:1611:13:1611:13 | x | &T | main.rs:1599:5:1599:13 | S | +| main.rs:1614:15:1614:15 | x | | file://:0:0:0:0 | & | +| main.rs:1614:15:1614:15 | x | &T | main.rs:1599:5:1599:13 | S | +| main.rs:1614:34:1616:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1614:34:1616:9 | { ... } | &T | main.rs:1599:5:1599:13 | S | +| main.rs:1615:13:1615:16 | &... | | file://:0:0:0:0 | & | +| main.rs:1615:13:1615:16 | &... | &T | file://:0:0:0:0 | & | +| main.rs:1615:13:1615:16 | &... | &T | main.rs:1599:5:1599:13 | S | +| main.rs:1615:13:1615:16 | &... | &T.&T | file://:0:0:0:0 | & | +| main.rs:1615:13:1615:16 | &... | &T.&T.&T | file://:0:0:0:0 | & | +| main.rs:1615:13:1615:16 | &... | &T.&T.&T.&T | main.rs:1599:5:1599:13 | S | +| main.rs:1615:14:1615:16 | &... | | file://:0:0:0:0 | & | +| main.rs:1615:14:1615:16 | &... | &T | file://:0:0:0:0 | & | +| main.rs:1615:14:1615:16 | &... | &T.&T | file://:0:0:0:0 | & | +| main.rs:1615:14:1615:16 | &... | &T.&T.&T | main.rs:1599:5:1599:13 | S | +| main.rs:1615:15:1615:16 | &x | | file://:0:0:0:0 | & | +| main.rs:1615:15:1615:16 | &x | &T | file://:0:0:0:0 | & | +| main.rs:1615:15:1615:16 | &x | &T.&T | main.rs:1599:5:1599:13 | S | +| main.rs:1615:16:1615:16 | x | | file://:0:0:0:0 | & | +| main.rs:1615:16:1615:16 | x | &T | main.rs:1599:5:1599:13 | S | +| main.rs:1620:13:1620:13 | x | | main.rs:1599:5:1599:13 | S | +| main.rs:1620:17:1620:20 | S {...} | | main.rs:1599:5:1599:13 | S | +| main.rs:1621:9:1621:9 | x | | main.rs:1599:5:1599:13 | S | +| main.rs:1621:9:1621:14 | x.f1() | | file://:0:0:0:0 | & | +| main.rs:1621:9:1621:14 | x.f1() | &T | main.rs:1599:5:1599:13 | S | +| main.rs:1622:9:1622:9 | x | | main.rs:1599:5:1599:13 | S | +| main.rs:1622:9:1622:14 | x.f2() | | file://:0:0:0:0 | & | +| main.rs:1622:9:1622:14 | x.f2() | &T | main.rs:1599:5:1599:13 | S | +| main.rs:1623:9:1623:17 | ...::f3(...) | | file://:0:0:0:0 | & | +| main.rs:1623:9:1623:17 | ...::f3(...) | &T | main.rs:1599:5:1599:13 | S | +| main.rs:1623:15:1623:16 | &x | | file://:0:0:0:0 | & | +| main.rs:1623:15:1623:16 | &x | &T | main.rs:1599:5:1599:13 | S | +| main.rs:1623:16:1623:16 | x | | main.rs:1599:5:1599:13 | S | +| main.rs:1625:13:1625:13 | n | | {EXTERNAL LOCATION} | bool | +| main.rs:1625:17:1625:24 | * ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1625:18:1625:24 | * ... | | file://:0:0:0:0 | & | +| main.rs:1625:18:1625:24 | * ... | &T | {EXTERNAL LOCATION} | bool | +| main.rs:1625:19:1625:24 | &... | | file://:0:0:0:0 | & | +| main.rs:1625:19:1625:24 | &... | &T | file://:0:0:0:0 | & | +| main.rs:1625:19:1625:24 | &... | &T.&T | {EXTERNAL LOCATION} | bool | +| main.rs:1625:20:1625:24 | &true | | file://:0:0:0:0 | & | +| main.rs:1625:20:1625:24 | &true | &T | {EXTERNAL LOCATION} | bool | +| main.rs:1625:21:1625:24 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1629:17:1629:20 | flag | | main.rs:1588:5:1591:5 | MyFlag | +| main.rs:1629:24:1629:41 | ...::default(...) | | main.rs:1588:5:1591:5 | MyFlag | +| main.rs:1630:22:1630:30 | &mut flag | | file://:0:0:0:0 | & | +| main.rs:1630:22:1630:30 | &mut flag | &T | main.rs:1588:5:1591:5 | MyFlag | +| main.rs:1630:27:1630:30 | flag | | main.rs:1588:5:1591:5 | MyFlag | +| main.rs:1631:18:1631:23 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1631:18:1631:23 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1631:18:1631:29 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1631:18:1631:29 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1631:26:1631:29 | flag | | main.rs:1588:5:1591:5 | MyFlag | +| main.rs:1646:43:1649:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1646:43:1649:5 | { ... } | E | main.rs:1638:5:1639:14 | S1 | +| main.rs:1646:43:1649:5 | { ... } | T | main.rs:1638:5:1639:14 | S1 | +| main.rs:1647:13:1647:13 | x | | main.rs:1638:5:1639:14 | S1 | +| main.rs:1647:17:1647:30 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1647:17:1647:30 | ...::Ok(...) | T | main.rs:1638:5:1639:14 | S1 | +| main.rs:1647:17:1647:31 | TryExpr | | main.rs:1638:5:1639:14 | S1 | +| main.rs:1647:28:1647:29 | S1 | | main.rs:1638:5:1639:14 | S1 | +| main.rs:1648:9:1648:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1648:9:1648:22 | ...::Ok(...) | E | main.rs:1638:5:1639:14 | S1 | +| main.rs:1648:9:1648:22 | ...::Ok(...) | T | main.rs:1638:5:1639:14 | S1 | +| main.rs:1648:20:1648:21 | S1 | | main.rs:1638:5:1639:14 | S1 | +| main.rs:1653:46:1657:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1653:46:1657:5 | { ... } | E | main.rs:1641:5:1642:14 | S2 | +| main.rs:1653:46:1657:5 | { ... } | T | main.rs:1638:5:1639:14 | S1 | +| main.rs:1654:13:1654:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1654:13:1654:13 | x | T | main.rs:1638:5:1639:14 | S1 | +| main.rs:1654:17:1654:30 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1654:17:1654:30 | ...::Ok(...) | T | main.rs:1638:5:1639:14 | S1 | +| main.rs:1654:28:1654:29 | S1 | | main.rs:1638:5:1639:14 | S1 | +| main.rs:1655:13:1655:13 | y | | main.rs:1638:5:1639:14 | S1 | +| main.rs:1655:17:1655:17 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1655:17:1655:17 | x | T | main.rs:1638:5:1639:14 | S1 | +| main.rs:1655:17:1655:18 | TryExpr | | main.rs:1638:5:1639:14 | S1 | +| main.rs:1656:9:1656:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1656:9:1656:22 | ...::Ok(...) | E | main.rs:1641:5:1642:14 | S2 | +| main.rs:1656:9:1656:22 | ...::Ok(...) | T | main.rs:1638:5:1639:14 | S1 | +| main.rs:1656:20:1656:21 | S1 | | main.rs:1638:5:1639:14 | S1 | +| main.rs:1661:40:1666:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1661:40:1666:5 | { ... } | E | main.rs:1641:5:1642:14 | S2 | +| main.rs:1661:40:1666:5 | { ... } | T | main.rs:1638:5:1639:14 | S1 | +| main.rs:1662:13:1662:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1662:13:1662:13 | x | T | {EXTERNAL LOCATION} | Result | +| main.rs:1662:13:1662:13 | x | T.T | main.rs:1638:5:1639:14 | S1 | +| main.rs:1662:17:1662:42 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1662:17:1662:42 | ...::Ok(...) | T | {EXTERNAL LOCATION} | Result | +| main.rs:1662:17:1662:42 | ...::Ok(...) | T.T | main.rs:1638:5:1639:14 | S1 | +| main.rs:1662:28:1662:41 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1662:28:1662:41 | ...::Ok(...) | T | main.rs:1638:5:1639:14 | S1 | +| main.rs:1662:39:1662:40 | S1 | | main.rs:1638:5:1639:14 | S1 | +| main.rs:1664:17:1664:17 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1664:17:1664:17 | x | T | {EXTERNAL LOCATION} | Result | +| main.rs:1664:17:1664:17 | x | T.T | main.rs:1638:5:1639:14 | S1 | +| main.rs:1664:17:1664:18 | TryExpr | | {EXTERNAL LOCATION} | Result | +| main.rs:1664:17:1664:18 | TryExpr | T | main.rs:1638:5:1639:14 | S1 | +| main.rs:1664:17:1664:29 | ... .map(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1664:24:1664:28 | \|...\| s | | {EXTERNAL LOCATION} | dyn FnOnce | +| main.rs:1664:24:1664:28 | \|...\| s | dyn(Args) | file://:0:0:0:0 | (T_1) | +| main.rs:1665:9:1665:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1665:9:1665:22 | ...::Ok(...) | E | main.rs:1641:5:1642:14 | S2 | +| main.rs:1665:9:1665:22 | ...::Ok(...) | T | main.rs:1638:5:1639:14 | S1 | +| main.rs:1665:20:1665:21 | S1 | | main.rs:1638:5:1639:14 | S1 | +| main.rs:1670:30:1670:34 | input | | {EXTERNAL LOCATION} | Result | +| main.rs:1670:30:1670:34 | input | E | main.rs:1638:5:1639:14 | S1 | +| main.rs:1670:30:1670:34 | input | T | main.rs:1670:20:1670:27 | T | +| main.rs:1670:69:1677:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1670:69:1677:5 | { ... } | E | main.rs:1638:5:1639:14 | S1 | +| main.rs:1670:69:1677:5 | { ... } | T | main.rs:1670:20:1670:27 | T | +| main.rs:1671:13:1671:17 | value | | main.rs:1670:20:1670:27 | T | +| main.rs:1671:21:1671:25 | input | | {EXTERNAL LOCATION} | Result | +| main.rs:1671:21:1671:25 | input | E | main.rs:1638:5:1639:14 | S1 | +| main.rs:1671:21:1671:25 | input | T | main.rs:1670:20:1670:27 | T | +| main.rs:1671:21:1671:26 | TryExpr | | main.rs:1670:20:1670:27 | T | +| main.rs:1672:22:1672:38 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1672:22:1672:38 | ...::Ok(...) | E | main.rs:1638:5:1639:14 | S1 | +| main.rs:1672:22:1672:38 | ...::Ok(...) | T | main.rs:1670:20:1670:27 | T | +| main.rs:1672:22:1675:10 | ... .and_then(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1672:22:1675:10 | ... .and_then(...) | E | main.rs:1638:5:1639:14 | S1 | +| main.rs:1672:33:1672:37 | value | | main.rs:1670:20:1670:27 | T | +| main.rs:1672:49:1675:9 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | +| main.rs:1672:49:1675:9 | \|...\| ... | dyn(Args) | file://:0:0:0:0 | (T_1) | +| main.rs:1672:49:1675:9 | \|...\| ... | dyn(Output) | {EXTERNAL LOCATION} | Result | +| main.rs:1672:49:1675:9 | \|...\| ... | dyn(Output).E | main.rs:1638:5:1639:14 | S1 | +| main.rs:1672:53:1675:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1672:53:1675:9 | { ... } | E | main.rs:1638:5:1639:14 | S1 | +| main.rs:1673:22:1673:27 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1673:22:1673:27 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1673:22:1673:30 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1673:22:1673:30 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1674:13:1674:34 | ...::Ok::<...>(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1674:13:1674:34 | ...::Ok::<...>(...) | E | main.rs:1638:5:1639:14 | S1 | +| main.rs:1676:9:1676:23 | ...::Err(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1676:9:1676:23 | ...::Err(...) | E | main.rs:1638:5:1639:14 | S1 | +| main.rs:1676:9:1676:23 | ...::Err(...) | T | main.rs:1670:20:1670:27 | T | +| main.rs:1676:21:1676:22 | S1 | | main.rs:1638:5:1639:14 | S1 | +| main.rs:1681:16:1681:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1681:16:1681:33 | ...::Ok(...) | E | main.rs:1638:5:1639:14 | S1 | +| main.rs:1681:16:1681:33 | ...::Ok(...) | T | main.rs:1638:5:1639:14 | S1 | +| main.rs:1681:27:1681:32 | result | | main.rs:1638:5:1639:14 | S1 | +| main.rs:1681:37:1681:52 | try_same_error(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1681:37:1681:52 | try_same_error(...) | E | main.rs:1638:5:1639:14 | S1 | +| main.rs:1681:37:1681:52 | try_same_error(...) | T | main.rs:1638:5:1639:14 | S1 | +| main.rs:1682:22:1682:27 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1682:22:1682:27 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1682:22:1682:35 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1682:22:1682:35 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1682:30:1682:35 | result | | main.rs:1638:5:1639:14 | S1 | +| main.rs:1685:16:1685:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1685:16:1685:33 | ...::Ok(...) | E | main.rs:1641:5:1642:14 | S2 | +| main.rs:1685:16:1685:33 | ...::Ok(...) | T | main.rs:1638:5:1639:14 | S1 | +| main.rs:1685:27:1685:32 | result | | main.rs:1638:5:1639:14 | S1 | +| main.rs:1685:37:1685:55 | try_convert_error(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1685:37:1685:55 | try_convert_error(...) | E | main.rs:1641:5:1642:14 | S2 | +| main.rs:1685:37:1685:55 | try_convert_error(...) | T | main.rs:1638:5:1639:14 | S1 | +| main.rs:1686:22:1686:27 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1686:22:1686:27 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1686:22:1686:35 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1686:22:1686:35 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1686:30:1686:35 | result | | main.rs:1638:5:1639:14 | S1 | +| main.rs:1689:16:1689:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1689:16:1689:33 | ...::Ok(...) | E | main.rs:1641:5:1642:14 | S2 | +| main.rs:1689:16:1689:33 | ...::Ok(...) | T | main.rs:1638:5:1639:14 | S1 | +| main.rs:1689:27:1689:32 | result | | main.rs:1638:5:1639:14 | S1 | +| main.rs:1689:37:1689:49 | try_chained(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1689:37:1689:49 | try_chained(...) | E | main.rs:1641:5:1642:14 | S2 | +| main.rs:1689:37:1689:49 | try_chained(...) | T | main.rs:1638:5:1639:14 | S1 | +| main.rs:1690:22:1690:27 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1690:22:1690:27 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1690:22:1690:35 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1690:22:1690:35 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1690:30:1690:35 | result | | main.rs:1638:5:1639:14 | S1 | +| main.rs:1693:16:1693:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1693:16:1693:33 | ...::Ok(...) | E | main.rs:1638:5:1639:14 | S1 | +| main.rs:1693:16:1693:33 | ...::Ok(...) | T | main.rs:1638:5:1639:14 | S1 | +| main.rs:1693:27:1693:32 | result | | main.rs:1638:5:1639:14 | S1 | +| main.rs:1693:37:1693:63 | try_complex(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1693:37:1693:63 | try_complex(...) | E | main.rs:1638:5:1639:14 | S1 | +| main.rs:1693:37:1693:63 | try_complex(...) | T | main.rs:1638:5:1639:14 | S1 | +| main.rs:1693:49:1693:62 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1693:49:1693:62 | ...::Ok(...) | E | main.rs:1638:5:1639:14 | S1 | +| main.rs:1693:49:1693:62 | ...::Ok(...) | T | main.rs:1638:5:1639:14 | S1 | +| main.rs:1693:60:1693:61 | S1 | | main.rs:1638:5:1639:14 | S1 | +| main.rs:1694:22:1694:27 | "{:?}\\n" | | file://:0:0:0:0 | & | +| main.rs:1694:22:1694:27 | "{:?}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1694:22:1694:35 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1694:22:1694:35 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:1694:30:1694:35 | result | | main.rs:1638:5:1639:14 | S1 | +| main.rs:1701:13:1701:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1701:22:1701:22 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1702:13:1702:13 | y | | {EXTERNAL LOCATION} | i32 | +| main.rs:1702:17:1702:17 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1703:13:1703:13 | z | | {EXTERNAL LOCATION} | i32 | +| main.rs:1703:17:1703:17 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1703:17:1703:21 | ... + ... | | {EXTERNAL LOCATION} | i32 | +| main.rs:1703:21:1703:21 | y | | {EXTERNAL LOCATION} | i32 | +| main.rs:1704:13:1704:13 | z | | {EXTERNAL LOCATION} | i32 | +| main.rs:1704:17:1704:17 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1704:17:1704:23 | x.abs() | | {EXTERNAL LOCATION} | i32 | +| main.rs:1705:13:1705:13 | c | | {EXTERNAL LOCATION} | char | +| main.rs:1705:17:1705:19 | 'c' | | {EXTERNAL LOCATION} | char | +| main.rs:1706:13:1706:17 | hello | | file://:0:0:0:0 | & | +| main.rs:1706:13:1706:17 | hello | &T | {EXTERNAL LOCATION} | str | +| main.rs:1706:21:1706:27 | "Hello" | | file://:0:0:0:0 | & | +| main.rs:1706:21:1706:27 | "Hello" | &T | {EXTERNAL LOCATION} | str | +| main.rs:1707:13:1707:13 | f | | {EXTERNAL LOCATION} | f64 | +| main.rs:1707:17:1707:24 | 123.0f64 | | {EXTERNAL LOCATION} | f64 | +| main.rs:1708:13:1708:13 | t | | {EXTERNAL LOCATION} | bool | +| main.rs:1708:17:1708:20 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1709:13:1709:13 | f | | {EXTERNAL LOCATION} | bool | +| main.rs:1709:17:1709:21 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1716:13:1716:13 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:1716:17:1716:20 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1716:17:1716:29 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1716:25:1716:29 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1717:13:1717:13 | y | | {EXTERNAL LOCATION} | bool | +| main.rs:1717:17:1717:20 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1717:17:1717:29 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1717:25:1717:29 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1719:17:1719:17 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1720:13:1720:16 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:1720:20:1720:21 | 34 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1720:20:1720:27 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1720:26:1720:27 | 33 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1721:12:1721:15 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:1722:17:1722:17 | z | | file://:0:0:0:0 | () | +| main.rs:1722:21:1722:27 | (...) | | file://:0:0:0:0 | () | +| main.rs:1722:22:1722:22 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1722:22:1722:26 | ... = ... | | file://:0:0:0:0 | () | +| main.rs:1722:26:1722:26 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1724:13:1724:13 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1724:13:1724:17 | ... = ... | | file://:0:0:0:0 | () | +| main.rs:1724:17:1724:17 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1726:9:1726:9 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1740:30:1742:9 | { ... } | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1741:13:1741:31 | Vec2 {...} | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1741:23:1741:23 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1741:23:1741:23 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1741:29:1741:29 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1741:29:1741:29 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1748:16:1748:19 | SelfParam | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1748:22:1748:24 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1748:41:1753:9 | { ... } | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1749:13:1752:13 | Vec2 {...} | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1750:20:1750:23 | self | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1750:20:1750:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1750:20:1750:33 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1750:29:1750:31 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1750:29:1750:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1751:20:1751:23 | self | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1751:20:1751:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1751:20:1751:33 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1751:29:1751:31 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1751:29:1751:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1758:23:1758:31 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1758:23:1758:31 | SelfParam | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1758:34:1758:36 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1759:13:1759:16 | self | | file://:0:0:0:0 | & | +| main.rs:1759:13:1759:16 | self | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1759:13:1759:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1759:13:1759:27 | ... += ... | | file://:0:0:0:0 | () | +| main.rs:1759:23:1759:25 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1759:23:1759:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1760:13:1760:16 | self | | file://:0:0:0:0 | & | +| main.rs:1760:13:1760:16 | self | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1760:13:1760:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1760:13:1760:27 | ... += ... | | file://:0:0:0:0 | () | +| main.rs:1760:23:1760:25 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1760:23:1760:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1766:16:1766:19 | SelfParam | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1766:22:1766:24 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1766:41:1771:9 | { ... } | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1767:13:1770:13 | Vec2 {...} | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1768:20:1768:23 | self | | main.rs:1733:5:1738: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:1733:5:1738:5 | Vec2 | +| main.rs:1768:29:1768:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1769:20:1769:23 | self | | main.rs:1733:5:1738: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:1733:5:1738:5 | Vec2 | +| main.rs:1769:29:1769:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1776:23:1776:31 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1776:23:1776:31 | SelfParam | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1776:34:1776:36 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1777:13:1777:16 | self | | file://:0:0:0:0 | & | +| main.rs:1777:13:1777:16 | self | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1777:13:1777:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1777:13:1777:27 | ... -= ... | | file://:0:0:0:0 | () | +| main.rs:1777:23:1777:25 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1777:23:1777:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1778:13:1778:16 | self | | file://:0:0:0:0 | & | +| main.rs:1778:13:1778:16 | self | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1778:13:1778:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1778:13:1778:27 | ... -= ... | | file://:0:0:0:0 | () | +| main.rs:1778:23:1778:25 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1778:23:1778:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1784:16:1784:19 | SelfParam | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1784:22:1784:24 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1784:41:1789:9 | { ... } | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1785:13:1788:13 | Vec2 {...} | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1786:20:1786:23 | self | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1786:20:1786:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1786:20:1786:33 | ... * ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1786:29:1786:31 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1786:29:1786:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1787:20:1787:23 | self | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1787:20:1787:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1787:20:1787:33 | ... * ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1787:29:1787:31 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1787:29:1787:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1793:23:1793:31 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1793:23:1793:31 | SelfParam | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1793:34:1793:36 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1794:13:1794:16 | self | | file://:0:0:0:0 | & | +| main.rs:1794:13:1794:16 | self | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1794:13:1794:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1794:13:1794:27 | ... *= ... | | file://:0:0:0:0 | () | +| main.rs:1794:23:1794:25 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1794:23:1794:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1795:13:1795:16 | self | | file://:0:0:0:0 | & | +| main.rs:1795:13:1795:16 | self | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1795:13:1795:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1795:13:1795:27 | ... *= ... | | file://:0:0:0:0 | () | +| main.rs:1795:23:1795:25 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1795:23:1795:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1801:16:1801:19 | SelfParam | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1801:22:1801:24 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1801:41:1806:9 | { ... } | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1802:13:1805:13 | Vec2 {...} | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1803:20:1803:23 | self | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1803:20:1803:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1803:20:1803:33 | ... / ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1803:29:1803:31 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1803:29:1803:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1804:20:1804:23 | self | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1804:20:1804:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1804:20:1804:33 | ... / ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1804:29:1804:31 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1804:29:1804:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1810:23:1810:31 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1810:23:1810:31 | SelfParam | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1810:34:1810:36 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1811:13:1811:16 | self | | file://:0:0:0:0 | & | +| main.rs:1811:13:1811:16 | self | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1811:13:1811:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1811:13:1811:27 | ... /= ... | | file://:0:0:0:0 | () | +| main.rs:1811:23:1811:25 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1811:23:1811:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1812:13:1812:16 | self | | file://:0:0:0:0 | & | +| main.rs:1812:13:1812:16 | self | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1812:13:1812:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1812:13:1812:27 | ... /= ... | | file://:0:0:0:0 | () | +| main.rs:1812:23:1812:25 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1812:23:1812:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1818:16:1818:19 | SelfParam | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1818:22:1818:24 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1818:41:1823:9 | { ... } | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1819:13:1822:13 | Vec2 {...} | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1820:20:1820:23 | self | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1820:20:1820:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1820:20:1820:33 | ... % ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1820:29:1820:31 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1820:29:1820:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1821:20:1821:23 | self | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1821:20:1821:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1821:20:1821:33 | ... % ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1821:29:1821:31 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1821:29:1821:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1827:23:1827:31 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1827:23:1827:31 | SelfParam | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1827:34:1827:36 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1828:13:1828:16 | self | | file://:0:0:0:0 | & | +| main.rs:1828:13:1828:16 | self | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1828:13:1828:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1828:13:1828:27 | ... %= ... | | file://:0:0:0:0 | () | +| main.rs:1828:23:1828:25 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1828:23:1828:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1829:13:1829:16 | self | | file://:0:0:0:0 | & | +| main.rs:1829:13:1829:16 | self | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1829:13:1829:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1829:13:1829:27 | ... %= ... | | file://:0:0:0:0 | () | +| main.rs:1829:23:1829:25 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1829:23:1829:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1835:19:1835:22 | SelfParam | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1835:25:1835:27 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1835:44:1840:9 | { ... } | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1836:13:1839:13 | Vec2 {...} | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1837:20:1837:23 | self | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1837:20:1837:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1837:20:1837:33 | ... & ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1837:29:1837:31 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1837:29:1837:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1838:20:1838:23 | self | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1838:20:1838:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1838:20:1838:33 | ... & ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1838:29:1838:31 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1838:29:1838:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1844:26:1844:34 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1844:26:1844:34 | SelfParam | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1844:37:1844:39 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1845:13:1845:16 | self | | file://:0:0:0:0 | & | +| main.rs:1845:13:1845:16 | self | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1845:13:1845:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1845:13:1845:27 | ... &= ... | | file://:0:0:0:0 | () | +| main.rs:1845:23:1845:25 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1845:23:1845:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1846:13:1846:16 | self | | file://:0:0:0:0 | & | +| main.rs:1846:13:1846:16 | self | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1846:13:1846:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1846:13:1846:27 | ... &= ... | | file://:0:0:0:0 | () | +| main.rs:1846:23:1846:25 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1846:23:1846:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1852:18:1852:21 | SelfParam | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1852:24:1852:26 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1852:43:1857:9 | { ... } | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1853:13:1856:13 | Vec2 {...} | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1854:20:1854:23 | self | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1854:20:1854:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1854:20:1854:33 | ... \| ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1854:29:1854:31 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1854:29:1854:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1855:20:1855:23 | self | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1855:20:1855:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1855:20:1855:33 | ... \| ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1855:29:1855:31 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1855:29:1855:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1861:25:1861:33 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1861:25:1861:33 | SelfParam | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1861:36:1861:38 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1862:13:1862:16 | self | | file://:0:0:0:0 | & | +| main.rs:1862:13:1862:16 | self | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1862:13:1862:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1862:13:1862:27 | ... \|= ... | | file://:0:0:0:0 | () | +| main.rs:1862:23:1862:25 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1862:23:1862:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1863:13:1863:16 | self | | file://:0:0:0:0 | & | +| main.rs:1863:13:1863:16 | self | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1863:13:1863:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1863:13:1863:27 | ... \|= ... | | file://:0:0:0:0 | () | +| main.rs:1863:23:1863:25 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1863:23:1863:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1869:19:1869:22 | SelfParam | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1869:25:1869:27 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1869:44:1874:9 | { ... } | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1870:13:1873:13 | Vec2 {...} | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1871:20:1871:23 | self | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1871:20:1871:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1871:20:1871:33 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1871:29:1871:31 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1871:29:1871:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1872:20:1872:23 | self | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1872:20:1872:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1872:20:1872:33 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1872:29:1872:31 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1872:29:1872:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1878:26:1878:34 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1878:26:1878:34 | SelfParam | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1878:37:1878:39 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1879:13:1879:16 | self | | file://:0:0:0:0 | & | +| main.rs:1879:13:1879:16 | self | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1879:13:1879:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1879:13:1879:27 | ... ^= ... | | file://:0:0:0:0 | () | +| main.rs:1879:23:1879:25 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1879:23:1879:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1880:13:1880:16 | self | | file://:0:0:0:0 | & | +| main.rs:1880:13:1880:16 | self | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1880:13:1880:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1880:13:1880:27 | ... ^= ... | | file://:0:0:0:0 | () | +| main.rs:1880:23:1880:25 | rhs | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1880:23:1880:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1886:16:1886:19 | SelfParam | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1886:22:1886:24 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1886:40:1891:9 | { ... } | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1887:13:1890:13 | Vec2 {...} | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1888:20:1888:23 | self | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1888:20:1888:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1888:20:1888:32 | ... << ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1888:30:1888:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1889:20:1889:23 | self | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1889:20:1889:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1889:20:1889:32 | ... << ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1889:30:1889:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1895:23:1895:31 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1895:23:1895:31 | SelfParam | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1895:34:1895:36 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1896:13:1896:16 | self | | file://:0:0:0:0 | & | +| main.rs:1896:13:1896:16 | self | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1896:13:1896:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1896:13:1896:26 | ... <<= ... | | file://:0:0:0:0 | () | +| main.rs:1896:24:1896:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1897:13:1897:16 | self | | file://:0:0:0:0 | & | +| main.rs:1897:13:1897:16 | self | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1897:13:1897:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1897:13:1897:26 | ... <<= ... | | file://:0:0:0:0 | () | +| main.rs:1897:24:1897:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1903:16:1903:19 | SelfParam | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1903:22:1903:24 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1903:40:1908:9 | { ... } | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1904:13:1907:13 | Vec2 {...} | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1905:20:1905:23 | self | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1905:20:1905:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1905:20:1905:32 | ... >> ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1905:30:1905:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1906:20:1906:23 | self | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1906:20:1906:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1906:20:1906:32 | ... >> ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1906:30:1906:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1912:23:1912:31 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1912:23:1912:31 | SelfParam | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1912:34:1912:36 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1913:13:1913:16 | self | | file://:0:0:0:0 | & | +| main.rs:1913:13:1913:16 | self | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1913:13:1913:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1913:13:1913:26 | ... >>= ... | | file://:0:0:0:0 | () | +| main.rs:1913:24:1913:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1914:13:1914:16 | self | | file://:0:0:0:0 | & | +| main.rs:1914:13:1914:16 | self | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1914:13:1914:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1914:13:1914:26 | ... >>= ... | | file://:0:0:0:0 | () | +| main.rs:1914:24:1914:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1920:16:1920:19 | SelfParam | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1920:30:1925:9 | { ... } | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1921:13:1924:13 | Vec2 {...} | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1922:20:1922:26 | - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1922:21:1922:24 | self | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1922:21:1922:26 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1923:20:1923:26 | - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1923:21:1923:24 | self | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1923:21:1923:26 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1930:16:1930:19 | SelfParam | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1930:30:1935:9 | { ... } | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1931:13:1934:13 | Vec2 {...} | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1932:20:1932:26 | ! ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1932:21:1932:24 | self | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1932:21:1932:26 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1933:20:1933:26 | ! ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1933:21:1933:24 | self | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1933:21:1933:26 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1939:15:1939:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1939:15:1939:19 | SelfParam | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1939:22:1939:26 | other | | file://:0:0:0:0 | & | +| main.rs:1939:22:1939:26 | other | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1939:44:1941:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1940:13:1940:16 | self | | file://:0:0:0:0 | & | +| main.rs:1940:13:1940:16 | self | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1940:13:1940:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1940:13:1940:29 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1940:13:1940:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1940:23:1940:27 | other | | file://:0:0:0:0 | & | +| main.rs:1940:23:1940:27 | other | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1940:23:1940:29 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1940:34:1940:37 | self | | file://:0:0:0:0 | & | +| main.rs:1940:34:1940:37 | self | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1940:34:1940:39 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1940:34:1940:50 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1940:44:1940:48 | other | | file://:0:0:0:0 | & | +| main.rs:1940:44:1940:48 | other | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1940:44:1940:50 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1943:15:1943:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1943:15:1943:19 | SelfParam | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1943:22:1943:26 | other | | file://:0:0:0:0 | & | +| main.rs:1943:22:1943:26 | other | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1943:44:1945:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1944:13:1944:16 | self | | file://:0:0:0:0 | & | +| main.rs:1944:13:1944:16 | self | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1944:13:1944:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1944:13:1944:29 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1944:13:1944:50 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1944:23:1944:27 | other | | file://:0:0:0:0 | & | +| main.rs:1944:23:1944:27 | other | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1944:23:1944:29 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1944:34:1944:37 | self | | file://:0:0:0:0 | & | +| main.rs:1944:34:1944:37 | self | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1944:34:1944:39 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1944:34:1944:50 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1944:44:1944:48 | other | | file://:0:0:0:0 | & | +| main.rs:1944:44:1944:48 | other | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1944:44:1944:50 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1949:24:1949:28 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1949:24:1949:28 | SelfParam | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1949:31:1949:35 | other | | file://:0:0:0:0 | & | +| main.rs:1949:31:1949:35 | other | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1949:75:1951:9 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:1949:75:1951:9 | { ... } | T | {EXTERNAL LOCATION} | Ordering | +| main.rs:1950:13:1950:29 | (...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:1950:13:1950:63 | ... .partial_cmp(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:1950:13:1950:63 | ... .partial_cmp(...) | T | {EXTERNAL LOCATION} | Ordering | +| main.rs:1950:14:1950:17 | self | | file://:0:0:0:0 | & | +| main.rs:1950:14:1950:17 | self | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1950:14:1950:19 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1950:14:1950:28 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1950:23:1950:26 | self | | file://:0:0:0:0 | & | +| main.rs:1950:23:1950:26 | self | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1950:23:1950:28 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1950:43:1950:62 | &... | | file://:0:0:0:0 | & | +| main.rs:1950:43:1950:62 | &... | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:1950:44:1950:62 | (...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:1950:45:1950:49 | other | | file://:0:0:0:0 | & | +| main.rs:1950:45:1950:49 | other | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1950:45:1950:51 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1950:45:1950:61 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1950:55:1950:59 | other | | file://:0:0:0:0 | & | +| main.rs:1950:55:1950:59 | other | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1950:55:1950:61 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1953:15:1953:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1953:15:1953:19 | SelfParam | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1953:22:1953:26 | other | | file://:0:0:0:0 | & | +| main.rs:1953:22:1953:26 | other | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1953:44:1955:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1954:13:1954:16 | self | | file://:0:0:0:0 | & | +| main.rs:1954:13:1954:16 | self | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1954:13:1954:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1954:13:1954:28 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1954:13:1954:48 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1954:22:1954:26 | other | | file://:0:0:0:0 | & | +| main.rs:1954:22:1954:26 | other | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1954:22:1954:28 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1954:33:1954:36 | self | | file://:0:0:0:0 | & | +| main.rs:1954:33:1954:36 | self | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1954:33:1954:38 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1954:33:1954:48 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1954:42:1954:46 | other | | file://:0:0:0:0 | & | +| main.rs:1954:42:1954:46 | other | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1954:42:1954:48 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1957:15:1957:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1957:15:1957:19 | SelfParam | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1957:22:1957:26 | other | | file://:0:0:0:0 | & | +| main.rs:1957:22:1957:26 | other | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1957:44:1959:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1958:13:1958:16 | self | | file://:0:0:0:0 | & | +| main.rs:1958:13:1958:16 | self | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1958:13:1958:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1958:13:1958:29 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1958:13:1958:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1958:23:1958:27 | other | | file://:0:0:0:0 | & | +| main.rs:1958:23:1958:27 | other | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1958:23:1958:29 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1958:34:1958:37 | self | | file://:0:0:0:0 | & | +| main.rs:1958:34:1958:37 | self | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1958:34:1958:39 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1958:34:1958:50 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1958:44:1958:48 | other | | file://:0:0:0:0 | & | +| main.rs:1958:44:1958:48 | other | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1958:44:1958:50 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1961:15:1961:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1961:15:1961:19 | SelfParam | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1961:22:1961:26 | other | | file://:0:0:0:0 | & | +| main.rs:1961:22:1961:26 | other | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1961:44:1963:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1962:13:1962:16 | self | | file://:0:0:0:0 | & | +| main.rs:1962:13:1962:16 | self | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1962:13:1962:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1962:13:1962:28 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1962:13:1962:48 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1962:22:1962:26 | other | | file://:0:0:0:0 | & | +| main.rs:1962:22:1962:26 | other | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1962:22:1962:28 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1962:33:1962:36 | self | | file://:0:0:0:0 | & | +| main.rs:1962:33:1962:36 | self | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1962:33:1962:38 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1962:33:1962:48 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1962:42:1962:46 | other | | file://:0:0:0:0 | & | +| main.rs:1962:42:1962:46 | other | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1962:42:1962:48 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1965:15:1965:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1965:15:1965:19 | SelfParam | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1965:22:1965:26 | other | | file://:0:0:0:0 | & | +| main.rs:1965:22:1965:26 | other | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1965:44:1967:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1966:13:1966:16 | self | | file://:0:0:0:0 | & | +| main.rs:1966:13:1966:16 | self | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1966:13:1966:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1966:13:1966:29 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1966:13:1966:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1966:23:1966:27 | other | | file://:0:0:0:0 | & | +| main.rs:1966:23:1966:27 | other | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1966:23:1966:29 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1966:34:1966:37 | self | | file://:0:0:0:0 | & | +| main.rs:1966:34:1966:37 | self | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1966:34:1966:39 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1966:34:1966:50 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1966:44:1966:48 | other | | file://:0:0:0:0 | & | +| main.rs:1966:44:1966:48 | other | &T | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:1966:44:1966:50 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1970:26:1970:26 | a | | main.rs:1970:18:1970:23 | T | +| main.rs:1970:32:1970:32 | b | | main.rs:1970:18:1970:23 | T | +| main.rs:1970:51:1972:5 | { ... } | | {EXTERNAL LOCATION} | Output | +| main.rs:1971:9:1971:9 | a | | main.rs:1970:18:1970:23 | T | +| main.rs:1971:9:1971:13 | ... + ... | | {EXTERNAL LOCATION} | Output | +| main.rs:1971:13:1971:13 | b | | main.rs:1970:18:1970:23 | T | +| main.rs:1978:13:1978:18 | i64_eq | | {EXTERNAL LOCATION} | bool | +| main.rs:1978:22:1978:35 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:1978:23:1978:26 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1978:23:1978:34 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1978:31:1978:34 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1979:13:1979:18 | i64_ne | | {EXTERNAL LOCATION} | bool | +| main.rs:1979:22:1979:35 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:1979:23:1979:26 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1979:23:1979:34 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1979:31:1979:34 | 4i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1980:13:1980:18 | i64_lt | | {EXTERNAL LOCATION} | bool | +| main.rs:1980:22:1980:34 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:1980:23:1980:26 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1980:23:1980:33 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1980:30:1980:33 | 6i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1981:13:1981:18 | i64_le | | {EXTERNAL LOCATION} | bool | +| main.rs:1981:22:1981:35 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:1981:23:1981:26 | 7i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1981:23:1981:34 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1981:31:1981:34 | 8i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1982:13:1982:18 | i64_gt | | {EXTERNAL LOCATION} | bool | +| main.rs:1982:22:1982:35 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:1982:23:1982:26 | 9i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1982:23:1982:34 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1982:30:1982:34 | 10i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1983:13:1983:18 | i64_ge | | {EXTERNAL LOCATION} | bool | +| main.rs:1983:22:1983:37 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:1983:23:1983:27 | 11i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1983:23:1983:36 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1983:32:1983:36 | 12i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1986:13:1986:19 | i64_add | | {EXTERNAL LOCATION} | i64 | +| main.rs:1986:23:1986:27 | 13i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1986:23:1986:35 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1986:31:1986:35 | 14i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1987:13:1987:19 | i64_sub | | {EXTERNAL LOCATION} | i64 | +| main.rs:1987:23:1987:27 | 15i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1987:23:1987:35 | ... - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1987:31:1987:35 | 16i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1988:13:1988:19 | i64_mul | | {EXTERNAL LOCATION} | i64 | +| main.rs:1988:23:1988:27 | 17i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1988:23:1988:35 | ... * ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1988:31:1988:35 | 18i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1989:13:1989:19 | i64_div | | {EXTERNAL LOCATION} | i64 | +| main.rs:1989:23:1989:27 | 19i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1989:23:1989:35 | ... / ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1989:31:1989:35 | 20i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1990:13:1990:19 | i64_rem | | {EXTERNAL LOCATION} | i64 | +| main.rs:1990:23:1990:27 | 21i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1990:23:1990:35 | ... % ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1990:31:1990:35 | 22i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1991:39:1991:42 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1991:45:1991:48 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1994:17:1994:30 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1994:34:1994:38 | 23i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1995:9:1995:22 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1995:9:1995:31 | ... += ... | | file://:0:0:0:0 | () | +| main.rs:1995:27:1995:31 | 24i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1997:17:1997:30 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1997:34:1997:38 | 25i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1998:9:1998:22 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1998:9:1998:31 | ... -= ... | | file://:0:0:0:0 | () | +| main.rs:1998:27:1998:31 | 26i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2000:17:2000:30 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2000:34:2000:38 | 27i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2001:9:2001:22 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2001:9:2001:31 | ... *= ... | | file://:0:0:0:0 | () | +| main.rs:2001:27:2001:31 | 28i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2003:17:2003:30 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2003:34:2003:38 | 29i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2004:9:2004:22 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2004:9:2004:31 | ... /= ... | | file://:0:0:0:0 | () | +| main.rs:2004:27:2004:31 | 30i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2006:17:2006:30 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2006:34:2006:38 | 31i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2007:9:2007:22 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2007:9:2007:31 | ... %= ... | | file://:0:0:0:0 | () | +| main.rs:2007:27:2007:31 | 32i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2010:13:2010:22 | i64_bitand | | {EXTERNAL LOCATION} | i64 | +| main.rs:2010:26:2010:30 | 33i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2010:26:2010:38 | ... & ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2010:34:2010:38 | 34i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2011:13:2011:21 | i64_bitor | | {EXTERNAL LOCATION} | i64 | +| main.rs:2011:25:2011:29 | 35i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2011:25:2011:37 | ... \| ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2011:33:2011:37 | 36i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2012:13:2012:22 | i64_bitxor | | {EXTERNAL LOCATION} | i64 | +| main.rs:2012:26:2012:30 | 37i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2012:26:2012:38 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2012:34:2012:38 | 38i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2013:13:2013:19 | i64_shl | | {EXTERNAL LOCATION} | i64 | +| main.rs:2013:23:2013:27 | 39i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2013:23:2013:36 | ... << ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2013:32:2013:36 | 40i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2014:13:2014:19 | i64_shr | | {EXTERNAL LOCATION} | i64 | +| main.rs:2014:23:2014:27 | 41i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2014:23:2014:36 | ... >> ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2014:32:2014:36 | 42i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2017:17:2017:33 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2017:37:2017:41 | 43i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2018:9:2018:25 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2018:9:2018:34 | ... &= ... | | file://:0:0:0:0 | () | +| main.rs:2018:30:2018:34 | 44i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2020:17:2020:32 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2020:36:2020:40 | 45i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2021:9:2021:24 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2021:9:2021:33 | ... \|= ... | | file://:0:0:0:0 | () | +| main.rs:2021:29:2021:33 | 46i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2023:17:2023:33 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2023:37:2023:41 | 47i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2024:9:2024:25 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2024:9:2024:34 | ... ^= ... | | file://:0:0:0:0 | () | +| main.rs:2024:30:2024:34 | 48i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2026:17:2026:30 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2026:34:2026:38 | 49i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2027:9:2027:22 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2027:9:2027:32 | ... <<= ... | | file://:0:0:0:0 | () | +| main.rs:2027:28:2027:32 | 50i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2029:17:2029:30 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2029:34:2029:38 | 51i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2030:9:2030:22 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2030:9:2030:32 | ... >>= ... | | file://:0:0:0:0 | () | +| main.rs:2030:28:2030:32 | 52i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2032:13:2032:19 | i64_neg | | {EXTERNAL LOCATION} | i64 | +| main.rs:2032:23:2032:28 | - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2032:24:2032:28 | 53i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2033:13:2033:19 | i64_not | | {EXTERNAL LOCATION} | i64 | +| main.rs:2033:23:2033:28 | ! ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2033:24:2033:28 | 54i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2036:13:2036:14 | v1 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2036:18:2036:36 | Vec2 {...} | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2036:28:2036:28 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2036:28:2036:28 | 1 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2036:34:2036:34 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2036:34:2036:34 | 2 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2037:13:2037:14 | v2 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2037:18:2037:36 | Vec2 {...} | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2037:28:2037:28 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2037:28:2037:28 | 3 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2037:34:2037:34 | 4 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2037:34:2037:34 | 4 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2040:13:2040:19 | vec2_eq | | {EXTERNAL LOCATION} | bool | +| main.rs:2040:23:2040:24 | v1 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2040:23:2040:30 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2040:29:2040:30 | v2 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2041:13:2041:19 | vec2_ne | | {EXTERNAL LOCATION} | bool | +| main.rs:2041:23:2041:24 | v1 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2041:23:2041:30 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2041:29:2041:30 | v2 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2042:13:2042:19 | vec2_lt | | {EXTERNAL LOCATION} | bool | +| main.rs:2042:23:2042:24 | v1 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2042:23:2042:29 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2042:28:2042:29 | v2 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2043:13:2043:19 | vec2_le | | {EXTERNAL LOCATION} | bool | +| main.rs:2043:23:2043:24 | v1 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2043:23:2043:30 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2043:29:2043:30 | v2 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2044:13:2044:19 | vec2_gt | | {EXTERNAL LOCATION} | bool | +| main.rs:2044:23:2044:24 | v1 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2044:23:2044:29 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2044:28:2044:29 | v2 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2045:13:2045:19 | vec2_ge | | {EXTERNAL LOCATION} | bool | +| main.rs:2045:23:2045:24 | v1 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2045:23:2045:30 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2045:29:2045:30 | v2 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2048:13:2048:20 | vec2_add | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2048:24:2048:25 | v1 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2048:24:2048:30 | ... + ... | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2048:29:2048:30 | v2 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2049:13:2049:20 | vec2_sub | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2049:24:2049:25 | v1 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2049:24:2049:30 | ... - ... | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2049:29:2049:30 | v2 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2050:13:2050:20 | vec2_mul | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2050:24:2050:25 | v1 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2050:24:2050:30 | ... * ... | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2050:29:2050:30 | v2 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2051:13:2051:20 | vec2_div | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2051:24:2051:25 | v1 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2051:24:2051:30 | ... / ... | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2051:29:2051:30 | v2 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2052:13:2052:20 | vec2_rem | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2052:24:2052:25 | v1 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2052:24:2052:30 | ... % ... | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2052:29:2052:30 | v2 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2055:17:2055:31 | vec2_add_assign | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2055:35:2055:36 | v1 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2056:9:2056:23 | vec2_add_assign | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2056:9:2056:29 | ... += ... | | file://:0:0:0:0 | () | +| main.rs:2056:28:2056:29 | v2 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2058:17:2058:31 | vec2_sub_assign | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2058:35:2058:36 | v1 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2059:9:2059:23 | vec2_sub_assign | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2059:9:2059:29 | ... -= ... | | file://:0:0:0:0 | () | +| main.rs:2059:28:2059:29 | v2 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2061:17:2061:31 | vec2_mul_assign | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2061:35:2061:36 | v1 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2062:9:2062:23 | vec2_mul_assign | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2062:9:2062:29 | ... *= ... | | file://:0:0:0:0 | () | +| main.rs:2062:28:2062:29 | v2 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2064:17:2064:31 | vec2_div_assign | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2064:35:2064:36 | v1 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2065:9:2065:23 | vec2_div_assign | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2065:9:2065:29 | ... /= ... | | file://:0:0:0:0 | () | +| main.rs:2065:28:2065:29 | v2 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2067:17:2067:31 | vec2_rem_assign | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2067:35:2067:36 | v1 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2068:9:2068:23 | vec2_rem_assign | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2068:9:2068:29 | ... %= ... | | file://:0:0:0:0 | () | +| main.rs:2068:28:2068:29 | v2 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2071:13:2071:23 | vec2_bitand | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2071:27:2071:28 | v1 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2071:27:2071:33 | ... & ... | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2071:32:2071:33 | v2 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2072:13:2072:22 | vec2_bitor | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2072:26:2072:27 | v1 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2072:26:2072:32 | ... \| ... | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2072:31:2072:32 | v2 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2073:13:2073:23 | vec2_bitxor | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2073:27:2073:28 | v1 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2073:27:2073:33 | ... ^ ... | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2073:32:2073:33 | v2 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2074:13:2074:20 | vec2_shl | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2074:24:2074:25 | v1 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2074:24:2074:33 | ... << ... | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2074:30:2074:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2075:13:2075:20 | vec2_shr | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2075:24:2075:25 | v1 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2075:24:2075:33 | ... >> ... | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2075:30:2075:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2078:17:2078:34 | vec2_bitand_assign | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2078:38:2078:39 | v1 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2079:9:2079:26 | vec2_bitand_assign | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2079:9:2079:32 | ... &= ... | | file://:0:0:0:0 | () | +| main.rs:2079:31:2079:32 | v2 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2081:17:2081:33 | vec2_bitor_assign | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2081:37:2081:38 | v1 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2082:9:2082:25 | vec2_bitor_assign | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2082:9:2082:31 | ... \|= ... | | file://:0:0:0:0 | () | +| main.rs:2082:30:2082:31 | v2 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2084:17:2084:34 | vec2_bitxor_assign | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2084:38:2084:39 | v1 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2085:9:2085:26 | vec2_bitxor_assign | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2085:9:2085:32 | ... ^= ... | | file://:0:0:0:0 | () | +| main.rs:2085:31:2085:32 | v2 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2087:17:2087:31 | vec2_shl_assign | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2087:35:2087:36 | v1 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2088:9:2088:23 | vec2_shl_assign | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2088:9:2088:32 | ... <<= ... | | file://:0:0:0:0 | () | +| main.rs:2088:29:2088:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2090:17:2090:31 | vec2_shr_assign | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2090:35:2090:36 | v1 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2091:9:2091:23 | vec2_shr_assign | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2091:9:2091:32 | ... >>= ... | | file://:0:0:0:0 | () | +| main.rs:2091:29:2091:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2094:13:2094:20 | vec2_neg | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2094:24:2094:26 | - ... | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2094:25:2094:26 | v1 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2095:13:2095:20 | vec2_not | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2095:24:2095:26 | ! ... | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2095:25:2095:26 | v1 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2098:13:2098:24 | default_vec2 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2098:28:2098:45 | ...::default(...) | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2099:13:2099:26 | vec2_zero_plus | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2099:30:2099:48 | Vec2 {...} | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2099:30:2099:63 | ... + ... | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2099:40:2099:40 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2099:40:2099:40 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2099:46:2099:46 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2099:46:2099:46 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2099:52:2099:63 | default_vec2 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2103:13:2103:24 | default_vec2 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2103:28:2103:45 | ...::default(...) | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2104:13:2104:26 | vec2_zero_plus | | {EXTERNAL LOCATION} | bool | +| main.rs:2104:30:2104:48 | Vec2 {...} | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2104:30:2104:64 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2104:40:2104:40 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2104:40:2104:40 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2104:46:2104:46 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2104:46:2104:46 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2104:53:2104:64 | default_vec2 | | main.rs:1733:5:1738:5 | Vec2 | +| main.rs:2114:18:2114:21 | SelfParam | | main.rs:2111:5:2111:14 | S1 | +| main.rs:2117:25:2119:5 | { ... } | | main.rs:2111:5:2111:14 | S1 | +| main.rs:2118:9:2118:10 | S1 | | main.rs:2111:5:2111:14 | S1 | +| main.rs:2121:41:2123:5 | { ... } | | main.rs:2121:16:2121:39 | impl ... | +| main.rs:2122:9:2122:20 | { ... } | | {EXTERNAL LOCATION} | trait Future | +| main.rs:2122:9:2122:20 | { ... } | Output | main.rs:2111:5:2111:14 | S1 | +| main.rs:2122:17:2122:18 | S1 | | main.rs:2111:5:2111:14 | S1 | +| main.rs:2131:13:2131:42 | SelfParam | | {EXTERNAL LOCATION} | Pin | +| main.rs:2131:13:2131:42 | SelfParam | Ptr | file://:0:0:0:0 | & | +| main.rs:2131:13:2131:42 | SelfParam | Ptr.&T | main.rs:2125:5:2125:14 | S2 | +| main.rs:2132:13:2132:15 | _cx | | file://:0:0:0:0 | & | +| main.rs:2132:13:2132:15 | _cx | &T | {EXTERNAL LOCATION} | Context | +| main.rs:2133:44:2135:9 | { ... } | | {EXTERNAL LOCATION} | Poll | +| main.rs:2133:44:2135:9 | { ... } | T | main.rs:2111:5:2111:14 | S1 | +| main.rs:2134:13:2134:38 | ...::Ready(...) | | {EXTERNAL LOCATION} | Poll | +| main.rs:2134:13:2134:38 | ...::Ready(...) | T | main.rs:2111:5:2111:14 | S1 | +| main.rs:2134:36:2134:37 | S1 | | main.rs:2111:5:2111:14 | S1 | +| main.rs:2138:41:2140:5 | { ... } | | main.rs:2138:16:2138:39 | impl ... | +| main.rs:2139:9:2139:10 | S2 | | main.rs:2125:5:2125:14 | S2 | +| main.rs:2139:9:2139:10 | S2 | | main.rs:2138:16:2138:39 | impl ... | +| main.rs:2143:9:2143:12 | f1(...) | | {EXTERNAL LOCATION} | trait Future | +| main.rs:2143:9:2143:12 | f1(...) | Output | main.rs:2111:5:2111:14 | S1 | +| main.rs:2143:9:2143:18 | await ... | | main.rs:2111:5:2111:14 | S1 | +| main.rs:2144:9:2144:12 | f2(...) | | main.rs:2121:16:2121:39 | impl ... | +| main.rs:2144:9:2144:18 | await ... | | main.rs:2111:5:2111:14 | S1 | +| main.rs:2145:9:2145:12 | f3(...) | | main.rs:2138:16:2138:39 | impl ... | +| main.rs:2145:9:2145:18 | await ... | | main.rs:2111:5:2111:14 | S1 | +| main.rs:2146:9:2146:10 | S2 | | main.rs:2125:5:2125:14 | S2 | +| main.rs:2146:9:2146:16 | await S2 | | main.rs:2111:5:2111:14 | S1 | +| main.rs:2147:13:2147:13 | b | | {EXTERNAL LOCATION} | trait Future | +| main.rs:2147:13:2147:13 | b | Output | main.rs:2111:5:2111:14 | S1 | +| main.rs:2147:17:2147:28 | { ... } | | {EXTERNAL LOCATION} | trait Future | +| main.rs:2147:17:2147:28 | { ... } | Output | main.rs:2111:5:2111:14 | S1 | +| main.rs:2147:25:2147:26 | S1 | | main.rs:2111:5:2111:14 | S1 | +| main.rs:2148:9:2148:9 | b | | {EXTERNAL LOCATION} | trait Future | +| main.rs:2148:9:2148:9 | b | Output | main.rs:2111:5:2111:14 | S1 | +| main.rs:2148:9:2148:15 | await b | | main.rs:2111:5:2111:14 | S1 | +| main.rs:2159:15:2159:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2159:15:2159:19 | SelfParam | &T | main.rs:2158:5:2160:5 | Self [trait Trait1] | +| main.rs:2163:15:2163:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2163:15:2163:19 | SelfParam | &T | main.rs:2162:5:2164:5 | Self [trait Trait2] | +| main.rs:2167:15:2167:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2167:15:2167:19 | SelfParam | &T | main.rs:2153:5:2154:14 | S1 | +| main.rs:2171:15:2171:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2171:15:2171:19 | SelfParam | &T | main.rs:2153:5:2154:14 | S1 | +| main.rs:2174:37:2176:5 | { ... } | | main.rs:2174:16:2174:35 | impl ... + ... | +| main.rs:2175:9:2175:10 | S1 | | main.rs:2153:5:2154:14 | S1 | +| main.rs:2175:9:2175:10 | S1 | | main.rs:2174:16:2174:35 | impl ... + ... | +| main.rs:2179:18:2179:22 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2179:18:2179:22 | SelfParam | &T | main.rs:2178:5:2180:5 | Self [trait MyTrait] | +| main.rs:2183:18:2183:22 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2183:18:2183:22 | SelfParam | &T | main.rs:2153:5:2154:14 | S1 | +| main.rs:2183:31:2185:9 | { ... } | | main.rs:2155:5:2155:14 | S2 | +| main.rs:2184:13:2184:14 | S2 | | main.rs:2155:5:2155:14 | S2 | +| main.rs:2189:18:2189:22 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2189:18:2189:22 | SelfParam | &T | main.rs:2156:5:2156:22 | S3 | +| main.rs:2189:18:2189:22 | SelfParam | &T.T3 | main.rs:2188:10:2188:17 | T | +| main.rs:2189:30:2192:9 | { ... } | | main.rs:2188:10:2188:17 | T | +| main.rs:2190:17:2190:21 | S3(...) | | file://:0:0:0:0 | & | +| main.rs:2190:17:2190:21 | S3(...) | | main.rs:2156:5:2156:22 | S3 | +| main.rs:2190:17:2190:21 | S3(...) | &T | main.rs:2156:5:2156:22 | S3 | +| main.rs:2190:17:2190:21 | S3(...) | &T.T3 | main.rs:2188:10:2188:17 | T | +| main.rs:2190:25:2190:28 | self | | file://:0:0:0:0 | & | +| main.rs:2190:25:2190:28 | self | &T | main.rs:2156:5:2156:22 | S3 | +| main.rs:2190:25:2190:28 | self | &T.T3 | main.rs:2188:10:2188:17 | T | +| main.rs:2191:13:2191:21 | t.clone() | | main.rs:2188:10:2188:17 | T | +| main.rs:2195:45:2197:5 | { ... } | | main.rs:2195:28:2195:43 | impl ... | +| main.rs:2196:9:2196:10 | S1 | | main.rs:2153:5:2154:14 | S1 | +| main.rs:2196:9:2196:10 | S1 | | main.rs:2195:28:2195:43 | impl ... | +| main.rs:2199:41:2199:41 | t | | main.rs:2199:26:2199:38 | B | +| main.rs:2199:52:2201:5 | { ... } | | main.rs:2199:23:2199:23 | A | +| main.rs:2200:9:2200:9 | t | | main.rs:2199:26:2199:38 | B | +| main.rs:2200:9:2200:17 | t.get_a() | | main.rs:2199:23:2199:23 | A | +| main.rs:2203:34:2203:34 | x | | main.rs:2203:24:2203:31 | T | +| main.rs:2203:59:2205:5 | { ... } | | main.rs:2203:43:2203:57 | impl ... | +| main.rs:2203:59:2205:5 | { ... } | impl(T) | main.rs:2203:24:2203:31 | T | +| main.rs:2204:9:2204:13 | S3(...) | | main.rs:2156:5:2156:22 | S3 | +| main.rs:2204:9:2204:13 | S3(...) | | main.rs:2203:43:2203:57 | impl ... | +| main.rs:2204:9:2204:13 | S3(...) | T3 | main.rs:2203:24:2203:31 | T | +| main.rs:2204:9:2204:13 | S3(...) | impl(T) | main.rs:2203:24:2203:31 | T | +| main.rs:2204:12:2204:12 | x | | main.rs:2203:24:2203:31 | T | +| main.rs:2207:34:2207:34 | x | | main.rs:2207:24:2207:31 | T | +| main.rs:2207:67:2209:5 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:2207:67:2209:5 | { ... } | T | main.rs:2207:50:2207:64 | impl ... | +| main.rs:2207:67:2209:5 | { ... } | T.impl(T) | main.rs:2207:24:2207:31 | T | +| main.rs:2208:9:2208:19 | Some(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2208:9:2208:19 | Some(...) | T | main.rs:2156:5:2156:22 | S3 | +| main.rs:2208:9:2208:19 | Some(...) | T | main.rs:2207:50:2207:64 | impl ... | +| main.rs:2208:9:2208:19 | Some(...) | T.T3 | main.rs:2207:24:2207:31 | T | +| main.rs:2208:9:2208:19 | Some(...) | T.impl(T) | main.rs:2207:24:2207:31 | T | +| main.rs:2208:14:2208:18 | S3(...) | | main.rs:2156:5:2156:22 | S3 | +| main.rs:2208:14:2208:18 | S3(...) | | main.rs:2207:50:2207:64 | impl ... | +| main.rs:2208:14:2208:18 | S3(...) | T3 | main.rs:2207:24:2207:31 | T | +| main.rs:2208:14:2208:18 | S3(...) | impl(T) | main.rs:2207:24:2207:31 | T | +| main.rs:2208:17:2208:17 | x | | main.rs:2207:24:2207:31 | T | +| main.rs:2211:34:2211:34 | x | | main.rs:2211:24:2211:31 | T | +| main.rs:2211:78:2213:5 | { ... } | | file://:0:0:0:0 | (T_2) | +| main.rs:2211:78:2213:5 | { ... } | 0(2) | main.rs:2211:44:2211:58 | impl ... | +| main.rs:2211:78:2213:5 | { ... } | 0(2).impl(T) | main.rs:2211:24:2211:31 | T | +| main.rs:2211:78:2213:5 | { ... } | 1(2) | main.rs:2211:61:2211:75 | impl ... | +| main.rs:2211:78:2213:5 | { ... } | 1(2).impl(T) | main.rs:2211:24:2211:31 | T | +| main.rs:2212:9:2212:30 | TupleExpr | | file://:0:0:0:0 | (T_2) | +| main.rs:2212:9:2212:30 | TupleExpr | 0(2) | main.rs:2156:5:2156:22 | S3 | +| main.rs:2212:9:2212:30 | TupleExpr | 0(2) | main.rs:2211:44:2211:58 | impl ... | +| main.rs:2212:9:2212:30 | TupleExpr | 0(2).T3 | main.rs:2211:24:2211:31 | T | +| main.rs:2212:9:2212:30 | TupleExpr | 0(2).impl(T) | main.rs:2211:24:2211:31 | T | +| main.rs:2212:9:2212:30 | TupleExpr | 1(2) | main.rs:2156:5:2156:22 | S3 | +| main.rs:2212:9:2212:30 | TupleExpr | 1(2) | main.rs:2211:61:2211:75 | impl ... | +| main.rs:2212:9:2212:30 | TupleExpr | 1(2).T3 | main.rs:2211:24:2211:31 | T | +| main.rs:2212:9:2212:30 | TupleExpr | 1(2).impl(T) | main.rs:2211:24:2211:31 | T | +| main.rs:2212:10:2212:22 | S3(...) | | main.rs:2156:5:2156:22 | S3 | +| main.rs:2212:10:2212:22 | S3(...) | | main.rs:2211:44:2211:58 | impl ... | +| main.rs:2212:10:2212:22 | S3(...) | T3 | main.rs:2211:24:2211:31 | T | +| main.rs:2212:10:2212:22 | S3(...) | impl(T) | main.rs:2211:24:2211:31 | T | +| main.rs:2212:13:2212:13 | x | | main.rs:2211:24:2211:31 | T | +| main.rs:2212:13:2212:21 | x.clone() | | main.rs:2211:24:2211:31 | T | +| main.rs:2212:25:2212:29 | S3(...) | | main.rs:2156:5:2156:22 | S3 | +| main.rs:2212:25:2212:29 | S3(...) | | main.rs:2211:61:2211:75 | impl ... | +| main.rs:2212:25:2212:29 | S3(...) | T3 | main.rs:2211:24:2211:31 | T | +| main.rs:2212:25:2212:29 | S3(...) | impl(T) | main.rs:2211:24:2211:31 | T | +| main.rs:2212:28:2212:28 | x | | main.rs:2211:24:2211:31 | T | +| main.rs:2215:26:2215:26 | t | | main.rs:2215:29:2215:43 | impl ... | +| main.rs:2215:51:2217:5 | { ... } | | main.rs:2215:23:2215:23 | A | +| main.rs:2216:9:2216:9 | t | | main.rs:2215:29:2215:43 | impl ... | +| main.rs:2216:9:2216:17 | t.get_a() | | main.rs:2215:23:2215:23 | A | +| main.rs:2220:13:2220:13 | x | | main.rs:2174:16:2174:35 | impl ... + ... | +| main.rs:2220:17:2220:20 | f1(...) | | main.rs:2174:16:2174:35 | impl ... + ... | +| main.rs:2221:9:2221:9 | x | | main.rs:2174:16:2174:35 | impl ... + ... | +| main.rs:2222:9:2222:9 | x | | main.rs:2174:16:2174:35 | impl ... + ... | +| main.rs:2223:13:2223:13 | a | | main.rs:2195:28:2195:43 | impl ... | +| main.rs:2223:17:2223:32 | get_a_my_trait(...) | | main.rs:2195:28:2195:43 | impl ... | +| main.rs:2224:13:2224:13 | b | | main.rs:2155:5:2155:14 | S2 | +| main.rs:2224:17:2224:33 | uses_my_trait1(...) | | main.rs:2155:5:2155:14 | S2 | +| main.rs:2224:32:2224:32 | a | | main.rs:2195:28:2195:43 | impl ... | +| main.rs:2225:13:2225:13 | a | | main.rs:2195:28:2195:43 | impl ... | +| main.rs:2225:17:2225:32 | get_a_my_trait(...) | | main.rs:2195:28:2195:43 | impl ... | +| main.rs:2226:13:2226:13 | c | | main.rs:2155:5:2155:14 | S2 | +| main.rs:2226:17:2226:33 | uses_my_trait2(...) | | main.rs:2155:5:2155:14 | S2 | +| main.rs:2226:32:2226:32 | a | | main.rs:2195:28:2195:43 | impl ... | +| main.rs:2227:13:2227:13 | d | | main.rs:2155:5:2155:14 | S2 | +| main.rs:2227:17:2227:34 | uses_my_trait2(...) | | main.rs:2155:5:2155:14 | S2 | +| main.rs:2227:32:2227:33 | S1 | | main.rs:2153:5:2154:14 | S1 | +| main.rs:2228:13:2228:13 | e | | main.rs:2153:5:2154:14 | S1 | +| main.rs:2228:17:2228:35 | get_a_my_trait2(...) | | main.rs:2203:43:2203:57 | impl ... | +| main.rs:2228:17:2228:35 | get_a_my_trait2(...) | impl(T) | main.rs:2153:5:2154:14 | S1 | +| main.rs:2228:17:2228:43 | ... .get_a() | | main.rs:2153:5:2154:14 | S1 | +| main.rs:2228:33:2228:34 | S1 | | main.rs:2153:5:2154:14 | S1 | +| main.rs:2231:13:2231:13 | f | | main.rs:2153:5:2154:14 | S1 | +| main.rs:2231:17:2231:35 | get_a_my_trait3(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2231:17:2231:35 | get_a_my_trait3(...) | T | main.rs:2207:50:2207:64 | impl ... | +| main.rs:2231:17:2231:35 | get_a_my_trait3(...) | T.impl(T) | main.rs:2153:5:2154:14 | S1 | +| main.rs:2231:17:2231:44 | ... .unwrap() | | main.rs:2207:50:2207:64 | impl ... | +| main.rs:2231:17:2231:44 | ... .unwrap() | impl(T) | main.rs:2153:5:2154:14 | S1 | +| main.rs:2231:17:2231:52 | ... .get_a() | | main.rs:2153:5:2154:14 | S1 | +| main.rs:2231:33:2231:34 | S1 | | main.rs:2153:5:2154:14 | S1 | +| main.rs:2232:13:2232:13 | g | | main.rs:2153:5:2154:14 | S1 | +| main.rs:2232:17:2232:35 | get_a_my_trait4(...) | | file://:0:0:0:0 | (T_2) | +| main.rs:2232:17:2232:35 | get_a_my_trait4(...) | 0(2) | main.rs:2211:44:2211:58 | impl ... | +| main.rs:2232:17:2232:35 | get_a_my_trait4(...) | 0(2).impl(T) | main.rs:2153:5:2154:14 | S1 | +| main.rs:2232:17:2232:35 | get_a_my_trait4(...) | 1(2) | main.rs:2211:61:2211:75 | impl ... | +| main.rs:2232:17:2232:35 | get_a_my_trait4(...) | 1(2).impl(T) | main.rs:2153:5:2154:14 | S1 | +| main.rs:2232:17:2232:37 | ... .0 | | main.rs:2211:44:2211:58 | impl ... | +| main.rs:2232:17:2232:37 | ... .0 | impl(T) | main.rs:2153:5:2154:14 | S1 | +| main.rs:2232:17:2232:45 | ... .get_a() | | main.rs:2153:5:2154:14 | S1 | +| main.rs:2232:33:2232:34 | S1 | | main.rs:2153:5:2154:14 | S1 | +| main.rs:2243:16:2243:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2243:16:2243:20 | SelfParam | &T | main.rs:2239:5:2240:13 | S | +| main.rs:2243:31:2245:9 | { ... } | | main.rs:2239:5:2240:13 | S | +| main.rs:2244:13:2244:13 | S | | main.rs:2239:5:2240:13 | S | +| main.rs:2254:26:2256:9 | { ... } | | main.rs:2248:5:2251:5 | MyVec | +| main.rs:2254:26:2256:9 | { ... } | T | main.rs:2253:10:2253:10 | T | +| main.rs:2255:13:2255:38 | MyVec {...} | | main.rs:2248:5:2251:5 | MyVec | +| main.rs:2255:13:2255:38 | MyVec {...} | T | main.rs:2253:10:2253:10 | T | +| main.rs:2255:27:2255:36 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2255:27:2255:36 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2255:27:2255:36 | ...::new(...) | T | main.rs:2253:10:2253:10 | T | +| main.rs:2258:17:2258:25 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2258:17:2258:25 | SelfParam | &T | main.rs:2248:5:2251:5 | MyVec | +| main.rs:2258:17:2258:25 | SelfParam | &T.T | main.rs:2253:10:2253:10 | T | +| main.rs:2258:28:2258:32 | value | | main.rs:2253:10:2253:10 | T | +| main.rs:2259:13:2259:16 | self | | file://:0:0:0:0 | & | +| main.rs:2259:13:2259:16 | self | &T | main.rs:2248:5:2251:5 | MyVec | +| main.rs:2259:13:2259:16 | self | &T.T | main.rs:2253:10:2253:10 | T | +| main.rs:2259:13:2259:21 | self.data | | {EXTERNAL LOCATION} | Vec | +| main.rs:2259:13:2259:21 | self.data | A | {EXTERNAL LOCATION} | Global | +| main.rs:2259:13:2259:21 | self.data | T | main.rs:2253:10:2253:10 | T | +| main.rs:2259:28:2259:32 | value | | main.rs:2253:10:2253:10 | T | +| main.rs:2267:18:2267:22 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2267:18:2267:22 | SelfParam | &T | main.rs:2248:5:2251:5 | MyVec | +| main.rs:2267:18:2267:22 | SelfParam | &T.T | main.rs:2263:10:2263:10 | T | +| main.rs:2267:25:2267:29 | index | | {EXTERNAL LOCATION} | usize | +| main.rs:2267:56:2269:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:2267:56:2269:9 | { ... } | &T | main.rs:2263:10:2263:10 | T | +| main.rs:2268:13:2268:29 | &... | | file://:0:0:0:0 | & | +| main.rs:2268:13:2268:29 | &... | &T | main.rs:2263:10:2263:10 | T | +| main.rs:2268:14:2268:17 | self | | file://:0:0:0:0 | & | +| main.rs:2268:14:2268:17 | self | &T | main.rs:2248:5:2251:5 | MyVec | +| main.rs:2268:14:2268:17 | self | &T.T | main.rs:2263:10:2263:10 | T | +| main.rs:2268:14:2268:22 | self.data | | {EXTERNAL LOCATION} | Vec | +| main.rs:2268:14:2268:22 | self.data | A | {EXTERNAL LOCATION} | Global | +| main.rs:2268:14:2268:22 | self.data | T | main.rs:2263:10:2263:10 | T | +| main.rs:2268:14:2268:29 | ...[index] | | main.rs:2263:10:2263:10 | T | +| main.rs:2268:24:2268:28 | index | | {EXTERNAL LOCATION} | usize | +| main.rs:2272:22:2272:26 | slice | | file://:0:0:0:0 | & | +| main.rs:2272:22:2272:26 | slice | &T | file://:0:0:0:0 | [] | +| main.rs:2272:22:2272:26 | slice | &T.[T] | main.rs:2239:5:2240:13 | S | +| main.rs:2273:13:2273:13 | x | | main.rs:2239:5:2240:13 | S | +| main.rs:2273:17:2273:21 | slice | | file://:0:0:0:0 | & | +| main.rs:2273:17:2273:21 | slice | &T | file://:0:0:0:0 | [] | +| main.rs:2273:17:2273:21 | slice | &T.[T] | main.rs:2239:5:2240:13 | S | +| main.rs:2273:17:2273:24 | slice[0] | | main.rs:2239:5:2240:13 | S | +| main.rs:2273:17:2273:30 | ... .foo() | | main.rs:2239:5:2240:13 | S | +| main.rs:2273:23:2273:23 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2276:37:2276:37 | a | | main.rs:2276:20:2276:34 | T | +| main.rs:2276:43:2276:43 | b | | {EXTERNAL LOCATION} | usize | +| main.rs:2279:5:2281:5 | { ... } | | {EXTERNAL LOCATION} | Output | +| main.rs:2280:9:2280:9 | a | | main.rs:2276:20:2276:34 | T | +| main.rs:2280:9:2280:12 | a[b] | | {EXTERNAL LOCATION} | Output | +| main.rs:2280:11:2280:11 | b | | {EXTERNAL LOCATION} | usize | +| main.rs:2284:17:2284:19 | vec | | main.rs:2248:5:2251:5 | MyVec | +| main.rs:2284:17:2284:19 | vec | T | main.rs:2239:5:2240:13 | S | +| main.rs:2284:23:2284:34 | ...::new(...) | | main.rs:2248:5:2251:5 | MyVec | +| main.rs:2284:23:2284:34 | ...::new(...) | T | main.rs:2239:5:2240:13 | S | +| main.rs:2285:9:2285:11 | vec | | main.rs:2248:5:2251:5 | MyVec | +| main.rs:2285:9:2285:11 | vec | T | main.rs:2239:5:2240:13 | S | +| main.rs:2285:18:2285:18 | S | | main.rs:2239:5:2240:13 | S | +| main.rs:2286:9:2286:11 | vec | | main.rs:2248:5:2251:5 | MyVec | +| main.rs:2286:9:2286:11 | vec | T | main.rs:2239:5:2240:13 | S | +| main.rs:2286:9:2286:14 | vec[0] | | main.rs:2239:5:2240:13 | S | +| main.rs:2286:9:2286:20 | ... .foo() | | main.rs:2239:5:2240:13 | S | +| main.rs:2286:13:2286:13 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2286:13:2286:13 | 0 | | {EXTERNAL LOCATION} | usize | +| main.rs:2288:13:2288:14 | xs | | file://:0:0:0:0 | [] | +| main.rs:2288:13:2288:14 | xs | [T;...] | main.rs:2239:5:2240:13 | S | +| main.rs:2288:21:2288:21 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2288:26:2288:28 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2288:26:2288:28 | [...] | [T;...] | main.rs:2239:5:2240:13 | S | +| main.rs:2288:27:2288:27 | S | | main.rs:2239:5:2240:13 | S | +| main.rs:2289:13:2289:13 | x | | main.rs:2239:5:2240:13 | S | +| main.rs:2289:17:2289:18 | xs | | file://:0:0:0:0 | [] | +| main.rs:2289:17:2289:18 | xs | [T;...] | main.rs:2239:5:2240:13 | S | +| main.rs:2289:17:2289:21 | xs[0] | | main.rs:2239:5:2240:13 | S | +| main.rs:2289:17:2289:27 | ... .foo() | | main.rs:2239:5:2240:13 | S | +| main.rs:2289:20:2289:20 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2291:29:2291:31 | vec | | main.rs:2248:5:2251:5 | MyVec | +| main.rs:2291:29:2291:31 | vec | T | main.rs:2239:5:2240:13 | S | +| main.rs:2291:34:2291:34 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2291:34:2291:34 | 0 | | {EXTERNAL LOCATION} | usize | +| main.rs:2293:23:2293:25 | &xs | | file://:0:0:0:0 | & | +| main.rs:2293:23:2293:25 | &xs | &T | file://:0:0:0:0 | [] | +| main.rs:2293:23:2293:25 | &xs | &T | file://:0:0:0:0 | [] | +| main.rs:2293:23:2293:25 | &xs | &T.[T;...] | main.rs:2239:5:2240:13 | S | +| main.rs:2293:23:2293:25 | &xs | &T.[T] | main.rs:2239:5:2240:13 | S | +| main.rs:2293:24:2293:25 | xs | | file://:0:0:0:0 | [] | +| main.rs:2293:24:2293:25 | xs | [T;...] | main.rs:2239:5:2240:13 | S | +| main.rs:2299:13:2299:13 | x | | {EXTERNAL LOCATION} | String | +| main.rs:2299:17:2299:46 | MacroExpr | | {EXTERNAL LOCATION} | String | +| main.rs:2299:25:2299:35 | "Hello, {}" | | file://:0:0:0:0 | & | +| main.rs:2299:25:2299:35 | "Hello, {}" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2299:25:2299:45 | ...::format(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2299:25:2299:45 | ...::must_use(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2299:25:2299:45 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2299:25:2299:45 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2299:25:2299:45 | { ... } | | {EXTERNAL LOCATION} | String | +| main.rs:2299:38:2299:45 | "World!" | | file://:0:0:0:0 | & | +| main.rs:2299:38:2299:45 | "World!" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2308:19:2308:22 | SelfParam | | main.rs:2304:5:2309:5 | Self [trait MyAdd] | +| main.rs:2308:25:2308:27 | rhs | | main.rs:2304:17:2304:26 | Rhs | +| main.rs:2315:19:2315:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | +| main.rs:2315:25:2315:29 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2315:45:2317:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2316:13:2316:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2324:19:2324:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | +| main.rs:2324:25:2324:29 | value | | file://:0:0:0:0 | & | +| main.rs:2324:25:2324:29 | value | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:2324:46:2326:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2325:13:2325:18 | * ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2325:14:2325:18 | value | | file://:0:0:0:0 | & | +| main.rs:2325:14:2325:18 | value | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:2333:19:2333:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | +| main.rs:2333:25:2333:29 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2333:46:2339:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2334:13:2338:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | +| main.rs:2334:13:2338:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | +| main.rs:2334:16:2334:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2334:22:2336:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2334:22:2336:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2335:17:2335:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2335:17:2335:17 | 1 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2336:20:2338:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2336:20:2338:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2337:17:2337:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2337:17:2337:17 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2348:19:2348:22 | SelfParam | | main.rs:2342:5:2342:19 | S | +| main.rs:2348:19:2348:22 | SelfParam | T | main.rs:2344:10:2344:17 | T | +| main.rs:2348:25:2348:29 | other | | main.rs:2342:5:2342:19 | S | +| main.rs:2348:25:2348:29 | other | T | main.rs:2344:10:2344:17 | T | +| main.rs:2348:54:2350:9 | { ... } | | main.rs:2342:5:2342:19 | S | +| main.rs:2348:54:2350:9 | { ... } | T | main.rs:2305:9:2305:20 | Output | +| main.rs:2349:13:2349:39 | S(...) | | main.rs:2342:5:2342:19 | S | +| main.rs:2349:13:2349:39 | S(...) | T | main.rs:2305:9:2305:20 | Output | +| main.rs:2349:15:2349:22 | (...) | | main.rs:2344:10:2344:17 | T | +| main.rs:2349:15:2349:38 | ... .my_add(...) | | main.rs:2305:9:2305:20 | Output | +| main.rs:2349:16:2349:19 | self | | main.rs:2342:5:2342:19 | S | +| main.rs:2349:16:2349:19 | self | T | main.rs:2344:10:2344:17 | T | +| main.rs:2349:16:2349:21 | self.0 | | main.rs:2344:10:2344:17 | T | +| main.rs:2349:31:2349:35 | other | | main.rs:2342:5:2342:19 | S | +| main.rs:2349:31:2349:35 | other | T | main.rs:2344:10:2344:17 | T | +| main.rs:2349:31:2349:37 | other.0 | | main.rs:2344:10:2344:17 | T | +| main.rs:2357:19:2357:22 | SelfParam | | main.rs:2342:5:2342:19 | S | +| main.rs:2357:19:2357:22 | SelfParam | T | main.rs:2353:10:2353:17 | T | +| main.rs:2357:25:2357:29 | other | | main.rs:2353:10:2353:17 | T | +| main.rs:2357:51:2359:9 | { ... } | | main.rs:2342:5:2342:19 | S | +| main.rs:2357:51:2359:9 | { ... } | T | main.rs:2305:9:2305:20 | Output | +| main.rs:2358:13:2358:37 | S(...) | | main.rs:2342:5:2342:19 | S | +| main.rs:2358:13:2358:37 | S(...) | T | main.rs:2305:9:2305:20 | Output | +| main.rs:2358:15:2358:22 | (...) | | main.rs:2353:10:2353:17 | T | +| main.rs:2358:15:2358:36 | ... .my_add(...) | | main.rs:2305:9:2305:20 | Output | +| main.rs:2358:16:2358:19 | self | | main.rs:2342:5:2342:19 | S | +| main.rs:2358:16:2358:19 | self | T | main.rs:2353:10:2353:17 | T | +| main.rs:2358:16:2358:21 | self.0 | | main.rs:2353:10:2353:17 | T | +| main.rs:2358:31:2358:35 | other | | main.rs:2353:10:2353:17 | T | +| main.rs:2369:19:2369:22 | SelfParam | | main.rs:2342:5:2342:19 | S | +| main.rs:2369:19:2369:22 | SelfParam | T | main.rs:2362:14:2362:14 | T | +| main.rs:2369:25:2369:29 | other | | file://:0:0:0:0 | & | +| main.rs:2369:25:2369:29 | other | &T | main.rs:2362:14:2362:14 | T | +| main.rs:2369:55:2371:9 | { ... } | | main.rs:2342:5:2342:19 | S | +| main.rs:2370:13:2370:37 | S(...) | | main.rs:2342:5:2342:19 | S | +| main.rs:2370:15:2370:22 | (...) | | main.rs:2362:14:2362:14 | T | +| main.rs:2370:16:2370:19 | self | | main.rs:2342:5:2342:19 | S | +| main.rs:2370:16:2370:19 | self | T | main.rs:2362:14:2362:14 | T | +| main.rs:2370:16:2370:21 | self.0 | | main.rs:2362:14:2362:14 | T | +| main.rs:2370:31:2370:35 | other | | file://:0:0:0:0 | & | +| main.rs:2370:31:2370:35 | other | &T | main.rs:2362:14:2362:14 | T | +| main.rs:2376:20:2376:24 | value | | main.rs:2374:18:2374:18 | T | +| main.rs:2381:20:2381:24 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2381:40:2383:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2382:13:2382:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2388:20:2388:24 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2388:41:2394:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2389:13:2393:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | +| main.rs:2389:13:2393:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | +| main.rs:2389:16:2389:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2389:22:2391:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2389:22:2391:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2390:17:2390:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2390:17:2390:17 | 1 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2391:20:2393:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2391:20:2393:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2392:17:2392:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2392:17:2392:17 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2399:21:2399:25 | value | | main.rs:2397:19:2397:19 | T | +| main.rs:2399:31:2399:31 | x | | main.rs:2397:5:2400:5 | Self [trait MyFrom2] | +| main.rs:2404:21:2404:25 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2404:33:2404:33 | _ | | {EXTERNAL LOCATION} | i64 | +| main.rs:2404:48:2406:9 | { ... } | | file://:0:0:0:0 | () | +| main.rs:2405:13:2405:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2411:21:2411:25 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2411:34:2411:34 | _ | | {EXTERNAL LOCATION} | i64 | +| main.rs:2411:49:2417:9 | { ... } | | file://:0:0:0:0 | () | +| main.rs:2412:13:2416:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | +| main.rs:2412:16:2412:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2412:22:2414:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2413:17:2413:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2414:20:2416:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2415:17:2415:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2422:15:2422:15 | x | | main.rs:2420:5:2426:5 | Self [trait MySelfTrait] | +| main.rs:2425:15:2425:15 | x | | main.rs:2420:5:2426:5 | Self [trait MySelfTrait] | +| main.rs:2430:15:2430:15 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2430:31:2432:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2431:13:2431:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2431:13:2431:17 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2431:17:2431:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2435:15:2435:15 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2435:32:2437:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2436:13:2436:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2436:13:2436:17 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2436:17:2436:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2442:15:2442:15 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:2442:31:2444:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2443:13:2443:13 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2443:13:2443:13 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2447:15:2447:15 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:2447:32:2449:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2448:13:2448:13 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:2453:13:2453:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2453:22:2453:23 | 73 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2453:22:2453:23 | 73 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2454:9:2454:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2454:9:2454:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2454:18:2454:21 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2455:9:2455:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2455:9:2455:23 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2455:18:2455:22 | &5i64 | | file://:0:0:0:0 | & | +| main.rs:2455:18:2455:22 | &5i64 | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:2455:19:2455:22 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2456:9:2456:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2456:9:2456:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2456:18:2456:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2458:9:2458:15 | S(...) | | main.rs:2342:5:2342:19 | S | +| main.rs:2458:9:2458:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | +| main.rs:2458:9:2458:31 | ... .my_add(...) | | main.rs:2342:5:2342:19 | S | +| main.rs:2458:11:2458:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2458:24:2458:30 | S(...) | | main.rs:2342:5:2342:19 | S | +| main.rs:2458:24:2458:30 | S(...) | T | {EXTERNAL LOCATION} | i64 | +| main.rs:2458:26:2458:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2459:9:2459:15 | S(...) | | main.rs:2342:5:2342:19 | S | +| main.rs:2459:9:2459:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | +| main.rs:2459:11:2459:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2459:24:2459:27 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2460:9:2460:15 | S(...) | | main.rs:2342:5:2342:19 | S | +| main.rs:2460:9:2460:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | +| main.rs:2460:9:2460:29 | ... .my_add(...) | | main.rs:2342:5:2342:19 | S | +| main.rs:2460:11:2460:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2460:24:2460:28 | &3i64 | | file://:0:0:0:0 | & | +| main.rs:2460:24:2460:28 | &3i64 | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:2460:25:2460:28 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2462:13:2462:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2462:17:2462:35 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2462:30:2462:34 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2463:13:2463:13 | y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2463:17:2463:34 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2463:30:2463:33 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2464:13:2464:13 | z | | {EXTERNAL LOCATION} | i64 | +| main.rs:2464:22:2464:43 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2464:38:2464:42 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2465:9:2465:34 | ...::my_from2(...) | | file://:0:0:0:0 | () | +| main.rs:2465:23:2465:27 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2465:30:2465:33 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2466:9:2466:33 | ...::my_from2(...) | | file://:0:0:0:0 | () | +| main.rs:2466:23:2466:26 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2466:29:2466:32 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2467:9:2467:38 | ...::my_from2(...) | | file://:0:0:0:0 | () | +| main.rs:2467:27:2467:31 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2467:34:2467:37 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2469:9:2469:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2469:17:2469:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2470:9:2470:22 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2470:17:2470:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2471:9:2471:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2471:18:2471:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2472:9:2472:22 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2472:18:2472:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2473:9:2473:30 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2473:25:2473:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2474:9:2474:30 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2474:25:2474:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2475:9:2475:29 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2475:25:2475:28 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2476:9:2476:29 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2476:25:2476:28 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2484:26:2486:9 | { ... } | | main.rs:2481:5:2481:24 | MyCallable | +| main.rs:2485:13:2485:25 | MyCallable {...} | | main.rs:2481:5:2481:24 | MyCallable | +| main.rs:2488:17:2488:21 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2488:17:2488:21 | SelfParam | &T | main.rs:2481:5:2481:24 | MyCallable | +| main.rs:2488:31:2490:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2489:13:2489:13 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2489:13:2489:13 | 1 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2496:13:2496:13 | i | | {EXTERNAL LOCATION} | i32 | +| main.rs:2496:18:2496:26 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2496:18:2496:26 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2496:19:2496:19 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2496:22:2496:22 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2496:25:2496:25 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2497:18:2497:26 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2497:18:2497:26 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2497:18:2497:41 | ... .map(...) | | file://:0:0:0:0 | [] | +| main.rs:2497:19:2497:19 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2497:22:2497:22 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2497:25:2497:25 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2497:32:2497:40 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | +| main.rs:2497:32:2497:40 | \|...\| ... | dyn(Args) | file://:0:0:0:0 | (T_1) | +| main.rs:2497:40:2497:40 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2498:13:2498:13 | i | | {EXTERNAL LOCATION} | Item | +| main.rs:2498:13:2498:13 | i | | {EXTERNAL LOCATION} | i32 | +| main.rs:2498:18:2498:26 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2498:18:2498:26 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2498:18:2498:38 | ... .into_iter() | | {EXTERNAL LOCATION} | IntoIter | +| main.rs:2498:18:2498:38 | ... .into_iter() | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2498:19:2498:19 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2498:22:2498:22 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2498:25:2498:25 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2500:13:2500:17 | vals1 | | file://:0:0:0:0 | [] | +| main.rs:2500:13:2500:17 | vals1 | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2500:13:2500:17 | vals1 | [T;...] | {EXTERNAL LOCATION} | u8 | +| main.rs:2500:21:2500:31 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2500:21:2500:31 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2500:21:2500:31 | [...] | [T;...] | {EXTERNAL LOCATION} | u8 | +| main.rs:2500:22:2500:24 | 1u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2500:27:2500:27 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2500:27:2500:27 | 2 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2500:30:2500:30 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2500:30:2500:30 | 3 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2501:13:2501:13 | u | | {EXTERNAL LOCATION} | i32 | +| main.rs:2501:13:2501:13 | u | | {EXTERNAL LOCATION} | u8 | +| main.rs:2501:18:2501:22 | vals1 | | file://:0:0:0:0 | [] | +| main.rs:2501:18:2501:22 | vals1 | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2501:18:2501:22 | vals1 | [T;...] | {EXTERNAL LOCATION} | u8 | +| main.rs:2503:13:2503:17 | vals2 | | file://:0:0:0:0 | [] | +| main.rs:2503:13:2503:17 | vals2 | [T;...] | {EXTERNAL LOCATION} | u16 | +| main.rs:2503:21:2503:29 | [1u16; 3] | | file://:0:0:0:0 | [] | +| main.rs:2503:21:2503:29 | [1u16; 3] | [T;...] | {EXTERNAL LOCATION} | u16 | +| main.rs:2503:22:2503:25 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2503:28:2503:28 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2504:13:2504:13 | u | | {EXTERNAL LOCATION} | u16 | +| main.rs:2504:18:2504:22 | vals2 | | file://:0:0:0:0 | [] | +| main.rs:2504:18:2504:22 | vals2 | [T;...] | {EXTERNAL LOCATION} | u16 | +| main.rs:2506:13:2506:17 | vals3 | | file://:0:0:0:0 | [] | +| main.rs:2506:13:2506:17 | vals3 | [T;...] | {EXTERNAL LOCATION} | u32 | +| main.rs:2506:26:2506:26 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2506:31:2506:39 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2506:31:2506:39 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2506:31:2506:39 | [...] | [T;...] | {EXTERNAL LOCATION} | u32 | +| main.rs:2506:32:2506:32 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2506:32:2506:32 | 1 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2506:35:2506:35 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2506:35:2506:35 | 2 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2506:38:2506:38 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2506:38:2506:38 | 3 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2507:13:2507:13 | u | | {EXTERNAL LOCATION} | u32 | +| main.rs:2507:18:2507:22 | vals3 | | file://:0:0:0:0 | [] | +| main.rs:2507:18:2507:22 | vals3 | [T;...] | {EXTERNAL LOCATION} | u32 | +| main.rs:2509:13:2509:17 | vals4 | | file://:0:0:0:0 | [] | +| main.rs:2509:13:2509:17 | vals4 | [T;...] | {EXTERNAL LOCATION} | u64 | +| main.rs:2509:26:2509:26 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2509:31:2509:36 | [1; 3] | | file://:0:0:0:0 | [] | +| main.rs:2509:31:2509:36 | [1; 3] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2509:31:2509:36 | [1; 3] | [T;...] | {EXTERNAL LOCATION} | u64 | +| main.rs:2509:32:2509:32 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2509:32:2509:32 | 1 | | {EXTERNAL LOCATION} | u64 | +| main.rs:2509:35:2509:35 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2510:13:2510:13 | u | | {EXTERNAL LOCATION} | u64 | +| main.rs:2510:18:2510:22 | vals4 | | file://:0:0:0:0 | [] | +| main.rs:2510:18:2510:22 | vals4 | [T;...] | {EXTERNAL LOCATION} | u64 | +| main.rs:2512:17:2512:24 | strings1 | | file://:0:0:0:0 | [] | +| main.rs:2512:17:2512:24 | strings1 | [T;...] | file://:0:0:0:0 | & | +| main.rs:2512:17:2512:24 | strings1 | [T;...].&T | {EXTERNAL LOCATION} | str | +| main.rs:2512:28:2512:48 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2512:28:2512:48 | [...] | [T;...] | file://:0:0:0:0 | & | +| main.rs:2512:28:2512:48 | [...] | [T;...].&T | {EXTERNAL LOCATION} | str | +| main.rs:2512:29:2512:33 | "foo" | | file://:0:0:0:0 | & | +| main.rs:2512:29:2512:33 | "foo" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2512:36:2512:40 | "bar" | | file://:0:0:0:0 | & | +| main.rs:2512:36:2512:40 | "bar" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2512:43:2512:47 | "baz" | | file://:0:0:0:0 | & | +| main.rs:2512:43:2512:47 | "baz" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2513:13:2513:13 | s | | {EXTERNAL LOCATION} | Item | +| main.rs:2513:13:2513:13 | s | | file://:0:0:0:0 | & | +| main.rs:2513:13:2513:13 | s | &T | file://:0:0:0:0 | & | +| main.rs:2513:13:2513:13 | s | &T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2513:18:2513:26 | &strings1 | | file://:0:0:0:0 | & | +| main.rs:2513:18:2513:26 | &strings1 | &T | file://:0:0:0:0 | [] | +| main.rs:2513:18:2513:26 | &strings1 | &T.[T;...] | file://:0:0:0:0 | & | +| main.rs:2513:18:2513:26 | &strings1 | &T.[T;...].&T | {EXTERNAL LOCATION} | str | +| main.rs:2513:19:2513:26 | strings1 | | file://:0:0:0:0 | [] | +| main.rs:2513:19:2513:26 | strings1 | [T;...] | file://:0:0:0:0 | & | +| main.rs:2513:19:2513:26 | strings1 | [T;...].&T | {EXTERNAL LOCATION} | str | +| main.rs:2514:13:2514:13 | s | | {EXTERNAL LOCATION} | Item | +| main.rs:2514:13:2514:13 | s | | file://:0:0:0:0 | & | +| main.rs:2514:13:2514:13 | s | &T | file://:0:0:0:0 | & | +| main.rs:2514:13:2514:13 | s | &T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2514:18:2514:30 | &mut strings1 | | file://:0:0:0:0 | & | +| main.rs:2514:18:2514:30 | &mut strings1 | &T | file://:0:0:0:0 | [] | +| main.rs:2514:18:2514:30 | &mut strings1 | &T.[T;...] | file://:0:0:0:0 | & | +| main.rs:2514:18:2514:30 | &mut strings1 | &T.[T;...].&T | {EXTERNAL LOCATION} | str | +| main.rs:2514:23:2514:30 | strings1 | | file://:0:0:0:0 | [] | +| main.rs:2514:23:2514:30 | strings1 | [T;...] | file://:0:0:0:0 | & | +| main.rs:2514:23:2514:30 | strings1 | [T;...].&T | {EXTERNAL LOCATION} | str | +| main.rs:2515:13:2515:13 | s | | file://:0:0:0:0 | & | +| main.rs:2515:13:2515:13 | s | &T | {EXTERNAL LOCATION} | str | +| main.rs:2515:18:2515:25 | strings1 | | file://:0:0:0:0 | [] | +| main.rs:2515:18:2515:25 | strings1 | [T;...] | file://:0:0:0:0 | & | +| main.rs:2515:18:2515:25 | strings1 | [T;...].&T | {EXTERNAL LOCATION} | str | +| main.rs:2517:13:2517:20 | strings2 | | file://:0:0:0:0 | [] | +| main.rs:2517:13:2517:20 | strings2 | [T;...] | {EXTERNAL LOCATION} | String | +| main.rs:2518:9:2522:9 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2518:9:2522:9 | [...] | [T;...] | {EXTERNAL LOCATION} | String | +| main.rs:2519:13:2519:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2519:26:2519:30 | "foo" | | file://:0:0:0:0 | & | +| main.rs:2519:26:2519:30 | "foo" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2520:13:2520:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2520:26:2520:30 | "bar" | | file://:0:0:0:0 | & | +| main.rs:2520:26:2520:30 | "bar" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2521:13:2521:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2521:26:2521:30 | "baz" | | file://:0:0:0:0 | & | +| main.rs:2521:26:2521:30 | "baz" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2523:13:2523:13 | s | | {EXTERNAL LOCATION} | String | +| main.rs:2523:18:2523:25 | strings2 | | file://:0:0:0:0 | [] | +| main.rs:2523:18:2523:25 | strings2 | [T;...] | {EXTERNAL LOCATION} | String | +| main.rs:2525:13:2525:20 | strings3 | | file://:0:0:0:0 | & | +| main.rs:2525:13:2525:20 | strings3 | &T | file://:0:0:0:0 | [] | +| main.rs:2525:13:2525:20 | strings3 | &T.[T;...] | {EXTERNAL LOCATION} | String | +| main.rs:2526:9:2530:9 | &... | | file://:0:0:0:0 | & | +| main.rs:2526:9:2530:9 | &... | &T | file://:0:0:0:0 | [] | +| main.rs:2526:9:2530:9 | &... | &T.[T;...] | {EXTERNAL LOCATION} | String | +| main.rs:2526:10:2530:9 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2526:10:2530:9 | [...] | [T;...] | {EXTERNAL LOCATION} | String | +| main.rs:2527:13:2527:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2527:26:2527:30 | "foo" | | file://:0:0:0:0 | & | +| main.rs:2527:26:2527:30 | "foo" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2528:13:2528:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2528:26:2528:30 | "bar" | | file://:0:0:0:0 | & | +| main.rs:2528:26:2528:30 | "bar" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2529:13:2529:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2529:26:2529:30 | "baz" | | file://:0:0:0:0 | & | +| main.rs:2529:26:2529:30 | "baz" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2531:13:2531:13 | s | | {EXTERNAL LOCATION} | Item | +| main.rs:2531:13:2531:13 | s | | file://:0:0:0:0 | & | +| main.rs:2531:13:2531:13 | s | &T | {EXTERNAL LOCATION} | String | +| main.rs:2531:18:2531:25 | strings3 | | file://:0:0:0:0 | & | +| main.rs:2531:18:2531:25 | strings3 | &T | file://:0:0:0:0 | [] | +| main.rs:2531:18:2531:25 | strings3 | &T.[T;...] | {EXTERNAL LOCATION} | String | +| main.rs:2533:13:2533:21 | callables | | file://:0:0:0:0 | [] | +| main.rs:2533:13:2533:21 | callables | [T;...] | main.rs:2481:5:2481:24 | MyCallable | +| main.rs:2533:25:2533:81 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2533:25:2533:81 | [...] | [T;...] | main.rs:2481:5:2481:24 | MyCallable | +| main.rs:2533:26:2533:42 | ...::new(...) | | main.rs:2481:5:2481:24 | MyCallable | +| main.rs:2533:45:2533:61 | ...::new(...) | | main.rs:2481:5:2481:24 | MyCallable | +| main.rs:2533:64:2533:80 | ...::new(...) | | main.rs:2481:5:2481:24 | MyCallable | +| main.rs:2534:13:2534:13 | c | | main.rs:2481:5:2481:24 | MyCallable | +| main.rs:2535:12:2535:20 | callables | | file://:0:0:0:0 | [] | +| main.rs:2535:12:2535:20 | callables | [T;...] | main.rs:2481:5:2481:24 | MyCallable | +| main.rs:2537:17:2537:22 | result | | {EXTERNAL LOCATION} | i64 | +| main.rs:2537:26:2537:26 | c | | main.rs:2481:5:2481:24 | MyCallable | +| main.rs:2537:26:2537:33 | c.call() | | {EXTERNAL LOCATION} | i64 | +| main.rs:2542:13:2542:13 | i | | {EXTERNAL LOCATION} | Item | +| main.rs:2542:13:2542:13 | i | | {EXTERNAL LOCATION} | i32 | +| main.rs:2542:18:2542:18 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2542:18:2542:22 | 0..10 | | {EXTERNAL LOCATION} | Range | +| main.rs:2542:18:2542:22 | 0..10 | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2542:21:2542:22 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2543:13:2543:13 | u | | {EXTERNAL LOCATION} | Range | +| main.rs:2543:13:2543:13 | u | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2543:13:2543:13 | u | Idx | {EXTERNAL LOCATION} | u8 | +| main.rs:2543:18:2543:26 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2543:18:2543:26 | [...] | [T;...] | {EXTERNAL LOCATION} | Range | +| main.rs:2543:18:2543:26 | [...] | [T;...].Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2543:18:2543:26 | [...] | [T;...].Idx | {EXTERNAL LOCATION} | u8 | +| main.rs:2543:19:2543:21 | 0u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2543:19:2543:25 | 0u8..10 | | {EXTERNAL LOCATION} | Range | +| main.rs:2543:19:2543:25 | 0u8..10 | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2543:19:2543:25 | 0u8..10 | Idx | {EXTERNAL LOCATION} | u8 | +| main.rs:2543:24:2543:25 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2543:24:2543:25 | 10 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2544:13:2544:17 | range | | {EXTERNAL LOCATION} | Range | +| main.rs:2544:13:2544:17 | range | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2544:21:2544:21 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2544:21:2544:25 | 0..10 | | {EXTERNAL LOCATION} | Range | +| main.rs:2544:21:2544:25 | 0..10 | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2544:24:2544:25 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2545:13:2545:13 | i | | {EXTERNAL LOCATION} | Item | +| main.rs:2545:13:2545:13 | i | | {EXTERNAL LOCATION} | i32 | +| main.rs:2545:18:2545:22 | range | | {EXTERNAL LOCATION} | Range | +| main.rs:2545:18:2545:22 | range | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2546:13:2546:22 | range_full | | {EXTERNAL LOCATION} | RangeFull | +| main.rs:2546:26:2546:27 | .. | | {EXTERNAL LOCATION} | RangeFull | +| main.rs:2547:13:2547:13 | i | | {EXTERNAL LOCATION} | Item | +| main.rs:2547:18:2547:48 | &... | | file://:0:0:0:0 | & | +| main.rs:2547:19:2547:36 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2547:19:2547:36 | [...] | [T;...] | {EXTERNAL LOCATION} | i64 | +| main.rs:2547:20:2547:23 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2547:26:2547:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2547:32:2547:35 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2547:38:2547:47 | range_full | | {EXTERNAL LOCATION} | RangeFull | +| main.rs:2549:13:2549:18 | range1 | | {EXTERNAL LOCATION} | Range | +| main.rs:2549:13:2549:18 | range1 | Idx | {EXTERNAL LOCATION} | u16 | +| main.rs:2550:9:2553:9 | ...::Range {...} | | {EXTERNAL LOCATION} | Range | +| main.rs:2550:9:2553:9 | ...::Range {...} | Idx | {EXTERNAL LOCATION} | u16 | +| main.rs:2551:20:2551:23 | 0u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2552:18:2552:22 | 10u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2554:13:2554:13 | u | | {EXTERNAL LOCATION} | Item | +| main.rs:2554:13:2554:13 | u | | {EXTERNAL LOCATION} | u16 | +| main.rs:2554:18:2554:23 | range1 | | {EXTERNAL LOCATION} | Range | +| main.rs:2554:18:2554:23 | range1 | Idx | {EXTERNAL LOCATION} | u16 | +| main.rs:2558:26:2558:26 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2558:29:2558:29 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2558:32:2558:32 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2561:13:2561:18 | vals4a | | {EXTERNAL LOCATION} | Vec | +| main.rs:2561:13:2561:18 | vals4a | A | {EXTERNAL LOCATION} | Global | +| main.rs:2561:13:2561:18 | vals4a | T | {EXTERNAL LOCATION} | u16 | +| main.rs:2561:32:2561:43 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2561:32:2561:43 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2561:32:2561:43 | [...] | [T;...] | {EXTERNAL LOCATION} | u16 | +| main.rs:2561:32:2561:52 | ... .to_vec() | | {EXTERNAL LOCATION} | Vec | +| main.rs:2561:32:2561:52 | ... .to_vec() | A | {EXTERNAL LOCATION} | Global | +| main.rs:2561:32:2561:52 | ... .to_vec() | T | {EXTERNAL LOCATION} | u16 | +| main.rs:2561:33:2561:36 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2561:39:2561:39 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2561:42:2561:42 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2562:13:2562:13 | u | | {EXTERNAL LOCATION} | u16 | +| main.rs:2562:13:2562:13 | u | | file://:0:0:0:0 | & | +| main.rs:2562:18:2562:23 | vals4a | | {EXTERNAL LOCATION} | Vec | +| main.rs:2562:18:2562:23 | vals4a | A | {EXTERNAL LOCATION} | Global | +| main.rs:2562:18:2562:23 | vals4a | T | {EXTERNAL LOCATION} | u16 | +| main.rs:2564:22:2564:33 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2564:22:2564:33 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2564:22:2564:33 | [...] | [T;...] | {EXTERNAL LOCATION} | u16 | +| main.rs:2564:23:2564:26 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2564:29:2564:29 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2564:32:2564:32 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2567:13:2567:17 | vals5 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2567:13:2567:17 | vals5 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2567:13:2567:17 | vals5 | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2567:13:2567:17 | vals5 | T | {EXTERNAL LOCATION} | u32 | +| main.rs:2567:21:2567:43 | ...::from(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2567:21:2567:43 | ...::from(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2567:21:2567:43 | ...::from(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2567:21:2567:43 | ...::from(...) | T | {EXTERNAL LOCATION} | u32 | +| main.rs:2567:31:2567:42 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2567:31:2567:42 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2567:31:2567:42 | [...] | [T;...] | {EXTERNAL LOCATION} | u32 | +| main.rs:2567:32:2567:35 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2567:38:2567:38 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2567:41:2567:41 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2568:13:2568:13 | u | | {EXTERNAL LOCATION} | i32 | +| main.rs:2568:13:2568:13 | u | | {EXTERNAL LOCATION} | u32 | +| main.rs:2568:13:2568:13 | u | | file://:0:0:0:0 | & | +| main.rs:2568:18:2568:22 | vals5 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2568:18:2568:22 | vals5 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2568:18:2568:22 | vals5 | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2568:18:2568:22 | vals5 | T | {EXTERNAL LOCATION} | u32 | +| main.rs:2570:13:2570:17 | vals6 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2570:13:2570:17 | vals6 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2570:13:2570:17 | vals6 | T | file://:0:0:0:0 | & | +| main.rs:2570:13:2570:17 | vals6 | T.&T | {EXTERNAL LOCATION} | u64 | +| main.rs:2570:32:2570:43 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2570:32:2570:43 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2570:32:2570:43 | [...] | [T;...] | {EXTERNAL LOCATION} | u64 | +| main.rs:2570:32:2570:60 | ... .collect() | | {EXTERNAL LOCATION} | Vec | +| main.rs:2570:32:2570:60 | ... .collect() | A | {EXTERNAL LOCATION} | Global | +| main.rs:2570:32:2570:60 | ... .collect() | T | file://:0:0:0:0 | & | +| main.rs:2570:32:2570:60 | ... .collect() | T.&T | {EXTERNAL LOCATION} | u64 | +| main.rs:2570:33:2570:36 | 1u64 | | {EXTERNAL LOCATION} | u64 | +| main.rs:2570:39:2570:39 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2570:42:2570:42 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2571:13:2571:13 | u | | file://:0:0:0:0 | & | +| main.rs:2571:13:2571:13 | u | &T | {EXTERNAL LOCATION} | u64 | +| main.rs:2571:18:2571:22 | vals6 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2571:18:2571:22 | vals6 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2571:18:2571:22 | vals6 | T | file://:0:0:0:0 | & | +| main.rs:2571:18:2571:22 | vals6 | T.&T | {EXTERNAL LOCATION} | u64 | +| main.rs:2573:17:2573:21 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2573:17:2573:21 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2573:17:2573:21 | vals7 | T | {EXTERNAL LOCATION} | u8 | +| main.rs:2573:25:2573:34 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2573:25:2573:34 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2573:25:2573:34 | ...::new(...) | T | {EXTERNAL LOCATION} | u8 | +| main.rs:2574:9:2574:13 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2574:9:2574:13 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2574:9:2574:13 | vals7 | T | {EXTERNAL LOCATION} | u8 | +| main.rs:2574:20:2574:22 | 1u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2575:13:2575:13 | u | | {EXTERNAL LOCATION} | u8 | +| main.rs:2575:13:2575:13 | u | | file://:0:0:0:0 | & | +| main.rs:2575:18:2575:22 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2575:18:2575:22 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2575:18:2575:22 | vals7 | T | {EXTERNAL LOCATION} | u8 | +| main.rs:2577:33:2577:33 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2577:36:2577:36 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2577:45:2577:45 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2577:48:2577:48 | 4 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2584:17:2584:20 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2584:17:2584:20 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2584:17:2584:20 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2584:17:2584:20 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2584:17:2584:20 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2584:17:2584:20 | map1 | V.T | file://:0:0:0:0 | & | +| main.rs:2584:17:2584:20 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2584:24:2584:55 | ...::new(...) | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2584:24:2584:55 | ...::new(...) | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2584:24:2584:55 | ...::new(...) | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2584:24:2584:55 | ...::new(...) | V | {EXTERNAL LOCATION} | Box | +| main.rs:2584:24:2584:55 | ...::new(...) | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2584:24:2584:55 | ...::new(...) | V.T | file://:0:0:0:0 | & | +| main.rs:2584:24:2584:55 | ...::new(...) | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2585:9:2585:12 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2585:9:2585:12 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2585:9:2585:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2585:9:2585:12 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2585:9:2585:12 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2585:9:2585:12 | map1 | V.T | file://:0:0:0:0 | & | +| main.rs:2585:9:2585:12 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2585:9:2585:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2585:9:2585:39 | map1.insert(...) | T | {EXTERNAL LOCATION} | Box | +| main.rs:2585:9:2585:39 | map1.insert(...) | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2585:9:2585:39 | map1.insert(...) | T.T | file://:0:0:0:0 | & | +| main.rs:2585:9:2585:39 | map1.insert(...) | T.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2585:21:2585:21 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2585:24:2585:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2585:24:2585:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2585:24:2585:38 | ...::new(...) | T | file://:0:0:0:0 | & | +| main.rs:2585:24:2585:38 | ...::new(...) | T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2585:33:2585:37 | "one" | | file://:0:0:0:0 | & | +| main.rs:2585:33:2585:37 | "one" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2586:9:2586:12 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2586:9:2586:12 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2586:9:2586:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2586:9:2586:12 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2586:9:2586:12 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2586:9:2586:12 | map1 | V.T | file://:0:0:0:0 | & | +| main.rs:2586:9:2586:12 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2586:9:2586:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2586:9:2586:39 | map1.insert(...) | T | {EXTERNAL LOCATION} | Box | +| main.rs:2586:9:2586:39 | map1.insert(...) | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2586:9:2586:39 | map1.insert(...) | T.T | file://:0:0:0:0 | & | +| main.rs:2586:9:2586:39 | map1.insert(...) | T.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2586:21:2586:21 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2586:24:2586:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2586:24:2586:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2586:24:2586:38 | ...::new(...) | T | file://:0:0:0:0 | & | +| main.rs:2586:24:2586:38 | ...::new(...) | T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2586:33:2586:37 | "two" | | file://:0:0:0:0 | & | +| main.rs:2586:33:2586:37 | "two" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2587:13:2587:15 | key | | {EXTERNAL LOCATION} | Item | +| main.rs:2587:13:2587:15 | key | | file://:0:0:0:0 | & | +| main.rs:2587:13:2587:15 | key | &T | {EXTERNAL LOCATION} | i32 | +| main.rs:2587:20:2587:23 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2587:20:2587:23 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2587:20:2587:23 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2587:20:2587:23 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2587:20:2587:23 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2587:20:2587:23 | map1 | V.T | file://:0:0:0:0 | & | +| main.rs:2587:20:2587:23 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2587:20:2587:30 | map1.keys() | | {EXTERNAL LOCATION} | Keys | +| main.rs:2587:20:2587:30 | map1.keys() | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2587:20:2587:30 | map1.keys() | V | {EXTERNAL LOCATION} | Box | +| main.rs:2587:20:2587:30 | map1.keys() | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2587:20:2587:30 | map1.keys() | V.T | file://:0:0:0:0 | & | +| main.rs:2587:20:2587:30 | map1.keys() | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2588:13:2588:17 | value | | {EXTERNAL LOCATION} | Item | +| main.rs:2588:13:2588:17 | value | | file://:0:0:0:0 | & | +| main.rs:2588:13:2588:17 | value | &T | {EXTERNAL LOCATION} | Box | +| main.rs:2588:13:2588:17 | value | &T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2588:13:2588:17 | value | &T.T | file://:0:0:0:0 | & | +| main.rs:2588:13:2588:17 | value | &T.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2588:22:2588:25 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2588:22:2588:25 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2588:22:2588:25 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2588:22:2588:25 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2588:22:2588:25 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2588:22:2588:25 | map1 | V.T | file://:0:0:0:0 | & | +| main.rs:2588:22:2588:25 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2588:22:2588:34 | map1.values() | | {EXTERNAL LOCATION} | Values | +| main.rs:2588:22:2588:34 | map1.values() | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2588:22:2588:34 | map1.values() | V | {EXTERNAL LOCATION} | Box | +| main.rs:2588:22:2588:34 | map1.values() | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2588:22:2588:34 | map1.values() | V.T | file://:0:0:0:0 | & | +| main.rs:2588:22:2588:34 | map1.values() | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2589:13:2589:24 | TuplePat | | file://:0:0:0:0 | (T_2) | +| main.rs:2589:13:2589:24 | TuplePat | 0(2) | file://:0:0:0:0 | & | +| main.rs:2589:13:2589:24 | TuplePat | 0(2).&T | {EXTERNAL LOCATION} | i32 | +| main.rs:2589:13:2589:24 | TuplePat | 1(2) | file://:0:0:0:0 | & | +| main.rs:2589:13:2589:24 | TuplePat | 1(2).&T | {EXTERNAL LOCATION} | Box | +| main.rs:2589:13:2589:24 | TuplePat | 1(2).&T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2589:13:2589:24 | TuplePat | 1(2).&T.T | file://:0:0:0:0 | & | +| main.rs:2589:13:2589:24 | TuplePat | 1(2).&T.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2589:14:2589:16 | key | | file://:0:0:0:0 | & | +| main.rs:2589:14:2589:16 | key | &T | {EXTERNAL LOCATION} | i32 | +| main.rs:2589:19:2589:23 | value | | file://:0:0:0:0 | & | +| main.rs:2589:19:2589:23 | value | &T | {EXTERNAL LOCATION} | Box | +| main.rs:2589:19:2589:23 | value | &T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2589:19:2589:23 | value | &T.T | file://:0:0:0:0 | & | +| main.rs:2589:19:2589:23 | value | &T.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2589:29:2589:32 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2589:29:2589:32 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2589:29:2589:32 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2589:29:2589:32 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2589:29:2589:32 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2589:29:2589:32 | map1 | V.T | file://:0:0:0:0 | & | +| main.rs:2589:29:2589:32 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2589:29:2589:39 | map1.iter() | | {EXTERNAL LOCATION} | Iter | +| main.rs:2589:29:2589:39 | map1.iter() | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2589:29:2589:39 | map1.iter() | V | {EXTERNAL LOCATION} | Box | +| main.rs:2589:29:2589:39 | map1.iter() | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2589:29:2589:39 | map1.iter() | V.T | file://:0:0:0:0 | & | +| main.rs:2589:29:2589:39 | map1.iter() | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2590:13:2590:24 | TuplePat | | file://:0:0:0:0 | (T_2) | +| main.rs:2590:13:2590:24 | TuplePat | 0(2) | file://:0:0:0:0 | & | +| main.rs:2590:13:2590:24 | TuplePat | 0(2).&T | {EXTERNAL LOCATION} | i32 | +| main.rs:2590:13:2590:24 | TuplePat | 1(2) | file://:0:0:0:0 | & | +| main.rs:2590:13:2590:24 | TuplePat | 1(2).&T | {EXTERNAL LOCATION} | Box | +| main.rs:2590:13:2590:24 | TuplePat | 1(2).&T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2590:13:2590:24 | TuplePat | 1(2).&T.T | file://:0:0:0:0 | & | +| main.rs:2590:13:2590:24 | TuplePat | 1(2).&T.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2590:14:2590:16 | key | | file://:0:0:0:0 | & | +| main.rs:2590:14:2590:16 | key | &T | {EXTERNAL LOCATION} | i32 | +| main.rs:2590:19:2590:23 | value | | file://:0:0:0:0 | & | +| main.rs:2590:19:2590:23 | value | &T | {EXTERNAL LOCATION} | Box | +| main.rs:2590:19:2590:23 | value | &T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2590:19:2590:23 | value | &T.T | file://:0:0:0:0 | & | +| main.rs:2590:19:2590:23 | value | &T.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2590:29:2590:33 | &map1 | | file://:0:0:0:0 | & | +| main.rs:2590:29:2590:33 | &map1 | &T | {EXTERNAL LOCATION} | HashMap | +| main.rs:2590:29:2590:33 | &map1 | &T.K | {EXTERNAL LOCATION} | i32 | +| main.rs:2590:29:2590:33 | &map1 | &T.S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2590:29:2590:33 | &map1 | &T.V | {EXTERNAL LOCATION} | Box | +| main.rs:2590:29:2590:33 | &map1 | &T.V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2590:29:2590:33 | &map1 | &T.V.T | file://:0:0:0:0 | & | +| main.rs:2590:29:2590:33 | &map1 | &T.V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2590:30:2590:33 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2590:30:2590:33 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2590:30:2590:33 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2590:30:2590:33 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2590:30:2590:33 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2590:30:2590:33 | map1 | V.T | file://:0:0:0:0 | & | +| main.rs:2590:30:2590:33 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2594:17:2594:17 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2594:26:2594:26 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2594:26:2594:26 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2596:23:2596:23 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2596:23:2596:28 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2596:27:2596:28 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2596:27:2596:28 | 10 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2598:13:2598:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2598:13:2598:18 | ... += ... | | file://:0:0:0:0 | () | +| main.rs:2598:18:2598:18 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2610:40:2612:9 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:2610:40:2612:9 | { ... } | T | main.rs:2604:5:2604:20 | S1 | +| main.rs:2610:40:2612:9 | { ... } | T.T | main.rs:2609:10:2609:19 | T | +| main.rs:2611:13:2611:16 | None | | {EXTERNAL LOCATION} | Option | +| main.rs:2611:13:2611:16 | None | T | main.rs:2604:5:2604:20 | S1 | +| main.rs:2611:13:2611:16 | None | T.T | main.rs:2609:10:2609:19 | T | +| main.rs:2614:30:2616:9 | { ... } | | main.rs:2604:5:2604:20 | S1 | +| main.rs:2614:30:2616:9 | { ... } | T | main.rs:2609:10:2609:19 | T | +| main.rs:2615:13:2615:28 | S1(...) | | main.rs:2604:5:2604:20 | S1 | +| main.rs:2615:13:2615:28 | S1(...) | T | main.rs:2609:10:2609:19 | T | +| main.rs:2615:16:2615:27 | ...::default(...) | | main.rs:2609:10:2609:19 | T | +| main.rs:2618:19:2618:22 | SelfParam | | main.rs:2604:5:2604:20 | S1 | +| main.rs:2618:19:2618:22 | SelfParam | T | main.rs:2609:10:2609:19 | T | +| main.rs:2618:33:2620:9 | { ... } | | main.rs:2604:5:2604:20 | S1 | +| main.rs:2618:33:2620:9 | { ... } | T | main.rs:2609:10:2609:19 | T | +| main.rs:2619:13:2619:16 | self | | main.rs:2604:5:2604:20 | S1 | +| main.rs:2619:13:2619:16 | self | T | main.rs:2609:10:2609:19 | T | +| main.rs:2631:15:2631:15 | x | | main.rs:2631:12:2631:12 | T | +| main.rs:2631:26:2633:5 | { ... } | | main.rs:2631:12:2631:12 | T | +| main.rs:2632:9:2632:9 | x | | main.rs:2631:12:2631:12 | T | +| main.rs:2636:13:2636:14 | x1 | | {EXTERNAL LOCATION} | Option | +| main.rs:2636:13:2636:14 | x1 | T | main.rs:2604:5:2604:20 | S1 | +| main.rs:2636:13:2636:14 | x1 | T.T | main.rs:2606:5:2607:14 | S2 | +| main.rs:2636:34:2636:48 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2636:34:2636:48 | ...::assoc_fun(...) | T | main.rs:2604:5:2604:20 | S1 | +| main.rs:2636:34:2636:48 | ...::assoc_fun(...) | T.T | main.rs:2606:5:2607:14 | S2 | +| main.rs:2637:13:2637:14 | x2 | | {EXTERNAL LOCATION} | Option | +| main.rs:2637:13:2637:14 | x2 | T | main.rs:2604:5:2604:20 | S1 | +| main.rs:2637:13:2637:14 | x2 | T.T | main.rs:2606:5:2607:14 | S2 | +| main.rs:2637:18:2637:38 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2637:18:2637:38 | ...::assoc_fun(...) | T | main.rs:2604:5:2604:20 | S1 | +| main.rs:2637:18:2637:38 | ...::assoc_fun(...) | T.T | main.rs:2606:5:2607:14 | S2 | +| main.rs:2638:13:2638:14 | x3 | | {EXTERNAL LOCATION} | Option | +| main.rs:2638:13:2638:14 | x3 | T | main.rs:2604:5:2604:20 | S1 | +| main.rs:2638:13:2638:14 | x3 | T.T | main.rs:2606:5:2607:14 | S2 | +| main.rs:2638:18:2638:32 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2638:18:2638:32 | ...::assoc_fun(...) | T | main.rs:2604:5:2604:20 | S1 | +| main.rs:2638:18:2638:32 | ...::assoc_fun(...) | T.T | main.rs:2606:5:2607:14 | S2 | +| main.rs:2639:13:2639:14 | x4 | | main.rs:2604:5:2604:20 | S1 | +| main.rs:2639:13:2639:14 | x4 | T | main.rs:2606:5:2607:14 | S2 | +| main.rs:2639:18:2639:48 | ...::method(...) | | main.rs:2604:5:2604:20 | S1 | +| main.rs:2639:18:2639:48 | ...::method(...) | T | main.rs:2606:5:2607:14 | S2 | +| main.rs:2639:35:2639:47 | ...::default(...) | | main.rs:2604:5:2604:20 | S1 | +| main.rs:2639:35:2639:47 | ...::default(...) | T | main.rs:2606:5:2607:14 | S2 | +| main.rs:2640:13:2640:14 | x5 | | main.rs:2604:5:2604:20 | S1 | +| main.rs:2640:13:2640:14 | x5 | T | main.rs:2606:5:2607:14 | S2 | +| main.rs:2640:18:2640:42 | ...::method(...) | | main.rs:2604:5:2604:20 | S1 | +| main.rs:2640:18:2640:42 | ...::method(...) | T | main.rs:2606:5:2607:14 | S2 | +| main.rs:2640:29:2640:41 | ...::default(...) | | main.rs:2604:5:2604:20 | S1 | +| main.rs:2640:29:2640:41 | ...::default(...) | T | main.rs:2606:5:2607:14 | S2 | +| main.rs:2641:13:2641:14 | x6 | | main.rs:2625:5:2625:27 | S4 | +| main.rs:2641:13:2641:14 | x6 | T4 | main.rs:2606:5:2607:14 | S2 | +| main.rs:2641:18:2641:45 | S4::<...>(...) | | main.rs:2625:5:2625:27 | S4 | +| main.rs:2641:18:2641:45 | S4::<...>(...) | T4 | main.rs:2606:5:2607:14 | S2 | +| main.rs:2641:27:2641:44 | ...::default(...) | | main.rs:2606:5:2607:14 | S2 | +| main.rs:2642:13:2642:14 | x7 | | main.rs:2625:5:2625:27 | S4 | +| main.rs:2642:13:2642:14 | x7 | T4 | main.rs:2606:5:2607:14 | S2 | +| main.rs:2642:18:2642:23 | S4(...) | | main.rs:2625:5:2625:27 | S4 | +| main.rs:2642:18:2642:23 | S4(...) | T4 | main.rs:2606:5:2607:14 | S2 | +| main.rs:2642:21:2642:22 | S2 | | main.rs:2606:5:2607:14 | S2 | +| main.rs:2643:13:2643:14 | x8 | | main.rs:2625:5:2625:27 | S4 | +| main.rs:2643:13:2643:14 | x8 | T4 | {EXTERNAL LOCATION} | i32 | +| main.rs:2643:18:2643:22 | S4(...) | | main.rs:2625:5:2625:27 | S4 | +| main.rs:2643:18:2643:22 | S4(...) | T4 | {EXTERNAL LOCATION} | i32 | +| main.rs:2643:21:2643:21 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2644:13:2644:14 | x9 | | main.rs:2625:5:2625:27 | S4 | +| main.rs:2644:13:2644:14 | x9 | T4 | main.rs:2606:5:2607:14 | S2 | +| main.rs:2644:18:2644:34 | S4(...) | | main.rs:2625:5:2625:27 | S4 | +| main.rs:2644:18:2644:34 | S4(...) | T4 | main.rs:2606:5:2607:14 | S2 | +| main.rs:2644:21:2644:33 | ...::default(...) | | main.rs:2606:5:2607:14 | S2 | +| main.rs:2645:13:2645:15 | x10 | | main.rs:2627:5:2629:5 | S5 | +| main.rs:2645:13:2645:15 | x10 | T5 | main.rs:2606:5:2607:14 | S2 | +| main.rs:2645:19:2648:9 | S5::<...> {...} | | main.rs:2627:5:2629:5 | S5 | +| main.rs:2645:19:2648:9 | S5::<...> {...} | T5 | main.rs:2606:5:2607:14 | S2 | +| main.rs:2647:20:2647:37 | ...::default(...) | | main.rs:2606:5:2607:14 | S2 | +| main.rs:2649:13:2649:15 | x11 | | main.rs:2627:5:2629:5 | S5 | +| main.rs:2649:13:2649:15 | x11 | T5 | main.rs:2606:5:2607:14 | S2 | +| main.rs:2649:19:2649:34 | S5 {...} | | main.rs:2627:5:2629:5 | S5 | +| main.rs:2649:19:2649:34 | S5 {...} | T5 | main.rs:2606:5:2607:14 | S2 | +| main.rs:2649:31:2649:32 | S2 | | main.rs:2606:5:2607:14 | S2 | +| main.rs:2650:13:2650:15 | x12 | | main.rs:2627:5:2629:5 | S5 | +| main.rs:2650:13:2650:15 | x12 | T5 | {EXTERNAL LOCATION} | i32 | +| main.rs:2650:19:2650:33 | S5 {...} | | main.rs:2627:5:2629:5 | S5 | +| main.rs:2650:19:2650:33 | S5 {...} | T5 | {EXTERNAL LOCATION} | i32 | +| main.rs:2650:31:2650:31 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2651:13:2651:15 | x13 | | main.rs:2627:5:2629:5 | S5 | +| main.rs:2651:13:2651:15 | x13 | T5 | main.rs:2606:5:2607:14 | S2 | +| main.rs:2651:19:2654:9 | S5 {...} | | main.rs:2627:5:2629:5 | S5 | +| main.rs:2651:19:2654:9 | S5 {...} | T5 | main.rs:2606:5:2607:14 | S2 | +| main.rs:2653:20:2653:32 | ...::default(...) | | main.rs:2606:5:2607:14 | S2 | +| main.rs:2655:13:2655:15 | x14 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2655:19:2655:48 | foo::<...>(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:2655:30:2655:47 | ...::default(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:2656:13:2656:15 | x15 | | main.rs:2604:5:2604:20 | S1 | +| main.rs:2656:13:2656:15 | x15 | T | main.rs:2606:5:2607:14 | S2 | +| main.rs:2656:19:2656:37 | ...::default(...) | | main.rs:2604:5:2604:20 | S1 | +| main.rs:2656:19:2656:37 | ...::default(...) | T | main.rs:2606:5:2607:14 | S2 | +| main.rs:2665:35:2667:9 | { ... } | | file://:0:0:0:0 | (T_2) | +| main.rs:2665:35:2667:9 | { ... } | 0(2) | main.rs:2661:5:2662:16 | S1 | +| main.rs:2665:35:2667:9 | { ... } | 1(2) | main.rs:2661:5:2662:16 | S1 | +| main.rs:2666:13:2666:26 | TupleExpr | | file://:0:0:0:0 | (T_2) | +| main.rs:2666:13:2666:26 | TupleExpr | 0(2) | main.rs:2661:5:2662:16 | S1 | +| main.rs:2666:13:2666:26 | TupleExpr | 1(2) | main.rs:2661:5:2662:16 | S1 | +| main.rs:2666:14:2666:18 | S1 {...} | | main.rs:2661:5:2662:16 | S1 | +| main.rs:2666:21:2666:25 | S1 {...} | | main.rs:2661:5:2662:16 | S1 | +| main.rs:2668:16:2668:19 | SelfParam | | main.rs:2661:5:2662:16 | S1 | +| main.rs:2672:13:2672:13 | a | | file://:0:0:0:0 | (T_2) | +| main.rs:2672:13:2672:13 | a | 0(2) | main.rs:2661:5:2662:16 | S1 | +| main.rs:2672:13:2672:13 | a | 1(2) | main.rs:2661:5:2662:16 | S1 | +| main.rs:2672:17:2672:30 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | +| main.rs:2672:17:2672:30 | ...::get_pair(...) | 0(2) | main.rs:2661:5:2662:16 | S1 | +| main.rs:2672:17:2672:30 | ...::get_pair(...) | 1(2) | main.rs:2661:5:2662:16 | S1 | +| main.rs:2673:17:2673:17 | b | | file://:0:0:0:0 | (T_2) | +| main.rs:2673:17:2673:17 | b | 0(2) | main.rs:2661:5:2662:16 | S1 | +| main.rs:2673:17:2673:17 | b | 1(2) | main.rs:2661:5:2662:16 | S1 | +| main.rs:2673:21:2673:34 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | +| main.rs:2673:21:2673:34 | ...::get_pair(...) | 0(2) | main.rs:2661:5:2662:16 | S1 | +| main.rs:2673:21:2673:34 | ...::get_pair(...) | 1(2) | main.rs:2661:5:2662:16 | S1 | +| main.rs:2674:13:2674:18 | TuplePat | | file://:0:0:0:0 | (T_2) | +| main.rs:2674:13:2674:18 | TuplePat | 0(2) | main.rs:2661:5:2662:16 | S1 | +| main.rs:2674:13:2674:18 | TuplePat | 1(2) | main.rs:2661:5:2662:16 | S1 | +| main.rs:2674:14:2674:14 | c | | main.rs:2661:5:2662:16 | S1 | +| main.rs:2674:17:2674:17 | d | | main.rs:2661:5:2662:16 | S1 | +| main.rs:2674:22:2674:35 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | +| main.rs:2674:22:2674:35 | ...::get_pair(...) | 0(2) | main.rs:2661:5:2662:16 | S1 | +| main.rs:2674:22:2674:35 | ...::get_pair(...) | 1(2) | main.rs:2661:5:2662:16 | S1 | +| main.rs:2675:13:2675:22 | TuplePat | | file://:0:0:0:0 | (T_2) | +| main.rs:2675:13:2675:22 | TuplePat | 0(2) | main.rs:2661:5:2662:16 | S1 | +| main.rs:2675:13:2675:22 | TuplePat | 1(2) | main.rs:2661:5:2662:16 | S1 | +| main.rs:2675:18:2675:18 | e | | main.rs:2661:5:2662:16 | S1 | +| main.rs:2675:21:2675:21 | f | | main.rs:2661:5:2662:16 | S1 | +| main.rs:2675:26:2675:39 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | +| main.rs:2675:26:2675:39 | ...::get_pair(...) | 0(2) | main.rs:2661:5:2662:16 | S1 | +| main.rs:2675:26:2675:39 | ...::get_pair(...) | 1(2) | main.rs:2661:5:2662:16 | S1 | +| main.rs:2676:13:2676:26 | TuplePat | | file://:0:0:0:0 | (T_2) | +| main.rs:2676:13:2676:26 | TuplePat | 0(2) | main.rs:2661:5:2662:16 | S1 | +| main.rs:2676:13:2676:26 | TuplePat | 1(2) | main.rs:2661:5:2662:16 | S1 | +| main.rs:2676:18:2676:18 | g | | main.rs:2661:5:2662:16 | S1 | +| main.rs:2676:25:2676:25 | h | | main.rs:2661:5:2662:16 | S1 | +| main.rs:2676:30:2676:43 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | +| main.rs:2676:30:2676:43 | ...::get_pair(...) | 0(2) | main.rs:2661:5:2662:16 | S1 | +| main.rs:2676:30:2676:43 | ...::get_pair(...) | 1(2) | main.rs:2661:5:2662:16 | S1 | +| main.rs:2678:9:2678:9 | a | | file://:0:0:0:0 | (T_2) | +| main.rs:2678:9:2678:9 | a | 0(2) | main.rs:2661:5:2662:16 | S1 | +| main.rs:2678:9:2678:9 | a | 1(2) | main.rs:2661:5:2662:16 | S1 | +| main.rs:2678:9:2678:11 | a.0 | | main.rs:2661:5:2662:16 | S1 | +| main.rs:2679:9:2679:9 | b | | file://:0:0:0:0 | (T_2) | +| main.rs:2679:9:2679:9 | b | 0(2) | main.rs:2661:5:2662:16 | S1 | +| main.rs:2679:9:2679:9 | b | 1(2) | main.rs:2661:5:2662:16 | S1 | +| main.rs:2679:9:2679:11 | b.1 | | main.rs:2661:5:2662:16 | S1 | +| main.rs:2680:9:2680:9 | c | | main.rs:2661:5:2662:16 | S1 | +| main.rs:2681:9:2681:9 | d | | main.rs:2661:5:2662:16 | S1 | +| main.rs:2682:9:2682:9 | e | | main.rs:2661:5:2662:16 | S1 | +| main.rs:2683:9:2683:9 | f | | main.rs:2661:5:2662:16 | S1 | +| main.rs:2684:9:2684:9 | g | | main.rs:2661:5:2662:16 | S1 | +| main.rs:2685:9:2685:9 | h | | main.rs:2661:5:2662:16 | S1 | +| main.rs:2690:13:2690:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2690:17:2690:34 | ...::default(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2691:13:2691:13 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2691:17:2691:34 | ...::default(...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2692:13:2692:16 | pair | | file://:0:0:0:0 | (T_2) | +| main.rs:2692:13:2692:16 | pair | 0(2) | {EXTERNAL LOCATION} | i64 | +| main.rs:2692:13:2692:16 | pair | 1(2) | {EXTERNAL LOCATION} | bool | +| main.rs:2692:20:2692:25 | TupleExpr | | file://:0:0:0:0 | (T_2) | +| main.rs:2692:20:2692:25 | TupleExpr | 0(2) | {EXTERNAL LOCATION} | i64 | +| main.rs:2692:20:2692:25 | TupleExpr | 1(2) | {EXTERNAL LOCATION} | bool | +| main.rs:2692:21:2692:21 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2692:24:2692:24 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2693:13:2693:13 | i | | {EXTERNAL LOCATION} | i64 | +| main.rs:2693:22:2693:25 | pair | | file://:0:0:0:0 | (T_2) | +| main.rs:2693:22:2693:25 | pair | 0(2) | {EXTERNAL LOCATION} | i64 | +| main.rs:2693:22:2693:25 | pair | 1(2) | {EXTERNAL LOCATION} | bool | +| main.rs:2693:22:2693:27 | pair.0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2694:13:2694:13 | j | | {EXTERNAL LOCATION} | bool | +| main.rs:2694:23:2694:26 | pair | | file://:0:0:0:0 | (T_2) | +| main.rs:2694:23:2694:26 | pair | 0(2) | {EXTERNAL LOCATION} | i64 | +| main.rs:2694:23:2694:26 | pair | 1(2) | {EXTERNAL LOCATION} | bool | +| main.rs:2694:23:2694:28 | pair.1 | | {EXTERNAL LOCATION} | bool | +| main.rs:2696:13:2696:16 | pair | | file://:0:0:0:0 | (T_2) | +| main.rs:2696:13:2696:16 | pair | 0(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2696:13:2696:16 | pair | 1(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2696:20:2696:25 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2696:20:2696:25 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2696:20:2696:32 | ... .into() | | file://:0:0:0:0 | (T_2) | +| main.rs:2696:20:2696:32 | ... .into() | 0(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2696:20:2696:32 | ... .into() | 1(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2696:21:2696:21 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2696:24:2696:24 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2697:15:2697:18 | pair | | file://:0:0:0:0 | (T_2) | +| main.rs:2697:15:2697:18 | pair | 0(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2697:15:2697:18 | pair | 1(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2698:13:2698:18 | TuplePat | | file://:0:0:0:0 | (T_2) | +| main.rs:2698:13:2698:18 | TuplePat | 0(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2698:13:2698:18 | TuplePat | 1(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2698:14:2698:14 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2698:17:2698:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2698:30:2698:41 | "unexpected" | | file://:0:0:0:0 | & | +| main.rs:2698:30:2698:41 | "unexpected" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2698:30:2698:41 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2698:30:2698:41 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2699:13:2699:13 | _ | | file://:0:0:0:0 | (T_2) | +| main.rs:2699:13:2699:13 | _ | 0(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2699:13:2699:13 | _ | 1(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2699:25:2699:34 | "expected" | | file://:0:0:0:0 | & | +| main.rs:2699:25:2699:34 | "expected" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2699:25:2699:34 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2699:25:2699:34 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2701:13:2701:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2701:17:2701:20 | pair | | file://:0:0:0:0 | (T_2) | +| main.rs:2701:17:2701:20 | pair | 0(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2701:17:2701:20 | pair | 1(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2701:17:2701:22 | pair.0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2703:13:2703:13 | y | | file://:0:0:0:0 | & | +| main.rs:2703:13:2703:13 | y | &T | file://:0:0:0:0 | (T_2) | +| main.rs:2703:13:2703:13 | y | &T.0(2) | main.rs:2661:5:2662:16 | S1 | +| main.rs:2703:13:2703:13 | y | &T.1(2) | main.rs:2661:5:2662:16 | S1 | +| main.rs:2703:17:2703:31 | &... | | file://:0:0:0:0 | & | +| main.rs:2703:17:2703:31 | &... | &T | file://:0:0:0:0 | (T_2) | +| main.rs:2703:17:2703:31 | &... | &T.0(2) | main.rs:2661:5:2662:16 | S1 | +| main.rs:2703:17:2703:31 | &... | &T.1(2) | main.rs:2661:5:2662:16 | S1 | +| main.rs:2703:18:2703:31 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | +| main.rs:2703:18:2703:31 | ...::get_pair(...) | 0(2) | main.rs:2661:5:2662:16 | S1 | +| main.rs:2703:18:2703:31 | ...::get_pair(...) | 1(2) | main.rs:2661:5:2662:16 | S1 | +| main.rs:2704:9:2704:9 | y | | file://:0:0:0:0 | & | +| main.rs:2704:9:2704:9 | y | &T | file://:0:0:0:0 | (T_2) | +| main.rs:2704:9:2704:9 | y | &T.0(2) | main.rs:2661:5:2662:16 | S1 | +| main.rs:2704:9:2704:9 | y | &T.1(2) | main.rs:2661:5:2662:16 | S1 | +| main.rs:2704:9:2704:11 | y.0 | | main.rs:2661:5:2662:16 | S1 | +| main.rs:2711:13:2711:23 | boxed_value | | {EXTERNAL LOCATION} | Box | +| main.rs:2711:13:2711:23 | boxed_value | A | {EXTERNAL LOCATION} | Global | +| main.rs:2711:13:2711:23 | boxed_value | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2711:27:2711:42 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2711:27:2711:42 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2711:27:2711:42 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2711:36:2711:41 | 100i32 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2714:15:2714:25 | boxed_value | | {EXTERNAL LOCATION} | Box | +| main.rs:2714:15:2714:25 | boxed_value | A | {EXTERNAL LOCATION} | Global | +| main.rs:2714:15:2714:25 | boxed_value | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2715:13:2715:19 | box 100 | | {EXTERNAL LOCATION} | Box | +| main.rs:2715:13:2715:19 | box 100 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2715:13:2715:19 | box 100 | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2715:17:2715:19 | 100 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2716:26:2716:36 | "Boxed 100\\n" | | file://:0:0:0:0 | & | +| main.rs:2716:26:2716:36 | "Boxed 100\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2716:26:2716:36 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2716:26:2716:36 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2718:13:2718:17 | box ... | | {EXTERNAL LOCATION} | Box | +| main.rs:2718:13:2718:17 | box ... | A | {EXTERNAL LOCATION} | Global | +| main.rs:2718:13:2718:17 | box ... | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2720:26:2720:42 | "Boxed value: {}\\n" | | file://:0:0:0:0 | & | +| main.rs:2720:26:2720:42 | "Boxed value: {}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2720:26:2720:51 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2720:26:2720:51 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2725:13:2725:22 | nested_box | | {EXTERNAL LOCATION} | Box | +| main.rs:2725:13:2725:22 | nested_box | A | {EXTERNAL LOCATION} | Global | +| main.rs:2725:13:2725:22 | nested_box | T | {EXTERNAL LOCATION} | Box | +| main.rs:2725:13:2725:22 | nested_box | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2725:13:2725:22 | nested_box | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2725:26:2725:50 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2725:26:2725:50 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2725:26:2725:50 | ...::new(...) | T | {EXTERNAL LOCATION} | Box | +| main.rs:2725:26:2725:50 | ...::new(...) | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2725:26:2725:50 | ...::new(...) | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2725:35:2725:49 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2725:35:2725:49 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2725:35:2725:49 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2725:44:2725:48 | 42i32 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2726:15:2726:24 | nested_box | | {EXTERNAL LOCATION} | Box | +| main.rs:2726:15:2726:24 | nested_box | A | {EXTERNAL LOCATION} | Global | +| main.rs:2726:15:2726:24 | nested_box | T | {EXTERNAL LOCATION} | Box | +| main.rs:2726:15:2726:24 | nested_box | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2726:15:2726:24 | nested_box | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2727:13:2727:21 | box ... | | {EXTERNAL LOCATION} | Box | +| main.rs:2727:13:2727:21 | box ... | A | {EXTERNAL LOCATION} | Global | +| main.rs:2727:13:2727:21 | box ... | T | {EXTERNAL LOCATION} | Box | +| main.rs:2727:13:2727:21 | box ... | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2727:13:2727:21 | box ... | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2729:26:2729:43 | "Nested boxed: {}\\n" | | file://:0:0:0:0 | & | +| main.rs:2729:26:2729:43 | "Nested boxed: {}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2729:26:2729:59 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2729:26:2729:59 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2741:36:2743:9 | { ... } | | main.rs:2738:5:2738:22 | Path | +| main.rs:2742:13:2742:19 | Path {...} | | main.rs:2738:5:2738:22 | Path | +| main.rs:2745:29:2745:33 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2745:29:2745:33 | SelfParam | &T | main.rs:2738:5:2738:22 | Path | +| main.rs:2745:59:2747:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:2745:59:2747:9 | { ... } | E | file://:0:0:0:0 | () | +| main.rs:2745:59:2747:9 | { ... } | T | main.rs:2750:5:2750:25 | PathBuf | +| main.rs:2746:13:2746:30 | Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:2746:13:2746:30 | Ok(...) | E | file://:0:0:0:0 | () | +| main.rs:2746:13:2746:30 | Ok(...) | T | main.rs:2750:5:2750:25 | PathBuf | +| main.rs:2746:16:2746:29 | ...::new(...) | | main.rs:2750:5:2750:25 | PathBuf | +| main.rs:2753:39:2755:9 | { ... } | | main.rs:2750:5:2750:25 | PathBuf | +| main.rs:2754:13:2754:22 | PathBuf {...} | | main.rs:2750:5:2750:25 | PathBuf | +| main.rs:2763:18:2763:22 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2763:18:2763:22 | SelfParam | &T | main.rs:2750:5:2750:25 | PathBuf | +| main.rs:2763:34:2767:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:2763:34:2767:9 | { ... } | &T | main.rs:2738:5:2738:22 | Path | +| main.rs:2765:33:2765:43 | ...::new(...) | | main.rs:2738:5:2738:22 | Path | +| main.rs:2766:13:2766:17 | &path | | file://:0:0:0:0 | & | +| main.rs:2766:13:2766:17 | &path | &T | main.rs:2738:5:2738:22 | Path | +| main.rs:2766:14:2766:17 | path | | main.rs:2738:5:2738:22 | Path | +| main.rs:2771:13:2771:17 | path1 | | main.rs:2738:5:2738:22 | Path | +| main.rs:2771:21:2771:31 | ...::new(...) | | main.rs:2738:5:2738:22 | Path | +| main.rs:2772:13:2772:17 | path2 | | {EXTERNAL LOCATION} | Result | +| main.rs:2772:13:2772:17 | path2 | E | file://:0:0:0:0 | () | +| main.rs:2772:13:2772:17 | path2 | T | main.rs:2750:5:2750:25 | PathBuf | +| main.rs:2772:21:2772:25 | path1 | | main.rs:2738:5:2738:22 | Path | +| main.rs:2772:21:2772:40 | path1.canonicalize() | | {EXTERNAL LOCATION} | Result | +| main.rs:2772:21:2772:40 | path1.canonicalize() | E | file://:0:0:0:0 | () | +| main.rs:2772:21:2772:40 | path1.canonicalize() | T | main.rs:2750:5:2750:25 | PathBuf | +| main.rs:2773:13:2773:17 | path3 | | main.rs:2750:5:2750:25 | PathBuf | +| main.rs:2773:21:2773:25 | path2 | | {EXTERNAL LOCATION} | Result | +| main.rs:2773:21:2773:25 | path2 | E | file://:0:0:0:0 | () | +| main.rs:2773:21:2773:25 | path2 | T | main.rs:2750:5:2750:25 | PathBuf | +| main.rs:2773:21:2773:34 | path2.unwrap() | | main.rs:2750:5:2750:25 | PathBuf | +| main.rs:2775:13:2775:20 | pathbuf1 | | main.rs:2750:5:2750:25 | PathBuf | +| main.rs:2775:24:2775:37 | ...::new(...) | | main.rs:2750:5:2750:25 | PathBuf | +| main.rs:2776:24:2776:31 | pathbuf1 | | main.rs:2750:5:2750:25 | PathBuf | +| main.rs:2783:14:2783:18 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2783:14:2783:18 | SelfParam | &T | main.rs:2782:5:2784:5 | Self [trait MyTrait] | +| main.rs:2790:14:2790:18 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2790:14:2790:18 | SelfParam | &T | main.rs:2786:5:2787:19 | S | +| main.rs:2790:14:2790:18 | SelfParam | &T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2790:28:2792:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2791:13:2791:16 | self | | file://:0:0:0:0 | & | +| main.rs:2791:13:2791:16 | self | &T | main.rs:2786:5:2787:19 | S | +| main.rs:2791:13:2791:16 | self | &T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2791:13:2791:18 | self.0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2796:14:2796:18 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2796:14:2796:18 | SelfParam | &T | main.rs:2786:5:2787:19 | S | +| main.rs:2796:14:2796:18 | SelfParam | &T.T | main.rs:2786:5:2787:19 | S | +| main.rs:2796:14:2796:18 | SelfParam | &T.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2796:28:2798:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2797:13:2797:16 | self | | file://:0:0:0:0 | & | +| main.rs:2797:13:2797:16 | self | &T | main.rs:2786:5:2787:19 | S | +| main.rs:2797:13:2797:16 | self | &T.T | main.rs:2786:5:2787:19 | S | +| main.rs:2797:13:2797:16 | self | &T.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2797:13:2797:18 | self.0 | | main.rs:2786:5:2787:19 | S | +| main.rs:2797:13:2797:18 | self.0 | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2797:13:2797:21 | ... .0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2802:15:2802:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2802:15:2802:19 | SelfParam | &T | main.rs:2786:5:2787:19 | S | +| main.rs:2802:15:2802:19 | SelfParam | &T.T | main.rs:2801:10:2801:16 | T | +| main.rs:2802:33:2804:9 | { ... } | | main.rs:2786:5:2787:19 | S | +| main.rs:2802:33:2804:9 | { ... } | T | main.rs:2786:5:2787:19 | S | +| main.rs:2802:33:2804:9 | { ... } | T.T | main.rs:2801:10:2801:16 | T | +| main.rs:2803:13:2803:24 | S(...) | | main.rs:2786:5:2787:19 | S | +| main.rs:2803:13:2803:24 | S(...) | T | main.rs:2786:5:2787:19 | S | +| main.rs:2803:13:2803:24 | S(...) | T.T | main.rs:2801:10:2801:16 | T | +| main.rs:2803:15:2803:23 | S(...) | | main.rs:2786:5:2787:19 | S | +| main.rs:2803:15:2803:23 | S(...) | T | main.rs:2801:10:2801:16 | T | +| main.rs:2803:17:2803:20 | self | | file://:0:0:0:0 | & | +| main.rs:2803:17:2803:20 | self | &T | main.rs:2786:5:2787:19 | S | +| main.rs:2803:17:2803:20 | self | &T.T | main.rs:2801:10:2801:16 | T | +| main.rs:2803:17:2803:22 | self.0 | | main.rs:2801:10:2801:16 | T | +| main.rs:2807:14:2807:14 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2807:48:2824:5 | { ... } | | {EXTERNAL LOCATION} | Box | +| main.rs:2807:48:2824:5 | { ... } | A | {EXTERNAL LOCATION} | Global | +| main.rs:2807:48:2824:5 | { ... } | T | main.rs:2782:5:2784:5 | dyn MyTrait | +| main.rs:2807:48:2824:5 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2808:13:2808:13 | x | | main.rs:2786:5:2787:19 | S | +| main.rs:2808:13:2808:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2808:17:2813:9 | if b {...} else {...} | | main.rs:2786:5:2787:19 | S | +| main.rs:2808:17:2813:9 | if b {...} else {...} | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2808:20:2808:20 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2808:22:2811:9 | { ... } | | main.rs:2786:5:2787:19 | S | +| main.rs:2808:22:2811:9 | { ... } | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2809:17:2809:17 | y | | main.rs:2786:5:2787:19 | S | +| main.rs:2809:17:2809:17 | y | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2809:21:2809:38 | ...::default(...) | | main.rs:2786:5:2787:19 | S | +| main.rs:2809:21:2809:38 | ...::default(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2810:13:2810:13 | y | | main.rs:2786:5:2787:19 | S | +| main.rs:2810:13:2810:13 | y | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2811:16:2813:9 | { ... } | | main.rs:2786:5:2787:19 | S | +| main.rs:2811:16:2813:9 | { ... } | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2812:13:2812:16 | S(...) | | main.rs:2786:5:2787:19 | S | +| main.rs:2812:13:2812:16 | S(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2812:15:2812:15 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2817:13:2817:13 | x | | main.rs:2782:5:2784:5 | dyn MyTrait | +| main.rs:2817:13:2817:13 | x | | main.rs:2786:5:2787:19 | S | +| main.rs:2817:13:2817:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2817:13:2817:13 | x | dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2817:17:2817:20 | S(...) | | main.rs:2782:5:2784:5 | dyn MyTrait | +| main.rs:2817:17:2817:20 | S(...) | | main.rs:2786:5:2787:19 | S | +| main.rs:2817:17:2817:20 | S(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2817:17:2817:20 | S(...) | dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2817:19:2817:19 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2818:9:2823:9 | if b {...} else {...} | | {EXTERNAL LOCATION} | Box | +| main.rs:2818:9:2823:9 | if b {...} else {...} | A | {EXTERNAL LOCATION} | Global | +| main.rs:2818:9:2823:9 | if b {...} else {...} | T | main.rs:2782:5:2784:5 | dyn MyTrait | +| main.rs:2818:9:2823:9 | if b {...} else {...} | T | main.rs:2786:5:2787:19 | S | +| main.rs:2818:9:2823:9 | if b {...} else {...} | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2818:9:2823:9 | if b {...} else {...} | T.T | main.rs:2786:5:2787:19 | S | +| main.rs:2818:9:2823:9 | if b {...} else {...} | T.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2818:9:2823:9 | if b {...} else {...} | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2818:12:2818:12 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2818:14:2821:9 | { ... } | | {EXTERNAL LOCATION} | Box | +| main.rs:2818:14:2821:9 | { ... } | A | {EXTERNAL LOCATION} | Global | +| main.rs:2818:14:2821:9 | { ... } | T | main.rs:2782:5:2784:5 | dyn MyTrait | +| main.rs:2818:14:2821:9 | { ... } | T | main.rs:2786:5:2787:19 | S | +| main.rs:2818:14:2821:9 | { ... } | T.T | main.rs:2786:5:2787:19 | S | +| main.rs:2818:14:2821:9 | { ... } | T.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2818:14:2821:9 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2819:17:2819:17 | x | | main.rs:2782:5:2784:5 | dyn MyTrait | +| main.rs:2819:17:2819:17 | x | | main.rs:2786:5:2787:19 | S | +| main.rs:2819:17:2819:17 | x | T | main.rs:2786:5:2787:19 | S | +| main.rs:2819:17:2819:17 | x | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2819:17:2819:17 | x | dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2819:21:2819:21 | x | | main.rs:2782:5:2784:5 | dyn MyTrait | +| main.rs:2819:21:2819:21 | x | | main.rs:2786:5:2787:19 | S | +| main.rs:2819:21:2819:21 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2819:21:2819:21 | x | dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2819:21:2819:26 | x.m2() | | main.rs:2782:5:2784:5 | dyn MyTrait | +| main.rs:2819:21:2819:26 | x.m2() | | main.rs:2786:5:2787:19 | S | +| main.rs:2819:21:2819:26 | x.m2() | T | main.rs:2786:5:2787:19 | S | +| main.rs:2819:21:2819:26 | x.m2() | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2819:21:2819:26 | x.m2() | dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2820:13:2820:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2820:13:2820:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2820:13:2820:23 | ...::new(...) | T | main.rs:2782:5:2784:5 | dyn MyTrait | +| main.rs:2820:13:2820:23 | ...::new(...) | T | main.rs:2786:5:2787:19 | S | +| main.rs:2820:13:2820:23 | ...::new(...) | T.T | main.rs:2786:5:2787:19 | S | +| main.rs:2820:13:2820:23 | ...::new(...) | T.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2820:13:2820:23 | ...::new(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2820:22:2820:22 | x | | main.rs:2782:5:2784:5 | dyn MyTrait | +| main.rs:2820:22:2820:22 | x | | main.rs:2786:5:2787:19 | S | +| main.rs:2820:22:2820:22 | x | T | main.rs:2786:5:2787:19 | S | +| main.rs:2820:22:2820:22 | x | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2820:22:2820:22 | x | dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2821:16:2823:9 | { ... } | | {EXTERNAL LOCATION} | Box | +| main.rs:2821:16:2823:9 | { ... } | A | {EXTERNAL LOCATION} | Global | +| main.rs:2821:16:2823:9 | { ... } | T | main.rs:2782:5:2784:5 | dyn MyTrait | +| main.rs:2821:16:2823:9 | { ... } | T | main.rs:2786:5:2787:19 | S | +| main.rs:2821:16:2823:9 | { ... } | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2821:16:2823:9 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2822:13:2822:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2822:13:2822:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2822:13:2822:23 | ...::new(...) | T | main.rs:2782:5:2784:5 | dyn MyTrait | +| main.rs:2822:13:2822:23 | ...::new(...) | T | main.rs:2786:5:2787:19 | S | +| main.rs:2822:13:2822:23 | ...::new(...) | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2822:13:2822:23 | ...::new(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2822:22:2822:22 | x | | main.rs:2782:5:2784:5 | dyn MyTrait | +| main.rs:2822:22:2822:22 | x | | main.rs:2786:5:2787:19 | S | +| main.rs:2822:22:2822:22 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2822:22:2822:22 | x | dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2834:5:2834:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:2835:5:2835:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:2835:20:2835:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:2835:41:2835:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:2852:5:2852:15 | ...::f(...) | | {EXTERNAL LOCATION} | trait Future | +| main.rs:2865:5:2865:20 | ...::f(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2865:5:2865:20 | ...::f(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2865:5:2865:20 | ...::f(...) | T | main.rs:2782:5:2784:5 | dyn MyTrait | +| main.rs:2865:5:2865:20 | ...::f(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2865:16:2865:19 | true | | {EXTERNAL LOCATION} | bool | | pattern_matching.rs:13:26:133:1 | { ... } | | {EXTERNAL LOCATION} | Option | | pattern_matching.rs:13:26:133:1 | { ... } | T | file://:0:0:0:0 | () | | pattern_matching.rs:14:9:14:13 | value | | {EXTERNAL LOCATION} | Option | From ea6b05eda3a3a176de90076f8fdaab7c16efc868 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema <93738568+jketema@users.noreply.github.com> Date: Wed, 29 Oct 2025 15:49:53 +0100 Subject: [PATCH 125/126] Update docs/codeql/codeql-overview/system-requirements.rst --- docs/codeql/codeql-overview/system-requirements.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/codeql/codeql-overview/system-requirements.rst b/docs/codeql/codeql-overview/system-requirements.rst index 6ade30b4901..9f477a9b39b 100644 --- a/docs/codeql/codeql-overview/system-requirements.rst +++ b/docs/codeql/codeql-overview/system-requirements.rst @@ -48,7 +48,7 @@ For Rust extraction: For Swift extraction: -- Only macOS is supported. +- Only macOS is supported as a host platform. For Java extraction: From cf2cd2088403dda9994de737b6c58f7deb908754 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Wed, 29 Oct 2025 15:54:17 +0100 Subject: [PATCH 126/126] Swift: Update resources --- swift/third_party/load.bzl | 2 -- swift/third_party/resources/resource-dir-linux.zip | 2 +- swift/third_party/resources/resource-dir-macos.zip | 4 ++-- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/swift/third_party/load.bzl b/swift/third_party/load.bzl index d13c127102d..d19345a1880 100644 --- a/swift/third_party/load.bzl +++ b/swift/third_party/load.bzl @@ -5,8 +5,6 @@ load("//misc/bazel:lfs.bzl", "lfs_archive", "lfs_files") _override = { # these are used to test new artifacts. Must be empty before merging to main - "resource-dir-macOS-swift-6.2-RELEASE-128.zip": "64ac7f77b2d8b9112e0126ff69afb1a033ae940ff18bb8732be982a723610f2e", - "resource-dir-Linux-swift-6.2-RELEASE-128.zip": "44888a0c944227bfcfa47f0e052f59c93b947e56ab070da877b0b0b4d79cdecb", } _staging_url = "https://github.com/dsp-testing/codeql-swift-artifacts/releases/download/staging-{}/{}" diff --git a/swift/third_party/resources/resource-dir-linux.zip b/swift/third_party/resources/resource-dir-linux.zip index b8e0393bee1..6029e7657c0 100644 --- a/swift/third_party/resources/resource-dir-linux.zip +++ b/swift/third_party/resources/resource-dir-linux.zip @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d58eaae17536e26586df9aa8333637859d3b79daf2c3694cd75aad94d8fcce8e +oid sha256:44888a0c944227bfcfa47f0e052f59c93b947e56ab070da877b0b0b4d79cdecb size 385205623 diff --git a/swift/third_party/resources/resource-dir-macos.zip b/swift/third_party/resources/resource-dir-macos.zip index b7f8f4df10c..368fcc2551d 100644 --- a/swift/third_party/resources/resource-dir-macos.zip +++ b/swift/third_party/resources/resource-dir-macos.zip @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:258a766c51fcce31839c4f6ff823ef9909350e00c62c78de4c75d58ede3b45da -size 815605040 +oid sha256:64ac7f77b2d8b9112e0126ff69afb1a033ae940ff18bb8732be982a723610f2e +size 614058230