diff --git a/rust/ql/lib/codeql/rust/internal/Type.qll b/rust/ql/lib/codeql/rust/internal/Type.qll index 275776741a37..88eb50e09e38 100644 --- a/rust/ql/lib/codeql/rust/internal/Type.qll +++ b/rust/ql/lib/codeql/rust/internal/Type.qll @@ -119,7 +119,7 @@ class TupleType extends Type, TTuple { } /** The unit type `()`. */ -class UnitType extends TupleType, TTuple { +class UnitType extends TupleType { UnitType() { this = TTuple(0) } override string toString() { result = "()" } diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index f0f52da2375b..5b00d802d7cd 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -15,6 +15,14 @@ private import codeql.rust.elements.internal.CallExprImpl::Impl as CallExprImpl class Type = T::Type; +private newtype TTypeArgumentPosition = + // method type parameters are matched by position instead of by type + // parameter entity, to avoid extra recursion through method call resolution + TMethodTypeArgumentPosition(int pos) { + exists(any(MethodCallExpr mce).getGenericArgList().getTypeArg(pos)) + } or + TTypeParamTypeArgumentPosition(TypeParam tp) + private module Input1 implements InputSig1 { private import Type as T private import codeql.rust.elements.internal.generated.Raw @@ -26,14 +34,6 @@ private module Input1 implements InputSig1 { class TypeAbstraction = T::TypeAbstraction; - private newtype TTypeArgumentPosition = - // method type parameters are matched by position instead of by type - // parameter entity, to avoid extra recursion through method call resolution - TMethodTypeArgumentPosition(int pos) { - exists(any(MethodCallExpr mce).getGenericArgList().getTypeArg(pos)) - } or - TTypeParamTypeArgumentPosition(TypeParam tp) - class TypeArgumentPosition extends TTypeArgumentPosition { int asMethodTypeArgumentPosition() { this = TMethodTypeArgumentPosition(result) } @@ -257,75 +257,59 @@ private Type inferAnnotatedType(AstNode n, TypePath path) { /** Module for inferring certain type information. */ private module CertainTypeInference { - /** Holds if the type mention does not contain any inferred types `_`. */ - predicate typeMentionIsComplete(TypeMention tm) { - not exists(InferTypeRepr t | t.getParentNode*() = tm) + pragma[nomagic] + private predicate callResolvesTo(CallExpr ce, Path p, Function f) { + p = CallExprImpl::getFunctionPath(ce) and + f = resolvePath(p) } - /** - * Holds if `ce` is a call where we can infer the type with certainty and if - * `f` is the target of the call and `p` the path invoked by the call. - * - * Necessary conditions for this are: - * - We are certain of the call target (i.e., the call target can not depend on type information). - * - The declared type of the function does not contain any generics that we - * need to infer. - * - The call does not contain any arguments, as arguments in calls are coercion sites. - * - * The current requirements are made to allow for call to `new` functions such - * as `Vec::new()` but not much more. - */ - predicate certainCallExprTarget(CallExpr ce, Function f, Path p) { - p = CallExprImpl::getFunctionPath(ce) and - f = resolvePath(p) and - // The function is not in a trait - not any(TraitItemNode t).getAnAssocItem() = f and - // The function is not in a trait implementation - not any(ImplItemNode impl | impl.(Impl).hasTrait()).getAnAssocItem() = f and - // The function does not have parameters. - not f.getParamList().hasSelfParam() and - f.getParamList().getNumberOfParams() = 0 and - // The function is not async. - not f.isAsync() and - // For now, exclude functions in macro expansions. - not ce.isInMacroExpansion() and - // The function has no type parameters. - not f.hasGenericParamList() and - // The function does not have `impl` types among its parameters (these are type parameters). - not any(ImplTraitTypeRepr itt | not itt.isInReturnPos()).getFunction() = f and - ( - not exists(ImplItemNode impl | impl.getAnAssocItem() = f) - or - // If the function is in an impl then the impl block has no type - // parameters or all the type parameters are given explicitly. - exists(ImplItemNode impl | impl.getAnAssocItem() = f | - not impl.(Impl).hasGenericParamList() or - impl.(Impl).getGenericParamList().getNumberOfGenericParams() = - p.getQualifier().getSegment().getGenericArgList().getNumberOfGenericArgs() - ) - ) + pragma[nomagic] + private Type getCallExprType( + CallExpr ce, Path p, CallExprBaseMatchingInput::FunctionDecl f, TypePath tp + ) { + callResolvesTo(ce, p, f) and + result = f.getReturnType(tp) } - private ImplItemNode getFunctionImpl(FunctionItemNode f) { result.getAnAssocItem() = f } + pragma[nomagic] + private Type getCertainCallExprType(CallExpr ce, Path p, TypePath tp) { + forex(Function f | callResolvesTo(ce, p, f) | result = getCallExprType(ce, p, f, tp)) + } + pragma[nomagic] + private TypePath getPathToImplSelfTypeParam(TypeParam tp) { + exists(ImplItemNode impl | + tp = impl.getTypeParam(_) and + TTypeParamTypeParameter(tp) = impl.(Impl).getSelfTy().(TypeMention).resolveTypeAt(result) + ) + } + + pragma[nomagic] Type inferCertainCallExprType(CallExpr ce, TypePath path) { - exists(Function f, Type ty, TypePath prefix, Path p | - certainCallExprTarget(ce, f, p) and - ty = f.getRetType().getTypeRepr().(TypeMention).resolveTypeAt(prefix) - | - if ty.(TypeParamTypeParameter).getTypeParam() = getFunctionImpl(f).getTypeParam(_) - then - exists(TypePath pathToTp, TypePath suffix | - // For type parameters of the `impl` block we must resolve their - // instantiation from the path. For instance, for `impl for Foo` - // and the path `Foo::bar` we must resolve `A` to `i64`. - ty = getFunctionImpl(f).(Impl).getSelfTy().(TypeMention).resolveTypeAt(pathToTp) and - result = p.getQualifier().(TypeMention).resolveTypeAt(pathToTp.appendInverse(suffix)) and - path = prefix.append(suffix) + exists(Type ty, TypePath prefix, Path p | ty = getCertainCallExprType(ce, p, prefix) | + exists(TypePath suffix, TypeParam tp | + tp = ty.(TypeParamTypeParameter).getTypeParam() and + path = prefix.append(suffix) + | + // For type parameters of the `impl` block we must resolve their + // instantiation from the path. For instance, for `impl for Foo` + // and the path `Foo::bar` we must resolve `A` to `i64`. + exists(TypePath pathToTp | + pathToTp = getPathToImplSelfTypeParam(tp) and + result = p.getQualifier().(TypeMention).resolveTypeAt(pathToTp.appendInverse(suffix)) ) - else ( - result = ty and path = prefix + or + // For type parameters of the function we must resolve their + // instantiation from the path. For instance, for `fn bar(a: A) -> A` + // and the path `bar`, we must resolve `A` to `i64`. + result = + ce.(CallExprBaseMatchingInput::Access) + .getTypeArgument(TTypeParamTypeArgumentPosition(tp), suffix) ) + or + not ty instanceof TypeParameter and + result = ty and + path = prefix ) } @@ -343,6 +327,8 @@ private module CertainTypeInference { let.getPat() = n1 and let.getInitializer() = n2 ) + or + n1 = n2.(ParenExpr).getExpr() ) or n1 = @@ -373,13 +359,57 @@ private module CertainTypeInference { Type inferCertainType(AstNode n, TypePath path) { exists(TypeMention tm | tm = getTypeAnnotation(n) and - typeMentionIsComplete(tm) and result = tm.resolveTypeAt(path) ) or result = inferCertainCallExprType(n, path) or result = inferCertainTypeEquality(n, path) + or + result = inferLiteralType(n, path, true) + or + infersCertainTypeAt(n, path, result.getATypeParameter()) + } + + /** + * Holds if `n` has complete and certain type information at the type path + * `prefix.tp`. This entails that the type at `prefix` must be the type + * that declares `tp`. + */ + pragma[nomagic] + private predicate infersCertainTypeAt(AstNode n, TypePath prefix, TypeParameter tp) { + exists(TypePath path | + exists(inferCertainType(n, path)) and + path.isSnoc(prefix, tp) + ) + } + + /** + * Holds if `n` has complete and certain type information at _some_ type path. + */ + pragma[nomagic] + predicate hasInferredCertainType(AstNode n) { exists(inferCertainType(n, _)) } + + /** + * Holds if `n` having type `t` at `path` conflicts with certain type information. + */ + bindingset[n, path, t] + pragma[inline_late] + predicate certainTypeConflict(AstNode n, TypePath path, Type t) { + inferCertainType(n, path) != t + or + // If we infer that `n` has _some_ type at `T1.T2....Tn`, and we also + // know that `n` certainly has type `certainType` at `T1.T2...Ti`, `i <=0 < n`, + // then it must be the case that `T(i+1)` is a type parameter of `certainType`, + // otherwise there is a conflict. + // + // Below, `prefix` is `T1.T2...Ti` and `tp` is `T(i+1)`. + exists(TypePath prefix, TypePath suffix, TypeParameter tp, Type certainType | + path = prefix.appendInverse(suffix) and + tp = suffix.getHead() and + inferCertainType(n, prefix) = certainType and + not certainType.getATypeParameter() = tp + ) } } @@ -432,8 +462,6 @@ private predicate typeEquality(AstNode n1, TypePath prefix1, AstNode n2, TypePat let.getInitializer() = n2 ) or - n1 = n2.(ParenExpr).getExpr() - or n1 = n2.(IfExpr).getABranch() or n1 = n2.(MatchExpr).getAnArm().getExpr() @@ -531,9 +559,6 @@ private predicate typeEquality(AstNode n1, TypePath prefix1, AstNode n2, TypePat pragma[nomagic] private Type inferTypeEquality(AstNode n, TypePath path) { - // Don't propagate type information into a node for which we already have - // certain type information. - not exists(CertainTypeInference::inferCertainType(n, _)) and exists(TypePath prefix1, AstNode n2, TypePath prefix2, TypePath suffix | result = inferType(n2, prefix2.appendInverse(suffix)) and path = prefix1.append(suffix) @@ -842,7 +867,7 @@ private module CallExprBaseMatchingInput implements MatchingInputSig { } } - private class FunctionDecl extends Declaration, Function { + additional class FunctionDecl extends Declaration, Function { override TypeParameter getTypeParameter(TypeParameterPosition ppos) { typeParamMatchPosition(this.getGenericParamList().getATypeParam(), result, ppos) or @@ -944,8 +969,6 @@ private module CallExprBaseMatchingInput implements MatchingInputSig { } final class Access extends Call { - Access() { not CertainTypeInference::certainCallExprTarget(this, _, _) } - pragma[nomagic] Type getTypeArgument(TypeArgumentPosition apos, TypePath path) { exists(TypeMention arg | result = arg.resolveTypeAt(path) | @@ -1112,6 +1135,36 @@ private Type inferCallExprBaseType(AstNode n, TypePath path) { ) } +pragma[inline] +private Type inferRootTypeDeref(AstNode n) { + result = inferType(n) and + result != TRefType() + or + // for reference types, lookup members in the type being referenced + result = inferType(n, TypePath::singleton(TRefTypeParameter())) +} + +pragma[nomagic] +private Type getFieldExprLookupType(FieldExpr fe, string name) { + result = inferRootTypeDeref(fe.getContainer()) and name = fe.getIdentifier().getText() +} + +pragma[nomagic] +private Type getTupleFieldExprLookupType(FieldExpr fe, int pos) { + exists(string name | + result = getFieldExprLookupType(fe, name) and + pos = name.toInt() + ) +} + +pragma[nomagic] +private TupleTypeParameter resolveTupleTypeFieldExpr(FieldExpr fe) { + exists(int arity, int i | + TTuple(arity) = getTupleFieldExprLookupType(fe, i) and + result = TTupleTypeParameter(arity, i) + ) +} + /** * A matching configuration for resolving types of field expressions * like `x.field`. @@ -1135,15 +1188,30 @@ private module FieldExprMatchingInput implements MatchingInputSig { } } - abstract class Declaration extends AstNode { + private newtype TDeclaration = + TStructFieldDecl(StructField sf) or + TTupleFieldDecl(TupleField tf) or + TTupleTypeParameterDecl(TupleTypeParameter ttp) + + abstract class Declaration extends TDeclaration { TypeParameter getTypeParameter(TypeParameterPosition ppos) { none() } + abstract Type getDeclaredType(DeclarationPosition dpos, TypePath path); + + abstract string toString(); + + abstract Location getLocation(); + } + + abstract private class StructOrTupleFieldDecl extends Declaration { + abstract AstNode getAstNode(); + abstract TypeRepr getTypeRepr(); - Type getDeclaredType(DeclarationPosition dpos, TypePath path) { + override Type getDeclaredType(DeclarationPosition dpos, TypePath path) { dpos.isSelf() and // no case for variants as those can only be destructured using pattern matching - exists(Struct s | s.getStructField(_) = this or s.getTupleField(_) = this | + exists(Struct s | this.getAstNode() = [s.getStructField(_).(AstNode), s.getTupleField(_)] | result = TStruct(s) and path.isEmpty() or @@ -1154,14 +1222,55 @@ private module FieldExprMatchingInput implements MatchingInputSig { dpos.isField() and result = this.getTypeRepr().(TypeMention).resolveTypeAt(path) } + + override string toString() { result = this.getAstNode().toString() } + + override Location getLocation() { result = this.getAstNode().getLocation() } } - private class StructFieldDecl extends Declaration instanceof StructField { - override TypeRepr getTypeRepr() { result = StructField.super.getTypeRepr() } + private class StructFieldDecl extends StructOrTupleFieldDecl, TStructFieldDecl { + private StructField sf; + + StructFieldDecl() { this = TStructFieldDecl(sf) } + + override AstNode getAstNode() { result = sf } + + override TypeRepr getTypeRepr() { result = sf.getTypeRepr() } } - private class TupleFieldDecl extends Declaration instanceof TupleField { - override TypeRepr getTypeRepr() { result = TupleField.super.getTypeRepr() } + private class TupleFieldDecl extends StructOrTupleFieldDecl, TTupleFieldDecl { + private TupleField tf; + + TupleFieldDecl() { this = TTupleFieldDecl(tf) } + + override AstNode getAstNode() { result = tf } + + override TypeRepr getTypeRepr() { result = tf.getTypeRepr() } + } + + private class TupleTypeParameterDecl extends Declaration, TTupleTypeParameterDecl { + private TupleTypeParameter ttp; + + TupleTypeParameterDecl() { this = TTupleTypeParameterDecl(ttp) } + + override Type getDeclaredType(DeclarationPosition dpos, TypePath path) { + dpos.isSelf() and + ( + result = ttp.getTupleType() and + path.isEmpty() + or + result = ttp and + path = TypePath::singleton(ttp) + ) + or + dpos.isField() and + result = ttp and + path.isEmpty() + } + + override string toString() { result = ttp.toString() } + + override Location getLocation() { result = ttp.getLocation() } } class AccessPosition = DeclarationPosition; @@ -1183,7 +1292,12 @@ private module FieldExprMatchingInput implements MatchingInputSig { Declaration getTarget() { // mutual recursion; resolving fields requires resolving types and vice versa - result = [resolveStructFieldExpr(this).(AstNode), resolveTupleFieldExpr(this)] + result = + [ + TStructFieldDecl(resolveStructFieldExpr(this)).(TDeclaration), + TTupleFieldDecl(resolveTupleFieldExpr(this)), + TTupleTypeParameterDecl(resolveTupleTypeFieldExpr(this)) + ] } } @@ -1243,42 +1357,6 @@ private Type inferFieldExprType(AstNode n, TypePath path) { ) } -pragma[nomagic] -private Type inferTupleIndexExprType(FieldExpr fe, TypePath path) { - exists(int i, TypePath path0 | - fe.getIdentifier().getText() = i.toString() and - result = inferType(fe.getContainer(), path0) and - path0.isCons(TTupleTypeParameter(_, i), path) and - fe.getIdentifier().getText() = i.toString() - ) -} - -/** Infers the type of `t` in `t.n` when `t` is a tuple. */ -private Type inferTupleContainerExprType(Expr e, TypePath path) { - // NOTE: For a field expression `t.n` where `n` is a number `t` might be a - // tuple as in: - // ```rust - // let t = (Default::default(), 2); - // let s: String = t.0; - // ``` - // But it could also be a tuple struct as in: - // ```rust - // struct T(String, u32); - // let t = T(Default::default(), 2); - // let s: String = t.0; - // ``` - // We need type information to flow from `t.n` to tuple type parameters of `t` - // in the former case but not the latter case. Hence we include the condition - // that the root type of `t` must be a tuple type. - exists(int i, TypePath path0, FieldExpr fe, int arity | - e = fe.getContainer() and - fe.getIdentifier().getText() = i.toString() and - arity = inferType(fe.getContainer()).(TupleType).getArity() and - result = inferType(fe, path0) and - path = TypePath::cons(TTupleTypeParameter(arity, i), path0) - ) -} - /** Gets the root type of the reference node `ref`. */ pragma[nomagic] private Type inferRefNodeType(AstNode ref) { @@ -1308,17 +1386,22 @@ pragma[nomagic] private StructType getStrStruct() { result = TStruct(any(Builtins::Str s)) } pragma[nomagic] -private Type inferLiteralType(LiteralExpr le, TypePath path) { +private Type inferLiteralType(LiteralExpr le, TypePath path, boolean certain) { path.isEmpty() and exists(Builtins::BuiltinType t | result = TStruct(t) | le instanceof CharLiteralExpr and - t instanceof Builtins::Char + t instanceof Builtins::Char and + certain = true or le = any(NumberLiteralExpr ne | - t.getName() = ne.getSuffix() + t.getName() = ne.getSuffix() and + certain = true or + // When a number literal has no suffix, the type may depend on the context. + // For simplicity, we assume either `i32` or `f64`. not exists(ne.getSuffix()) and + certain = false and ( ne instanceof IntegerLiteralExpr and t instanceof Builtins::I32 @@ -1329,7 +1412,8 @@ private Type inferLiteralType(LiteralExpr le, TypePath path) { ) or le instanceof BooleanLiteralExpr and - t instanceof Builtins::Bool + t instanceof Builtins::Bool and + certain = true ) or le instanceof StringLiteralExpr and @@ -1338,7 +1422,8 @@ private Type inferLiteralType(LiteralExpr le, TypePath path) { or path = TypePath::singleton(TRefTypeParameter()) and result = getStrStruct() - ) + ) and + certain = true } pragma[nomagic] @@ -2200,20 +2285,6 @@ private module Cached { result = resolveFunctionCallTarget(call) } - pragma[inline] - private Type inferRootTypeDeref(AstNode n) { - result = inferType(n) and - result != TRefType() - or - // for reference types, lookup members in the type being referenced - result = inferType(n, TypePath::singleton(TRefTypeParameter())) - } - - pragma[nomagic] - private Type getFieldExprLookupType(FieldExpr fe, string name) { - result = inferRootTypeDeref(fe.getContainer()) and name = fe.getIdentifier().getText() - } - /** * Gets the struct field that the field expression `fe` resolves to, if any. */ @@ -2222,14 +2293,6 @@ private module Cached { exists(string name | result = getFieldExprLookupType(fe, name).getStructField(name)) } - pragma[nomagic] - private Type getTupleFieldExprLookupType(FieldExpr fe, int pos) { - exists(string name | - result = getFieldExprLookupType(fe, name) and - pos = name.toInt() - ) - } - /** * Gets the tuple field that the field expression `fe` resolves to, if any. */ @@ -2282,62 +2345,67 @@ private module Cached { Stages::TypeInferenceStage::ref() and result = CertainTypeInference::inferCertainType(n, path) or - result = inferAnnotatedType(n, path) - or - result = inferLogicalOperationType(n, path) - or - result = inferAssignmentOperationType(n, path) - or - result = inferTypeEquality(n, path) - or - result = inferImplicitSelfType(n, path) - or - result = inferStructExprType(n, path) - or - result = inferTupleRootType(n) and - path.isEmpty() - or - result = inferPathExprType(n, path) - or - result = inferCallExprBaseType(n, path) - or - result = inferFieldExprType(n, path) - or - result = inferTupleIndexExprType(n, path) - or - result = inferTupleContainerExprType(n, path) - or - result = inferRefNodeType(n) and - path.isEmpty() - or - result = inferTryExprType(n, path) - or - result = inferLiteralType(n, path) - or - result = inferAsyncBlockExprRootType(n) and - path.isEmpty() - or - result = inferAwaitExprType(n, path) - or - result = inferArrayExprType(n) and - path.isEmpty() - or - result = inferRangeExprType(n) and - path.isEmpty() - or - result = inferIndexExprType(n, path) - or - result = inferForLoopExprType(n, path) - or - result = inferDynamicCallExprType(n, path) - or - result = inferClosureExprType(n, path) - or - result = inferCastExprType(n, path) - or - result = inferStructPatType(n, path) - or - result = inferTupleStructPatType(n, path) + // Don't propagate type information into a node which conflicts with certain + // type information. + ( + if CertainTypeInference::hasInferredCertainType(n) + then not CertainTypeInference::certainTypeConflict(n, path, result) + else any() + ) and + ( + result = inferAnnotatedType(n, path) + or + result = inferLogicalOperationType(n, path) + or + result = inferAssignmentOperationType(n, path) + or + result = inferTypeEquality(n, path) + or + result = inferImplicitSelfType(n, path) + or + result = inferStructExprType(n, path) + or + result = inferTupleRootType(n) and + path.isEmpty() + or + result = inferPathExprType(n, path) + or + result = inferCallExprBaseType(n, path) + or + result = inferFieldExprType(n, path) + or + result = inferRefNodeType(n) and + path.isEmpty() + or + result = inferTryExprType(n, path) + or + result = inferLiteralType(n, path, false) + or + result = inferAsyncBlockExprRootType(n) and + path.isEmpty() + or + result = inferAwaitExprType(n, path) + or + result = inferArrayExprType(n) and + path.isEmpty() + or + result = inferRangeExprType(n) and + path.isEmpty() + or + result = inferIndexExprType(n, path) + or + result = inferForLoopExprType(n, path) + or + result = inferDynamicCallExprType(n, path) + or + result = inferClosureExprType(n, path) + or + result = inferCastExprType(n, path) + or + result = inferStructPatType(n, path) + or + result = inferTupleStructPatType(n, path) + ) } } @@ -2438,6 +2506,11 @@ private module Debug { c = max(countTypePaths(_, _, _)) } + Type debugInferCertainType(AstNode n, TypePath path) { + n = getRelevantLocatable() and + result = CertainTypeInference::inferCertainType(n, path) + } + Type debugInferCertainNonUniqueType(AstNode n, TypePath path) { n = getRelevantLocatable() and Consistency::nonUniqueCertainType(n, path) and 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 c59e033048e5..d2fded7a0730 100644 --- a/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected @@ -1,8 +1,8 @@ multipleCallTargets | dereference.rs:61:15:61:24 | e1.deref() | -| main.rs:2314:13:2314:31 | ...::from(...) | -| main.rs:2315:13:2315:31 | ...::from(...) | +| main.rs:2308:13:2308:31 | ...::from(...) | +| main.rs:2309:13:2309:31 | ...::from(...) | +| main.rs:2310:13:2310:31 | ...::from(...) | | main.rs:2316:13:2316:31 | ...::from(...) | -| main.rs:2322:13:2322:31 | ...::from(...) | -| main.rs:2323:13:2323:31 | ...::from(...) | -| main.rs:2324:13:2324:31 | ...::from(...) | +| main.rs:2317:13:2317:31 | ...::from(...) | +| main.rs:2318:13:2318: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 0b216ebe78d3..63e860b75072 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -2068,13 +2068,7 @@ mod indexers { } fn analyze_slice(slice: &[S]) { - // NOTE: `slice` gets the spurious type `[]` because the desugaring of - // the index expression adds an implicit borrow. `&slice` has the type - // `&&[S]`, but the `index` methods takes a `&[S]`, so Rust adds an - // implicit dereference. We cannot currently handle a position that is - // both implicitly dereferenced and implicitly borrowed, so the extra - // type sneaks in. - let x = slice[0].foo(); // $ target=foo type=x:S target=index SPURIOUS: type=slice:[] + let x = slice[0].foo(); // $ target=foo type=x:S target=index } pub fn f() { @@ -2450,6 +2444,7 @@ mod explicit_type_args { } mod tuples { + #[derive(Debug, Clone, Copy)] struct S1 {} impl S1 { @@ -2490,6 +2485,9 @@ mod tuples { _ => print!("expected"), } let x = pair.0; // $ type=x:i32 + + let y = &S1::get_pair(); // $ target=get_pair + y.0.foo(); // $ target=foo } } 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 f25567711782..8955edb614f5 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -288,7 +288,6 @@ inferType | dereference.rs:60:14:60:17 | &'a' | &T | {EXTERNAL LOCATION} | char | | dereference.rs:60:14:60:17 | &'a' | &T | file://:0:0:0:0 | & | | dereference.rs:60:15:60:17 | 'a' | | {EXTERNAL LOCATION} | char | -| dereference.rs:60:15:60:17 | 'a' | | file://:0:0:0:0 | & | | dereference.rs:61:9:61:11 | _f1 | | file://:0:0:0:0 | & | | dereference.rs:61:15:61:16 | e1 | | file://:0:0:0:0 | & | | dereference.rs:61:15:61:16 | e1 | &T | {EXTERNAL LOCATION} | char | @@ -401,7 +400,6 @@ inferType | dereference.rs:123:32:123:41 | key_to_key | K | file://:0:0:0:0 | & | | dereference.rs:123:32:123:41 | key_to_key | K.&T | dereference.rs:99:5:100:21 | Key | | dereference.rs:123:32:123:41 | key_to_key | S | {EXTERNAL LOCATION} | RandomState | -| dereference.rs:123:32:123:41 | key_to_key | V | dereference.rs:99:5:100:21 | Key | | dereference.rs:123:32:123:41 | key_to_key | V | file://:0:0:0:0 | & | | dereference.rs:123:32:123:41 | key_to_key | V.&T | dereference.rs:99:5:100:21 | Key | | dereference.rs:123:32:123:50 | key_to_key.get(...) | | {EXTERNAL LOCATION} | Option | @@ -425,13 +423,9 @@ inferType | dereference.rs:127:9:127:18 | key_to_key | | {EXTERNAL LOCATION} | HashMap | | dereference.rs:127:9:127:18 | key_to_key | K | file://:0:0:0:0 | & | | dereference.rs:127:9:127:18 | key_to_key | K.&T | dereference.rs:99:5:100:21 | Key | -| dereference.rs:127:9:127:18 | key_to_key | K.&T | file://:0:0:0:0 | & | -| dereference.rs:127:9:127:18 | key_to_key | K.&T.&T | dereference.rs:99:5:100:21 | Key | | dereference.rs:127:9:127:18 | key_to_key | S | {EXTERNAL LOCATION} | RandomState | | dereference.rs:127:9:127:18 | key_to_key | V | file://:0:0:0:0 | & | | dereference.rs:127:9:127:18 | key_to_key | V.&T | dereference.rs:99:5:100:21 | Key | -| dereference.rs:127:9:127:18 | key_to_key | V.&T | file://:0:0:0:0 | & | -| dereference.rs:127:9:127:18 | key_to_key | V.&T.&T | dereference.rs:99:5:100:21 | Key | | dereference.rs:127:9:127:35 | key_to_key.insert(...) | | {EXTERNAL LOCATION} | Option | | dereference.rs:127:9:127:35 | key_to_key.insert(...) | T | file://:0:0:0:0 | & | | dereference.rs:127:9:127:35 | key_to_key.insert(...) | T.&T | dereference.rs:99:5:100:21 | Key | @@ -3939,1021 +3933,1028 @@ inferType | main.rs:2070:22:2070:26 | slice | | file://:0:0:0:0 | & | | main.rs:2070:22:2070:26 | slice | &T | file://:0:0:0:0 | [] | | main.rs:2070:22:2070:26 | slice | &T.[T] | main.rs:2037:5:2038:13 | S | -| main.rs:2077:13:2077:13 | x | | main.rs:2037:5:2038:13 | S | -| main.rs:2077:17:2077:21 | slice | | file://:0:0:0:0 | & | -| main.rs:2077:17:2077:21 | slice | | file://:0:0:0:0 | [] | -| main.rs:2077:17:2077:21 | slice | &T | file://:0:0:0:0 | [] | -| main.rs:2077:17:2077:21 | slice | &T.[T] | main.rs:2037:5:2038:13 | S | -| main.rs:2077:17:2077:24 | slice[0] | | main.rs:2037:5:2038:13 | S | -| main.rs:2077:17:2077:30 | ... .foo() | | main.rs:2037:5:2038:13 | S | -| main.rs:2077:23:2077:23 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2081:17:2081:19 | vec | | main.rs:2046:5:2049:5 | MyVec | -| main.rs:2081:17:2081:19 | vec | T | main.rs:2037:5:2038:13 | S | -| main.rs:2081:23:2081:34 | ...::new(...) | | main.rs:2046:5:2049:5 | MyVec | -| main.rs:2081:23:2081:34 | ...::new(...) | T | main.rs:2037:5:2038:13 | S | -| main.rs:2082:9:2082:11 | vec | | main.rs:2046:5:2049:5 | MyVec | -| main.rs:2082:9:2082:11 | vec | T | main.rs:2037:5:2038:13 | S | -| main.rs:2082:18:2082:18 | S | | main.rs:2037:5:2038:13 | S | -| main.rs:2083:9:2083:11 | vec | | main.rs:2046:5:2049:5 | MyVec | -| main.rs:2083:9:2083:11 | vec | T | main.rs:2037:5:2038:13 | S | -| main.rs:2083:9:2083:14 | vec[0] | | main.rs:2037:5:2038:13 | S | -| main.rs:2083:9:2083:20 | ... .foo() | | main.rs:2037:5:2038:13 | S | -| main.rs:2083:13:2083:13 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2083:13:2083:13 | 0 | | {EXTERNAL LOCATION} | usize | -| main.rs:2085:13:2085:14 | xs | | file://:0:0:0:0 | [] | -| main.rs:2085:13:2085:14 | xs | [T;...] | main.rs:2037:5:2038:13 | S | -| main.rs:2085:21:2085:21 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2085:26:2085:28 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2085:26:2085:28 | [...] | [T;...] | main.rs:2037:5:2038:13 | S | -| main.rs:2085:27:2085:27 | S | | main.rs:2037:5:2038:13 | S | -| main.rs:2086:13:2086:13 | x | | main.rs:2037:5:2038:13 | S | -| main.rs:2086:17:2086:18 | xs | | file://:0:0:0:0 | [] | -| main.rs:2086:17:2086:18 | xs | [T;...] | main.rs:2037:5:2038:13 | S | -| main.rs:2086:17:2086:21 | xs[0] | | main.rs:2037:5:2038:13 | S | -| main.rs:2086:17:2086:27 | ... .foo() | | main.rs:2037:5:2038:13 | S | -| main.rs:2086:20:2086:20 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2088:23:2088:25 | &xs | | file://:0:0:0:0 | & | -| main.rs:2088:23:2088:25 | &xs | &T | file://:0:0:0:0 | [] | -| main.rs:2088:23:2088:25 | &xs | &T | file://:0:0:0:0 | [] | -| main.rs:2088:23:2088:25 | &xs | &T.[T;...] | main.rs:2037:5:2038:13 | S | -| main.rs:2088:23:2088:25 | &xs | &T.[T] | main.rs:2037:5:2038:13 | S | -| main.rs:2088:24:2088:25 | xs | | file://:0:0:0:0 | [] | -| main.rs:2088:24:2088:25 | xs | [T;...] | main.rs:2037:5:2038:13 | S | -| main.rs:2094:13:2094:13 | x | | {EXTERNAL LOCATION} | String | -| main.rs:2094:17:2094:46 | MacroExpr | | {EXTERNAL LOCATION} | String | -| main.rs:2094:25:2094:35 | "Hello, {}" | | file://:0:0:0:0 | & | -| main.rs:2094:25:2094:35 | "Hello, {}" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2094:25:2094:45 | ...::format(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2094:25:2094:45 | ...::must_use(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2094:25:2094:45 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2094:25:2094:45 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2094:25:2094:45 | { ... } | | {EXTERNAL LOCATION} | String | -| main.rs:2094:38:2094:45 | "World!" | | file://:0:0:0:0 | & | -| main.rs:2094:38:2094:45 | "World!" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2103:19:2103:22 | SelfParam | | main.rs:2099:5:2104:5 | Self [trait MyAdd] | -| main.rs:2103:25:2103:27 | rhs | | main.rs:2099:17:2099:26 | Rhs | -| main.rs:2110:19:2110:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | -| main.rs:2110:25:2110:29 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2110:45:2112:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2111:13:2111:17 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2119:19:2119:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | -| main.rs:2119:25:2119:29 | value | | file://:0:0:0:0 | & | -| main.rs:2119:25:2119:29 | value | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:2119:46:2121:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2120:13:2120:18 | * ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2120:14:2120:18 | value | | file://:0:0:0:0 | & | -| main.rs:2120:14:2120:18 | value | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:2128:19:2128:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | -| main.rs:2128:25:2128:29 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2128:46:2134:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2129:13:2133:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | -| main.rs:2129:13:2133:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | -| main.rs:2129:16:2129:20 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2129:22:2131:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2129:22:2131:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2130:17:2130:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2130:17:2130:17 | 1 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2131:20:2133:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2131:20:2133:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2132:17:2132:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2132:17:2132:17 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2143:19:2143:22 | SelfParam | | main.rs:2137:5:2137:19 | S | -| main.rs:2143:19:2143:22 | SelfParam | T | main.rs:2139:10:2139:17 | T | -| main.rs:2143:25:2143:29 | other | | main.rs:2137:5:2137:19 | S | -| main.rs:2143:25:2143:29 | other | T | main.rs:2139:10:2139:17 | T | -| main.rs:2143:54:2145:9 | { ... } | | main.rs:2137:5:2137:19 | S | -| main.rs:2143:54:2145:9 | { ... } | T | main.rs:2100:9:2100:20 | Output | -| main.rs:2144:13:2144:39 | S(...) | | main.rs:2137:5:2137:19 | S | -| main.rs:2144:13:2144:39 | S(...) | T | main.rs:2100:9:2100:20 | Output | -| main.rs:2144:15:2144:22 | (...) | | main.rs:2139:10:2139:17 | T | -| main.rs:2144:15:2144:38 | ... .my_add(...) | | main.rs:2100:9:2100:20 | Output | -| main.rs:2144:16:2144:19 | self | | main.rs:2137:5:2137:19 | S | -| main.rs:2144:16:2144:19 | self | T | main.rs:2139:10:2139:17 | T | -| main.rs:2144:16:2144:21 | self.0 | | main.rs:2139:10:2139:17 | T | -| main.rs:2144:31:2144:35 | other | | main.rs:2137:5:2137:19 | S | -| main.rs:2144:31:2144:35 | other | T | main.rs:2099:5:2104:5 | Self [trait MyAdd] | -| main.rs:2144:31:2144:35 | other | T | main.rs:2139:10:2139:17 | T | -| main.rs:2144:31:2144:37 | other.0 | | main.rs:2099:5:2104:5 | Self [trait MyAdd] | -| main.rs:2144:31:2144:37 | other.0 | | main.rs:2139:10:2139:17 | T | -| main.rs:2152:19:2152:22 | SelfParam | | main.rs:2137:5:2137:19 | S | -| main.rs:2152:19:2152:22 | SelfParam | T | main.rs:2148:10:2148:17 | T | -| main.rs:2152:25:2152:29 | other | | main.rs:2148:10:2148:17 | T | -| main.rs:2152:51:2154:9 | { ... } | | main.rs:2137:5:2137:19 | S | -| main.rs:2152:51:2154:9 | { ... } | T | main.rs:2100:9:2100:20 | Output | -| main.rs:2153:13:2153:37 | S(...) | | main.rs:2137:5:2137:19 | S | -| main.rs:2153:13:2153:37 | S(...) | T | main.rs:2100:9:2100:20 | Output | -| main.rs:2153:15:2153:22 | (...) | | main.rs:2148:10:2148:17 | T | -| main.rs:2153:15:2153:36 | ... .my_add(...) | | main.rs:2100:9:2100:20 | Output | -| main.rs:2153:16:2153:19 | self | | main.rs:2137:5:2137:19 | S | -| main.rs:2153:16:2153:19 | self | T | main.rs:2148:10:2148:17 | T | -| main.rs:2153:16:2153:21 | self.0 | | main.rs:2148:10:2148:17 | T | -| main.rs:2153:31:2153:35 | other | | main.rs:2099:5:2104:5 | Self [trait MyAdd] | -| main.rs:2153:31:2153:35 | other | | main.rs:2148:10:2148:17 | T | -| main.rs:2164:19:2164:22 | SelfParam | | main.rs:2137:5:2137:19 | S | -| main.rs:2164:19:2164:22 | SelfParam | T | main.rs:2157:14:2157:14 | T | -| main.rs:2164:25:2164:29 | other | | file://:0:0:0:0 | & | -| main.rs:2164:25:2164:29 | other | &T | main.rs:2157:14:2157:14 | T | -| main.rs:2164:55:2166:9 | { ... } | | main.rs:2137:5:2137:19 | S | -| main.rs:2165:13:2165:37 | S(...) | | main.rs:2137:5:2137:19 | S | -| main.rs:2165:15:2165:22 | (...) | | main.rs:2157:14:2157:14 | T | -| main.rs:2165:16:2165:19 | self | | main.rs:2137:5:2137:19 | S | -| main.rs:2165:16:2165:19 | self | T | main.rs:2157:14:2157:14 | T | -| main.rs:2165:16:2165:21 | self.0 | | main.rs:2157:14:2157:14 | T | -| main.rs:2165:31:2165:35 | other | | file://:0:0:0:0 | & | -| main.rs:2165:31:2165:35 | other | &T | main.rs:2157:14:2157:14 | T | -| main.rs:2171:20:2171:24 | value | | main.rs:2169:18:2169:18 | T | -| main.rs:2176:20:2176:24 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2176:40:2178:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2177:13:2177:17 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2183:20:2183:24 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2183:41:2189:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2184:13:2188:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | -| main.rs:2184:13:2188:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | -| main.rs:2184:16:2184:20 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2184:22:2186:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2184:22:2186:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2185:17:2185:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2185:17:2185:17 | 1 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2186:20:2188:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2186:20:2188:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2187:17:2187:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2187:17:2187:17 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2194:21:2194:25 | value | | main.rs:2192:19:2192:19 | T | -| main.rs:2194:31:2194:31 | x | | main.rs:2192:5:2195:5 | Self [trait MyFrom2] | -| main.rs:2199:21:2199:25 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2199:33:2199:33 | _ | | {EXTERNAL LOCATION} | i64 | -| main.rs:2199:48:2201:9 | { ... } | | file://:0:0:0:0 | () | -| main.rs:2200:13:2200:17 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2206:21:2206:25 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2206:34:2206:34 | _ | | {EXTERNAL LOCATION} | i64 | -| main.rs:2206:49:2212:9 | { ... } | | file://:0:0:0:0 | () | -| main.rs:2207:13:2211:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | -| main.rs:2207:16:2207:20 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2207:22:2209:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2208:17:2208:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2209:20:2211:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2210:17:2210:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2217:15:2217:15 | x | | main.rs:2215:5:2221:5 | Self [trait MySelfTrait] | -| main.rs:2220:15:2220:15 | x | | main.rs:2215:5:2221:5 | Self [trait MySelfTrait] | -| main.rs:2225:15:2225:15 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2225:31:2227:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2226:13:2226:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2226:13:2226:17 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2226:17:2226:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2230:15:2230:15 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2230:32:2232:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2231:13:2231:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2231:13:2231:17 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2231:17:2231:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2237:15:2237:15 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:2237:31:2239:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2238:13:2238:13 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2238:13:2238:13 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2242:15:2242:15 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:2242:32:2244:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2243:13:2243:13 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:2248:13:2248:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2248:22:2248:23 | 73 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2248:22:2248:23 | 73 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2249:9:2249:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2249:9:2249:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2249:18:2249:21 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2250:9:2250:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2250:9:2250:23 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2250:18:2250:22 | &5i64 | | file://:0:0:0:0 | & | -| main.rs:2250:18:2250:22 | &5i64 | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:2250:19:2250:22 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2251:9:2251:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2251:9:2251:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2251:18:2251:21 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2253:9:2253:15 | S(...) | | main.rs:2137:5:2137:19 | S | -| main.rs:2253:9:2253:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | -| main.rs:2253:9:2253:31 | ... .my_add(...) | | main.rs:2137:5:2137:19 | S | -| main.rs:2253:11:2253:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2253:24:2253:30 | S(...) | | main.rs:2137:5:2137:19 | S | -| main.rs:2253:24:2253:30 | S(...) | T | {EXTERNAL LOCATION} | i64 | -| main.rs:2253:26:2253:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2254:9:2254:15 | S(...) | | main.rs:2137:5:2137:19 | S | -| main.rs:2254:9:2254:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | -| main.rs:2254:11:2254:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2254:24:2254:27 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2255:9:2255:15 | S(...) | | main.rs:2137:5:2137:19 | S | -| main.rs:2255:9:2255:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | -| main.rs:2255:9:2255:29 | ... .my_add(...) | | main.rs:2137:5:2137:19 | S | -| main.rs:2255:11:2255:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2255:24:2255:28 | &3i64 | | file://:0:0:0:0 | & | -| main.rs:2255:24:2255:28 | &3i64 | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:2255:25:2255:28 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2257:13:2257:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2257:17:2257:35 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2257:30:2257:34 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2258:13:2258:13 | y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2258:17:2258:34 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2258:30:2258:33 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2259:13:2259:13 | z | | {EXTERNAL LOCATION} | i64 | -| main.rs:2259:22:2259:43 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2259:38:2259:42 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2260:9:2260:34 | ...::my_from2(...) | | file://:0:0:0:0 | () | -| main.rs:2260:23:2260:27 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2260:30:2260:33 | 0i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2261:9:2261:33 | ...::my_from2(...) | | file://:0:0:0:0 | () | -| main.rs:2261:23:2261:26 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2261:29:2261:32 | 0i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2262:9:2262:38 | ...::my_from2(...) | | file://:0:0:0:0 | () | -| main.rs:2262:27:2262:31 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2262:34:2262:37 | 0i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2264:9:2264:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2264:17:2264:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2265:9:2265:22 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2265:17:2265:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2266:9:2266:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2266:18:2266:21 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2267:9:2267:22 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2267:18:2267:21 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2268:9:2268:30 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2268:25:2268:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2269:9:2269:30 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2269:25:2269:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2270:9:2270:29 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2270:25:2270:28 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2271:9:2271:29 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2271:25:2271:28 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2279:26:2281:9 | { ... } | | main.rs:2276:5:2276:24 | MyCallable | -| main.rs:2280:13:2280:25 | MyCallable {...} | | main.rs:2276:5:2276:24 | MyCallable | -| main.rs:2283:17:2283:21 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2283:17:2283:21 | SelfParam | &T | main.rs:2276:5:2276:24 | MyCallable | -| main.rs:2283:31:2285:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2284:13:2284:13 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2284:13:2284:13 | 1 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2291:13:2291:13 | i | | {EXTERNAL LOCATION} | i32 | -| main.rs:2291:18:2291:26 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2291:18:2291:26 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2291:19:2291:19 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2291:22:2291:22 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2291:25:2291:25 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2292:18:2292:26 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2292:18:2292:26 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2292:18:2292:41 | ... .map(...) | | file://:0:0:0:0 | [] | -| main.rs:2292:19:2292:19 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2292:22:2292:22 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2292:25:2292:25 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2292:32:2292:40 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | -| main.rs:2292:32:2292:40 | \|...\| ... | dyn(Args) | file://:0:0:0:0 | (T_1) | -| main.rs:2292:40:2292:40 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2293:13:2293:13 | i | | {EXTERNAL LOCATION} | Item | -| main.rs:2293:13:2293:13 | i | | {EXTERNAL LOCATION} | i32 | -| main.rs:2293:18:2293:26 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2293:18:2293:26 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2293:18:2293:38 | ... .into_iter() | | {EXTERNAL LOCATION} | IntoIter | -| main.rs:2293:18:2293:38 | ... .into_iter() | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2293:19:2293:19 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2293:22:2293:22 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2293:25:2293:25 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2295:13:2295:17 | vals1 | | file://:0:0:0:0 | [] | -| main.rs:2295:13:2295:17 | vals1 | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2295:13:2295:17 | vals1 | [T;...] | {EXTERNAL LOCATION} | u8 | -| main.rs:2295:21:2295:31 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2295:21:2295:31 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2295:21:2295:31 | [...] | [T;...] | {EXTERNAL LOCATION} | u8 | -| main.rs:2295:22:2295:24 | 1u8 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2295:22:2295:24 | 1u8 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2295:27:2295:27 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2295:27:2295:27 | 2 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2295:30:2295:30 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2295:30:2295:30 | 3 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2296:13:2296:13 | u | | {EXTERNAL LOCATION} | i32 | -| main.rs:2296:13:2296:13 | u | | {EXTERNAL LOCATION} | u8 | -| main.rs:2296:18:2296:22 | vals1 | | file://:0:0:0:0 | [] | -| main.rs:2296:18:2296:22 | vals1 | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2296:18:2296:22 | vals1 | [T;...] | {EXTERNAL LOCATION} | u8 | -| main.rs:2298:13:2298:17 | vals2 | | file://:0:0:0:0 | [] | -| main.rs:2298:13:2298:17 | vals2 | [T;...] | {EXTERNAL LOCATION} | u16 | -| main.rs:2298:21:2298:29 | [1u16; 3] | | file://:0:0:0:0 | [] | -| main.rs:2298:21:2298:29 | [1u16; 3] | [T;...] | {EXTERNAL LOCATION} | u16 | -| main.rs:2298:22:2298:25 | 1u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2298:28:2298:28 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2299:13:2299:13 | u | | {EXTERNAL LOCATION} | u16 | -| main.rs:2299:18:2299:22 | vals2 | | file://:0:0:0:0 | [] | -| main.rs:2299:18:2299:22 | vals2 | [T;...] | {EXTERNAL LOCATION} | u16 | -| main.rs:2301:13:2301:17 | vals3 | | file://:0:0:0:0 | [] | -| main.rs:2301:13:2301:17 | vals3 | [T;...] | {EXTERNAL LOCATION} | u32 | -| main.rs:2301:26:2301:26 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2301:31:2301:39 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2301:31:2301:39 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2301:31:2301:39 | [...] | [T;...] | {EXTERNAL LOCATION} | u32 | -| main.rs:2301:32:2301:32 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2301:32:2301:32 | 1 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2301:35:2301:35 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2301:35:2301:35 | 2 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2301:38:2301:38 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2301:38:2301:38 | 3 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2302:13:2302:13 | u | | {EXTERNAL LOCATION} | u32 | -| main.rs:2302:18:2302:22 | vals3 | | file://:0:0:0:0 | [] | -| main.rs:2302:18:2302:22 | vals3 | [T;...] | {EXTERNAL LOCATION} | u32 | -| main.rs:2304:13:2304:17 | vals4 | | file://:0:0:0:0 | [] | -| main.rs:2304:13:2304:17 | vals4 | [T;...] | {EXTERNAL LOCATION} | u64 | -| main.rs:2304:26:2304:26 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2304:31:2304:36 | [1; 3] | | file://:0:0:0:0 | [] | -| main.rs:2304:31:2304:36 | [1; 3] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2304:31:2304:36 | [1; 3] | [T;...] | {EXTERNAL LOCATION} | u64 | -| main.rs:2304:32:2304:32 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2304:32:2304:32 | 1 | | {EXTERNAL LOCATION} | u64 | -| main.rs:2304:35:2304:35 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2305:13:2305:13 | u | | {EXTERNAL LOCATION} | u64 | -| main.rs:2305:18:2305:22 | vals4 | | file://:0:0:0:0 | [] | -| main.rs:2305:18:2305:22 | vals4 | [T;...] | {EXTERNAL LOCATION} | u64 | -| main.rs:2307:17:2307:24 | strings1 | | file://:0:0:0:0 | [] | -| main.rs:2307:17:2307:24 | strings1 | [T;...] | file://:0:0:0:0 | & | -| main.rs:2307:17:2307:24 | strings1 | [T;...].&T | {EXTERNAL LOCATION} | str | -| main.rs:2307:28:2307:48 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2307:28:2307:48 | [...] | [T;...] | file://:0:0:0:0 | & | -| main.rs:2307:28:2307:48 | [...] | [T;...].&T | {EXTERNAL LOCATION} | str | -| main.rs:2307:29:2307:33 | "foo" | | file://:0:0:0:0 | & | -| main.rs:2307:29:2307:33 | "foo" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2307:36:2307:40 | "bar" | | file://:0:0:0:0 | & | -| main.rs:2307:36:2307:40 | "bar" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2307:43:2307:47 | "baz" | | file://:0:0:0:0 | & | -| main.rs:2307:43:2307:47 | "baz" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2308:13:2308:13 | s | | {EXTERNAL LOCATION} | Item | -| main.rs:2308:13:2308:13 | s | | file://:0:0:0:0 | & | -| main.rs:2308:13:2308:13 | s | &T | file://:0:0:0:0 | & | -| main.rs:2308:13:2308:13 | s | &T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2308:18:2308:26 | &strings1 | | file://:0:0:0:0 | & | -| main.rs:2308:18:2308:26 | &strings1 | &T | file://:0:0:0:0 | [] | -| main.rs:2308:18:2308:26 | &strings1 | &T.[T;...] | file://:0:0:0:0 | & | -| main.rs:2308:18:2308:26 | &strings1 | &T.[T;...].&T | {EXTERNAL LOCATION} | str | -| main.rs:2308:19:2308:26 | strings1 | | file://:0:0:0:0 | [] | -| main.rs:2308:19:2308:26 | strings1 | [T;...] | file://:0:0:0:0 | & | -| main.rs:2308:19:2308:26 | strings1 | [T;...].&T | {EXTERNAL LOCATION} | str | -| main.rs:2309:13:2309:13 | s | | {EXTERNAL LOCATION} | Item | -| main.rs:2309:13:2309:13 | s | | file://:0:0:0:0 | & | -| main.rs:2309:13:2309:13 | s | &T | file://:0:0:0:0 | & | -| main.rs:2309:13:2309:13 | s | &T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2309:18:2309:30 | &mut strings1 | | file://:0:0:0:0 | & | -| main.rs:2309:18:2309:30 | &mut strings1 | &T | file://:0:0:0:0 | [] | -| main.rs:2309:18:2309:30 | &mut strings1 | &T.[T;...] | file://:0:0:0:0 | & | -| main.rs:2309:18:2309:30 | &mut strings1 | &T.[T;...].&T | {EXTERNAL LOCATION} | str | -| main.rs:2309:23:2309:30 | strings1 | | file://:0:0:0:0 | [] | -| main.rs:2309:23:2309:30 | strings1 | [T;...] | file://:0:0:0:0 | & | -| main.rs:2309:23:2309:30 | strings1 | [T;...].&T | {EXTERNAL LOCATION} | str | -| main.rs:2310:13:2310:13 | s | | file://:0:0:0:0 | & | -| main.rs:2310:13:2310:13 | s | &T | {EXTERNAL LOCATION} | str | -| main.rs:2310:18:2310:25 | strings1 | | file://:0:0:0:0 | [] | -| main.rs:2310:18:2310:25 | strings1 | [T;...] | file://:0:0:0:0 | & | -| main.rs:2310:18:2310:25 | strings1 | [T;...].&T | {EXTERNAL LOCATION} | str | -| main.rs:2312:13:2312:20 | strings2 | | file://:0:0:0:0 | [] | -| main.rs:2312:13:2312:20 | strings2 | [T;...] | {EXTERNAL LOCATION} | String | -| main.rs:2313:9:2317:9 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2313:9:2317:9 | [...] | [T;...] | {EXTERNAL LOCATION} | String | -| main.rs:2314:13:2314:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2314:26:2314:30 | "foo" | | file://:0:0:0:0 | & | -| main.rs:2314:26:2314:30 | "foo" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2315:13:2315:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2315:26:2315:30 | "bar" | | file://:0:0:0:0 | & | -| main.rs:2315:26:2315:30 | "bar" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2071:13:2071:13 | x | | main.rs:2037:5:2038:13 | S | +| main.rs:2071:17:2071:21 | slice | | file://:0:0:0:0 | & | +| main.rs:2071:17:2071:21 | slice | &T | file://:0:0:0:0 | [] | +| main.rs:2071:17:2071:21 | slice | &T.[T] | main.rs:2037:5:2038:13 | S | +| main.rs:2071:17:2071:24 | slice[0] | | main.rs:2037:5:2038:13 | S | +| main.rs:2071:17:2071:30 | ... .foo() | | main.rs:2037:5:2038:13 | S | +| main.rs:2071:23:2071:23 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2075:17:2075:19 | vec | | main.rs:2046:5:2049:5 | MyVec | +| main.rs:2075:17:2075:19 | vec | T | main.rs:2037:5:2038:13 | S | +| main.rs:2075:23:2075:34 | ...::new(...) | | main.rs:2046:5:2049:5 | MyVec | +| main.rs:2075:23:2075:34 | ...::new(...) | T | main.rs:2037:5:2038:13 | S | +| main.rs:2076:9:2076:11 | vec | | main.rs:2046:5:2049:5 | MyVec | +| main.rs:2076:9:2076:11 | vec | T | main.rs:2037:5:2038:13 | S | +| main.rs:2076:18:2076:18 | S | | main.rs:2037:5:2038:13 | S | +| main.rs:2077:9:2077:11 | vec | | main.rs:2046:5:2049:5 | MyVec | +| main.rs:2077:9:2077:11 | vec | T | main.rs:2037:5:2038:13 | S | +| main.rs:2077:9:2077:14 | vec[0] | | main.rs:2037:5:2038:13 | S | +| main.rs:2077:9:2077:20 | ... .foo() | | main.rs:2037:5:2038:13 | S | +| main.rs:2077:13:2077:13 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2077:13:2077:13 | 0 | | {EXTERNAL LOCATION} | usize | +| main.rs:2079:13:2079:14 | xs | | file://:0:0:0:0 | [] | +| main.rs:2079:13:2079:14 | xs | [T;...] | main.rs:2037:5:2038:13 | S | +| main.rs:2079:21:2079:21 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2079:26:2079:28 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2079:26:2079:28 | [...] | [T;...] | main.rs:2037:5:2038:13 | S | +| main.rs:2079:27:2079:27 | S | | main.rs:2037:5:2038:13 | S | +| main.rs:2080:13:2080:13 | x | | main.rs:2037:5:2038:13 | S | +| main.rs:2080:17:2080:18 | xs | | file://:0:0:0:0 | [] | +| main.rs:2080:17:2080:18 | xs | [T;...] | main.rs:2037:5:2038:13 | S | +| main.rs:2080:17:2080:21 | xs[0] | | main.rs:2037:5:2038:13 | S | +| main.rs:2080:17:2080:27 | ... .foo() | | main.rs:2037:5:2038:13 | S | +| main.rs:2080:20:2080:20 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2082:23:2082:25 | &xs | | file://:0:0:0:0 | & | +| main.rs:2082:23:2082:25 | &xs | &T | file://:0:0:0:0 | [] | +| main.rs:2082:23:2082:25 | &xs | &T | file://:0:0:0:0 | [] | +| main.rs:2082:23:2082:25 | &xs | &T.[T;...] | main.rs:2037:5:2038:13 | S | +| main.rs:2082:23:2082:25 | &xs | &T.[T] | main.rs:2037:5:2038:13 | S | +| main.rs:2082:24:2082:25 | xs | | file://:0:0:0:0 | [] | +| main.rs:2082:24:2082:25 | xs | [T;...] | main.rs:2037:5:2038:13 | S | +| main.rs:2088:13:2088:13 | x | | {EXTERNAL LOCATION} | String | +| main.rs:2088:17:2088:46 | MacroExpr | | {EXTERNAL LOCATION} | String | +| main.rs:2088:25:2088:35 | "Hello, {}" | | file://:0:0:0:0 | & | +| main.rs:2088:25:2088:35 | "Hello, {}" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2088:25:2088:45 | ...::format(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2088:25:2088:45 | ...::must_use(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2088:25:2088:45 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2088:25:2088:45 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2088:25:2088:45 | { ... } | | {EXTERNAL LOCATION} | String | +| main.rs:2088:38:2088:45 | "World!" | | file://:0:0:0:0 | & | +| main.rs:2088:38:2088:45 | "World!" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2097:19:2097:22 | SelfParam | | main.rs:2093:5:2098:5 | Self [trait MyAdd] | +| main.rs:2097:25:2097:27 | rhs | | main.rs:2093:17:2093:26 | Rhs | +| main.rs:2104:19:2104:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | +| main.rs:2104:25:2104:29 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2104:45:2106:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2105:13:2105:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2113:19:2113:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | +| main.rs:2113:25:2113:29 | value | | file://:0:0:0:0 | & | +| main.rs:2113:25:2113:29 | value | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:2113:46:2115:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2114:13:2114:18 | * ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2114:14:2114:18 | value | | file://:0:0:0:0 | & | +| main.rs:2114:14:2114:18 | value | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:2122:19:2122:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | +| main.rs:2122:25:2122:29 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2122:46:2128:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2123:13:2127:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | +| main.rs:2123:13:2127:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | +| main.rs:2123:16:2123:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2123:22:2125:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2123:22:2125:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2124:17:2124:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2124:17:2124:17 | 1 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2125:20:2127:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2125:20:2127:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2126:17:2126:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2126:17:2126:17 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2137:19:2137:22 | SelfParam | | main.rs:2131:5:2131:19 | S | +| main.rs:2137:19:2137:22 | SelfParam | T | main.rs:2133:10:2133:17 | T | +| main.rs:2137:25:2137:29 | other | | main.rs:2131:5:2131:19 | S | +| main.rs:2137:25:2137:29 | other | T | main.rs:2133:10:2133:17 | T | +| main.rs:2137:54:2139:9 | { ... } | | main.rs:2131:5:2131:19 | S | +| main.rs:2137:54:2139:9 | { ... } | T | main.rs:2094:9:2094:20 | Output | +| main.rs:2138:13:2138:39 | S(...) | | main.rs:2131:5:2131:19 | S | +| main.rs:2138:13:2138:39 | S(...) | T | main.rs:2094:9:2094:20 | Output | +| main.rs:2138:15:2138:22 | (...) | | main.rs:2133:10:2133:17 | T | +| main.rs:2138:15:2138:38 | ... .my_add(...) | | main.rs:2094:9:2094:20 | Output | +| main.rs:2138:16:2138:19 | self | | main.rs:2131:5:2131:19 | S | +| main.rs:2138:16:2138:19 | self | T | main.rs:2133:10:2133:17 | T | +| main.rs:2138:16:2138:21 | self.0 | | main.rs:2133:10:2133:17 | T | +| main.rs:2138:31:2138:35 | other | | main.rs:2131:5:2131:19 | S | +| main.rs:2138:31:2138:35 | other | T | main.rs:2133:10:2133:17 | T | +| main.rs:2138:31:2138:37 | other.0 | | main.rs:2093:5:2098:5 | Self [trait MyAdd] | +| main.rs:2138:31:2138:37 | other.0 | | main.rs:2133:10:2133:17 | T | +| main.rs:2146:19:2146:22 | SelfParam | | main.rs:2131:5:2131:19 | S | +| main.rs:2146:19:2146:22 | SelfParam | T | main.rs:2142:10:2142:17 | T | +| main.rs:2146:25:2146:29 | other | | main.rs:2142:10:2142:17 | T | +| main.rs:2146:51:2148:9 | { ... } | | main.rs:2131:5:2131:19 | S | +| main.rs:2146:51:2148:9 | { ... } | T | main.rs:2094:9:2094:20 | Output | +| main.rs:2147:13:2147:37 | S(...) | | main.rs:2131:5:2131:19 | S | +| main.rs:2147:13:2147:37 | S(...) | T | main.rs:2094:9:2094:20 | Output | +| main.rs:2147:15:2147:22 | (...) | | main.rs:2142:10:2142:17 | T | +| main.rs:2147:15:2147:36 | ... .my_add(...) | | main.rs:2094:9:2094:20 | Output | +| main.rs:2147:16:2147:19 | self | | main.rs:2131:5:2131:19 | S | +| main.rs:2147:16:2147:19 | self | T | main.rs:2142:10:2142:17 | T | +| main.rs:2147:16:2147:21 | self.0 | | main.rs:2142:10:2142:17 | T | +| main.rs:2147:31:2147:35 | other | | main.rs:2142:10:2142:17 | T | +| main.rs:2158:19:2158:22 | SelfParam | | main.rs:2131:5:2131:19 | S | +| main.rs:2158:19:2158:22 | SelfParam | T | main.rs:2151:14:2151:14 | T | +| main.rs:2158:25:2158:29 | other | | file://:0:0:0:0 | & | +| main.rs:2158:25:2158:29 | other | &T | main.rs:2151:14:2151:14 | T | +| main.rs:2158:55:2160:9 | { ... } | | main.rs:2131:5:2131:19 | S | +| main.rs:2159:13:2159:37 | S(...) | | main.rs:2131:5:2131:19 | S | +| main.rs:2159:15:2159:22 | (...) | | main.rs:2151:14:2151:14 | T | +| main.rs:2159:16:2159:19 | self | | main.rs:2131:5:2131:19 | S | +| main.rs:2159:16:2159:19 | self | T | main.rs:2151:14:2151:14 | T | +| main.rs:2159:16:2159:21 | self.0 | | main.rs:2151:14:2151:14 | T | +| main.rs:2159:31:2159:35 | other | | file://:0:0:0:0 | & | +| main.rs:2159:31:2159:35 | other | &T | main.rs:2151:14:2151:14 | T | +| main.rs:2165:20:2165:24 | value | | main.rs:2163:18:2163:18 | T | +| main.rs:2170:20:2170:24 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2170:40:2172:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2171:13:2171:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2177:20:2177:24 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2177:41:2183:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2178:13:2182:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | +| main.rs:2178:13:2182:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | +| main.rs:2178:16:2178:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2178:22:2180:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2178:22:2180:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2179:17:2179:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2179:17:2179:17 | 1 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2180:20:2182:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2180:20:2182:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2181:17:2181:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2181:17:2181:17 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2188:21:2188:25 | value | | main.rs:2186:19:2186:19 | T | +| main.rs:2188:31:2188:31 | x | | main.rs:2186:5:2189:5 | Self [trait MyFrom2] | +| main.rs:2193:21:2193:25 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2193:33:2193:33 | _ | | {EXTERNAL LOCATION} | i64 | +| main.rs:2193:48:2195:9 | { ... } | | file://:0:0:0:0 | () | +| main.rs:2194:13:2194:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2200:21:2200:25 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2200:34:2200:34 | _ | | {EXTERNAL LOCATION} | i64 | +| main.rs:2200:49:2206:9 | { ... } | | file://:0:0:0:0 | () | +| main.rs:2201:13:2205:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | +| main.rs:2201:16:2201:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2201:22:2203:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2202:17:2202:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2203:20:2205:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2204:17:2204:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2211:15:2211:15 | x | | main.rs:2209:5:2215:5 | Self [trait MySelfTrait] | +| main.rs:2214:15:2214:15 | x | | main.rs:2209:5:2215:5 | Self [trait MySelfTrait] | +| main.rs:2219:15:2219:15 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2219:31:2221:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2220:13:2220:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2220:13:2220:17 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2220:17:2220:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2224:15:2224:15 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2224:32:2226:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2225:13:2225:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2225:13:2225:17 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2225:17:2225:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2231:15:2231:15 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:2231:31:2233:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2232:13:2232:13 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2232:13:2232:13 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2236:15:2236:15 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:2236:32:2238:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2237:13:2237:13 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:2242:13:2242:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2242:22:2242:23 | 73 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2242:22:2242:23 | 73 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2243:9:2243:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2243:9:2243:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2243:18:2243:21 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2244:9:2244:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2244:9:2244:23 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2244:18:2244:22 | &5i64 | | file://:0:0:0:0 | & | +| main.rs:2244:18:2244:22 | &5i64 | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:2244:19:2244:22 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2245:9:2245:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2245:9:2245:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2245:18:2245:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2247:9:2247:15 | S(...) | | main.rs:2131:5:2131:19 | S | +| main.rs:2247:9:2247:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | +| main.rs:2247:9:2247:31 | ... .my_add(...) | | main.rs:2131:5:2131:19 | S | +| main.rs:2247:11:2247:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2247:24:2247:30 | S(...) | | main.rs:2131:5:2131:19 | S | +| main.rs:2247:24:2247:30 | S(...) | T | {EXTERNAL LOCATION} | i64 | +| main.rs:2247:26:2247:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2248:9:2248:15 | S(...) | | main.rs:2131:5:2131:19 | S | +| main.rs:2248:9:2248:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | +| main.rs:2248:11:2248:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2248:24:2248:27 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2249:9:2249:15 | S(...) | | main.rs:2131:5:2131:19 | S | +| main.rs:2249:9:2249:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | +| main.rs:2249:9:2249:29 | ... .my_add(...) | | main.rs:2131:5:2131:19 | S | +| main.rs:2249:11:2249:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2249:24:2249:28 | &3i64 | | file://:0:0:0:0 | & | +| main.rs:2249:24:2249:28 | &3i64 | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:2249:25:2249:28 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2251:13:2251:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2251:17:2251:35 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2251:30:2251:34 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2252:13:2252:13 | y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2252:17:2252:34 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2252:30:2252:33 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2253:13:2253:13 | z | | {EXTERNAL LOCATION} | i64 | +| main.rs:2253:22:2253:43 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2253:38:2253:42 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2254:9:2254:34 | ...::my_from2(...) | | file://:0:0:0:0 | () | +| main.rs:2254:23:2254:27 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2254:30:2254:33 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2255:9:2255:33 | ...::my_from2(...) | | file://:0:0:0:0 | () | +| main.rs:2255:23:2255:26 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2255:29:2255:32 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2256:9:2256:38 | ...::my_from2(...) | | file://:0:0:0:0 | () | +| main.rs:2256:27:2256:31 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2256:34:2256:37 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2258:9:2258:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2258:17:2258:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2259:9:2259:22 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2259:17:2259:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2260:9:2260:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2260:18:2260:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2261:9:2261:22 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2261:18:2261:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2262:9:2262:30 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2262:25:2262:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2263:9:2263:30 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2263:25:2263:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2264:9:2264:29 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2264:25:2264:28 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2265:9:2265:29 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2265:25:2265:28 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2273:26:2275:9 | { ... } | | main.rs:2270:5:2270:24 | MyCallable | +| main.rs:2274:13:2274:25 | MyCallable {...} | | main.rs:2270:5:2270:24 | MyCallable | +| main.rs:2277:17:2277:21 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2277:17:2277:21 | SelfParam | &T | main.rs:2270:5:2270:24 | MyCallable | +| main.rs:2277:31:2279:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2278:13:2278:13 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2278:13:2278:13 | 1 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2285:13:2285:13 | i | | {EXTERNAL LOCATION} | i32 | +| main.rs:2285:18:2285:26 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2285:18:2285:26 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2285:19:2285:19 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2285:22:2285:22 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2285:25:2285:25 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2286:18:2286:26 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2286:18:2286:26 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2286:18:2286:41 | ... .map(...) | | file://:0:0:0:0 | [] | +| main.rs:2286:19:2286:19 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2286:22:2286:22 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2286:25:2286:25 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2286:32:2286:40 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | +| main.rs:2286:32:2286:40 | \|...\| ... | dyn(Args) | file://:0:0:0:0 | (T_1) | +| main.rs:2286:40:2286:40 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2287:13:2287:13 | i | | {EXTERNAL LOCATION} | Item | +| main.rs:2287:13:2287:13 | i | | {EXTERNAL LOCATION} | i32 | +| main.rs:2287:18:2287:26 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2287:18:2287:26 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2287:18:2287:38 | ... .into_iter() | | {EXTERNAL LOCATION} | IntoIter | +| main.rs:2287:18:2287:38 | ... .into_iter() | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2287:19:2287:19 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2287:22:2287:22 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2287:25:2287:25 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2289:13:2289:17 | vals1 | | file://:0:0:0:0 | [] | +| main.rs:2289:13:2289:17 | vals1 | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2289:13:2289:17 | vals1 | [T;...] | {EXTERNAL LOCATION} | u8 | +| main.rs:2289:21:2289:31 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2289:21:2289:31 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2289:21:2289:31 | [...] | [T;...] | {EXTERNAL LOCATION} | u8 | +| main.rs:2289:22:2289:24 | 1u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2289:27:2289:27 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2289:27:2289:27 | 2 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2289:30:2289:30 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2289:30:2289:30 | 3 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2290:13:2290:13 | u | | {EXTERNAL LOCATION} | i32 | +| main.rs:2290:13:2290:13 | u | | {EXTERNAL LOCATION} | u8 | +| main.rs:2290:18:2290:22 | vals1 | | file://:0:0:0:0 | [] | +| main.rs:2290:18:2290:22 | vals1 | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2290:18:2290:22 | vals1 | [T;...] | {EXTERNAL LOCATION} | u8 | +| main.rs:2292:13:2292:17 | vals2 | | file://:0:0:0:0 | [] | +| main.rs:2292:13:2292:17 | vals2 | [T;...] | {EXTERNAL LOCATION} | u16 | +| main.rs:2292:21:2292:29 | [1u16; 3] | | file://:0:0:0:0 | [] | +| main.rs:2292:21:2292:29 | [1u16; 3] | [T;...] | {EXTERNAL LOCATION} | u16 | +| main.rs:2292:22:2292:25 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2292:28:2292:28 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2293:13:2293:13 | u | | {EXTERNAL LOCATION} | u16 | +| main.rs:2293:18:2293:22 | vals2 | | file://:0:0:0:0 | [] | +| main.rs:2293:18:2293:22 | vals2 | [T;...] | {EXTERNAL LOCATION} | u16 | +| main.rs:2295:13:2295:17 | vals3 | | file://:0:0:0:0 | [] | +| main.rs:2295:13:2295:17 | vals3 | [T;...] | {EXTERNAL LOCATION} | u32 | +| main.rs:2295:26:2295:26 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2295:31:2295:39 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2295:31:2295:39 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2295:31:2295:39 | [...] | [T;...] | {EXTERNAL LOCATION} | u32 | +| main.rs:2295:32:2295:32 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2295:32:2295:32 | 1 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2295:35:2295:35 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2295:35:2295:35 | 2 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2295:38:2295:38 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2295:38:2295:38 | 3 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2296:13:2296:13 | u | | {EXTERNAL LOCATION} | u32 | +| main.rs:2296:18:2296:22 | vals3 | | file://:0:0:0:0 | [] | +| main.rs:2296:18:2296:22 | vals3 | [T;...] | {EXTERNAL LOCATION} | u32 | +| main.rs:2298:13:2298:17 | vals4 | | file://:0:0:0:0 | [] | +| main.rs:2298:13:2298:17 | vals4 | [T;...] | {EXTERNAL LOCATION} | u64 | +| main.rs:2298:26:2298:26 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2298:31:2298:36 | [1; 3] | | file://:0:0:0:0 | [] | +| main.rs:2298:31:2298:36 | [1; 3] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2298:31:2298:36 | [1; 3] | [T;...] | {EXTERNAL LOCATION} | u64 | +| main.rs:2298:32:2298:32 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2298:32:2298:32 | 1 | | {EXTERNAL LOCATION} | u64 | +| main.rs:2298:35:2298:35 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2299:13:2299:13 | u | | {EXTERNAL LOCATION} | u64 | +| main.rs:2299:18:2299:22 | vals4 | | file://:0:0:0:0 | [] | +| main.rs:2299:18:2299:22 | vals4 | [T;...] | {EXTERNAL LOCATION} | u64 | +| main.rs:2301:17:2301:24 | strings1 | | file://:0:0:0:0 | [] | +| main.rs:2301:17:2301:24 | strings1 | [T;...] | file://:0:0:0:0 | & | +| main.rs:2301:17:2301:24 | strings1 | [T;...].&T | {EXTERNAL LOCATION} | str | +| main.rs:2301:28:2301:48 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2301:28:2301:48 | [...] | [T;...] | file://:0:0:0:0 | & | +| main.rs:2301:28:2301:48 | [...] | [T;...].&T | {EXTERNAL LOCATION} | str | +| main.rs:2301:29:2301:33 | "foo" | | file://:0:0:0:0 | & | +| main.rs:2301:29:2301:33 | "foo" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2301:36:2301:40 | "bar" | | file://:0:0:0:0 | & | +| main.rs:2301:36:2301:40 | "bar" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2301:43:2301:47 | "baz" | | file://:0:0:0:0 | & | +| main.rs:2301:43:2301:47 | "baz" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2302:13:2302:13 | s | | {EXTERNAL LOCATION} | Item | +| main.rs:2302:13:2302:13 | s | | file://:0:0:0:0 | & | +| main.rs:2302:13:2302:13 | s | &T | file://:0:0:0:0 | & | +| main.rs:2302:13:2302:13 | s | &T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2302:18:2302:26 | &strings1 | | file://:0:0:0:0 | & | +| main.rs:2302:18:2302:26 | &strings1 | &T | file://:0:0:0:0 | [] | +| main.rs:2302:18:2302:26 | &strings1 | &T.[T;...] | file://:0:0:0:0 | & | +| main.rs:2302:18:2302:26 | &strings1 | &T.[T;...].&T | {EXTERNAL LOCATION} | str | +| main.rs:2302:19:2302:26 | strings1 | | file://:0:0:0:0 | [] | +| main.rs:2302:19:2302:26 | strings1 | [T;...] | file://:0:0:0:0 | & | +| main.rs:2302:19:2302:26 | strings1 | [T;...].&T | {EXTERNAL LOCATION} | str | +| main.rs:2303:13:2303:13 | s | | {EXTERNAL LOCATION} | Item | +| main.rs:2303:13:2303:13 | s | | file://:0:0:0:0 | & | +| main.rs:2303:13:2303:13 | s | &T | file://:0:0:0:0 | & | +| main.rs:2303:13:2303:13 | s | &T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2303:18:2303:30 | &mut strings1 | | file://:0:0:0:0 | & | +| main.rs:2303:18:2303:30 | &mut strings1 | &T | file://:0:0:0:0 | [] | +| main.rs:2303:18:2303:30 | &mut strings1 | &T.[T;...] | file://:0:0:0:0 | & | +| main.rs:2303:18:2303:30 | &mut strings1 | &T.[T;...].&T | {EXTERNAL LOCATION} | str | +| main.rs:2303:23:2303:30 | strings1 | | file://:0:0:0:0 | [] | +| main.rs:2303:23:2303:30 | strings1 | [T;...] | file://:0:0:0:0 | & | +| main.rs:2303:23:2303:30 | strings1 | [T;...].&T | {EXTERNAL LOCATION} | str | +| main.rs:2304:13:2304:13 | s | | file://:0:0:0:0 | & | +| main.rs:2304:13:2304:13 | s | &T | {EXTERNAL LOCATION} | str | +| main.rs:2304:18:2304:25 | strings1 | | file://:0:0:0:0 | [] | +| main.rs:2304:18:2304:25 | strings1 | [T;...] | file://:0:0:0:0 | & | +| main.rs:2304:18:2304:25 | strings1 | [T;...].&T | {EXTERNAL LOCATION} | str | +| main.rs:2306:13:2306:20 | strings2 | | file://:0:0:0:0 | [] | +| main.rs:2306:13:2306:20 | strings2 | [T;...] | {EXTERNAL LOCATION} | String | +| main.rs:2307:9:2311:9 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2307:9:2311:9 | [...] | [T;...] | {EXTERNAL LOCATION} | String | +| main.rs:2308:13:2308:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2308:26:2308:30 | "foo" | | file://:0:0:0:0 | & | +| main.rs:2308:26:2308:30 | "foo" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2309:13:2309:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2309:26:2309:30 | "bar" | | file://:0:0:0:0 | & | +| main.rs:2309:26:2309:30 | "bar" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2310:13:2310:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2310:26:2310:30 | "baz" | | file://:0:0:0:0 | & | +| main.rs:2310:26:2310:30 | "baz" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2312:13:2312:13 | s | | {EXTERNAL LOCATION} | String | +| main.rs:2312:18:2312:25 | strings2 | | file://:0:0:0:0 | [] | +| main.rs:2312:18:2312:25 | strings2 | [T;...] | {EXTERNAL LOCATION} | String | +| main.rs:2314:13:2314:20 | strings3 | | file://:0:0:0:0 | & | +| main.rs:2314:13:2314:20 | strings3 | &T | file://:0:0:0:0 | [] | +| main.rs:2314:13:2314:20 | strings3 | &T.[T;...] | {EXTERNAL LOCATION} | String | +| main.rs:2315:9:2319:9 | &... | | file://:0:0:0:0 | & | +| main.rs:2315:9:2319:9 | &... | &T | file://:0:0:0:0 | [] | +| main.rs:2315:9:2319:9 | &... | &T.[T;...] | {EXTERNAL LOCATION} | String | +| main.rs:2315:10:2319:9 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2315:10:2319:9 | [...] | [T;...] | {EXTERNAL LOCATION} | String | | main.rs:2316:13:2316:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2316:26:2316:30 | "baz" | | file://:0:0:0:0 | & | -| main.rs:2316:26:2316:30 | "baz" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2318:13:2318:13 | s | | {EXTERNAL LOCATION} | String | -| main.rs:2318:18:2318:25 | strings2 | | file://:0:0:0:0 | [] | -| main.rs:2318:18:2318:25 | strings2 | [T;...] | {EXTERNAL LOCATION} | String | -| main.rs:2320:13:2320:20 | strings3 | | file://:0:0:0:0 | & | -| main.rs:2320:13:2320:20 | strings3 | &T | file://:0:0:0:0 | [] | -| main.rs:2320:13:2320:20 | strings3 | &T.[T;...] | {EXTERNAL LOCATION} | String | -| main.rs:2321:9:2325:9 | &... | | file://:0:0:0:0 | & | -| main.rs:2321:9:2325:9 | &... | &T | file://:0:0:0:0 | [] | -| main.rs:2321:9:2325:9 | &... | &T.[T;...] | {EXTERNAL LOCATION} | String | -| main.rs:2321:10:2325:9 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2321:10:2325:9 | [...] | [T;...] | {EXTERNAL LOCATION} | String | -| main.rs:2322:13:2322:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2322:26:2322:30 | "foo" | | file://:0:0:0:0 | & | -| main.rs:2322:26:2322:30 | "foo" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2323:13:2323:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2323:26:2323:30 | "bar" | | file://:0:0:0:0 | & | -| main.rs:2323:26:2323:30 | "bar" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2324:13:2324:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2324:26:2324:30 | "baz" | | file://:0:0:0:0 | & | -| main.rs:2324:26:2324:30 | "baz" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2326:13:2326:13 | s | | {EXTERNAL LOCATION} | Item | -| main.rs:2326:13:2326:13 | s | | file://:0:0:0:0 | & | -| main.rs:2326:13:2326:13 | s | &T | {EXTERNAL LOCATION} | String | -| main.rs:2326:18:2326:25 | strings3 | | file://:0:0:0:0 | & | -| main.rs:2326:18:2326:25 | strings3 | &T | file://:0:0:0:0 | [] | -| main.rs:2326:18:2326:25 | strings3 | &T.[T;...] | {EXTERNAL LOCATION} | String | -| main.rs:2328:13:2328:21 | callables | | file://:0:0:0:0 | [] | -| main.rs:2328:13:2328:21 | callables | [T;...] | main.rs:2276:5:2276:24 | MyCallable | -| main.rs:2328:25:2328:81 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2328:25:2328:81 | [...] | [T;...] | main.rs:2276:5:2276:24 | MyCallable | -| main.rs:2328:26:2328:42 | ...::new(...) | | main.rs:2276:5:2276:24 | MyCallable | -| main.rs:2328:45:2328:61 | ...::new(...) | | main.rs:2276:5:2276:24 | MyCallable | -| main.rs:2328:64:2328:80 | ...::new(...) | | main.rs:2276:5:2276:24 | MyCallable | -| main.rs:2329:13:2329:13 | c | | main.rs:2276:5:2276:24 | MyCallable | -| main.rs:2330:12:2330:20 | callables | | file://:0:0:0:0 | [] | -| main.rs:2330:12:2330:20 | callables | [T;...] | main.rs:2276:5:2276:24 | MyCallable | -| main.rs:2332:17:2332:22 | result | | {EXTERNAL LOCATION} | i64 | -| main.rs:2332:26:2332:26 | c | | main.rs:2276:5:2276:24 | MyCallable | -| main.rs:2332:26:2332:33 | c.call() | | {EXTERNAL LOCATION} | i64 | -| main.rs:2337:13:2337:13 | i | | {EXTERNAL LOCATION} | Item | -| main.rs:2337:13:2337:13 | i | | {EXTERNAL LOCATION} | i32 | -| main.rs:2337:18:2337:18 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2337:18:2337:22 | 0..10 | | {EXTERNAL LOCATION} | Range | -| main.rs:2337:18:2337:22 | 0..10 | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2337:21:2337:22 | 10 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2338:13:2338:13 | u | | {EXTERNAL LOCATION} | Range | -| main.rs:2338:13:2338:13 | u | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2338:13:2338:13 | u | Idx | {EXTERNAL LOCATION} | u8 | -| main.rs:2338:18:2338:26 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2338:18:2338:26 | [...] | [T;...] | {EXTERNAL LOCATION} | Range | -| main.rs:2338:18:2338:26 | [...] | [T;...].Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2338:18:2338:26 | [...] | [T;...].Idx | {EXTERNAL LOCATION} | u8 | -| main.rs:2338:19:2338:21 | 0u8 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2338:19:2338:21 | 0u8 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2338:19:2338:25 | 0u8..10 | | {EXTERNAL LOCATION} | Range | -| main.rs:2338:19:2338:25 | 0u8..10 | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2338:19:2338:25 | 0u8..10 | Idx | {EXTERNAL LOCATION} | u8 | -| main.rs:2338:24:2338:25 | 10 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2338:24:2338:25 | 10 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2339:13:2339:17 | range | | {EXTERNAL LOCATION} | Range | -| main.rs:2339:13:2339:17 | range | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2339:21:2339:21 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2339:21:2339:25 | 0..10 | | {EXTERNAL LOCATION} | Range | -| main.rs:2339:21:2339:25 | 0..10 | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2339:24:2339:25 | 10 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2340:13:2340:13 | i | | {EXTERNAL LOCATION} | Item | -| main.rs:2340:13:2340:13 | i | | {EXTERNAL LOCATION} | i32 | -| main.rs:2340:18:2340:22 | range | | {EXTERNAL LOCATION} | Range | -| main.rs:2340:18:2340:22 | range | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2342:13:2342:18 | range1 | | {EXTERNAL LOCATION} | Range | -| main.rs:2342:13:2342:18 | range1 | Idx | {EXTERNAL LOCATION} | u16 | -| main.rs:2343:9:2346:9 | ...::Range {...} | | {EXTERNAL LOCATION} | Range | -| main.rs:2343:9:2346:9 | ...::Range {...} | Idx | {EXTERNAL LOCATION} | u16 | -| main.rs:2344:20:2344:23 | 0u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2345:18:2345:22 | 10u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2347:13:2347:13 | u | | {EXTERNAL LOCATION} | Item | -| main.rs:2347:13:2347:13 | u | | {EXTERNAL LOCATION} | u16 | -| main.rs:2347:18:2347:23 | range1 | | {EXTERNAL LOCATION} | Range | -| main.rs:2347:18:2347:23 | range1 | Idx | {EXTERNAL LOCATION} | u16 | -| main.rs:2351:26:2351:26 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2316:26:2316:30 | "foo" | | file://:0:0:0:0 | & | +| main.rs:2316:26:2316:30 | "foo" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2317:13:2317:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2317:26:2317:30 | "bar" | | file://:0:0:0:0 | & | +| main.rs:2317:26:2317:30 | "bar" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2318:13:2318:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2318:26:2318:30 | "baz" | | file://:0:0:0:0 | & | +| main.rs:2318:26:2318:30 | "baz" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2320:13:2320:13 | s | | {EXTERNAL LOCATION} | Item | +| main.rs:2320:13:2320:13 | s | | file://:0:0:0:0 | & | +| main.rs:2320:13:2320:13 | s | &T | {EXTERNAL LOCATION} | String | +| main.rs:2320:18:2320:25 | strings3 | | file://:0:0:0:0 | & | +| main.rs:2320:18:2320:25 | strings3 | &T | file://:0:0:0:0 | [] | +| main.rs:2320:18:2320:25 | strings3 | &T.[T;...] | {EXTERNAL LOCATION} | String | +| main.rs:2322:13:2322:21 | callables | | file://:0:0:0:0 | [] | +| main.rs:2322:13:2322:21 | callables | [T;...] | main.rs:2270:5:2270:24 | MyCallable | +| main.rs:2322:25:2322:81 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2322:25:2322:81 | [...] | [T;...] | main.rs:2270:5:2270:24 | MyCallable | +| main.rs:2322:26:2322:42 | ...::new(...) | | main.rs:2270:5:2270:24 | MyCallable | +| main.rs:2322:45:2322:61 | ...::new(...) | | main.rs:2270:5:2270:24 | MyCallable | +| main.rs:2322:64:2322:80 | ...::new(...) | | main.rs:2270:5:2270:24 | MyCallable | +| main.rs:2323:13:2323:13 | c | | main.rs:2270:5:2270:24 | MyCallable | +| main.rs:2324:12:2324:20 | callables | | file://:0:0:0:0 | [] | +| main.rs:2324:12:2324:20 | callables | [T;...] | main.rs:2270:5:2270:24 | MyCallable | +| main.rs:2326:17:2326:22 | result | | {EXTERNAL LOCATION} | i64 | +| main.rs:2326:26:2326:26 | c | | main.rs:2270:5:2270:24 | MyCallable | +| main.rs:2326:26:2326:33 | c.call() | | {EXTERNAL LOCATION} | i64 | +| main.rs:2331:13:2331:13 | i | | {EXTERNAL LOCATION} | Item | +| main.rs:2331:13:2331:13 | i | | {EXTERNAL LOCATION} | i32 | +| main.rs:2331:18:2331:18 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2331:18:2331:22 | 0..10 | | {EXTERNAL LOCATION} | Range | +| main.rs:2331:18:2331:22 | 0..10 | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2331:21:2331:22 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2332:13:2332:13 | u | | {EXTERNAL LOCATION} | Range | +| main.rs:2332:13:2332:13 | u | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2332:13:2332:13 | u | Idx | {EXTERNAL LOCATION} | u8 | +| main.rs:2332:18:2332:26 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2332:18:2332:26 | [...] | [T;...] | {EXTERNAL LOCATION} | Range | +| main.rs:2332:18:2332:26 | [...] | [T;...].Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2332:18:2332:26 | [...] | [T;...].Idx | {EXTERNAL LOCATION} | u8 | +| main.rs:2332:19:2332:21 | 0u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2332:19:2332:25 | 0u8..10 | | {EXTERNAL LOCATION} | Range | +| main.rs:2332:19:2332:25 | 0u8..10 | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2332:19:2332:25 | 0u8..10 | Idx | {EXTERNAL LOCATION} | u8 | +| main.rs:2332:24:2332:25 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2332:24:2332:25 | 10 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2333:13:2333:17 | range | | {EXTERNAL LOCATION} | Range | +| main.rs:2333:13:2333:17 | range | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2333:21:2333:21 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2333:21:2333:25 | 0..10 | | {EXTERNAL LOCATION} | Range | +| main.rs:2333:21:2333:25 | 0..10 | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2333:24:2333:25 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2334:13:2334:13 | i | | {EXTERNAL LOCATION} | Item | +| main.rs:2334:13:2334:13 | i | | {EXTERNAL LOCATION} | i32 | +| main.rs:2334:18:2334:22 | range | | {EXTERNAL LOCATION} | Range | +| main.rs:2334:18:2334:22 | range | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2336:13:2336:18 | range1 | | {EXTERNAL LOCATION} | Range | +| main.rs:2336:13:2336:18 | range1 | Idx | {EXTERNAL LOCATION} | u16 | +| main.rs:2337:9:2340:9 | ...::Range {...} | | {EXTERNAL LOCATION} | Range | +| main.rs:2337:9:2340:9 | ...::Range {...} | Idx | {EXTERNAL LOCATION} | u16 | +| main.rs:2338:20:2338:23 | 0u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2339:18:2339:22 | 10u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2341:13:2341:13 | u | | {EXTERNAL LOCATION} | Item | +| main.rs:2341:13:2341:13 | u | | {EXTERNAL LOCATION} | u16 | +| main.rs:2341:18:2341:23 | range1 | | {EXTERNAL LOCATION} | Range | +| main.rs:2341:18:2341:23 | range1 | Idx | {EXTERNAL LOCATION} | u16 | +| main.rs:2345:26:2345:26 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2345:29:2345:29 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2345:32:2345:32 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2348:13:2348:18 | vals4a | | {EXTERNAL LOCATION} | Vec | +| main.rs:2348:13:2348:18 | vals4a | A | {EXTERNAL LOCATION} | Global | +| main.rs:2348:13:2348:18 | vals4a | T | {EXTERNAL LOCATION} | u16 | +| main.rs:2348:32:2348:43 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2348:32:2348:43 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2348:32:2348:43 | [...] | [T;...] | {EXTERNAL LOCATION} | u16 | +| main.rs:2348:32:2348:52 | ... .to_vec() | | {EXTERNAL LOCATION} | Vec | +| main.rs:2348:32:2348:52 | ... .to_vec() | A | {EXTERNAL LOCATION} | Global | +| main.rs:2348:32:2348:52 | ... .to_vec() | T | {EXTERNAL LOCATION} | u16 | +| main.rs:2348:33:2348:36 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2348:39:2348:39 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2348:39:2348:39 | 2 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2348:42:2348:42 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2348:42:2348:42 | 3 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2349:13:2349:13 | u | | {EXTERNAL LOCATION} | u16 | +| main.rs:2349:13:2349:13 | u | | file://:0:0:0:0 | & | +| main.rs:2349:18:2349:23 | vals4a | | {EXTERNAL LOCATION} | Vec | +| main.rs:2349:18:2349:23 | vals4a | A | {EXTERNAL LOCATION} | Global | +| main.rs:2349:18:2349:23 | vals4a | T | {EXTERNAL LOCATION} | u16 | +| main.rs:2351:22:2351:33 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2351:22:2351:33 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2351:22:2351:33 | [...] | [T;...] | {EXTERNAL LOCATION} | u16 | +| main.rs:2351:23:2351:26 | 1u16 | | {EXTERNAL LOCATION} | u16 | | main.rs:2351:29:2351:29 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2351:29:2351:29 | 2 | | {EXTERNAL LOCATION} | u16 | | main.rs:2351:32:2351:32 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2354:13:2354:18 | vals4a | | {EXTERNAL LOCATION} | Vec | -| main.rs:2354:13:2354:18 | vals4a | A | {EXTERNAL LOCATION} | Global | -| main.rs:2354:13:2354:18 | vals4a | T | {EXTERNAL LOCATION} | u16 | -| main.rs:2354:32:2354:43 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2354:32:2354:43 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2354:32:2354:43 | [...] | [T;...] | {EXTERNAL LOCATION} | u16 | -| main.rs:2354:32:2354:52 | ... .to_vec() | | {EXTERNAL LOCATION} | Vec | -| main.rs:2354:32:2354:52 | ... .to_vec() | A | {EXTERNAL LOCATION} | Global | -| main.rs:2354:32:2354:52 | ... .to_vec() | T | {EXTERNAL LOCATION} | u16 | -| main.rs:2354:33:2354:36 | 1u16 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2354:33:2354:36 | 1u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2354:39:2354:39 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2354:39:2354:39 | 2 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2354:42:2354:42 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2354:42:2354:42 | 3 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2355:13:2355:13 | u | | {EXTERNAL LOCATION} | u16 | +| main.rs:2351:32:2351:32 | 3 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2354:13:2354:17 | vals5 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2354:13:2354:17 | vals5 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2354:13:2354:17 | vals5 | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2354:13:2354:17 | vals5 | T | {EXTERNAL LOCATION} | u32 | +| main.rs:2354:21:2354:43 | ...::from(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2354:21:2354:43 | ...::from(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2354:21:2354:43 | ...::from(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2354:21:2354:43 | ...::from(...) | T | {EXTERNAL LOCATION} | u32 | +| main.rs:2354:31:2354:42 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2354:31:2354:42 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2354:31:2354:42 | [...] | [T;...] | {EXTERNAL LOCATION} | u32 | +| main.rs:2354:32:2354:35 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2354:38:2354:38 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2354:38:2354:38 | 2 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2354:41:2354:41 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2354:41:2354:41 | 3 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2355:13:2355:13 | u | | {EXTERNAL LOCATION} | i32 | +| main.rs:2355:13:2355:13 | u | | {EXTERNAL LOCATION} | u32 | | main.rs:2355:13:2355:13 | u | | file://:0:0:0:0 | & | -| main.rs:2355:18:2355:23 | vals4a | | {EXTERNAL LOCATION} | Vec | -| main.rs:2355:18:2355:23 | vals4a | A | {EXTERNAL LOCATION} | Global | -| main.rs:2355:18:2355:23 | vals4a | T | {EXTERNAL LOCATION} | u16 | -| main.rs:2357:22:2357:33 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2357:22:2357:33 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2357:22:2357:33 | [...] | [T;...] | {EXTERNAL LOCATION} | u16 | -| main.rs:2357:23:2357:26 | 1u16 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2357:23:2357:26 | 1u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2357:29:2357:29 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2357:29:2357:29 | 2 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2357:32:2357:32 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2357:32:2357:32 | 3 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2360:13:2360:17 | vals5 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2360:13:2360:17 | vals5 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2360:13:2360:17 | vals5 | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2360:13:2360:17 | vals5 | T | {EXTERNAL LOCATION} | u32 | -| main.rs:2360:21:2360:43 | ...::from(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2360:21:2360:43 | ...::from(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2360:21:2360:43 | ...::from(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2360:21:2360:43 | ...::from(...) | T | {EXTERNAL LOCATION} | u32 | -| main.rs:2360:31:2360:42 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2360:31:2360:42 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2360:31:2360:42 | [...] | [T;...] | {EXTERNAL LOCATION} | u32 | -| main.rs:2360:32:2360:35 | 1u32 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2360:32:2360:35 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2360:38:2360:38 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2360:38:2360:38 | 2 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2360:41:2360:41 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2360:41:2360:41 | 3 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2361:13:2361:13 | u | | {EXTERNAL LOCATION} | i32 | -| main.rs:2361:13:2361:13 | u | | {EXTERNAL LOCATION} | u32 | -| main.rs:2361:13:2361:13 | u | | file://:0:0:0:0 | & | -| main.rs:2361:18:2361:22 | vals5 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2361:18:2361:22 | vals5 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2361:18:2361:22 | vals5 | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2361:18:2361:22 | vals5 | T | {EXTERNAL LOCATION} | u32 | -| main.rs:2363:13:2363:17 | vals6 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2363:13:2363:17 | vals6 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2363:13:2363:17 | vals6 | T | file://:0:0:0:0 | & | -| main.rs:2363:13:2363:17 | vals6 | T.&T | {EXTERNAL LOCATION} | u64 | -| main.rs:2363:32:2363:43 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2363:32:2363:43 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2363:32:2363:43 | [...] | [T;...] | {EXTERNAL LOCATION} | u64 | -| main.rs:2363:32:2363:60 | ... .collect() | | {EXTERNAL LOCATION} | Vec | -| main.rs:2363:32:2363:60 | ... .collect() | A | {EXTERNAL LOCATION} | Global | -| main.rs:2363:32:2363:60 | ... .collect() | T | file://:0:0:0:0 | & | -| main.rs:2363:32:2363:60 | ... .collect() | T.&T | {EXTERNAL LOCATION} | u64 | -| main.rs:2363:33:2363:36 | 1u64 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2363:33:2363:36 | 1u64 | | {EXTERNAL LOCATION} | u64 | -| main.rs:2363:39:2363:39 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2363:39:2363:39 | 2 | | {EXTERNAL LOCATION} | u64 | -| main.rs:2363:42:2363:42 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2363:42:2363:42 | 3 | | {EXTERNAL LOCATION} | u64 | -| main.rs:2364:13:2364:13 | u | | file://:0:0:0:0 | & | -| main.rs:2364:13:2364:13 | u | &T | {EXTERNAL LOCATION} | u64 | -| main.rs:2364:18:2364:22 | vals6 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2364:18:2364:22 | vals6 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2364:18:2364:22 | vals6 | T | file://:0:0:0:0 | & | -| main.rs:2364:18:2364:22 | vals6 | T.&T | {EXTERNAL LOCATION} | u64 | -| main.rs:2366:17:2366:21 | vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2366:17:2366:21 | vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2366:17:2366:21 | vals7 | T | {EXTERNAL LOCATION} | u8 | -| main.rs:2366:25:2366:34 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2366:25:2366:34 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2366:25:2366:34 | ...::new(...) | T | {EXTERNAL LOCATION} | u8 | -| main.rs:2367:9:2367:13 | vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2367:9:2367:13 | vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2367:9:2367:13 | vals7 | T | {EXTERNAL LOCATION} | u8 | -| main.rs:2367:20:2367:22 | 1u8 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2368:13:2368:13 | u | | {EXTERNAL LOCATION} | u8 | -| main.rs:2368:13:2368:13 | u | | file://:0:0:0:0 | & | -| main.rs:2368:18:2368:22 | vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2368:18:2368:22 | vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2368:18:2368:22 | vals7 | T | {EXTERNAL LOCATION} | u8 | -| main.rs:2370:33:2370:33 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2370:36:2370:36 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2370:45:2370:45 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2370:48:2370:48 | 4 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2377:17:2377:20 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2377:17:2377:20 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2377:17:2377:20 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2377:17:2377:20 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2377:17:2377:20 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2377:17:2377:20 | map1 | V.T | file://:0:0:0:0 | & | -| main.rs:2377:17:2377:20 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2377:24:2377:55 | ...::new(...) | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2377:24:2377:55 | ...::new(...) | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2377:24:2377:55 | ...::new(...) | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2377:24:2377:55 | ...::new(...) | V | {EXTERNAL LOCATION} | Box | -| main.rs:2377:24:2377:55 | ...::new(...) | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2377:24:2377:55 | ...::new(...) | V.T | file://:0:0:0:0 | & | -| main.rs:2377:24:2377:55 | ...::new(...) | V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2378:9:2378:12 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2378:9:2378:12 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2378:9:2378:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2378:9:2378:12 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2378:9:2378:12 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2378:9:2378:12 | map1 | V.T | file://:0:0:0:0 | & | -| main.rs:2378:9:2378:12 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2378:9:2378:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2378:9:2378:39 | map1.insert(...) | T | {EXTERNAL LOCATION} | Box | -| main.rs:2378:9:2378:39 | map1.insert(...) | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2378:9:2378:39 | map1.insert(...) | T.T | file://:0:0:0:0 | & | -| main.rs:2378:9:2378:39 | map1.insert(...) | T.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2378:21:2378:21 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2378:24:2378:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2378:24:2378:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2378:24:2378:38 | ...::new(...) | T | file://:0:0:0:0 | & | -| main.rs:2378:24:2378:38 | ...::new(...) | T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2378:33:2378:37 | "one" | | file://:0:0:0:0 | & | -| main.rs:2378:33:2378:37 | "one" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2379:9:2379:12 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2379:9:2379:12 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2379:9:2379:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2379:9:2379:12 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2379:9:2379:12 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2379:9:2379:12 | map1 | V.T | file://:0:0:0:0 | & | -| main.rs:2379:9:2379:12 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2379:9:2379:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2379:9:2379:39 | map1.insert(...) | T | {EXTERNAL LOCATION} | Box | -| main.rs:2379:9:2379:39 | map1.insert(...) | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2379:9:2379:39 | map1.insert(...) | T.T | file://:0:0:0:0 | & | -| main.rs:2379:9:2379:39 | map1.insert(...) | T.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2379:21:2379:21 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2379:24:2379:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2379:24:2379:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2379:24:2379:38 | ...::new(...) | T | file://:0:0:0:0 | & | -| main.rs:2379:24:2379:38 | ...::new(...) | T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2379:33:2379:37 | "two" | | file://:0:0:0:0 | & | -| main.rs:2379:33:2379:37 | "two" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2380:13:2380:15 | key | | {EXTERNAL LOCATION} | Item | -| main.rs:2380:13:2380:15 | key | | file://:0:0:0:0 | & | -| main.rs:2380:13:2380:15 | key | &T | {EXTERNAL LOCATION} | i32 | -| main.rs:2380:20:2380:23 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2380:20:2380:23 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2380:20:2380:23 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2380:20:2380:23 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2380:20:2380:23 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2380:20:2380:23 | map1 | V.T | file://:0:0:0:0 | & | -| main.rs:2380:20:2380:23 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2380:20:2380:30 | map1.keys() | | {EXTERNAL LOCATION} | Keys | -| main.rs:2380:20:2380:30 | map1.keys() | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2380:20:2380:30 | map1.keys() | V | {EXTERNAL LOCATION} | Box | -| main.rs:2380:20:2380:30 | map1.keys() | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2380:20:2380:30 | map1.keys() | V.T | file://:0:0:0:0 | & | -| main.rs:2380:20:2380:30 | map1.keys() | V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2381:13:2381:17 | value | | {EXTERNAL LOCATION} | Item | -| main.rs:2381:13:2381:17 | value | | file://:0:0:0:0 | & | -| main.rs:2381:13:2381:17 | value | &T | {EXTERNAL LOCATION} | Box | -| main.rs:2381:13:2381:17 | value | &T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2381:13:2381:17 | value | &T.T | file://:0:0:0:0 | & | -| main.rs:2381:13:2381:17 | value | &T.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2381:22:2381:25 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2381:22:2381:25 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2381:22:2381:25 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2381:22:2381:25 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2381:22:2381:25 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2381:22:2381:25 | map1 | V.T | file://:0:0:0:0 | & | -| main.rs:2381:22:2381:25 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2381:22:2381:34 | map1.values() | | {EXTERNAL LOCATION} | Values | -| main.rs:2381:22:2381:34 | map1.values() | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2381:22:2381:34 | map1.values() | V | {EXTERNAL LOCATION} | Box | -| main.rs:2381:22:2381:34 | map1.values() | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2381:22:2381:34 | map1.values() | V.T | file://:0:0:0:0 | & | -| main.rs:2381:22:2381:34 | map1.values() | V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2382:13:2382:24 | TuplePat | | {EXTERNAL LOCATION} | Item | -| main.rs:2382:13:2382:24 | TuplePat | | file://:0:0:0:0 | (T_2) | -| main.rs:2382:13:2382:24 | TuplePat | 0(2) | file://:0:0:0:0 | & | -| main.rs:2382:13:2382:24 | TuplePat | 0(2).&T | {EXTERNAL LOCATION} | i32 | -| main.rs:2382:13:2382:24 | TuplePat | 1(2) | file://:0:0:0:0 | & | -| main.rs:2382:13:2382:24 | TuplePat | 1(2).&T | {EXTERNAL LOCATION} | Box | -| main.rs:2382:13:2382:24 | TuplePat | 1(2).&T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2382:13:2382:24 | TuplePat | 1(2).&T.T | file://:0:0:0:0 | & | -| main.rs:2382:13:2382:24 | TuplePat | 1(2).&T.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2382:14:2382:16 | key | | file://:0:0:0:0 | & | -| main.rs:2382:14:2382:16 | key | &T | {EXTERNAL LOCATION} | i32 | -| main.rs:2382:19:2382:23 | value | | file://:0:0:0:0 | & | -| main.rs:2382:19:2382:23 | value | &T | {EXTERNAL LOCATION} | Box | -| main.rs:2382:19:2382:23 | value | &T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2382:19:2382:23 | value | &T.T | file://:0:0:0:0 | & | -| main.rs:2382:19:2382:23 | value | &T.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2382:29:2382:32 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2382:29:2382:32 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2382:29:2382:32 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2382:29:2382:32 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2382:29:2382:32 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2382:29:2382:32 | map1 | V.T | file://:0:0:0:0 | & | -| main.rs:2382:29:2382:32 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2382:29:2382:39 | map1.iter() | | {EXTERNAL LOCATION} | Iter | -| main.rs:2382:29:2382:39 | map1.iter() | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2382:29:2382:39 | map1.iter() | V | {EXTERNAL LOCATION} | Box | -| main.rs:2382:29:2382:39 | map1.iter() | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2382:29:2382:39 | map1.iter() | V.T | file://:0:0:0:0 | & | -| main.rs:2382:29:2382:39 | map1.iter() | V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2383:13:2383:24 | TuplePat | | {EXTERNAL LOCATION} | Item | -| main.rs:2383:13:2383:24 | TuplePat | | file://:0:0:0:0 | (T_2) | -| main.rs:2383:13:2383:24 | TuplePat | 0(2) | file://:0:0:0:0 | & | -| main.rs:2383:13:2383:24 | TuplePat | 0(2).&T | {EXTERNAL LOCATION} | i32 | -| main.rs:2383:13:2383:24 | TuplePat | 1(2) | file://:0:0:0:0 | & | -| main.rs:2383:13:2383:24 | TuplePat | 1(2).&T | {EXTERNAL LOCATION} | Box | -| main.rs:2383:13:2383:24 | TuplePat | 1(2).&T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2383:13:2383:24 | TuplePat | 1(2).&T.T | file://:0:0:0:0 | & | -| main.rs:2383:13:2383:24 | TuplePat | 1(2).&T.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2383:14:2383:16 | key | | file://:0:0:0:0 | & | -| main.rs:2383:14:2383:16 | key | &T | {EXTERNAL LOCATION} | i32 | -| main.rs:2383:19:2383:23 | value | | file://:0:0:0:0 | & | -| main.rs:2383:19:2383:23 | value | &T | {EXTERNAL LOCATION} | Box | -| main.rs:2383:19:2383:23 | value | &T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2383:19:2383:23 | value | &T.T | file://:0:0:0:0 | & | -| main.rs:2383:19:2383:23 | value | &T.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2383:29:2383:33 | &map1 | | file://:0:0:0:0 | & | -| main.rs:2383:29:2383:33 | &map1 | &T | {EXTERNAL LOCATION} | HashMap | -| main.rs:2383:29:2383:33 | &map1 | &T.K | {EXTERNAL LOCATION} | i32 | -| main.rs:2383:29:2383:33 | &map1 | &T.S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2383:29:2383:33 | &map1 | &T.V | {EXTERNAL LOCATION} | Box | -| main.rs:2383:29:2383:33 | &map1 | &T.V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2383:29:2383:33 | &map1 | &T.V.T | file://:0:0:0:0 | & | -| main.rs:2383:29:2383:33 | &map1 | &T.V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2383:30:2383:33 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2383:30:2383:33 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2383:30:2383:33 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2383:30:2383:33 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2383:30:2383:33 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2383:30:2383:33 | map1 | V.T | file://:0:0:0:0 | & | -| main.rs:2383:30:2383:33 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | -| main.rs:2387:17:2387:17 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2387:26:2387:26 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2387:26:2387:26 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2389:23:2389:23 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2389:23:2389:28 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2389:27:2389:28 | 10 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2389:27:2389:28 | 10 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2391:13:2391:13 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2391:13:2391:18 | ... += ... | | file://:0:0:0:0 | () | -| main.rs:2391:18:2391:18 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2403:40:2405:9 | { ... } | | {EXTERNAL LOCATION} | Option | -| main.rs:2403:40:2405:9 | { ... } | T | main.rs:2397:5:2397:20 | S1 | -| main.rs:2403:40:2405:9 | { ... } | T.T | main.rs:2402:10:2402:19 | T | -| main.rs:2404:13:2404:16 | None | | {EXTERNAL LOCATION} | Option | -| main.rs:2404:13:2404:16 | None | T | main.rs:2397:5:2397:20 | S1 | -| main.rs:2404:13:2404:16 | None | T.T | main.rs:2402:10:2402:19 | T | -| main.rs:2407:30:2409:9 | { ... } | | main.rs:2397:5:2397:20 | S1 | -| main.rs:2407:30:2409:9 | { ... } | T | main.rs:2402:10:2402:19 | T | -| main.rs:2408:13:2408:28 | S1(...) | | main.rs:2397:5:2397:20 | S1 | -| main.rs:2408:13:2408:28 | S1(...) | T | main.rs:2402:10:2402:19 | T | -| main.rs:2408:16:2408:27 | ...::default(...) | | main.rs:2402:10:2402:19 | T | -| main.rs:2411:19:2411:22 | SelfParam | | main.rs:2397:5:2397:20 | S1 | -| main.rs:2411:19:2411:22 | SelfParam | T | main.rs:2402:10:2402:19 | T | -| main.rs:2411:33:2413:9 | { ... } | | main.rs:2397:5:2397:20 | S1 | -| main.rs:2411:33:2413:9 | { ... } | T | main.rs:2402:10:2402:19 | T | -| main.rs:2412:13:2412:16 | self | | main.rs:2397:5:2397:20 | S1 | -| main.rs:2412:13:2412:16 | self | T | main.rs:2402:10:2402:19 | T | -| main.rs:2424:15:2424:15 | x | | main.rs:2424:12:2424:12 | T | -| main.rs:2424:26:2426:5 | { ... } | | main.rs:2424:12:2424:12 | T | -| main.rs:2425:9:2425:9 | x | | main.rs:2424:12:2424:12 | T | -| main.rs:2429:13:2429:14 | x1 | | {EXTERNAL LOCATION} | Option | -| main.rs:2429:13:2429:14 | x1 | T | main.rs:2397:5:2397:20 | S1 | -| main.rs:2429:13:2429:14 | x1 | T.T | main.rs:2399:5:2400:14 | S2 | -| main.rs:2429:34:2429:48 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2429:34:2429:48 | ...::assoc_fun(...) | T | main.rs:2397:5:2397:20 | S1 | -| main.rs:2429:34:2429:48 | ...::assoc_fun(...) | T.T | main.rs:2399:5:2400:14 | S2 | -| main.rs:2430:13:2430:14 | x2 | | {EXTERNAL LOCATION} | Option | -| main.rs:2430:13:2430:14 | x2 | T | main.rs:2397:5:2397:20 | S1 | -| main.rs:2430:13:2430:14 | x2 | T.T | main.rs:2399:5:2400:14 | S2 | -| main.rs:2430:18:2430:38 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2430:18:2430:38 | ...::assoc_fun(...) | T | main.rs:2397:5:2397:20 | S1 | -| main.rs:2430:18:2430:38 | ...::assoc_fun(...) | T.T | main.rs:2399:5:2400:14 | S2 | -| main.rs:2431:13:2431:14 | x3 | | {EXTERNAL LOCATION} | Option | -| main.rs:2431:13:2431:14 | x3 | T | main.rs:2397:5:2397:20 | S1 | -| main.rs:2431:13:2431:14 | x3 | T.T | main.rs:2399:5:2400:14 | S2 | -| main.rs:2431:18:2431:32 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2431:18:2431:32 | ...::assoc_fun(...) | T | main.rs:2397:5:2397:20 | S1 | -| main.rs:2431:18:2431:32 | ...::assoc_fun(...) | T.T | main.rs:2399:5:2400:14 | S2 | -| main.rs:2432:13:2432:14 | x4 | | main.rs:2397:5:2397:20 | S1 | -| main.rs:2432:13:2432:14 | x4 | T | main.rs:2399:5:2400:14 | S2 | -| main.rs:2432:18:2432:48 | ...::method(...) | | main.rs:2397:5:2397:20 | S1 | -| main.rs:2432:18:2432:48 | ...::method(...) | T | main.rs:2399:5:2400:14 | S2 | -| main.rs:2432:35:2432:47 | ...::default(...) | | main.rs:2397:5:2397:20 | S1 | -| main.rs:2432:35:2432:47 | ...::default(...) | T | main.rs:2399:5:2400:14 | S2 | -| main.rs:2433:13:2433:14 | x5 | | main.rs:2397:5:2397:20 | S1 | -| main.rs:2433:13:2433:14 | x5 | T | main.rs:2399:5:2400:14 | S2 | -| main.rs:2433:18:2433:42 | ...::method(...) | | main.rs:2397:5:2397:20 | S1 | -| main.rs:2433:18:2433:42 | ...::method(...) | T | main.rs:2399:5:2400:14 | S2 | -| main.rs:2433:29:2433:41 | ...::default(...) | | main.rs:2397:5:2397:20 | S1 | -| main.rs:2433:29:2433:41 | ...::default(...) | T | main.rs:2399:5:2400:14 | S2 | -| main.rs:2434:13:2434:14 | x6 | | main.rs:2418:5:2418:27 | S4 | -| main.rs:2434:13:2434:14 | x6 | T4 | main.rs:2399:5:2400:14 | S2 | -| main.rs:2434:18:2434:45 | S4::<...>(...) | | main.rs:2418:5:2418:27 | S4 | -| main.rs:2434:18:2434:45 | S4::<...>(...) | T4 | main.rs:2399:5:2400:14 | S2 | -| main.rs:2434:27:2434:44 | ...::default(...) | | main.rs:2399:5:2400:14 | S2 | -| main.rs:2435:13:2435:14 | x7 | | main.rs:2418:5:2418:27 | S4 | -| main.rs:2435:13:2435:14 | x7 | T4 | main.rs:2399:5:2400:14 | S2 | -| main.rs:2435:18:2435:23 | S4(...) | | main.rs:2418:5:2418:27 | S4 | -| main.rs:2435:18:2435:23 | S4(...) | T4 | main.rs:2399:5:2400:14 | S2 | -| main.rs:2435:21:2435:22 | S2 | | main.rs:2399:5:2400:14 | S2 | -| main.rs:2436:13:2436:14 | x8 | | main.rs:2418:5:2418:27 | S4 | -| main.rs:2436:13:2436:14 | x8 | T4 | {EXTERNAL LOCATION} | i32 | -| main.rs:2436:18:2436:22 | S4(...) | | main.rs:2418:5:2418:27 | S4 | -| main.rs:2436:18:2436:22 | S4(...) | T4 | {EXTERNAL LOCATION} | i32 | -| main.rs:2436:21:2436:21 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2437:13:2437:14 | x9 | | main.rs:2418:5:2418:27 | S4 | -| main.rs:2437:13:2437:14 | x9 | T4 | main.rs:2399:5:2400:14 | S2 | -| main.rs:2437:18:2437:34 | S4(...) | | main.rs:2418:5:2418:27 | S4 | -| main.rs:2437:18:2437:34 | S4(...) | T4 | main.rs:2399:5:2400:14 | S2 | -| main.rs:2437:21:2437:33 | ...::default(...) | | main.rs:2399:5:2400:14 | S2 | -| main.rs:2438:13:2438:15 | x10 | | main.rs:2420:5:2422:5 | S5 | -| main.rs:2438:13:2438:15 | x10 | T5 | main.rs:2399:5:2400:14 | S2 | -| main.rs:2438:19:2441:9 | S5::<...> {...} | | main.rs:2420:5:2422:5 | S5 | -| main.rs:2438:19:2441:9 | S5::<...> {...} | T5 | main.rs:2399:5:2400:14 | S2 | -| main.rs:2440:20:2440:37 | ...::default(...) | | main.rs:2399:5:2400:14 | S2 | -| main.rs:2442:13:2442:15 | x11 | | main.rs:2420:5:2422:5 | S5 | -| main.rs:2442:13:2442:15 | x11 | T5 | main.rs:2399:5:2400:14 | S2 | -| main.rs:2442:19:2442:34 | S5 {...} | | main.rs:2420:5:2422:5 | S5 | -| main.rs:2442:19:2442:34 | S5 {...} | T5 | main.rs:2399:5:2400:14 | S2 | -| main.rs:2442:31:2442:32 | S2 | | main.rs:2399:5:2400:14 | S2 | -| main.rs:2443:13:2443:15 | x12 | | main.rs:2420:5:2422:5 | S5 | -| main.rs:2443:13:2443:15 | x12 | T5 | {EXTERNAL LOCATION} | i32 | -| main.rs:2443:19:2443:33 | S5 {...} | | main.rs:2420:5:2422:5 | S5 | -| main.rs:2443:19:2443:33 | S5 {...} | T5 | {EXTERNAL LOCATION} | i32 | -| main.rs:2443:31:2443:31 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2444:13:2444:15 | x13 | | main.rs:2420:5:2422:5 | S5 | -| main.rs:2444:13:2444:15 | x13 | T5 | main.rs:2399:5:2400:14 | S2 | -| main.rs:2444:19:2447:9 | S5 {...} | | main.rs:2420:5:2422:5 | S5 | -| main.rs:2444:19:2447:9 | S5 {...} | T5 | main.rs:2399:5:2400:14 | S2 | -| main.rs:2446:20:2446:32 | ...::default(...) | | main.rs:2399:5:2400:14 | S2 | -| main.rs:2448:13:2448:15 | x14 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2448:19:2448:48 | foo::<...>(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:2448:30:2448:47 | ...::default(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:2456:35:2458:9 | { ... } | | file://:0:0:0:0 | (T_2) | -| main.rs:2456:35:2458:9 | { ... } | 0(2) | main.rs:2453:5:2453:16 | S1 | -| main.rs:2456:35:2458:9 | { ... } | 1(2) | main.rs:2453:5:2453:16 | S1 | -| main.rs:2457:13:2457:26 | TupleExpr | | file://:0:0:0:0 | (T_2) | -| main.rs:2457:13:2457:26 | TupleExpr | 0(2) | main.rs:2453:5:2453:16 | S1 | -| main.rs:2457:13:2457:26 | TupleExpr | 1(2) | main.rs:2453:5:2453:16 | S1 | -| main.rs:2457:14:2457:18 | S1 {...} | | main.rs:2453:5:2453:16 | S1 | -| main.rs:2457:21:2457:25 | S1 {...} | | main.rs:2453:5:2453:16 | S1 | -| main.rs:2459:16:2459:19 | SelfParam | | main.rs:2453:5:2453:16 | S1 | -| main.rs:2463:13:2463:13 | a | | file://:0:0:0:0 | (T_2) | -| main.rs:2463:13:2463:13 | a | 0(2) | main.rs:2453:5:2453:16 | S1 | -| main.rs:2463:13:2463:13 | a | 1(2) | main.rs:2453:5:2453:16 | S1 | -| main.rs:2463:17:2463:30 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | -| main.rs:2463:17:2463:30 | ...::get_pair(...) | 0(2) | main.rs:2453:5:2453:16 | S1 | -| main.rs:2463:17:2463:30 | ...::get_pair(...) | 1(2) | main.rs:2453:5:2453:16 | S1 | -| main.rs:2464:17:2464:17 | b | | file://:0:0:0:0 | (T_2) | -| main.rs:2464:17:2464:17 | b | 0(2) | main.rs:2453:5:2453:16 | S1 | -| main.rs:2464:17:2464:17 | b | 1(2) | main.rs:2453:5:2453:16 | S1 | -| main.rs:2464:21:2464:34 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | -| main.rs:2464:21:2464:34 | ...::get_pair(...) | 0(2) | main.rs:2453:5:2453:16 | S1 | -| main.rs:2464:21:2464:34 | ...::get_pair(...) | 1(2) | main.rs:2453:5:2453:16 | S1 | -| main.rs:2465:13:2465:18 | TuplePat | | file://:0:0:0:0 | (T_2) | -| main.rs:2465:13:2465:18 | TuplePat | 0(2) | main.rs:2453:5:2453:16 | S1 | -| main.rs:2465:13:2465:18 | TuplePat | 1(2) | main.rs:2453:5:2453:16 | S1 | -| main.rs:2465:14:2465:14 | c | | main.rs:2453:5:2453:16 | S1 | -| main.rs:2465:17:2465:17 | d | | main.rs:2453:5:2453:16 | S1 | -| main.rs:2465:22:2465:35 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | -| main.rs:2465:22:2465:35 | ...::get_pair(...) | 0(2) | main.rs:2453:5:2453:16 | S1 | -| main.rs:2465:22:2465:35 | ...::get_pair(...) | 1(2) | main.rs:2453:5:2453:16 | S1 | -| main.rs:2466:13:2466:22 | TuplePat | | file://:0:0:0:0 | (T_2) | -| main.rs:2466:13:2466:22 | TuplePat | 0(2) | main.rs:2453:5:2453:16 | S1 | -| main.rs:2466:13:2466:22 | TuplePat | 1(2) | main.rs:2453:5:2453:16 | S1 | -| main.rs:2466:18:2466:18 | e | | main.rs:2453:5:2453:16 | S1 | -| main.rs:2466:21:2466:21 | f | | main.rs:2453:5:2453:16 | S1 | -| main.rs:2466:26:2466:39 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | -| main.rs:2466:26:2466:39 | ...::get_pair(...) | 0(2) | main.rs:2453:5:2453:16 | S1 | -| main.rs:2466:26:2466:39 | ...::get_pair(...) | 1(2) | main.rs:2453:5:2453:16 | S1 | -| main.rs:2467:13:2467:26 | TuplePat | | file://:0:0:0:0 | (T_2) | -| main.rs:2467:13:2467:26 | TuplePat | 0(2) | main.rs:2453:5:2453:16 | S1 | -| main.rs:2467:13:2467:26 | TuplePat | 1(2) | main.rs:2453:5:2453:16 | S1 | -| main.rs:2467:18:2467:18 | g | | main.rs:2453:5:2453:16 | S1 | -| main.rs:2467:25:2467:25 | h | | main.rs:2453:5:2453:16 | S1 | -| main.rs:2467:30:2467:43 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | -| main.rs:2467:30:2467:43 | ...::get_pair(...) | 0(2) | main.rs:2453:5:2453:16 | S1 | -| main.rs:2467:30:2467:43 | ...::get_pair(...) | 1(2) | main.rs:2453:5:2453:16 | S1 | -| main.rs:2469:9:2469:9 | a | | file://:0:0:0:0 | (T_2) | -| main.rs:2469:9:2469:9 | a | 0(2) | main.rs:2453:5:2453:16 | S1 | -| main.rs:2469:9:2469:9 | a | 1(2) | main.rs:2453:5:2453:16 | S1 | -| main.rs:2469:9:2469:11 | a.0 | | main.rs:2453:5:2453:16 | S1 | -| main.rs:2470:9:2470:9 | b | | file://:0:0:0:0 | (T_2) | -| main.rs:2470:9:2470:9 | b | 0(2) | main.rs:2453:5:2453:16 | S1 | -| main.rs:2470:9:2470:9 | b | 1(2) | main.rs:2453:5:2453:16 | S1 | -| main.rs:2470:9:2470:11 | b.1 | | main.rs:2453:5:2453:16 | S1 | -| main.rs:2471:9:2471:9 | c | | main.rs:2453:5:2453:16 | S1 | -| main.rs:2472:9:2472:9 | d | | main.rs:2453:5:2453:16 | S1 | -| main.rs:2473:9:2473:9 | e | | main.rs:2453:5:2453:16 | S1 | -| main.rs:2474:9:2474:9 | f | | main.rs:2453:5:2453:16 | S1 | -| main.rs:2475:9:2475:9 | g | | main.rs:2453:5:2453:16 | S1 | -| main.rs:2476:9:2476:9 | h | | main.rs:2453:5:2453:16 | S1 | -| main.rs:2481:13:2481:13 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2481:17:2481:34 | ...::default(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2482:13:2482:13 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2482:17:2482:34 | ...::default(...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2483:13:2483:16 | pair | | file://:0:0:0:0 | (T_2) | -| main.rs:2483:13:2483:16 | pair | 0(2) | {EXTERNAL LOCATION} | i64 | -| main.rs:2483:13:2483:16 | pair | 1(2) | {EXTERNAL LOCATION} | bool | -| main.rs:2483:20:2483:25 | TupleExpr | | file://:0:0:0:0 | (T_2) | -| main.rs:2483:20:2483:25 | TupleExpr | 0(2) | {EXTERNAL LOCATION} | i64 | -| main.rs:2483:20:2483:25 | TupleExpr | 1(2) | {EXTERNAL LOCATION} | bool | -| main.rs:2483:21:2483:21 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2483:24:2483:24 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2484:13:2484:13 | i | | {EXTERNAL LOCATION} | i64 | -| main.rs:2484:22:2484:25 | pair | | file://:0:0:0:0 | (T_2) | -| main.rs:2484:22:2484:25 | pair | 0(2) | {EXTERNAL LOCATION} | i64 | -| main.rs:2484:22:2484:25 | pair | 1(2) | {EXTERNAL LOCATION} | bool | -| main.rs:2484:22:2484:27 | pair.0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2485:13:2485:13 | j | | {EXTERNAL LOCATION} | bool | -| main.rs:2485:23:2485:26 | pair | | file://:0:0:0:0 | (T_2) | -| main.rs:2485:23:2485:26 | pair | 0(2) | {EXTERNAL LOCATION} | i64 | -| main.rs:2485:23:2485:26 | pair | 1(2) | {EXTERNAL LOCATION} | bool | -| main.rs:2485:23:2485:28 | pair.1 | | {EXTERNAL LOCATION} | bool | -| main.rs:2487:13:2487:16 | pair | | file://:0:0:0:0 | (T_2) | -| main.rs:2487:13:2487:16 | pair | 0(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2487:13:2487:16 | pair | 1(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2487:20:2487:25 | [...] | | file://:0:0:0:0 | [] | -| main.rs:2487:20:2487:25 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:2487:20:2487:32 | ... .into() | | file://:0:0:0:0 | (T_2) | -| main.rs:2487:20:2487:32 | ... .into() | 0(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2487:20:2487:32 | ... .into() | 1(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2487:21:2487:21 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2487:24:2487:24 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2488:15:2488:18 | pair | | file://:0:0:0:0 | (T_2) | -| main.rs:2488:15:2488:18 | pair | 0(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2488:15:2488:18 | pair | 1(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2489:13:2489:18 | TuplePat | | file://:0:0:0:0 | (T_2) | -| main.rs:2489:13:2489:18 | TuplePat | 0(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2489:13:2489:18 | TuplePat | 1(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2489:14:2489:14 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2489:17:2489:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2489:30:2489:41 | "unexpected" | | file://:0:0:0:0 | & | -| main.rs:2489:30:2489:41 | "unexpected" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2489:30:2489:41 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2489:30:2489:41 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2490:13:2490:13 | _ | | file://:0:0:0:0 | (T_2) | -| main.rs:2490:13:2490:13 | _ | 0(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2490:13:2490:13 | _ | 1(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2490:25:2490:34 | "expected" | | file://:0:0:0:0 | & | -| main.rs:2490:25:2490:34 | "expected" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2490:25:2490:34 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2490:25:2490:34 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2492:13:2492:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:2492:17:2492:20 | pair | | file://:0:0:0:0 | (T_2) | -| main.rs:2492:17:2492:20 | pair | 0(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2492:17:2492:20 | pair | 1(2) | {EXTERNAL LOCATION} | i32 | -| main.rs:2492:17:2492:22 | pair.0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2499:13:2499:23 | boxed_value | | {EXTERNAL LOCATION} | Box | -| main.rs:2499:13:2499:23 | boxed_value | A | {EXTERNAL LOCATION} | Global | -| main.rs:2499:13:2499:23 | boxed_value | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2499:27:2499:42 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2499:27:2499:42 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2499:27:2499:42 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2499:36:2499:41 | 100i32 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2502:15:2502:25 | boxed_value | | {EXTERNAL LOCATION} | Box | -| main.rs:2502:15:2502:25 | boxed_value | A | {EXTERNAL LOCATION} | Global | -| main.rs:2502:15:2502:25 | boxed_value | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2503:13:2503:19 | box 100 | | {EXTERNAL LOCATION} | Box | -| main.rs:2503:13:2503:19 | box 100 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2503:13:2503:19 | box 100 | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2503:17:2503:19 | 100 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2504:26:2504:36 | "Boxed 100\\n" | | file://:0:0:0:0 | & | -| main.rs:2504:26:2504:36 | "Boxed 100\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2504:26:2504:36 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2504:26:2504:36 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2506:13:2506:17 | box ... | | {EXTERNAL LOCATION} | Box | -| main.rs:2506:13:2506:17 | box ... | A | {EXTERNAL LOCATION} | Global | -| main.rs:2506:13:2506:17 | box ... | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2508:26:2508:42 | "Boxed value: {}\\n" | | file://:0:0:0:0 | & | -| main.rs:2508:26:2508:42 | "Boxed value: {}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2508:26:2508:51 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2508:26:2508:51 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2513:13:2513:22 | nested_box | | {EXTERNAL LOCATION} | Box | -| main.rs:2513:13:2513:22 | nested_box | A | {EXTERNAL LOCATION} | Global | -| main.rs:2513:13:2513:22 | nested_box | T | {EXTERNAL LOCATION} | Box | -| main.rs:2513:13:2513:22 | nested_box | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2513:13:2513:22 | nested_box | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2513:26:2513:50 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2513:26:2513:50 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2513:26:2513:50 | ...::new(...) | T | {EXTERNAL LOCATION} | Box | -| main.rs:2513:26:2513:50 | ...::new(...) | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2513:26:2513:50 | ...::new(...) | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2513:35:2513:49 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2513:35:2513:49 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2513:35:2513:49 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2513:44:2513:48 | 42i32 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2514:15:2514:24 | nested_box | | {EXTERNAL LOCATION} | Box | -| main.rs:2514:15:2514:24 | nested_box | A | {EXTERNAL LOCATION} | Global | -| main.rs:2514:15:2514:24 | nested_box | T | {EXTERNAL LOCATION} | Box | -| main.rs:2514:15:2514:24 | nested_box | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2514:15:2514:24 | nested_box | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2515:13:2515:21 | box ... | | {EXTERNAL LOCATION} | Box | -| main.rs:2515:13:2515:21 | box ... | A | {EXTERNAL LOCATION} | Global | -| main.rs:2515:13:2515:21 | box ... | T | {EXTERNAL LOCATION} | Box | -| main.rs:2515:13:2515:21 | box ... | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2515:13:2515:21 | box ... | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2517:26:2517:43 | "Nested boxed: {}\\n" | | file://:0:0:0:0 | & | -| main.rs:2517:26:2517:43 | "Nested boxed: {}\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2517:26:2517:59 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2517:26:2517:59 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2529:21:2529:25 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2529:21:2529:25 | SelfParam | &T | main.rs:2528:5:2531:5 | Self [trait Executor] | -| main.rs:2530:24:2530:28 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2530:24:2530:28 | SelfParam | &T | main.rs:2528:5:2531:5 | Self [trait Executor] | -| main.rs:2530:31:2530:35 | query | | main.rs:2530:21:2530:21 | E | -| main.rs:2534:21:2534:25 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2534:21:2534:25 | SelfParam | &T | main.rs:2533:10:2533:22 | T | -| main.rs:2535:22:2535:41 | "Executor::execute1\\n" | | file://:0:0:0:0 | & | -| main.rs:2535:22:2535:41 | "Executor::execute1\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2535:22:2535:41 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2535:22:2535:41 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2538:24:2538:28 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2538:24:2538:28 | SelfParam | &T | main.rs:2533:10:2533:22 | T | -| main.rs:2538:31:2538:36 | _query | | main.rs:2538:21:2538:21 | E | -| main.rs:2539:22:2539:41 | "Executor::execute2\\n" | | file://:0:0:0:0 | & | -| main.rs:2539:22:2539:41 | "Executor::execute2\\n" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2539:22:2539:41 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2539:22:2539:41 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | -| main.rs:2548:13:2548:13 | c | | main.rs:2543:5:2543:29 | MySqlConnection | -| main.rs:2548:17:2548:34 | MySqlConnection {...} | | main.rs:2543:5:2543:29 | MySqlConnection | -| main.rs:2550:9:2550:9 | c | | main.rs:2543:5:2543:29 | MySqlConnection | -| main.rs:2551:35:2551:36 | &c | | file://:0:0:0:0 | & | -| main.rs:2551:35:2551:36 | &c | &T | main.rs:2543:5:2543:29 | MySqlConnection | -| main.rs:2551:36:2551:36 | c | | main.rs:2543:5:2543:29 | MySqlConnection | -| main.rs:2553:9:2553:9 | c | | main.rs:2543:5:2543:29 | MySqlConnection | -| main.rs:2553:20:2553:40 | "SELECT * FROM users" | | file://:0:0:0:0 | & | -| main.rs:2553:20:2553:40 | "SELECT * FROM users" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2554:9:2554:9 | c | | main.rs:2543:5:2543:29 | MySqlConnection | -| main.rs:2554:28:2554:48 | "SELECT * FROM users" | | file://:0:0:0:0 | & | -| main.rs:2554:28:2554:48 | "SELECT * FROM users" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2555:35:2555:36 | &c | | file://:0:0:0:0 | & | -| main.rs:2555:35:2555:36 | &c | &T | main.rs:2543:5:2543:29 | MySqlConnection | -| main.rs:2555:36:2555:36 | c | | main.rs:2543:5:2543:29 | MySqlConnection | -| main.rs:2555:39:2555:59 | "SELECT * FROM users" | | file://:0:0:0:0 | & | -| main.rs:2555:39:2555:59 | "SELECT * FROM users" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2556:43:2556:44 | &c | | file://:0:0:0:0 | & | -| main.rs:2556:43:2556:44 | &c | &T | main.rs:2543:5:2543:29 | MySqlConnection | -| main.rs:2556:44:2556:44 | c | | main.rs:2543:5:2543:29 | MySqlConnection | -| main.rs:2556:47:2556:67 | "SELECT * FROM users" | | file://:0:0:0:0 | & | -| main.rs:2556:47:2556:67 | "SELECT * FROM users" | &T | {EXTERNAL LOCATION} | str | -| main.rs:2566:5:2566:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:2567:5:2567:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:2567:20:2567:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:2567:41:2567:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:2583:5:2583:15 | ...::f(...) | | {EXTERNAL LOCATION} | trait Future | +| main.rs:2355:18:2355:22 | vals5 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2355:18:2355:22 | vals5 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2355:18:2355:22 | vals5 | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2355:18:2355:22 | vals5 | T | {EXTERNAL LOCATION} | u32 | +| main.rs:2357:13:2357:17 | vals6 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2357:13:2357:17 | vals6 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2357:13:2357:17 | vals6 | T | file://:0:0:0:0 | & | +| main.rs:2357:13:2357:17 | vals6 | T.&T | {EXTERNAL LOCATION} | u64 | +| main.rs:2357:32:2357:43 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2357:32:2357:43 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2357:32:2357:43 | [...] | [T;...] | {EXTERNAL LOCATION} | u64 | +| main.rs:2357:32:2357:60 | ... .collect() | | {EXTERNAL LOCATION} | Vec | +| main.rs:2357:32:2357:60 | ... .collect() | A | {EXTERNAL LOCATION} | Global | +| main.rs:2357:32:2357:60 | ... .collect() | T | file://:0:0:0:0 | & | +| main.rs:2357:32:2357:60 | ... .collect() | T.&T | {EXTERNAL LOCATION} | u64 | +| main.rs:2357:33:2357:36 | 1u64 | | {EXTERNAL LOCATION} | u64 | +| main.rs:2357:39:2357:39 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2357:39:2357:39 | 2 | | {EXTERNAL LOCATION} | u64 | +| main.rs:2357:42:2357:42 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2357:42:2357:42 | 3 | | {EXTERNAL LOCATION} | u64 | +| main.rs:2358:13:2358:13 | u | | file://:0:0:0:0 | & | +| main.rs:2358:13:2358:13 | u | &T | {EXTERNAL LOCATION} | u64 | +| main.rs:2358:18:2358:22 | vals6 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2358:18:2358:22 | vals6 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2358:18:2358:22 | vals6 | T | file://:0:0:0:0 | & | +| main.rs:2358:18:2358:22 | vals6 | T.&T | {EXTERNAL LOCATION} | u64 | +| main.rs:2360:17:2360:21 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2360:17:2360:21 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2360:17:2360:21 | vals7 | T | {EXTERNAL LOCATION} | u8 | +| main.rs:2360:25:2360:34 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2360:25:2360:34 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2360:25:2360:34 | ...::new(...) | T | {EXTERNAL LOCATION} | u8 | +| main.rs:2361:9:2361:13 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2361:9:2361:13 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2361:9:2361:13 | vals7 | T | {EXTERNAL LOCATION} | u8 | +| main.rs:2361:20:2361:22 | 1u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2362:13:2362:13 | u | | {EXTERNAL LOCATION} | u8 | +| main.rs:2362:13:2362:13 | u | | file://:0:0:0:0 | & | +| main.rs:2362:18:2362:22 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2362:18:2362:22 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2362:18:2362:22 | vals7 | T | {EXTERNAL LOCATION} | u8 | +| main.rs:2364:33:2364:33 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2364:36:2364:36 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2364:45:2364:45 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2364:48:2364:48 | 4 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2371:17:2371:20 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2371:17:2371:20 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2371:17:2371:20 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2371:17:2371:20 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2371:17:2371:20 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2371:17:2371:20 | map1 | V.T | file://:0:0:0:0 | & | +| main.rs:2371:17:2371:20 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2371:24:2371:55 | ...::new(...) | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2371:24:2371:55 | ...::new(...) | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2371:24:2371:55 | ...::new(...) | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2371:24:2371:55 | ...::new(...) | V | {EXTERNAL LOCATION} | Box | +| main.rs:2371:24:2371:55 | ...::new(...) | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2371:24:2371:55 | ...::new(...) | V.T | file://:0:0:0:0 | & | +| main.rs:2371:24:2371:55 | ...::new(...) | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2372:9:2372:12 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2372:9:2372:12 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2372:9:2372:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2372:9:2372:12 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2372:9:2372:12 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2372:9:2372:12 | map1 | V.T | file://:0:0:0:0 | & | +| main.rs:2372:9:2372:12 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2372:9:2372:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2372:9:2372:39 | map1.insert(...) | T | {EXTERNAL LOCATION} | Box | +| main.rs:2372:9:2372:39 | map1.insert(...) | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2372:9:2372:39 | map1.insert(...) | T.T | file://:0:0:0:0 | & | +| main.rs:2372:9:2372:39 | map1.insert(...) | T.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2372:21:2372:21 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2372:24:2372:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2372:24:2372:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2372:24:2372:38 | ...::new(...) | T | file://:0:0:0:0 | & | +| main.rs:2372:24:2372:38 | ...::new(...) | T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2372:33:2372:37 | "one" | | file://:0:0:0:0 | & | +| main.rs:2372:33:2372:37 | "one" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2373:9:2373:12 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2373:9:2373:12 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2373:9:2373:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2373:9:2373:12 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2373:9:2373:12 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2373:9:2373:12 | map1 | V.T | file://:0:0:0:0 | & | +| main.rs:2373:9:2373:12 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2373:9:2373:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2373:9:2373:39 | map1.insert(...) | T | {EXTERNAL LOCATION} | Box | +| main.rs:2373:9:2373:39 | map1.insert(...) | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2373:9:2373:39 | map1.insert(...) | T.T | file://:0:0:0:0 | & | +| main.rs:2373:9:2373:39 | map1.insert(...) | T.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2373:21:2373:21 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2373:24:2373:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2373:24:2373:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2373:24:2373:38 | ...::new(...) | T | file://:0:0:0:0 | & | +| main.rs:2373:24:2373:38 | ...::new(...) | T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2373:33:2373:37 | "two" | | file://:0:0:0:0 | & | +| main.rs:2373:33:2373:37 | "two" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2374:13:2374:15 | key | | {EXTERNAL LOCATION} | Item | +| main.rs:2374:13:2374:15 | key | | file://:0:0:0:0 | & | +| main.rs:2374:13:2374:15 | key | &T | {EXTERNAL LOCATION} | i32 | +| main.rs:2374:20:2374:23 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2374:20:2374:23 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2374:20:2374:23 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2374:20:2374:23 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2374:20:2374:23 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2374:20:2374:23 | map1 | V.T | file://:0:0:0:0 | & | +| main.rs:2374:20:2374:23 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2374:20:2374:30 | map1.keys() | | {EXTERNAL LOCATION} | Keys | +| main.rs:2374:20:2374:30 | map1.keys() | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2374:20:2374:30 | map1.keys() | V | {EXTERNAL LOCATION} | Box | +| main.rs:2374:20:2374:30 | map1.keys() | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2374:20:2374:30 | map1.keys() | V.T | file://:0:0:0:0 | & | +| main.rs:2374:20:2374:30 | map1.keys() | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2375:13:2375:17 | value | | {EXTERNAL LOCATION} | Item | +| main.rs:2375:13:2375:17 | value | | file://:0:0:0:0 | & | +| main.rs:2375:13:2375:17 | value | &T | {EXTERNAL LOCATION} | Box | +| main.rs:2375:13:2375:17 | value | &T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2375:13:2375:17 | value | &T.T | file://:0:0:0:0 | & | +| main.rs:2375:13:2375:17 | value | &T.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2375:22:2375:25 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2375:22:2375:25 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2375:22:2375:25 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2375:22:2375:25 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2375:22:2375:25 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2375:22:2375:25 | map1 | V.T | file://:0:0:0:0 | & | +| main.rs:2375:22:2375:25 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2375:22:2375:34 | map1.values() | | {EXTERNAL LOCATION} | Values | +| main.rs:2375:22:2375:34 | map1.values() | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2375:22:2375:34 | map1.values() | V | {EXTERNAL LOCATION} | Box | +| main.rs:2375:22:2375:34 | map1.values() | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2375:22:2375:34 | map1.values() | V.T | file://:0:0:0:0 | & | +| main.rs:2375:22:2375:34 | map1.values() | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2376:13:2376:24 | TuplePat | | {EXTERNAL LOCATION} | Item | +| main.rs:2376:13:2376:24 | TuplePat | | file://:0:0:0:0 | (T_2) | +| main.rs:2376:13:2376:24 | TuplePat | 0(2) | file://:0:0:0:0 | & | +| main.rs:2376:13:2376:24 | TuplePat | 0(2).&T | {EXTERNAL LOCATION} | i32 | +| main.rs:2376:13:2376:24 | TuplePat | 1(2) | file://:0:0:0:0 | & | +| main.rs:2376:13:2376:24 | TuplePat | 1(2).&T | {EXTERNAL LOCATION} | Box | +| main.rs:2376:13:2376:24 | TuplePat | 1(2).&T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2376:13:2376:24 | TuplePat | 1(2).&T.T | file://:0:0:0:0 | & | +| main.rs:2376:13:2376:24 | TuplePat | 1(2).&T.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2376:14:2376:16 | key | | file://:0:0:0:0 | & | +| main.rs:2376:14:2376:16 | key | &T | {EXTERNAL LOCATION} | i32 | +| main.rs:2376:19:2376:23 | value | | file://:0:0:0:0 | & | +| main.rs:2376:19:2376:23 | value | &T | {EXTERNAL LOCATION} | Box | +| main.rs:2376:19:2376:23 | value | &T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2376:19:2376:23 | value | &T.T | file://:0:0:0:0 | & | +| main.rs:2376:19:2376:23 | value | &T.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2376:29:2376:32 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2376:29:2376:32 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2376:29:2376:32 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2376:29:2376:32 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2376:29:2376:32 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2376:29:2376:32 | map1 | V.T | file://:0:0:0:0 | & | +| main.rs:2376:29:2376:32 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2376:29:2376:39 | map1.iter() | | {EXTERNAL LOCATION} | Iter | +| main.rs:2376:29:2376:39 | map1.iter() | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2376:29:2376:39 | map1.iter() | V | {EXTERNAL LOCATION} | Box | +| main.rs:2376:29:2376:39 | map1.iter() | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2376:29:2376:39 | map1.iter() | V.T | file://:0:0:0:0 | & | +| main.rs:2376:29:2376:39 | map1.iter() | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2377:13:2377:24 | TuplePat | | {EXTERNAL LOCATION} | Item | +| main.rs:2377:13:2377:24 | TuplePat | | file://:0:0:0:0 | (T_2) | +| main.rs:2377:13:2377:24 | TuplePat | 0(2) | file://:0:0:0:0 | & | +| main.rs:2377:13:2377:24 | TuplePat | 0(2).&T | {EXTERNAL LOCATION} | i32 | +| main.rs:2377:13:2377:24 | TuplePat | 1(2) | file://:0:0:0:0 | & | +| main.rs:2377:13:2377:24 | TuplePat | 1(2).&T | {EXTERNAL LOCATION} | Box | +| main.rs:2377:13:2377:24 | TuplePat | 1(2).&T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2377:13:2377:24 | TuplePat | 1(2).&T.T | file://:0:0:0:0 | & | +| main.rs:2377:13:2377:24 | TuplePat | 1(2).&T.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2377:14:2377:16 | key | | file://:0:0:0:0 | & | +| main.rs:2377:14:2377:16 | key | &T | {EXTERNAL LOCATION} | i32 | +| main.rs:2377:19:2377:23 | value | | file://:0:0:0:0 | & | +| main.rs:2377:19:2377:23 | value | &T | {EXTERNAL LOCATION} | Box | +| main.rs:2377:19:2377:23 | value | &T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2377:19:2377:23 | value | &T.T | file://:0:0:0:0 | & | +| main.rs:2377:19:2377:23 | value | &T.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2377:29:2377:33 | &map1 | | file://:0:0:0:0 | & | +| main.rs:2377:29:2377:33 | &map1 | &T | {EXTERNAL LOCATION} | HashMap | +| main.rs:2377:29:2377:33 | &map1 | &T.K | {EXTERNAL LOCATION} | i32 | +| main.rs:2377:29:2377:33 | &map1 | &T.S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2377:29:2377:33 | &map1 | &T.V | {EXTERNAL LOCATION} | Box | +| main.rs:2377:29:2377:33 | &map1 | &T.V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2377:29:2377:33 | &map1 | &T.V.T | file://:0:0:0:0 | & | +| main.rs:2377:29:2377:33 | &map1 | &T.V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2377:30:2377:33 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2377:30:2377:33 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2377:30:2377:33 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2377:30:2377:33 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2377:30:2377:33 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2377:30:2377:33 | map1 | V.T | file://:0:0:0:0 | & | +| main.rs:2377:30:2377:33 | map1 | V.T.&T | {EXTERNAL LOCATION} | str | +| main.rs:2381:17:2381:17 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2381:26:2381:26 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2381:26:2381:26 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2383:23:2383:23 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2383:23:2383:28 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2383:27:2383:28 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2383:27:2383:28 | 10 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2385:13:2385:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2385:13:2385:18 | ... += ... | | file://:0:0:0:0 | () | +| main.rs:2385:18:2385:18 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2397:40:2399:9 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:2397:40:2399:9 | { ... } | T | main.rs:2391:5:2391:20 | S1 | +| main.rs:2397:40:2399:9 | { ... } | T.T | main.rs:2396:10:2396:19 | T | +| main.rs:2398:13:2398:16 | None | | {EXTERNAL LOCATION} | Option | +| main.rs:2398:13:2398:16 | None | T | main.rs:2391:5:2391:20 | S1 | +| main.rs:2398:13:2398:16 | None | T.T | main.rs:2396:10:2396:19 | T | +| main.rs:2401:30:2403:9 | { ... } | | main.rs:2391:5:2391:20 | S1 | +| main.rs:2401:30:2403:9 | { ... } | T | main.rs:2396:10:2396:19 | T | +| main.rs:2402:13:2402:28 | S1(...) | | main.rs:2391:5:2391:20 | S1 | +| main.rs:2402:13:2402:28 | S1(...) | T | main.rs:2396:10:2396:19 | T | +| main.rs:2402:16:2402:27 | ...::default(...) | | main.rs:2396:10:2396:19 | T | +| main.rs:2405:19:2405:22 | SelfParam | | main.rs:2391:5:2391:20 | S1 | +| main.rs:2405:19:2405:22 | SelfParam | T | main.rs:2396:10:2396:19 | T | +| main.rs:2405:33:2407:9 | { ... } | | main.rs:2391:5:2391:20 | S1 | +| main.rs:2405:33:2407:9 | { ... } | T | main.rs:2396:10:2396:19 | T | +| main.rs:2406:13:2406:16 | self | | main.rs:2391:5:2391:20 | S1 | +| main.rs:2406:13:2406:16 | self | T | main.rs:2396:10:2396:19 | T | +| main.rs:2418:15:2418:15 | x | | main.rs:2418:12:2418:12 | T | +| main.rs:2418:26:2420:5 | { ... } | | main.rs:2418:12:2418:12 | T | +| main.rs:2419:9:2419:9 | x | | main.rs:2418:12:2418:12 | T | +| main.rs:2423:13:2423:14 | x1 | | {EXTERNAL LOCATION} | Option | +| main.rs:2423:13:2423:14 | x1 | T | main.rs:2391:5:2391:20 | S1 | +| main.rs:2423:13:2423:14 | x1 | T.T | main.rs:2393:5:2394:14 | S2 | +| main.rs:2423:34:2423:48 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2423:34:2423:48 | ...::assoc_fun(...) | T | main.rs:2391:5:2391:20 | S1 | +| main.rs:2423:34:2423:48 | ...::assoc_fun(...) | T.T | main.rs:2393:5:2394:14 | S2 | +| main.rs:2424:13:2424:14 | x2 | | {EXTERNAL LOCATION} | Option | +| main.rs:2424:13:2424:14 | x2 | T | main.rs:2391:5:2391:20 | S1 | +| main.rs:2424:13:2424:14 | x2 | T.T | main.rs:2393:5:2394:14 | S2 | +| main.rs:2424:18:2424:38 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2424:18:2424:38 | ...::assoc_fun(...) | T | main.rs:2391:5:2391:20 | S1 | +| main.rs:2424:18:2424:38 | ...::assoc_fun(...) | T.T | main.rs:2393:5:2394:14 | S2 | +| main.rs:2425:13:2425:14 | x3 | | {EXTERNAL LOCATION} | Option | +| main.rs:2425:13:2425:14 | x3 | T | main.rs:2391:5:2391:20 | S1 | +| main.rs:2425:13:2425:14 | x3 | T.T | main.rs:2393:5:2394:14 | S2 | +| main.rs:2425:18:2425:32 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2425:18:2425:32 | ...::assoc_fun(...) | T | main.rs:2391:5:2391:20 | S1 | +| main.rs:2425:18:2425:32 | ...::assoc_fun(...) | T.T | main.rs:2393:5:2394:14 | S2 | +| main.rs:2426:13:2426:14 | x4 | | main.rs:2391:5:2391:20 | S1 | +| main.rs:2426:13:2426:14 | x4 | T | main.rs:2393:5:2394:14 | S2 | +| main.rs:2426:18:2426:48 | ...::method(...) | | main.rs:2391:5:2391:20 | S1 | +| main.rs:2426:18:2426:48 | ...::method(...) | T | main.rs:2393:5:2394:14 | S2 | +| main.rs:2426:35:2426:47 | ...::default(...) | | main.rs:2391:5:2391:20 | S1 | +| main.rs:2426:35:2426:47 | ...::default(...) | T | main.rs:2393:5:2394:14 | S2 | +| main.rs:2427:13:2427:14 | x5 | | main.rs:2391:5:2391:20 | S1 | +| main.rs:2427:13:2427:14 | x5 | T | main.rs:2393:5:2394:14 | S2 | +| main.rs:2427:18:2427:42 | ...::method(...) | | main.rs:2391:5:2391:20 | S1 | +| main.rs:2427:18:2427:42 | ...::method(...) | T | main.rs:2393:5:2394:14 | S2 | +| main.rs:2427:29:2427:41 | ...::default(...) | | main.rs:2391:5:2391:20 | S1 | +| main.rs:2427:29:2427:41 | ...::default(...) | T | main.rs:2393:5:2394:14 | S2 | +| main.rs:2428:13:2428:14 | x6 | | main.rs:2412:5:2412:27 | S4 | +| main.rs:2428:13:2428:14 | x6 | T4 | main.rs:2393:5:2394:14 | S2 | +| main.rs:2428:18:2428:45 | S4::<...>(...) | | main.rs:2412:5:2412:27 | S4 | +| main.rs:2428:18:2428:45 | S4::<...>(...) | T4 | main.rs:2393:5:2394:14 | S2 | +| main.rs:2428:27:2428:44 | ...::default(...) | | main.rs:2393:5:2394:14 | S2 | +| main.rs:2429:13:2429:14 | x7 | | main.rs:2412:5:2412:27 | S4 | +| main.rs:2429:13:2429:14 | x7 | T4 | main.rs:2393:5:2394:14 | S2 | +| main.rs:2429:18:2429:23 | S4(...) | | main.rs:2412:5:2412:27 | S4 | +| main.rs:2429:18:2429:23 | S4(...) | T4 | main.rs:2393:5:2394:14 | S2 | +| main.rs:2429:21:2429:22 | S2 | | main.rs:2393:5:2394:14 | S2 | +| main.rs:2430:13:2430:14 | x8 | | main.rs:2412:5:2412:27 | S4 | +| main.rs:2430:13:2430:14 | x8 | T4 | {EXTERNAL LOCATION} | i32 | +| main.rs:2430:18:2430:22 | S4(...) | | main.rs:2412:5:2412:27 | S4 | +| main.rs:2430:18:2430:22 | S4(...) | T4 | {EXTERNAL LOCATION} | i32 | +| main.rs:2430:21:2430:21 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2431:13:2431:14 | x9 | | main.rs:2412:5:2412:27 | S4 | +| main.rs:2431:13:2431:14 | x9 | T4 | main.rs:2393:5:2394:14 | S2 | +| main.rs:2431:18:2431:34 | S4(...) | | main.rs:2412:5:2412:27 | S4 | +| main.rs:2431:18:2431:34 | S4(...) | T4 | main.rs:2393:5:2394:14 | S2 | +| main.rs:2431:21:2431:33 | ...::default(...) | | main.rs:2393:5:2394:14 | S2 | +| main.rs:2432:13:2432:15 | x10 | | main.rs:2414:5:2416:5 | S5 | +| main.rs:2432:13:2432:15 | x10 | T5 | main.rs:2393:5:2394:14 | S2 | +| main.rs:2432:19:2435:9 | S5::<...> {...} | | main.rs:2414:5:2416:5 | S5 | +| main.rs:2432:19:2435:9 | S5::<...> {...} | T5 | main.rs:2393:5:2394:14 | S2 | +| main.rs:2434:20:2434:37 | ...::default(...) | | main.rs:2393:5:2394:14 | S2 | +| main.rs:2436:13:2436:15 | x11 | | main.rs:2414:5:2416:5 | S5 | +| main.rs:2436:13:2436:15 | x11 | T5 | main.rs:2393:5:2394:14 | S2 | +| main.rs:2436:19:2436:34 | S5 {...} | | main.rs:2414:5:2416:5 | S5 | +| main.rs:2436:19:2436:34 | S5 {...} | T5 | main.rs:2393:5:2394:14 | S2 | +| main.rs:2436:31:2436:32 | S2 | | main.rs:2393:5:2394:14 | S2 | +| main.rs:2437:13:2437:15 | x12 | | main.rs:2414:5:2416:5 | S5 | +| main.rs:2437:13:2437:15 | x12 | T5 | {EXTERNAL LOCATION} | i32 | +| main.rs:2437:19:2437:33 | S5 {...} | | main.rs:2414:5:2416:5 | S5 | +| main.rs:2437:19:2437:33 | S5 {...} | T5 | {EXTERNAL LOCATION} | i32 | +| main.rs:2437:31:2437:31 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2438:13:2438:15 | x13 | | main.rs:2414:5:2416:5 | S5 | +| main.rs:2438:13:2438:15 | x13 | T5 | main.rs:2393:5:2394:14 | S2 | +| main.rs:2438:19:2441:9 | S5 {...} | | main.rs:2414:5:2416:5 | S5 | +| main.rs:2438:19:2441:9 | S5 {...} | T5 | main.rs:2393:5:2394:14 | S2 | +| main.rs:2440:20:2440:32 | ...::default(...) | | main.rs:2393:5:2394:14 | S2 | +| main.rs:2442:13:2442:15 | x14 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2442:19:2442:48 | foo::<...>(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:2442:30:2442:47 | ...::default(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:2451:35:2453:9 | { ... } | | file://:0:0:0:0 | (T_2) | +| main.rs:2451:35:2453:9 | { ... } | 0(2) | main.rs:2447:5:2448:16 | S1 | +| main.rs:2451:35:2453:9 | { ... } | 1(2) | main.rs:2447:5:2448:16 | S1 | +| main.rs:2452:13:2452:26 | TupleExpr | | file://:0:0:0:0 | (T_2) | +| main.rs:2452:13:2452:26 | TupleExpr | 0(2) | main.rs:2447:5:2448:16 | S1 | +| main.rs:2452:13:2452:26 | TupleExpr | 1(2) | main.rs:2447:5:2448:16 | S1 | +| main.rs:2452:14:2452:18 | S1 {...} | | main.rs:2447:5:2448:16 | S1 | +| main.rs:2452:21:2452:25 | S1 {...} | | main.rs:2447:5:2448:16 | S1 | +| main.rs:2454:16:2454:19 | SelfParam | | main.rs:2447:5:2448:16 | S1 | +| main.rs:2458:13:2458:13 | a | | file://:0:0:0:0 | (T_2) | +| main.rs:2458:13:2458:13 | a | 0(2) | main.rs:2447:5:2448:16 | S1 | +| main.rs:2458:13:2458:13 | a | 1(2) | main.rs:2447:5:2448:16 | S1 | +| main.rs:2458:17:2458:30 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | +| main.rs:2458:17:2458:30 | ...::get_pair(...) | 0(2) | main.rs:2447:5:2448:16 | S1 | +| main.rs:2458:17:2458:30 | ...::get_pair(...) | 1(2) | main.rs:2447:5:2448:16 | S1 | +| main.rs:2459:17:2459:17 | b | | file://:0:0:0:0 | (T_2) | +| main.rs:2459:17:2459:17 | b | 0(2) | main.rs:2447:5:2448:16 | S1 | +| main.rs:2459:17:2459:17 | b | 1(2) | main.rs:2447:5:2448:16 | S1 | +| main.rs:2459:21:2459:34 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | +| main.rs:2459:21:2459:34 | ...::get_pair(...) | 0(2) | main.rs:2447:5:2448:16 | S1 | +| main.rs:2459:21:2459:34 | ...::get_pair(...) | 1(2) | main.rs:2447:5:2448:16 | S1 | +| main.rs:2460:13:2460:18 | TuplePat | | file://:0:0:0:0 | (T_2) | +| main.rs:2460:13:2460:18 | TuplePat | 0(2) | main.rs:2447:5:2448:16 | S1 | +| main.rs:2460:13:2460:18 | TuplePat | 1(2) | main.rs:2447:5:2448:16 | S1 | +| main.rs:2460:14:2460:14 | c | | main.rs:2447:5:2448:16 | S1 | +| main.rs:2460:17:2460:17 | d | | main.rs:2447:5:2448:16 | S1 | +| main.rs:2460:22:2460:35 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | +| main.rs:2460:22:2460:35 | ...::get_pair(...) | 0(2) | main.rs:2447:5:2448:16 | S1 | +| main.rs:2460:22:2460:35 | ...::get_pair(...) | 1(2) | main.rs:2447:5:2448:16 | S1 | +| main.rs:2461:13:2461:22 | TuplePat | | file://:0:0:0:0 | (T_2) | +| main.rs:2461:13:2461:22 | TuplePat | 0(2) | main.rs:2447:5:2448:16 | S1 | +| main.rs:2461:13:2461:22 | TuplePat | 1(2) | main.rs:2447:5:2448:16 | S1 | +| main.rs:2461:18:2461:18 | e | | main.rs:2447:5:2448:16 | S1 | +| main.rs:2461:21:2461:21 | f | | main.rs:2447:5:2448:16 | S1 | +| main.rs:2461:26:2461:39 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | +| main.rs:2461:26:2461:39 | ...::get_pair(...) | 0(2) | main.rs:2447:5:2448:16 | S1 | +| main.rs:2461:26:2461:39 | ...::get_pair(...) | 1(2) | main.rs:2447:5:2448:16 | S1 | +| main.rs:2462:13:2462:26 | TuplePat | | file://:0:0:0:0 | (T_2) | +| main.rs:2462:13:2462:26 | TuplePat | 0(2) | main.rs:2447:5:2448:16 | S1 | +| main.rs:2462:13:2462:26 | TuplePat | 1(2) | main.rs:2447:5:2448:16 | S1 | +| main.rs:2462:18:2462:18 | g | | main.rs:2447:5:2448:16 | S1 | +| main.rs:2462:25:2462:25 | h | | main.rs:2447:5:2448:16 | S1 | +| main.rs:2462:30:2462:43 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | +| main.rs:2462:30:2462:43 | ...::get_pair(...) | 0(2) | main.rs:2447:5:2448:16 | S1 | +| main.rs:2462:30:2462:43 | ...::get_pair(...) | 1(2) | main.rs:2447:5:2448:16 | S1 | +| main.rs:2464:9:2464:9 | a | | file://:0:0:0:0 | (T_2) | +| main.rs:2464:9:2464:9 | a | 0(2) | main.rs:2447:5:2448:16 | S1 | +| main.rs:2464:9:2464:9 | a | 1(2) | main.rs:2447:5:2448:16 | S1 | +| main.rs:2464:9:2464:11 | a.0 | | main.rs:2447:5:2448:16 | S1 | +| main.rs:2465:9:2465:9 | b | | file://:0:0:0:0 | (T_2) | +| main.rs:2465:9:2465:9 | b | 0(2) | main.rs:2447:5:2448:16 | S1 | +| main.rs:2465:9:2465:9 | b | 1(2) | main.rs:2447:5:2448:16 | S1 | +| main.rs:2465:9:2465:11 | b.1 | | main.rs:2447:5:2448:16 | S1 | +| main.rs:2466:9:2466:9 | c | | main.rs:2447:5:2448:16 | S1 | +| main.rs:2467:9:2467:9 | d | | main.rs:2447:5:2448:16 | S1 | +| main.rs:2468:9:2468:9 | e | | main.rs:2447:5:2448:16 | S1 | +| main.rs:2469:9:2469:9 | f | | main.rs:2447:5:2448:16 | S1 | +| main.rs:2470:9:2470:9 | g | | main.rs:2447:5:2448:16 | S1 | +| main.rs:2471:9:2471:9 | h | | main.rs:2447:5:2448:16 | S1 | +| main.rs:2476:13:2476:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2476:17:2476:34 | ...::default(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2477:13:2477:13 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2477:17:2477:34 | ...::default(...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2478:13:2478:16 | pair | | file://:0:0:0:0 | (T_2) | +| main.rs:2478:13:2478:16 | pair | 0(2) | {EXTERNAL LOCATION} | i64 | +| main.rs:2478:13:2478:16 | pair | 1(2) | {EXTERNAL LOCATION} | bool | +| main.rs:2478:20:2478:25 | TupleExpr | | file://:0:0:0:0 | (T_2) | +| main.rs:2478:20:2478:25 | TupleExpr | 0(2) | {EXTERNAL LOCATION} | i64 | +| main.rs:2478:20:2478:25 | TupleExpr | 1(2) | {EXTERNAL LOCATION} | bool | +| main.rs:2478:21:2478:21 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2478:24:2478:24 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2479:13:2479:13 | i | | {EXTERNAL LOCATION} | i64 | +| main.rs:2479:22:2479:25 | pair | | file://:0:0:0:0 | (T_2) | +| main.rs:2479:22:2479:25 | pair | 0(2) | {EXTERNAL LOCATION} | i64 | +| main.rs:2479:22:2479:25 | pair | 1(2) | {EXTERNAL LOCATION} | bool | +| main.rs:2479:22:2479:27 | pair.0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2480:13:2480:13 | j | | {EXTERNAL LOCATION} | bool | +| main.rs:2480:23:2480:26 | pair | | file://:0:0:0:0 | (T_2) | +| main.rs:2480:23:2480:26 | pair | 0(2) | {EXTERNAL LOCATION} | i64 | +| main.rs:2480:23:2480:26 | pair | 1(2) | {EXTERNAL LOCATION} | bool | +| main.rs:2480:23:2480:28 | pair.1 | | {EXTERNAL LOCATION} | bool | +| main.rs:2482:13:2482:16 | pair | | file://:0:0:0:0 | (T_2) | +| main.rs:2482:13:2482:16 | pair | 0(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2482:13:2482:16 | pair | 1(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2482:20:2482:25 | [...] | | file://:0:0:0:0 | [] | +| main.rs:2482:20:2482:25 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:2482:20:2482:32 | ... .into() | | file://:0:0:0:0 | (T_2) | +| main.rs:2482:20:2482:32 | ... .into() | 0(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2482:20:2482:32 | ... .into() | 1(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2482:21:2482:21 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2482:24:2482:24 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2483:15:2483:18 | pair | | file://:0:0:0:0 | (T_2) | +| main.rs:2483:15:2483:18 | pair | 0(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2483:15:2483:18 | pair | 1(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2484:13:2484:18 | TuplePat | | file://:0:0:0:0 | (T_2) | +| main.rs:2484:13:2484:18 | TuplePat | 0(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2484:13:2484:18 | TuplePat | 1(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2484:14:2484:14 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2484:17:2484:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2484:30:2484:41 | "unexpected" | | file://:0:0:0:0 | & | +| main.rs:2484:30:2484:41 | "unexpected" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2484:30:2484:41 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2484:30:2484:41 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2485:13:2485:13 | _ | | file://:0:0:0:0 | (T_2) | +| main.rs:2485:13:2485:13 | _ | 0(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2485:13:2485:13 | _ | 1(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2485:25:2485:34 | "expected" | | file://:0:0:0:0 | & | +| main.rs:2485:25:2485:34 | "expected" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2485:25:2485:34 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2485:25:2485:34 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2487:13:2487:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2487:17:2487:20 | pair | | file://:0:0:0:0 | (T_2) | +| main.rs:2487:17:2487:20 | pair | 0(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2487:17:2487:20 | pair | 1(2) | {EXTERNAL LOCATION} | i32 | +| main.rs:2487:17:2487:22 | pair.0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2489:13:2489:13 | y | | file://:0:0:0:0 | & | +| main.rs:2489:13:2489:13 | y | &T | file://:0:0:0:0 | (T_2) | +| main.rs:2489:13:2489:13 | y | &T.0(2) | main.rs:2447:5:2448:16 | S1 | +| main.rs:2489:13:2489:13 | y | &T.1(2) | main.rs:2447:5:2448:16 | S1 | +| main.rs:2489:17:2489:31 | &... | | file://:0:0:0:0 | & | +| main.rs:2489:17:2489:31 | &... | &T | file://:0:0:0:0 | (T_2) | +| main.rs:2489:17:2489:31 | &... | &T.0(2) | main.rs:2447:5:2448:16 | S1 | +| main.rs:2489:17:2489:31 | &... | &T.1(2) | main.rs:2447:5:2448:16 | S1 | +| main.rs:2489:18:2489:31 | ...::get_pair(...) | | file://:0:0:0:0 | (T_2) | +| main.rs:2489:18:2489:31 | ...::get_pair(...) | 0(2) | main.rs:2447:5:2448:16 | S1 | +| main.rs:2489:18:2489:31 | ...::get_pair(...) | 1(2) | main.rs:2447:5:2448:16 | S1 | +| main.rs:2490:9:2490:9 | y | | file://:0:0:0:0 | & | +| main.rs:2490:9:2490:9 | y | &T | file://:0:0:0:0 | (T_2) | +| main.rs:2490:9:2490:9 | y | &T.0(2) | main.rs:2447:5:2448:16 | S1 | +| main.rs:2490:9:2490:9 | y | &T.1(2) | main.rs:2447:5:2448:16 | S1 | +| main.rs:2490:9:2490:11 | y.0 | | main.rs:2447:5:2448:16 | S1 | +| main.rs:2497:13:2497:23 | boxed_value | | {EXTERNAL LOCATION} | Box | +| main.rs:2497:13:2497:23 | boxed_value | A | {EXTERNAL LOCATION} | Global | +| main.rs:2497:13:2497:23 | boxed_value | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2497:27:2497:42 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2497:27:2497:42 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2497:27:2497:42 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2497:36:2497:41 | 100i32 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2500:15:2500:25 | boxed_value | | {EXTERNAL LOCATION} | Box | +| main.rs:2500:15:2500:25 | boxed_value | A | {EXTERNAL LOCATION} | Global | +| main.rs:2500:15:2500:25 | boxed_value | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2501:13:2501:19 | box 100 | | {EXTERNAL LOCATION} | Box | +| main.rs:2501:13:2501:19 | box 100 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2501:13:2501:19 | box 100 | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2501:17:2501:19 | 100 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2502:26:2502:36 | "Boxed 100\\n" | | file://:0:0:0:0 | & | +| main.rs:2502:26:2502:36 | "Boxed 100\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2502:26:2502:36 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2502:26:2502:36 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2504:13:2504:17 | box ... | | {EXTERNAL LOCATION} | Box | +| main.rs:2504:13:2504:17 | box ... | A | {EXTERNAL LOCATION} | Global | +| main.rs:2504:13:2504:17 | box ... | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2506:26:2506:42 | "Boxed value: {}\\n" | | file://:0:0:0:0 | & | +| main.rs:2506:26:2506:42 | "Boxed value: {}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2506:26:2506:51 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2506:26:2506:51 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2511:13:2511:22 | nested_box | | {EXTERNAL LOCATION} | Box | +| main.rs:2511:13:2511:22 | nested_box | A | {EXTERNAL LOCATION} | Global | +| main.rs:2511:13:2511:22 | nested_box | T | {EXTERNAL LOCATION} | Box | +| main.rs:2511:13:2511:22 | nested_box | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2511:13:2511:22 | nested_box | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2511:26:2511:50 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2511:26:2511:50 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2511:26:2511:50 | ...::new(...) | T | {EXTERNAL LOCATION} | Box | +| main.rs:2511:26:2511:50 | ...::new(...) | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2511:26:2511:50 | ...::new(...) | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2511:35:2511:49 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2511:35:2511:49 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2511:35:2511:49 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2511:44:2511:48 | 42i32 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2512:15:2512:24 | nested_box | | {EXTERNAL LOCATION} | Box | +| main.rs:2512:15:2512:24 | nested_box | A | {EXTERNAL LOCATION} | Global | +| main.rs:2512:15:2512:24 | nested_box | T | {EXTERNAL LOCATION} | Box | +| main.rs:2512:15:2512:24 | nested_box | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2512:15:2512:24 | nested_box | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2513:13:2513:21 | box ... | | {EXTERNAL LOCATION} | Box | +| main.rs:2513:13:2513:21 | box ... | A | {EXTERNAL LOCATION} | Global | +| main.rs:2513:13:2513:21 | box ... | T | {EXTERNAL LOCATION} | Box | +| main.rs:2513:13:2513:21 | box ... | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2513:13:2513:21 | box ... | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2515:26:2515:43 | "Nested boxed: {}\\n" | | file://:0:0:0:0 | & | +| main.rs:2515:26:2515:43 | "Nested boxed: {}\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2515:26:2515:59 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2515:26:2515:59 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2527:21:2527:25 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2527:21:2527:25 | SelfParam | &T | main.rs:2526:5:2529:5 | Self [trait Executor] | +| main.rs:2528:24:2528:28 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2528:24:2528:28 | SelfParam | &T | main.rs:2526:5:2529:5 | Self [trait Executor] | +| main.rs:2528:31:2528:35 | query | | main.rs:2528:21:2528:21 | E | +| main.rs:2532:21:2532:25 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2532:21:2532:25 | SelfParam | &T | main.rs:2531:10:2531:22 | T | +| main.rs:2533:22:2533:41 | "Executor::execute1\\n" | | file://:0:0:0:0 | & | +| main.rs:2533:22:2533:41 | "Executor::execute1\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2533:22:2533:41 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2533:22:2533:41 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2536:24:2536:28 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2536:24:2536:28 | SelfParam | &T | main.rs:2531:10:2531:22 | T | +| main.rs:2536:31:2536:36 | _query | | main.rs:2536:21:2536:21 | E | +| main.rs:2537:22:2537:41 | "Executor::execute2\\n" | | file://:0:0:0:0 | & | +| main.rs:2537:22:2537:41 | "Executor::execute2\\n" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2537:22:2537:41 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2537:22:2537:41 | MacroExpr | | {EXTERNAL LOCATION} | Arguments | +| main.rs:2546:13:2546:13 | c | | main.rs:2541:5:2541:29 | MySqlConnection | +| main.rs:2546:17:2546:34 | MySqlConnection {...} | | main.rs:2541:5:2541:29 | MySqlConnection | +| main.rs:2548:9:2548:9 | c | | main.rs:2541:5:2541:29 | MySqlConnection | +| main.rs:2549:35:2549:36 | &c | | file://:0:0:0:0 | & | +| main.rs:2549:35:2549:36 | &c | &T | main.rs:2541:5:2541:29 | MySqlConnection | +| main.rs:2549:36:2549:36 | c | | main.rs:2541:5:2541:29 | MySqlConnection | +| main.rs:2551:9:2551:9 | c | | main.rs:2541:5:2541:29 | MySqlConnection | +| main.rs:2551:20:2551:40 | "SELECT * FROM users" | | file://:0:0:0:0 | & | +| main.rs:2551:20:2551:40 | "SELECT * FROM users" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2552:9:2552:9 | c | | main.rs:2541:5:2541:29 | MySqlConnection | +| main.rs:2552:28:2552:48 | "SELECT * FROM users" | | file://:0:0:0:0 | & | +| main.rs:2552:28:2552:48 | "SELECT * FROM users" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2553:35:2553:36 | &c | | file://:0:0:0:0 | & | +| main.rs:2553:35:2553:36 | &c | &T | main.rs:2541:5:2541:29 | MySqlConnection | +| main.rs:2553:36:2553:36 | c | | main.rs:2541:5:2541:29 | MySqlConnection | +| main.rs:2553:39:2553:59 | "SELECT * FROM users" | | file://:0:0:0:0 | & | +| main.rs:2553:39:2553:59 | "SELECT * FROM users" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2554:43:2554:44 | &c | | file://:0:0:0:0 | & | +| main.rs:2554:43:2554:44 | &c | &T | main.rs:2541:5:2541:29 | MySqlConnection | +| main.rs:2554:44:2554:44 | c | | main.rs:2541:5:2541:29 | MySqlConnection | +| main.rs:2554:47:2554:67 | "SELECT * FROM users" | | file://:0:0:0:0 | & | +| main.rs:2554:47:2554:67 | "SELECT * FROM users" | &T | {EXTERNAL LOCATION} | str | +| main.rs:2564:5:2564:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:2565:5:2565:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:2565:20:2565:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:2565:41:2565:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:2581:5:2581:15 | ...::f(...) | | {EXTERNAL LOCATION} | trait Future | | 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 | @@ -5737,10 +5738,8 @@ inferType | pattern_matching.rs:444:17:444:36 | TupleExpr | 2(3) | {EXTERNAL LOCATION} | f32 | | pattern_matching.rs:444:17:444:36 | TupleExpr | 2(3) | {EXTERNAL LOCATION} | f64 | | pattern_matching.rs:444:18:444:21 | 1i32 | | {EXTERNAL LOCATION} | i32 | -| pattern_matching.rs:444:24:444:27 | 2i64 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:444:24:444:27 | 2i64 | | {EXTERNAL LOCATION} | i64 | | pattern_matching.rs:444:30:444:35 | 3.0f32 | | {EXTERNAL LOCATION} | f32 | -| pattern_matching.rs:444:30:444:35 | 3.0f32 | | {EXTERNAL LOCATION} | f64 | | pattern_matching.rs:447:11:447:15 | tuple | | file://:0:0:0:0 | (T_3) | | pattern_matching.rs:447:11:447:15 | tuple | 0(3) | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:447:11:447:15 | tuple | 1(3) | {EXTERNAL LOCATION} | i32 | diff --git a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll index 1eaf6ef8e840..c42a424f3e34 100644 --- a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll +++ b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll @@ -334,7 +334,19 @@ module Make1 Input1> { /** Holds if this path starts with `tp`, followed by `suffix`. */ bindingset[this] predicate isCons(TypeParameter tp, TypePath suffix) { - suffix = this.stripPrefix(TypePath::singleton(tp)) + exists(string regexp | regexp = "([0-9]+)\\.(.*)" | + tp = TypeParameter::decode(this.regexpCapture(regexp, 1)) and + suffix = this.regexpCapture(regexp, 2) + ) + } + + /** Holds if this path starts with `prefix`, followed by `tp`. */ + bindingset[this] + predicate isSnoc(TypePath prefix, TypeParameter tp) { + exists(string regexp | regexp = "(|.+\\.)([0-9]+)\\." | + prefix = this.regexpCapture(regexp, 1) and + tp = TypeParameter::decode(this.regexpCapture(regexp, 2)) + ) } /** Gets the head of this path, if any. */