From f5f7d002c39a314c0d896a3aa425bdf85c7397eb Mon Sep 17 00:00:00 2001 From: Jeong YunWon Date: Sat, 22 Aug 2026 00:47:47 +0900 Subject: [PATCH 1/3] majit: support type-only object headers Preserve typed header information through MIR lowering and allow boxing allocation fusion when the registered header layout has no per-instance class word. Expand the Charon corpus and integration coverage for typed reads, narrowing, static class resolution, and allocation fusion. Also expose stable categories for the existing known-unported rtyper cases. --- majit/charon-corpus/README.md | 24 + majit/charon-corpus/corpus.ullbc | 2 +- majit/charon-corpus/src/lib.rs | 149 ++++ majit/majit-charon-reader/tests/corpus.rs | 8 +- majit/majit-translate/src/model.rs | 333 ++++++++- .../src/translator/rtyper/cutover.rs | 651 ++++++++++-------- .../tests/test_mir_frontend.rs | 360 ++++++++++ pyre/bench/fib_recursive.cranelift.jitstats | 4 +- pyre/bench/fib_recursive.dynasm.jitstats | 4 +- 9 files changed, 1218 insertions(+), 317 deletions(-) diff --git a/majit/charon-corpus/README.md b/majit/charon-corpus/README.md index 281e9aa6cbf..5863d164c8b 100644 --- a/majit/charon-corpus/README.md +++ b/majit/charon-corpus/README.md @@ -79,6 +79,30 @@ out in issue #97: | `parse_one` | `match` with guards, internal helper for #4 | 9 | | `desugar_mix` | `?` + `for` + `match` + `break` | 22 | +The corpus also includes a header-first object model. These functions pin +lowering decisions that otherwise fail by leaving a residual call or an +untyped field access rather than raising an error: + +| Function | Premise it pins | +|-----------------------|-------------------------------------------------------| +| `w_object_type` | `(*w).ob_type` narrows to a *typed* `FieldRead` | +| `w_new_int` | the boxing cluster fuses to one `NewWithVtable` | +| `w_new_type_only_int` | so does a cluster whose header declares no class word | +| `w_number_add` | a narrowing-chain arm lowers to a direct `FunctionPath` call | + +`ObjectHeader` has both `ob_type` and a per-instance `w_class`. +`TypeOnlyHeader` has only `ob_type`, matching RPython's root `OBJECT`, whose +only data field is `typeptr`. The two-word allocation can fuse when its +`w_class` is derived from the same class object as `ob_type`; the one-word +allocation can fuse from its declared layout because no class word exists to +disagree with the type pointer. + +The fixture spells `pyre_object::pyobject::get_instantiate` literally because +`model.rs` currently recognises that path suffix. The one-word header does not +use this helper. `_immutable_fields_W_IntObject` preserves the marker shape +harvested by `front::llbc_hints`. + + ## Findings ### 1. `.llbc` top-level shape diff --git a/majit/charon-corpus/corpus.ullbc b/majit/charon-corpus/corpus.ullbc index f9bb94f9c79..ff2bc9c5e7a 100644 --- a/majit/charon-corpus/corpus.ullbc +++ b/majit/charon-corpus/corpus.ullbc @@ -1 +1 @@ -{"charon_version":"0.1.201","translated":{"crate_name":"charon_corpus","options":{"ullbc":true,"precise_drops":false,"skip_borrowck":false,"mir":null,"rustc_args":[],"targets":[],"monomorphize":false,"monomorphize_mut":null,"start_from":[],"start_from_if_exists":[],"start_from_attribute":null,"start_from_pub":false,"include":[],"opaque":[],"exclude":[],"extract_opaque_bodies":false,"translate_all_methods":false,"lift_associated_types":[],"hide_marker_traits":false,"remove_adt_clauses":false,"hide_allocator":false,"remove_unused_self_clauses":false,"desugar_drops":false,"ops_to_function_calls":false,"index_to_function_calls":false,"treat_box_as_builtin":false,"raw_consts":false,"unsized_strings":false,"reconstruct_fallible_operations":false,"reconstruct_asserts":false,"unbind_item_vars":false,"print_original_ullbc":false,"print_ullbc":false,"print_built_llbc":false,"print_llbc":false,"dest_dir":null,"dest_file":"/Users/youknowone/Projects/pyre-2/build/llbc/corpus.ullbc","no_dedup_serialized_ast":false,"format":null,"no_serialize":false,"no_typecheck":false,"no_normalize":false,"abort_on_error":false,"error_on_warnings":false,"preset":null},"target_information":[{"key":"aarch64-apple-darwin","value":{"target_pointer_size":8,"is_little_endian":true}}],"files":[{"id":0,"name":{"Local":"src/lib.rs"},"crate_name":"charon_corpus","contents":"//! Charon fixture corpus: representative shapes from issue #97.\n//!\n//! 1. `straight_line_add` — straight-line interpreter-shaped function.\n//! 2. `branch_loop_sum` — branch + loop, like opcode dispatch fragments.\n//! 3. `strategy_dispatch` — enum-as-strategy (dict-strategy stand-in).\n//! 4. `desugar_mix` — `?`, `match`, and iterator desugaring together.\n\n#![allow(dead_code)]\n\npub type PyResult = Result;\n\n// 1. Straight-line\n#[inline(never)]\npub fn straight_line_add(a: i64, b: i64, c: i64) -> i64 {\n let s = a + b;\n let t = s * 2;\n t + c\n}\n\n// 2. Branch and loop\n#[inline(never)]\npub fn branch_loop_sum(slice: &[i64], threshold: i64) -> i64 {\n let mut acc: i64 = 0;\n for &v in slice {\n if v > threshold {\n acc += v;\n } else {\n acc -= v;\n }\n }\n acc\n}\n\n// 2b. Iterator element kinds. `next()`'s payload carries one reference for\n// a slice iterator (`core::slice::iter::Iter` yields `Option<&T>`) and none\n// for a by-value one (`core::array::iter::IntoIter` yields `Option`), so\n// the two spell the same `Option<&i64>` payload for different reasons: here\n// the element is `&i64` both times, and only the first has a reference the\n// iterator added. A frontend that peels unconditionally, or never, types one\n// of the two into the wrong register bank.\n#[inline(never)]\npub fn slice_of_refs_sum(slice: &[&i64]) -> i64 {\n let mut acc: i64 = 0;\n for r in slice {\n acc += **r;\n }\n acc\n}\n\n#[inline(never)]\npub fn array_of_refs_sum(refs: [&i64; 3]) -> i64 {\n let mut acc: i64 = 0;\n for r in refs {\n acc += *r;\n }\n acc\n}\n\n// 3. Strategy dispatch (dict-strategy stand-in)\npub enum Strategy {\n Empty,\n IntKeyed { len: usize },\n StrKeyed { len: usize, capacity: usize },\n}\n\n#[inline(never)]\npub fn strategy_len(s: &Strategy) -> usize {\n match s {\n Strategy::Empty => 0,\n Strategy::IntKeyed { len } => *len,\n Strategy::StrKeyed { len, capacity: _ } => *len,\n }\n}\n\n// 4. Desugaring mix: `?`, `match`, and iteration\npub enum Token {\n Add(i64),\n Sub(i64),\n Halt,\n}\n\nfn parse_one(raw: i64) -> PyResult {\n match raw {\n i64::MIN => Ok(Token::Halt),\n 0 => Err(\"halt-zero forbidden\"),\n v if v > 0 => Ok(Token::Add(v)),\n v => Ok(Token::Sub(-v)),\n }\n}\n\n#[inline(never)]\npub fn desugar_mix(input: &[i64]) -> PyResult {\n let mut acc: i64 = 0;\n for &raw in input.iter() {\n let tok = parse_one(raw)?;\n match tok {\n Token::Add(v) => acc += v,\n Token::Sub(v) => acc -= v,\n Token::Halt => break,\n }\n }\n Ok(acc)\n}\n\n// 5. Tuple round-trip: construct a tuple and read both fields\n//\n// Exercises `Rvalue::Aggregate` for a *non-Adt* (tuple) value paired\n// with `Field` projection reads of that same local. The lowering must\n// emit a `__pos_` `FieldRead` symmetric to the construction-side\n// `FieldWrite` chain rather than collapsing every `.N` to the base.\n\n#[inline(never)]\npub fn tuple_roundtrip(a: i64, b: i64) -> i64 {\n let pair = (a + b, a - b);\n pair.0 * pair.1\n}\n\n// 6. Closures\n// `bool_then_closure` is the exact `core::bool::::then` census shape:\n// an opaque combinator taking a `FnOnce` closure that captures a value from\n// the enclosing scope. Charon extracts the closure's `call_once` body as a\n// transparent inherent method of the closure type.\n\n#[inline(never)]\npub fn bool_then_closure(c: bool, x: i64) -> Option {\n c.then(|| x + 1)\n}\n\n// `then_some` is the eager sibling of `then`: it takes an already-evaluated\n// value rather than a closure, so the diamond's `then` arm wraps it in `Some`\n// directly (no `call_once`). Same Opaque-core-combinator residual shape.\n#[inline(never)]\npub fn bool_then_some(c: bool, x: i64) -> Option {\n c.then_some(x + 1)\n}\n\n// 7. Option question mark\n// Exercises `Try::branch` on `Option`: `Some(v)` continues with `v`, while\n// `None` returns `None` normally from the enclosing Option-returning function.\n\n#[inline(never)]\nfn option_source(keep: bool, value: i64) -> Option {\n if keep { Some(value) } else { None }\n}\n\n#[inline(never)]\npub fn option_question_mark(keep: bool, value: i64, addend: i64) -> Option {\n let v = option_source(keep, value)?;\n Some(v + addend)\n}\n\n// A host-registered callback table.\n\n/// The callback a host installs at run time. A bare `fn` pointer, so the set\n/// of addresses that can reach a call through it is not recoverable from this\n/// artifact — the shape used by host-settable callback hooks.\npub type HostCallback = fn(i64) -> i64;\n\npub struct HostRegistry {\n pub slot: HostCallback,\n pub maybe_slot: Option,\n}\n\n/// Call through the registered callback. `front::mir` lowers this to\n/// `OpKind::IndirectCall { graphs: None }` — `indirect_call` with an\n/// unknown PBC family, which `guess_call_kind` answers `residual` for\n/// (`call.py:105`/`137`, `jtransform.py:410-412`). The `__dyn_call`\n/// placeholder it used to reach is an unregistered synthetic path with no\n/// continuation.\n#[inline(never)]\npub fn host_registry_dispatch(reg: &HostRegistry, x: i64) -> i64 {\n (reg.slot)(x)\n}\n\n/// The one-hop `Option` spelling of the same shape.\n#[inline(never)]\npub fn host_registry_dispatch_optional(reg: &HostRegistry, x: i64) -> i64 {\n match reg.maybe_slot {\n Some(f) => f(x),\n None => 0,\n }\n}\n"},{"id":1,"name":{"Local":"/rustc/library/core/src/marker.rs"},"crate_name":"core","contents":null},{"id":2,"name":{"Local":"/rustc/library/core/src/lib.rs"},"crate_name":"core","contents":null},{"id":3,"name":{"Local":"/rustc/library/core/src/result.rs"},"crate_name":"core","contents":null},{"id":4,"name":{"Local":"/rustc/library/core/src/slice/iter.rs"},"crate_name":"core","contents":null},{"id":5,"name":{"Local":"/rustc/library/core/src/slice/mod.rs"},"crate_name":"core","contents":null},{"id":6,"name":{"Local":"/rustc/library/core/src/option.rs"},"crate_name":"core","contents":null},{"id":7,"name":{"Local":"/rustc/library/core/src/slice/iter/macros.rs"},"crate_name":"core","contents":null},{"id":8,"name":{"Local":"/rustc/library/core/src/array/iter.rs"},"crate_name":"core","contents":null},{"id":9,"name":{"Local":"/rustc/library/core/src/array/mod.rs"},"crate_name":"core","contents":null},{"id":10,"name":{"Local":"/rustc/library/core/src/ops/control_flow.rs"},"crate_name":"core","contents":null},{"id":11,"name":{"Local":"/rustc/library/core/src/ops/mod.rs"},"crate_name":"core","contents":null},{"id":12,"name":{"Local":"/rustc/library/core/src/convert/mod.rs"},"crate_name":"core","contents":null},{"id":13,"name":{"Local":"/rustc/library/core/src/iter/traits/collect.rs"},"crate_name":"core","contents":null},{"id":14,"name":{"Local":"/rustc/library/core/src/iter/traits/mod.rs"},"crate_name":"core","contents":null},{"id":15,"name":{"Local":"/rustc/library/core/src/iter/mod.rs"},"crate_name":"core","contents":null},{"id":16,"name":{"Local":"/rustc/library/core/src/iter/traits/iterator.rs"},"crate_name":"core","contents":null},{"id":17,"name":{"Local":"/rustc/library/core/src/bool.rs"},"crate_name":"core","contents":null},{"id":18,"name":{"Local":"/rustc/library/core/src/ops/function.rs"},"crate_name":"core","contents":null},{"id":19,"name":{"Local":"/rustc/library/core/src/num/nonzero.rs"},"crate_name":"core","contents":null},{"id":20,"name":{"Local":"/rustc/library/core/src/num/mod.rs"},"crate_name":"core","contents":null},{"id":21,"name":{"Local":"/rustc/library/core/src/iter/adapters/step_by.rs"},"crate_name":"core","contents":null},{"id":22,"name":{"Local":"/rustc/library/core/src/iter/adapters/mod.rs"},"crate_name":"core","contents":null},{"id":23,"name":{"Local":"/rustc/library/core/src/iter/adapters/chain.rs"},"crate_name":"core","contents":null},{"id":24,"name":{"Local":"/rustc/library/core/src/iter/adapters/zip.rs"},"crate_name":"core","contents":null},{"id":25,"name":{"Local":"/rustc/library/core/src/clone.rs"},"crate_name":"core","contents":null},{"id":26,"name":{"Local":"/rustc/library/core/src/iter/adapters/intersperse.rs"},"crate_name":"core","contents":null},{"id":27,"name":{"Local":"/rustc/library/core/src/iter/adapters/map.rs"},"crate_name":"core","contents":null},{"id":28,"name":{"Local":"/rustc/library/core/src/iter/adapters/filter.rs"},"crate_name":"core","contents":null},{"id":29,"name":{"Local":"/rustc/library/core/src/iter/adapters/filter_map.rs"},"crate_name":"core","contents":null},{"id":30,"name":{"Local":"/rustc/library/core/src/iter/adapters/enumerate.rs"},"crate_name":"core","contents":null},{"id":31,"name":{"Local":"/rustc/library/core/src/iter/adapters/peekable.rs"},"crate_name":"core","contents":null},{"id":32,"name":{"Local":"/rustc/library/core/src/iter/adapters/skip_while.rs"},"crate_name":"core","contents":null},{"id":33,"name":{"Local":"/rustc/library/core/src/iter/adapters/take_while.rs"},"crate_name":"core","contents":null},{"id":34,"name":{"Local":"/rustc/library/core/src/iter/adapters/map_while.rs"},"crate_name":"core","contents":null},{"id":35,"name":{"Local":"/rustc/library/core/src/iter/adapters/skip.rs"},"crate_name":"core","contents":null},{"id":36,"name":{"Local":"/rustc/library/core/src/iter/adapters/take.rs"},"crate_name":"core","contents":null},{"id":37,"name":{"Local":"/rustc/library/core/src/iter/adapters/scan.rs"},"crate_name":"core","contents":null},{"id":38,"name":{"Local":"/rustc/library/core/src/iter/adapters/flatten.rs"},"crate_name":"core","contents":null},{"id":39,"name":{"Local":"/rustc/library/core/src/iter/adapters/map_windows.rs"},"crate_name":"core","contents":null},{"id":40,"name":{"Local":"/rustc/library/core/src/iter/adapters/fuse.rs"},"crate_name":"core","contents":null},{"id":41,"name":{"Local":"/rustc/library/core/src/iter/adapters/inspect.rs"},"crate_name":"core","contents":null},{"id":42,"name":{"Local":"/rustc/library/core/src/ops/try_trait.rs"},"crate_name":"core","contents":null},{"id":43,"name":{"Local":"/rustc/library/core/src/default.rs"},"crate_name":"core","contents":null},{"id":44,"name":{"Local":"/rustc/library/core/src/iter/traits/double_ended.rs"},"crate_name":"core","contents":null},{"id":45,"name":{"Local":"/rustc/library/core/src/iter/traits/exact_size.rs"},"crate_name":"core","contents":null},{"id":46,"name":{"Local":"/rustc/library/core/src/cmp.rs"},"crate_name":"core","contents":null},{"id":47,"name":{"Local":"/rustc/library/core/src/iter/adapters/rev.rs"},"crate_name":"core","contents":null},{"id":48,"name":{"Local":"/rustc/library/core/src/iter/adapters/copied.rs"},"crate_name":"core","contents":null},{"id":49,"name":{"Local":"/rustc/library/core/src/iter/adapters/cloned.rs"},"crate_name":"core","contents":null},{"id":50,"name":{"Local":"/rustc/library/core/src/iter/adapters/cycle.rs"},"crate_name":"core","contents":null},{"id":51,"name":{"Local":"/rustc/library/core/src/iter/adapters/array_chunks.rs"},"crate_name":"core","contents":null},{"id":52,"name":{"Local":"/rustc/library/core/src/iter/traits/accum.rs"},"crate_name":"core","contents":null},{"id":53,"name":{"Local":"/rustc/library/core/src/num/niche_types.rs"},"crate_name":"core","contents":null}],"item_names":[{"key":{"Type":0},"value":[{"Ident":["charon_corpus",0]},{"Ident":["PyResult",0]}]},{"key":{"Fun":0},"value":[{"Ident":["charon_corpus",0]},{"Ident":["straight_line_add",0]}]},{"key":{"Fun":1},"value":[{"Ident":["charon_corpus",0]},{"Ident":["branch_loop_sum",0]}]},{"key":{"Fun":2},"value":[{"Ident":["charon_corpus",0]},{"Ident":["slice_of_refs_sum",0]}]},{"key":{"Fun":3},"value":[{"Ident":["charon_corpus",0]},{"Ident":["array_of_refs_sum",0]}]},{"key":{"Type":1},"value":[{"Ident":["charon_corpus",0]},{"Ident":["Strategy",0]}]},{"key":{"Fun":4},"value":[{"Ident":["charon_corpus",0]},{"Ident":["strategy_len",0]}]},{"key":{"Type":2},"value":[{"Ident":["charon_corpus",0]},{"Ident":["Token",0]}]},{"key":{"Fun":5},"value":[{"Ident":["charon_corpus",0]},{"Ident":["parse_one",0]}]},{"key":{"Fun":6},"value":[{"Ident":["charon_corpus",0]},{"Ident":["desugar_mix",0]}]},{"key":{"Fun":7},"value":[{"Ident":["charon_corpus",0]},{"Ident":["tuple_roundtrip",0]}]},{"key":{"Fun":8},"value":[{"Ident":["charon_corpus",0]},{"Ident":["bool_then_closure",0]}]},{"key":{"Fun":9},"value":[{"Ident":["charon_corpus",0]},{"Ident":["bool_then_some",0]}]},{"key":{"Fun":10},"value":[{"Ident":["charon_corpus",0]},{"Ident":["option_source",0]}]},{"key":{"Fun":11},"value":[{"Ident":["charon_corpus",0]},{"Ident":["option_question_mark",0]}]},{"key":{"Type":3},"value":[{"Ident":["charon_corpus",0]},{"Ident":["HostCallback",0]}]},{"key":{"Type":4},"value":[{"Ident":["charon_corpus",0]},{"Ident":["HostRegistry",0]}]},{"key":{"Fun":12},"value":[{"Ident":["charon_corpus",0]},{"Ident":["host_registry_dispatch",0]}]},{"key":{"Fun":13},"value":[{"Ident":["charon_corpus",0]},{"Ident":["host_registry_dispatch_optional",0]}]},{"key":{"TraitDecl":0},"value":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["Sized",0]}]},{"key":{"Type":5},"value":[{"Ident":["core",0]},{"Ident":["result",0]},{"Ident":["Result",0]}]},{"key":{"TraitDecl":1},"value":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["MetaSized",0]}]},{"key":{"Type":6},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Ident":["Iter",0]}]},{"key":{"Type":7},"value":[{"Ident":["core",0]},{"Ident":["option",0]},{"Ident":["Option",0]}]},{"key":{"TraitImpl":0},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":0}}]},{"key":{"Fun":14},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":0}},{"Ident":["into_iter",0]}]},{"key":{"TraitImpl":1},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}}]},{"key":{"Fun":15},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["next",0]}]},{"key":{"Type":8},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Ident":["IntoIter",0]}]},{"key":{"TraitImpl":2},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":2}}]},{"key":{"Fun":16},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":2}},{"Ident":["into_iter",0]}]},{"key":{"TraitImpl":3},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}}]},{"key":{"Fun":17},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["next",0]}]},{"key":{"TraitDecl":2},"value":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["Destruct",0]}]},{"key":{"TraitImpl":4},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Ident":["IntoIter",0]},{"Impl":{"Trait":4}}]},{"key":{"Fun":18},"value":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["Destruct",0]},{"Ident":["drop_in_place",0]}]},{"key":{"Type":9},"value":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["control_flow",0]},{"Ident":["ControlFlow",0]}]},{"key":{"Type":10},"value":[{"Ident":["core",0]},{"Ident":["convert",0]},{"Ident":["Infallible",0]}]},{"key":{"Fun":19},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Impl":{"Ty":{"params":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":5,"beg":{"line":101,"col":5},"end":{"line":101,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[188,{"TypeVar":{"Bound":[1,0]}}]}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"HashConsedValue":[1511,{"Slice":{"HashConsedValue":[220,{"TypeVar":{"Bound":[0,0]}}]}}]},"kind":"InherentImplBlock"}}},{"Ident":["iter",0]}]},{"key":{"TraitImpl":5},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["collect",0]},{"Impl":{"Trait":5}}]},{"key":{"Fun":20},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["collect",0]},{"Impl":{"Trait":5}},{"Ident":["into_iter",0]}]},{"key":{"TraitDecl":3},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]}]},{"key":{"TraitImpl":6},"value":[{"Ident":["core",0]},{"Ident":["result",0]},{"Impl":{"Trait":6}}]},{"key":{"Fun":21},"value":[{"Ident":["core",0]},{"Ident":["result",0]},{"Impl":{"Trait":6}},{"Ident":["branch",0]}]},{"key":{"TraitImpl":7},"value":[{"Ident":["core",0]},{"Ident":["result",0]},{"Impl":{"Trait":7}}]},{"key":{"Fun":22},"value":[{"Ident":["core",0]},{"Ident":["result",0]},{"Impl":{"Trait":7}},{"Ident":["from_residual",0]}]},{"key":{"TraitDecl":4},"value":[{"Ident":["core",0]},{"Ident":["convert",0]},{"Ident":["From",0]}]},{"key":{"TraitImpl":8},"value":[{"Ident":["core",0]},{"Ident":["convert",0]},{"Impl":{"Trait":8}}]},{"key":{"Type":11},"value":[{"Ident":["charon_corpus",0]},{"Ident":["bool_then_closure",0]},{"Ident":["closure",0]}]},{"key":{"TraitImpl":9},"value":[{"Ident":["charon_corpus",0]},{"Ident":["bool_then_closure",0]},{"Impl":{"Trait":9}}]},{"key":{"Fun":23},"value":[{"Ident":["core",0]},{"Ident":["bool",0]},{"Impl":{"Ty":{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"HashConsedValue":[235,{"Literal":"Bool"}]},"kind":"InherentImplBlock"}}},{"Ident":["then",0]}]},{"key":{"TraitDecl":5},"value":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["function",0]},{"Ident":["FnOnce",0]}]},{"key":{"TraitImpl":10},"value":[{"Ident":["charon_corpus",0]},{"Ident":["bool_then_closure",0]},{"Ident":["closure",0]},{"Impl":{"Trait":10}}]},{"key":{"Fun":24},"value":[{"Ident":["core",0]},{"Ident":["bool",0]},{"Impl":{"Ty":{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"Deduplicated":235},"kind":"InherentImplBlock"}}},{"Ident":["then_some",0]}]},{"key":{"TraitImpl":11},"value":[{"Ident":["core",0]},{"Ident":["option",0]},{"Impl":{"Trait":11}}]},{"key":{"Fun":25},"value":[{"Ident":["core",0]},{"Ident":["option",0]},{"Impl":{"Trait":11}},{"Ident":["branch",0]}]},{"key":{"TraitImpl":12},"value":[{"Ident":["core",0]},{"Ident":["option",0]},{"Impl":{"Trait":12}}]},{"key":{"Fun":26},"value":[{"Ident":["core",0]},{"Ident":["option",0]},{"Impl":{"Trait":12}},{"Ident":["from_residual",0]}]},{"key":{"Type":12},"value":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["MetaSized",0]},{"Ident":["{vtable}",0]}]},{"key":{"TraitDecl":6},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["collect",0]},{"Ident":["IntoIterator",0]}]},{"key":{"Global":0},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":0}},{"Ident":["{vtable}",0]}]},{"key":{"Global":1},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["{vtable}",0]}]},{"key":{"Fun":27},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["next_chunk",0]}]},{"key":{"Fun":28},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["size_hint",0]}]},{"key":{"Fun":29},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["count",0]}]},{"key":{"Fun":30},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["last",0]}]},{"key":{"Fun":31},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["advance_by",0]}]},{"key":{"Fun":32},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["nth",0]}]},{"key":{"Fun":33},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["step_by",0]}]},{"key":{"Type":13},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["{vtable}",0]}]},{"key":{"Fun":34},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["next",0]}]},{"key":{"Fun":35},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["next_chunk",0]}]},{"key":{"Fun":36},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["size_hint",0]}]},{"key":{"Fun":37},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["count",0]}]},{"key":{"Fun":38},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["last",0]}]},{"key":{"Fun":39},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["advance_by",0]}]},{"key":{"Type":14},"value":[{"Ident":["core",0]},{"Ident":["num",0]},{"Ident":["nonzero",0]},{"Ident":["NonZero",0]}]},{"key":{"TraitDecl":7},"value":[{"Ident":["core",0]},{"Ident":["num",0]},{"Ident":["nonzero",0]},{"Ident":["ZeroablePrimitive",0]}]},{"key":{"TraitImpl":13},"value":[{"Ident":["core",0]},{"Ident":["num",0]},{"Ident":["nonzero",0]},{"Impl":{"Trait":13}}]},{"key":{"Fun":40},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["nth",0]}]},{"key":{"Fun":41},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["step_by",0]}]},{"key":{"Type":15},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["step_by",0]},{"Ident":["StepBy",0]}]},{"key":{"Fun":42},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["chain",0]}]},{"key":{"Type":16},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["chain",0]},{"Ident":["Chain",0]}]},{"key":{"Fun":43},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["zip",0]}]},{"key":{"Type":17},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["zip",0]},{"Ident":["Zip",0]}]},{"key":{"Fun":44},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["intersperse",0]}]},{"key":{"TraitDecl":8},"value":[{"Ident":["core",0]},{"Ident":["clone",0]},{"Ident":["Clone",0]}]},{"key":{"Type":18},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["intersperse",0]},{"Ident":["Intersperse",0]}]},{"key":{"Fun":45},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["intersperse_with",0]}]},{"key":{"TraitDecl":9},"value":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["function",0]},{"Ident":["FnMut",0]}]},{"key":{"Type":19},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["intersperse",0]},{"Ident":["IntersperseWith",0]}]},{"key":{"Fun":46},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["map",0]}]},{"key":{"Type":20},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["map",0]},{"Ident":["Map",0]}]},{"key":{"Fun":47},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["for_each",0]}]},{"key":{"Fun":48},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["filter",0]}]},{"key":{"Type":21},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["filter",0]},{"Ident":["Filter",0]}]},{"key":{"Fun":49},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["filter_map",0]}]},{"key":{"Type":22},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["filter_map",0]},{"Ident":["FilterMap",0]}]},{"key":{"Fun":50},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["enumerate",0]}]},{"key":{"Type":23},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["enumerate",0]},{"Ident":["Enumerate",0]}]},{"key":{"Fun":51},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["peekable",0]}]},{"key":{"Type":24},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["peekable",0]},{"Ident":["Peekable",0]}]},{"key":{"Fun":52},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["skip_while",0]}]},{"key":{"Type":25},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["skip_while",0]},{"Ident":["SkipWhile",0]}]},{"key":{"Fun":53},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["take_while",0]}]},{"key":{"Type":26},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["take_while",0]},{"Ident":["TakeWhile",0]}]},{"key":{"Fun":54},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["map_while",0]}]},{"key":{"Type":27},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["map_while",0]},{"Ident":["MapWhile",0]}]},{"key":{"Fun":55},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["skip",0]}]},{"key":{"Type":28},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["skip",0]},{"Ident":["Skip",0]}]},{"key":{"Fun":56},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["take",0]}]},{"key":{"Type":29},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["take",0]},{"Ident":["Take",0]}]},{"key":{"Fun":57},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["scan",0]}]},{"key":{"Type":30},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["scan",0]},{"Ident":["Scan",0]}]},{"key":{"Fun":58},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["flat_map",0]}]},{"key":{"Type":31},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["flatten",0]},{"Ident":["FlatMap",0]}]},{"key":{"Fun":59},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["flatten",0]}]},{"key":{"Type":32},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["flatten",0]},{"Ident":["Flatten",0]}]},{"key":{"Fun":60},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["map_windows",0]}]},{"key":{"Type":33},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["map_windows",0]},{"Ident":["MapWindows",0]}]},{"key":{"Fun":61},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["fuse",0]}]},{"key":{"Type":34},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["fuse",0]},{"Ident":["Fuse",0]}]},{"key":{"Fun":62},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["inspect",0]}]},{"key":{"Type":35},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["inspect",0]},{"Ident":["Inspect",0]}]},{"key":{"Fun":63},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["by_ref",0]}]},{"key":{"Fun":64},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["collect",0]}]},{"key":{"TraitDecl":10},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["collect",0]},{"Ident":["FromIterator",0]}]},{"key":{"Fun":65},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["try_collect",0]}]},{"key":{"TraitDecl":11},"value":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["try_trait",0]},{"Ident":["Try",0]}]},{"key":{"TraitDecl":12},"value":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["try_trait",0]},{"Ident":["Residual",0]}]},{"key":{"Fun":66},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["collect_into",0]}]},{"key":{"TraitDecl":13},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["collect",0]},{"Ident":["Extend",0]}]},{"key":{"Fun":67},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["partition",0]}]},{"key":{"TraitDecl":14},"value":[{"Ident":["core",0]},{"Ident":["default",0]},{"Ident":["Default",0]}]},{"key":{"Fun":68},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["partition_in_place",0]}]},{"key":{"TraitDecl":15},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["double_ended",0]},{"Ident":["DoubleEndedIterator",0]}]},{"key":{"Fun":69},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["is_partitioned",0]}]},{"key":{"Fun":70},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["try_fold",0]}]},{"key":{"Fun":71},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["try_for_each",0]}]},{"key":{"Fun":72},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["fold",0]}]},{"key":{"Fun":73},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["reduce",0]}]},{"key":{"Fun":74},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["try_reduce",0]}]},{"key":{"Fun":75},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["all",0]}]},{"key":{"Fun":76},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["any",0]}]},{"key":{"Fun":77},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["find",0]}]},{"key":{"Fun":78},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["find_map",0]}]},{"key":{"Fun":79},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["try_find",0]}]},{"key":{"Fun":80},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["position",0]}]},{"key":{"Fun":81},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["rposition",0]}]},{"key":{"TraitDecl":16},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["exact_size",0]},{"Ident":["ExactSizeIterator",0]}]},{"key":{"Fun":82},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["max",0]}]},{"key":{"TraitDecl":17},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["Ord",0]}]},{"key":{"Fun":83},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["min",0]}]},{"key":{"Fun":84},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["max_by_key",0]}]},{"key":{"Fun":85},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["max_by",0]}]},{"key":{"Type":36},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["Ordering",0]}]},{"key":{"Fun":86},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["min_by_key",0]}]},{"key":{"Fun":87},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["min_by",0]}]},{"key":{"Fun":88},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["rev",0]}]},{"key":{"Type":37},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["rev",0]},{"Ident":["Rev",0]}]},{"key":{"Fun":89},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["unzip",0]}]},{"key":{"Fun":90},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["copied",0]}]},{"key":{"TraitDecl":18},"value":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["Copy",0]}]},{"key":{"Type":38},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["copied",0]},{"Ident":["Copied",0]}]},{"key":{"Fun":91},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["cloned",0]}]},{"key":{"Type":39},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["cloned",0]},{"Ident":["Cloned",0]}]},{"key":{"Fun":92},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["cycle",0]}]},{"key":{"Type":40},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["cycle",0]},{"Ident":["Cycle",0]}]},{"key":{"Fun":93},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["array_chunks",0]}]},{"key":{"Type":41},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["array_chunks",0]},{"Ident":["ArrayChunks",0]}]},{"key":{"Fun":94},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["sum",0]}]},{"key":{"TraitDecl":19},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["accum",0]},{"Ident":["Sum",0]}]},{"key":{"Fun":95},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["product",0]}]},{"key":{"TraitDecl":20},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["accum",0]},{"Ident":["Product",0]}]},{"key":{"Fun":96},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["cmp",0]}]},{"key":{"Fun":97},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["cmp_by",0]}]},{"key":{"Fun":98},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["partial_cmp",0]}]},{"key":{"TraitDecl":21},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["PartialOrd",0]}]},{"key":{"Fun":99},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["partial_cmp_by",0]}]},{"key":{"Fun":100},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["eq",0]}]},{"key":{"TraitDecl":22},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["PartialEq",0]}]},{"key":{"Fun":101},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["eq_by",0]}]},{"key":{"Fun":102},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["ne",0]}]},{"key":{"Fun":103},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["lt",0]}]},{"key":{"Fun":104},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["le",0]}]},{"key":{"Fun":105},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["gt",0]}]},{"key":{"Fun":106},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["ge",0]}]},{"key":{"Fun":107},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["is_sorted",0]}]},{"key":{"Fun":108},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["is_sorted_by",0]}]},{"key":{"Fun":109},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["is_sorted_by_key",0]}]},{"key":{"Fun":110},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["__iterator_get_unchecked",0]}]},{"key":{"TraitDecl":23},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["zip",0]},{"Ident":["TrustedRandomAccessNoCoerce",0]}]},{"key":{"Fun":111},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["chain",0]}]},{"key":{"Fun":112},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["zip",0]}]},{"key":{"Fun":113},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["intersperse",0]}]},{"key":{"Fun":114},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["intersperse_with",0]}]},{"key":{"Fun":115},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["map",0]}]},{"key":{"Fun":116},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["for_each",0]}]},{"key":{"Fun":117},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["filter",0]}]},{"key":{"Fun":118},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["filter_map",0]}]},{"key":{"Fun":119},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["enumerate",0]}]},{"key":{"Fun":120},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["peekable",0]}]},{"key":{"Fun":121},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["skip_while",0]}]},{"key":{"Fun":122},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["take_while",0]}]},{"key":{"Fun":123},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["map_while",0]}]},{"key":{"Fun":124},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["skip",0]}]},{"key":{"Fun":125},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["take",0]}]},{"key":{"Fun":126},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["scan",0]}]},{"key":{"Fun":127},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["flat_map",0]}]},{"key":{"Fun":128},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["flatten",0]}]},{"key":{"Fun":129},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["map_windows",0]}]},{"key":{"Fun":130},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["fuse",0]}]},{"key":{"Fun":131},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["inspect",0]}]},{"key":{"Fun":132},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["by_ref",0]}]},{"key":{"Fun":133},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["collect",0]}]},{"key":{"Fun":134},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["try_collect",0]}]},{"key":{"Fun":135},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["collect_into",0]}]},{"key":{"Fun":136},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["partition",0]}]},{"key":{"Fun":137},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["partition_in_place",0]}]},{"key":{"Fun":138},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["is_partitioned",0]}]},{"key":{"Fun":139},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["try_fold",0]}]},{"key":{"Fun":140},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["try_for_each",0]}]},{"key":{"Fun":141},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["fold",0]}]},{"key":{"Fun":142},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["reduce",0]}]},{"key":{"Fun":143},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["try_reduce",0]}]},{"key":{"Fun":144},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["all",0]}]},{"key":{"Fun":145},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["any",0]}]},{"key":{"Fun":146},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["find",0]}]},{"key":{"Fun":147},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["find_map",0]}]},{"key":{"Fun":148},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["try_find",0]}]},{"key":{"Fun":149},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["position",0]}]},{"key":{"Fun":150},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["rposition",0]}]},{"key":{"Fun":151},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["max",0]}]},{"key":{"Fun":152},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["min",0]}]},{"key":{"Fun":153},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["max_by_key",0]}]},{"key":{"Fun":154},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["max_by",0]}]},{"key":{"Fun":155},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["min_by_key",0]}]},{"key":{"Fun":156},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["min_by",0]}]},{"key":{"Fun":157},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["rev",0]}]},{"key":{"Fun":158},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["unzip",0]}]},{"key":{"Fun":159},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["copied",0]}]},{"key":{"Fun":160},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["cloned",0]}]},{"key":{"Fun":161},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["cycle",0]}]},{"key":{"Fun":162},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["array_chunks",0]}]},{"key":{"Fun":163},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["sum",0]}]},{"key":{"Fun":164},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["product",0]}]},{"key":{"Fun":165},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["cmp",0]}]},{"key":{"Fun":166},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["cmp_by",0]}]},{"key":{"Fun":167},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["partial_cmp",0]}]},{"key":{"Fun":168},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["partial_cmp_by",0]}]},{"key":{"Fun":169},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["eq",0]}]},{"key":{"Fun":170},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["eq_by",0]}]},{"key":{"Fun":171},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["ne",0]}]},{"key":{"Fun":172},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["lt",0]}]},{"key":{"Fun":173},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["le",0]}]},{"key":{"Fun":174},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["gt",0]}]},{"key":{"Fun":175},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["ge",0]}]},{"key":{"Fun":176},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["is_sorted",0]}]},{"key":{"Fun":177},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["is_sorted_by",0]}]},{"key":{"Fun":178},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["is_sorted_by_key",0]}]},{"key":{"Fun":179},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["__iterator_get_unchecked",0]}]},{"key":{"Global":2},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":2}},{"Ident":["{vtable}",0]}]},{"key":{"Global":3},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["{vtable}",0]}]},{"key":{"Fun":180},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["next_chunk",0]}]},{"key":{"Fun":181},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["size_hint",0]}]},{"key":{"Fun":182},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["count",0]}]},{"key":{"Fun":183},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["last",0]}]},{"key":{"Fun":184},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["advance_by",0]}]},{"key":{"Fun":185},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["nth",0]}]},{"key":{"Fun":186},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["step_by",0]}]},{"key":{"Fun":187},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["chain",0]}]},{"key":{"Fun":188},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["zip",0]}]},{"key":{"Fun":189},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["intersperse",0]}]},{"key":{"Fun":190},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["intersperse_with",0]}]},{"key":{"Fun":191},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["map",0]}]},{"key":{"Fun":192},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["for_each",0]}]},{"key":{"Fun":193},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["filter",0]}]},{"key":{"Fun":194},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["filter_map",0]}]},{"key":{"Fun":195},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["enumerate",0]}]},{"key":{"Fun":196},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["peekable",0]}]},{"key":{"Fun":197},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["skip_while",0]}]},{"key":{"Fun":198},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["take_while",0]}]},{"key":{"Fun":199},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["map_while",0]}]},{"key":{"Fun":200},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["skip",0]}]},{"key":{"Fun":201},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["take",0]}]},{"key":{"Fun":202},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["scan",0]}]},{"key":{"Fun":203},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["flat_map",0]}]},{"key":{"Fun":204},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["flatten",0]}]},{"key":{"Fun":205},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["map_windows",0]}]},{"key":{"Fun":206},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["fuse",0]}]},{"key":{"Fun":207},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["inspect",0]}]},{"key":{"Fun":208},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["by_ref",0]}]},{"key":{"Fun":209},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["collect",0]}]},{"key":{"Fun":210},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["try_collect",0]}]},{"key":{"Fun":211},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["collect_into",0]}]},{"key":{"Fun":212},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["partition",0]}]},{"key":{"Fun":213},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["partition_in_place",0]}]},{"key":{"Fun":214},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["is_partitioned",0]}]},{"key":{"Fun":215},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["try_fold",0]}]},{"key":{"Fun":216},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["try_for_each",0]}]},{"key":{"Fun":217},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["fold",0]}]},{"key":{"Fun":218},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["reduce",0]}]},{"key":{"Fun":219},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["try_reduce",0]}]},{"key":{"Fun":220},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["all",0]}]},{"key":{"Fun":221},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["any",0]}]},{"key":{"Fun":222},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["find",0]}]},{"key":{"Fun":223},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["find_map",0]}]},{"key":{"Fun":224},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["try_find",0]}]},{"key":{"Fun":225},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["position",0]}]},{"key":{"Fun":226},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["rposition",0]}]},{"key":{"Fun":227},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["max",0]}]},{"key":{"Fun":228},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["min",0]}]},{"key":{"Fun":229},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["max_by_key",0]}]},{"key":{"Fun":230},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["max_by",0]}]},{"key":{"Fun":231},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["min_by_key",0]}]},{"key":{"Fun":232},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["min_by",0]}]},{"key":{"Fun":233},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["rev",0]}]},{"key":{"Fun":234},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["unzip",0]}]},{"key":{"Fun":235},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["copied",0]}]},{"key":{"Fun":236},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["cloned",0]}]},{"key":{"Fun":237},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["cycle",0]}]},{"key":{"Fun":238},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["array_chunks",0]}]},{"key":{"Fun":239},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["sum",0]}]},{"key":{"Fun":240},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["product",0]}]},{"key":{"Fun":241},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["cmp",0]}]},{"key":{"Fun":242},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["cmp_by",0]}]},{"key":{"Fun":243},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["partial_cmp",0]}]},{"key":{"Fun":244},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["partial_cmp_by",0]}]},{"key":{"Fun":245},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["eq",0]}]},{"key":{"Fun":246},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["eq_by",0]}]},{"key":{"Fun":247},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["ne",0]}]},{"key":{"Fun":248},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["lt",0]}]},{"key":{"Fun":249},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["le",0]}]},{"key":{"Fun":250},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["gt",0]}]},{"key":{"Fun":251},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["ge",0]}]},{"key":{"Fun":252},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["is_sorted",0]}]},{"key":{"Fun":253},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["is_sorted_by",0]}]},{"key":{"Fun":254},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["is_sorted_by_key",0]}]},{"key":{"Fun":255},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["__iterator_get_unchecked",0]}]},{"key":{"Fun":256},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Ident":["IntoIter",0]},{"Impl":{"Trait":4}},{"Ident":["drop_in_place",0]}]},{"key":{"Global":4},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["collect",0]},{"Impl":{"Trait":5}},{"Ident":["{vtable}",0]}]},{"key":{"TraitDecl":24},"value":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["try_trait",0]},{"Ident":["FromResidual",0]}]},{"key":{"Fun":257},"value":[{"Ident":["core",0]},{"Ident":["result",0]},{"Impl":{"Trait":6}},{"Ident":["from_output",0]}]},{"key":{"Fun":258},"value":[{"Ident":["core",0]},{"Ident":["convert",0]},{"Ident":["From",0]},{"Ident":["from",0]}]},{"key":{"Fun":259},"value":[{"Ident":["core",0]},{"Ident":["convert",0]},{"Impl":{"Trait":8}},{"Ident":["from",0]}]},{"key":{"TraitDecl":25},"value":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["Tuple",0]}]},{"key":{"Fun":260},"value":[{"Ident":["charon_corpus",0]},{"Ident":["bool_then_closure",0]},{"Impl":{"Trait":9}},{"Ident":["call_once",0]}]},{"key":{"Type":42},"value":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["function",0]},{"Ident":["FnOnce",0]},{"Ident":["{vtable}",0]}]},{"key":{"Fun":261},"value":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["function",0]},{"Ident":["FnOnce",0]},{"Ident":["call_once",0]}]},{"key":{"Fun":262},"value":[{"Ident":["charon_corpus",0]},{"Ident":["bool_then_closure",0]},{"Ident":["closure",0]},{"Impl":{"Trait":10}},{"Ident":["drop_in_place",0]}]},{"key":{"Fun":263},"value":[{"Ident":["core",0]},{"Ident":["option",0]},{"Impl":{"Trait":11}},{"Ident":["from_output",0]}]},{"key":{"Type":43},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["collect",0]},{"Ident":["IntoIterator",0]},{"Ident":["{vtable}",0]}]},{"key":{"Fun":264},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["collect",0]},{"Ident":["IntoIterator",0]},{"Ident":["into_iter",0]}]},{"key":{"TraitDecl":26},"value":[{"Ident":["core",0]},{"Ident":["num",0]},{"Ident":["nonzero",0]},{"Ident":["private",0]},{"Ident":["Sealed",0]}]},{"key":{"TraitImpl":14},"value":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Impl":{"Trait":14}}]},{"key":{"TraitImpl":15},"value":[{"Ident":["core",0]},{"Ident":["num",0]},{"Ident":["nonzero",0]},{"Impl":{"Trait":15}}]},{"key":{"Type":44},"value":[{"Ident":["core",0]},{"Ident":["num",0]},{"Ident":["niche_types",0]},{"Ident":["NonZeroUsizeInner",0]}]},{"key":{"TraitImpl":16},"value":[{"Ident":["core",0]},{"Ident":["num",0]},{"Ident":["niche_types",0]},{"Impl":{"Trait":16}}]},{"key":{"Fun":265},"value":[{"Ident":["core",0]},{"Ident":["clone",0]},{"Ident":["Clone",0]},{"Ident":["clone",0]}]},{"key":{"Fun":266},"value":[{"Ident":["core",0]},{"Ident":["clone",0]},{"Ident":["Clone",0]},{"Ident":["clone_from",0]}]},{"key":{"Type":45},"value":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["function",0]},{"Ident":["FnMut",0]},{"Ident":["{vtable}",0]}]},{"key":{"Fun":267},"value":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["function",0]},{"Ident":["FnMut",0]},{"Ident":["call_mut",0]}]},{"key":{"Fun":268},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["collect",0]},{"Ident":["FromIterator",0]},{"Ident":["from_iter",0]}]},{"key":{"Fun":269},"value":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["try_trait",0]},{"Ident":["Try",0]},{"Ident":["from_output",0]}]},{"key":{"Fun":270},"value":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["try_trait",0]},{"Ident":["Try",0]},{"Ident":["branch",0]}]},{"key":{"Fun":271},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["collect",0]},{"Ident":["Extend",0]},{"Ident":["extend",0]}]},{"key":{"Fun":272},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["collect",0]},{"Ident":["Extend",0]},{"Ident":["extend_one",0]}]},{"key":{"Fun":273},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["collect",0]},{"Ident":["Extend",0]},{"Ident":["extend_reserve",0]}]},{"key":{"Fun":274},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["collect",0]},{"Ident":["Extend",0]},{"Ident":["extend_one_unchecked",0]}]},{"key":{"Fun":275},"value":[{"Ident":["core",0]},{"Ident":["default",0]},{"Ident":["Default",0]},{"Ident":["default",0]}]},{"key":{"Type":46},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["double_ended",0]},{"Ident":["DoubleEndedIterator",0]},{"Ident":["{vtable}",0]}]},{"key":{"Fun":276},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["double_ended",0]},{"Ident":["DoubleEndedIterator",0]},{"Ident":["next_back",0]}]},{"key":{"Fun":277},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["double_ended",0]},{"Ident":["DoubleEndedIterator",0]},{"Ident":["advance_back_by",0]}]},{"key":{"Fun":278},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["double_ended",0]},{"Ident":["DoubleEndedIterator",0]},{"Ident":["nth_back",0]}]},{"key":{"Fun":279},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["double_ended",0]},{"Ident":["DoubleEndedIterator",0]},{"Ident":["try_rfold",0]}]},{"key":{"Fun":280},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["double_ended",0]},{"Ident":["DoubleEndedIterator",0]},{"Ident":["rfold",0]}]},{"key":{"Fun":281},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["double_ended",0]},{"Ident":["DoubleEndedIterator",0]},{"Ident":["rfind",0]}]},{"key":{"Type":47},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["exact_size",0]},{"Ident":["ExactSizeIterator",0]},{"Ident":["{vtable}",0]}]},{"key":{"Fun":282},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["exact_size",0]},{"Ident":["ExactSizeIterator",0]},{"Ident":["len",0]}]},{"key":{"Fun":283},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["exact_size",0]},{"Ident":["ExactSizeIterator",0]},{"Ident":["is_empty",0]}]},{"key":{"TraitDecl":27},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["Eq",0]}]},{"key":{"Fun":284},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["Ord",0]},{"Ident":["cmp",0]}]},{"key":{"Fun":285},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["Ord",0]},{"Ident":["max",0]}]},{"key":{"Fun":286},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["Ord",0]},{"Ident":["min",0]}]},{"key":{"Fun":287},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["Ord",0]},{"Ident":["clamp",0]}]},{"key":{"Fun":288},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["accum",0]},{"Ident":["Sum",0]},{"Ident":["sum",0]}]},{"key":{"Fun":289},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["accum",0]},{"Ident":["Product",0]},{"Ident":["product",0]}]},{"key":{"Type":48},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["PartialOrd",0]},{"Ident":["{vtable}",0]}]},{"key":{"Fun":290},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["PartialOrd",0]},{"Ident":["partial_cmp",0]}]},{"key":{"Fun":291},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["PartialOrd",0]},{"Ident":["lt",0]}]},{"key":{"Fun":292},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["PartialOrd",0]},{"Ident":["le",0]}]},{"key":{"Fun":293},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["PartialOrd",0]},{"Ident":["gt",0]}]},{"key":{"Fun":294},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["PartialOrd",0]},{"Ident":["ge",0]}]},{"key":{"Fun":295},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["PartialOrd",0]},{"Ident":["__chaining_lt",0]}]},{"key":{"Fun":296},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["PartialOrd",0]},{"Ident":["__chaining_le",0]}]},{"key":{"Fun":297},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["PartialOrd",0]},{"Ident":["__chaining_gt",0]}]},{"key":{"Fun":298},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["PartialOrd",0]},{"Ident":["__chaining_ge",0]}]},{"key":{"Type":49},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["PartialEq",0]},{"Ident":["{vtable}",0]}]},{"key":{"Fun":299},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["PartialEq",0]},{"Ident":["eq",0]}]},{"key":{"Fun":300},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["PartialEq",0]},{"Ident":["ne",0]}]},{"key":{"Fun":301},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["zip",0]},{"Ident":["TrustedRandomAccessNoCoerce",0]},{"Ident":["size",0]}]},{"key":{"Fun":302},"value":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["try_trait",0]},{"Ident":["FromResidual",0]},{"Ident":["from_residual",0]}]},{"key":{"Type":50},"value":[{"Ident":["core",0]},{"Ident":["num",0]},{"Ident":["nonzero",0]},{"Ident":["private",0]},{"Ident":["Sealed",0]},{"Ident":["{vtable}",0]}]},{"key":{"TraitImpl":17},"value":[{"Ident":["core",0]},{"Ident":["clone",0]},{"Ident":["impls",0]},{"Impl":{"Trait":17}}]},{"key":{"Global":5},"value":[{"Ident":["core",0]},{"Ident":["num",0]},{"Ident":["nonzero",0]},{"Impl":{"Trait":15}},{"Ident":["{vtable}",0]}]},{"key":{"TraitImpl":18},"value":[{"Ident":["core",0]},{"Ident":["num",0]},{"Ident":["niche_types",0]},{"Impl":{"Trait":18}}]},{"key":{"Fun":303},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["Eq",0]},{"Ident":["assert_receiver_is_total_eq",0]}]},{"key":{"Fun":304},"value":[{"Ident":["core",0]},{"Ident":["clone",0]},{"Ident":["impls",0]},{"Impl":{"Trait":17}},{"Ident":["clone",0]}]},{"key":{"Fun":305},"value":[{"Ident":["core",0]},{"Ident":["clone",0]},{"Ident":["impls",0]},{"Impl":{"Trait":17}},{"Ident":["clone_from",0]}]},{"key":{"Fun":306},"value":[{"Ident":["core",0]},{"Ident":["num",0]},{"Ident":["niche_types",0]},{"Impl":{"Trait":18}},{"Ident":["clone",0]}]},{"key":{"Fun":307},"value":[{"Ident":["core",0]},{"Ident":["num",0]},{"Ident":["niche_types",0]},{"Impl":{"Trait":18}},{"Ident":["clone_from",0]}]}],"assoc_item_names":[{"types":[],"methods":[],"consts":[]},{"types":[],"methods":[],"consts":[]},{"types":[],"methods":["drop_in_place"],"consts":[]},{"types":["Item"],"methods":["next","next_chunk","size_hint","count","last","advance_by","nth","step_by","chain","zip","intersperse","intersperse_with","map","for_each","filter","filter_map","enumerate","peekable","skip_while","take_while","map_while","skip","take","scan","flat_map","flatten","map_windows","fuse","inspect","by_ref","collect","try_collect","collect_into","partition","partition_in_place","is_partitioned","try_fold","try_for_each","fold","reduce","try_reduce","all","any","find","find_map","try_find","position","rposition","max","min","max_by_key","max_by","min_by_key","min_by","rev","unzip","copied","cloned","cycle","array_chunks","sum","product","cmp","cmp_by","partial_cmp","partial_cmp_by","eq","eq_by","ne","lt","le","gt","ge","is_sorted","is_sorted_by","is_sorted_by_key","__iterator_get_unchecked"],"consts":[]},{"types":[],"methods":["from"],"consts":[]},{"types":["Output"],"methods":["call_once"],"consts":[]},{"types":["Item","IntoIter"],"methods":["into_iter"],"consts":[]},{"types":["NonZeroInner"],"methods":[],"consts":[]},{"types":[],"methods":["clone","clone_from"],"consts":[]},{"types":[],"methods":["call_mut"],"consts":[]},{"types":[],"methods":["from_iter"],"consts":[]},{"types":["Output","Residual"],"methods":["from_output","branch"],"consts":[]},{"types":["TryType"],"methods":[],"consts":[]},{"types":[],"methods":["extend","extend_one","extend_reserve","extend_one_unchecked"],"consts":[]},{"types":[],"methods":["default"],"consts":[]},{"types":[],"methods":["next_back","advance_back_by","nth_back","try_rfold","rfold","rfind"],"consts":[]},{"types":[],"methods":["len","is_empty"],"consts":[]},{"types":[],"methods":["cmp","max","min","clamp"],"consts":[]},{"types":[],"methods":[],"consts":[]},{"types":[],"methods":["sum"],"consts":[]},{"types":[],"methods":["product"],"consts":[]},{"types":[],"methods":["partial_cmp","lt","le","gt","ge","__chaining_lt","__chaining_le","__chaining_gt","__chaining_ge"],"consts":[]},{"types":[],"methods":["eq","ne"],"consts":[]},{"types":[],"methods":["size"],"consts":["MAY_HAVE_SIDE_EFFECT"]},{"types":[],"methods":["from_residual"],"consts":[]},{"types":[],"methods":[],"consts":[]},{"types":[],"methods":[],"consts":[]},{"types":[],"methods":["assert_receiver_is_total_eq"],"consts":[]}],"short_names":[{"key":{"TraitImpl":0},"value":[{"Impl":{"Trait":0}}]},{"key":{"Fun":14},"value":[{"Impl":{"Trait":0}},{"Ident":["into_iter",0]}]},{"key":{"TraitImpl":1},"value":[{"Impl":{"Trait":1}}]},{"key":{"Fun":15},"value":[{"Impl":{"Trait":1}},{"Ident":["next",0]}]},{"key":{"TraitImpl":2},"value":[{"Impl":{"Trait":2}}]},{"key":{"Fun":16},"value":[{"Impl":{"Trait":2}},{"Ident":["into_iter",0]}]},{"key":{"TraitImpl":3},"value":[{"Impl":{"Trait":3}}]},{"key":{"Fun":17},"value":[{"Impl":{"Trait":3}},{"Ident":["next",0]}]},{"key":{"TraitImpl":4},"value":[{"Impl":{"Trait":4}}]},{"key":{"TraitImpl":5},"value":[{"Impl":{"Trait":5}}]},{"key":{"Fun":20},"value":[{"Impl":{"Trait":5}},{"Ident":["into_iter",0]}]},{"key":{"TraitImpl":6},"value":[{"Impl":{"Trait":6}}]},{"key":{"Fun":21},"value":[{"Impl":{"Trait":6}},{"Ident":["branch",0]}]},{"key":{"TraitImpl":7},"value":[{"Impl":{"Trait":7}}]},{"key":{"Fun":22},"value":[{"Impl":{"Trait":7}},{"Ident":["from_residual",0]}]},{"key":{"TraitImpl":8},"value":[{"Impl":{"Trait":8}}]},{"key":{"TraitImpl":9},"value":[{"Impl":{"Trait":9}}]},{"key":{"TraitImpl":10},"value":[{"Impl":{"Trait":10}}]},{"key":{"TraitImpl":11},"value":[{"Impl":{"Trait":11}}]},{"key":{"Fun":25},"value":[{"Impl":{"Trait":11}},{"Ident":["branch",0]}]},{"key":{"TraitImpl":12},"value":[{"Impl":{"Trait":12}}]},{"key":{"Fun":26},"value":[{"Impl":{"Trait":12}},{"Ident":["from_residual",0]}]},{"key":{"Global":0},"value":[{"Impl":{"Trait":0}},{"Ident":["{vtable}",0]}]},{"key":{"Global":1},"value":[{"Impl":{"Trait":1}},{"Ident":["{vtable}",0]}]},{"key":{"Fun":27},"value":[{"Impl":{"Trait":1}},{"Ident":["next_chunk",0]}]},{"key":{"Fun":28},"value":[{"Impl":{"Trait":1}},{"Ident":["size_hint",0]}]},{"key":{"Fun":29},"value":[{"Impl":{"Trait":1}},{"Ident":["count",0]}]},{"key":{"Fun":30},"value":[{"Impl":{"Trait":1}},{"Ident":["last",0]}]},{"key":{"Fun":31},"value":[{"Impl":{"Trait":1}},{"Ident":["advance_by",0]}]},{"key":{"Fun":32},"value":[{"Impl":{"Trait":1}},{"Ident":["nth",0]}]},{"key":{"Fun":33},"value":[{"Impl":{"Trait":1}},{"Ident":["step_by",0]}]},{"key":{"TraitImpl":13},"value":[{"Impl":{"Trait":13}}]},{"key":{"Fun":111},"value":[{"Impl":{"Trait":1}},{"Ident":["chain",0]}]},{"key":{"Fun":112},"value":[{"Impl":{"Trait":1}},{"Ident":["zip",0]}]},{"key":{"Fun":113},"value":[{"Impl":{"Trait":1}},{"Ident":["intersperse",0]}]},{"key":{"Fun":114},"value":[{"Impl":{"Trait":1}},{"Ident":["intersperse_with",0]}]},{"key":{"Fun":115},"value":[{"Impl":{"Trait":1}},{"Ident":["map",0]}]},{"key":{"Fun":116},"value":[{"Impl":{"Trait":1}},{"Ident":["for_each",0]}]},{"key":{"Fun":117},"value":[{"Impl":{"Trait":1}},{"Ident":["filter",0]}]},{"key":{"Fun":118},"value":[{"Impl":{"Trait":1}},{"Ident":["filter_map",0]}]},{"key":{"Fun":119},"value":[{"Impl":{"Trait":1}},{"Ident":["enumerate",0]}]},{"key":{"Fun":120},"value":[{"Impl":{"Trait":1}},{"Ident":["peekable",0]}]},{"key":{"Fun":121},"value":[{"Impl":{"Trait":1}},{"Ident":["skip_while",0]}]},{"key":{"Fun":122},"value":[{"Impl":{"Trait":1}},{"Ident":["take_while",0]}]},{"key":{"Fun":123},"value":[{"Impl":{"Trait":1}},{"Ident":["map_while",0]}]},{"key":{"Fun":124},"value":[{"Impl":{"Trait":1}},{"Ident":["skip",0]}]},{"key":{"Fun":125},"value":[{"Impl":{"Trait":1}},{"Ident":["take",0]}]},{"key":{"Fun":126},"value":[{"Impl":{"Trait":1}},{"Ident":["scan",0]}]},{"key":{"Fun":127},"value":[{"Impl":{"Trait":1}},{"Ident":["flat_map",0]}]},{"key":{"Fun":128},"value":[{"Impl":{"Trait":1}},{"Ident":["flatten",0]}]},{"key":{"Fun":129},"value":[{"Impl":{"Trait":1}},{"Ident":["map_windows",0]}]},{"key":{"Fun":130},"value":[{"Impl":{"Trait":1}},{"Ident":["fuse",0]}]},{"key":{"Fun":131},"value":[{"Impl":{"Trait":1}},{"Ident":["inspect",0]}]},{"key":{"Fun":132},"value":[{"Impl":{"Trait":1}},{"Ident":["by_ref",0]}]},{"key":{"Fun":133},"value":[{"Impl":{"Trait":1}},{"Ident":["collect",0]}]},{"key":{"Fun":134},"value":[{"Impl":{"Trait":1}},{"Ident":["try_collect",0]}]},{"key":{"Fun":135},"value":[{"Impl":{"Trait":1}},{"Ident":["collect_into",0]}]},{"key":{"Fun":136},"value":[{"Impl":{"Trait":1}},{"Ident":["partition",0]}]},{"key":{"Fun":137},"value":[{"Impl":{"Trait":1}},{"Ident":["partition_in_place",0]}]},{"key":{"Fun":138},"value":[{"Impl":{"Trait":1}},{"Ident":["is_partitioned",0]}]},{"key":{"Fun":139},"value":[{"Impl":{"Trait":1}},{"Ident":["try_fold",0]}]},{"key":{"Fun":140},"value":[{"Impl":{"Trait":1}},{"Ident":["try_for_each",0]}]},{"key":{"Fun":141},"value":[{"Impl":{"Trait":1}},{"Ident":["fold",0]}]},{"key":{"Fun":142},"value":[{"Impl":{"Trait":1}},{"Ident":["reduce",0]}]},{"key":{"Fun":143},"value":[{"Impl":{"Trait":1}},{"Ident":["try_reduce",0]}]},{"key":{"Fun":144},"value":[{"Impl":{"Trait":1}},{"Ident":["all",0]}]},{"key":{"Fun":145},"value":[{"Impl":{"Trait":1}},{"Ident":["any",0]}]},{"key":{"Fun":146},"value":[{"Impl":{"Trait":1}},{"Ident":["find",0]}]},{"key":{"Fun":147},"value":[{"Impl":{"Trait":1}},{"Ident":["find_map",0]}]},{"key":{"Fun":148},"value":[{"Impl":{"Trait":1}},{"Ident":["try_find",0]}]},{"key":{"Fun":149},"value":[{"Impl":{"Trait":1}},{"Ident":["position",0]}]},{"key":{"Fun":150},"value":[{"Impl":{"Trait":1}},{"Ident":["rposition",0]}]},{"key":{"Fun":151},"value":[{"Impl":{"Trait":1}},{"Ident":["max",0]}]},{"key":{"Fun":152},"value":[{"Impl":{"Trait":1}},{"Ident":["min",0]}]},{"key":{"Fun":153},"value":[{"Impl":{"Trait":1}},{"Ident":["max_by_key",0]}]},{"key":{"Fun":154},"value":[{"Impl":{"Trait":1}},{"Ident":["max_by",0]}]},{"key":{"Fun":155},"value":[{"Impl":{"Trait":1}},{"Ident":["min_by_key",0]}]},{"key":{"Fun":156},"value":[{"Impl":{"Trait":1}},{"Ident":["min_by",0]}]},{"key":{"Fun":157},"value":[{"Impl":{"Trait":1}},{"Ident":["rev",0]}]},{"key":{"Fun":158},"value":[{"Impl":{"Trait":1}},{"Ident":["unzip",0]}]},{"key":{"Fun":159},"value":[{"Impl":{"Trait":1}},{"Ident":["copied",0]}]},{"key":{"Fun":160},"value":[{"Impl":{"Trait":1}},{"Ident":["cloned",0]}]},{"key":{"Fun":161},"value":[{"Impl":{"Trait":1}},{"Ident":["cycle",0]}]},{"key":{"Fun":162},"value":[{"Impl":{"Trait":1}},{"Ident":["array_chunks",0]}]},{"key":{"Fun":163},"value":[{"Impl":{"Trait":1}},{"Ident":["sum",0]}]},{"key":{"Fun":164},"value":[{"Impl":{"Trait":1}},{"Ident":["product",0]}]},{"key":{"Fun":165},"value":[{"Impl":{"Trait":1}},{"Ident":["cmp",0]}]},{"key":{"Fun":166},"value":[{"Impl":{"Trait":1}},{"Ident":["cmp_by",0]}]},{"key":{"Fun":167},"value":[{"Impl":{"Trait":1}},{"Ident":["partial_cmp",0]}]},{"key":{"Fun":168},"value":[{"Impl":{"Trait":1}},{"Ident":["partial_cmp_by",0]}]},{"key":{"Fun":169},"value":[{"Impl":{"Trait":1}},{"Ident":["eq",0]}]},{"key":{"Fun":170},"value":[{"Impl":{"Trait":1}},{"Ident":["eq_by",0]}]},{"key":{"Fun":171},"value":[{"Impl":{"Trait":1}},{"Ident":["ne",0]}]},{"key":{"Fun":172},"value":[{"Impl":{"Trait":1}},{"Ident":["lt",0]}]},{"key":{"Fun":173},"value":[{"Impl":{"Trait":1}},{"Ident":["le",0]}]},{"key":{"Fun":174},"value":[{"Impl":{"Trait":1}},{"Ident":["gt",0]}]},{"key":{"Fun":175},"value":[{"Impl":{"Trait":1}},{"Ident":["ge",0]}]},{"key":{"Fun":176},"value":[{"Impl":{"Trait":1}},{"Ident":["is_sorted",0]}]},{"key":{"Fun":177},"value":[{"Impl":{"Trait":1}},{"Ident":["is_sorted_by",0]}]},{"key":{"Fun":178},"value":[{"Impl":{"Trait":1}},{"Ident":["is_sorted_by_key",0]}]},{"key":{"Fun":179},"value":[{"Impl":{"Trait":1}},{"Ident":["__iterator_get_unchecked",0]}]},{"key":{"Global":2},"value":[{"Impl":{"Trait":2}},{"Ident":["{vtable}",0]}]},{"key":{"Global":3},"value":[{"Impl":{"Trait":3}},{"Ident":["{vtable}",0]}]},{"key":{"Fun":180},"value":[{"Impl":{"Trait":3}},{"Ident":["next_chunk",0]}]},{"key":{"Fun":181},"value":[{"Impl":{"Trait":3}},{"Ident":["size_hint",0]}]},{"key":{"Fun":182},"value":[{"Impl":{"Trait":3}},{"Ident":["count",0]}]},{"key":{"Fun":183},"value":[{"Impl":{"Trait":3}},{"Ident":["last",0]}]},{"key":{"Fun":184},"value":[{"Impl":{"Trait":3}},{"Ident":["advance_by",0]}]},{"key":{"Fun":185},"value":[{"Impl":{"Trait":3}},{"Ident":["nth",0]}]},{"key":{"Fun":186},"value":[{"Impl":{"Trait":3}},{"Ident":["step_by",0]}]},{"key":{"Fun":187},"value":[{"Impl":{"Trait":3}},{"Ident":["chain",0]}]},{"key":{"Fun":188},"value":[{"Impl":{"Trait":3}},{"Ident":["zip",0]}]},{"key":{"Fun":189},"value":[{"Impl":{"Trait":3}},{"Ident":["intersperse",0]}]},{"key":{"Fun":190},"value":[{"Impl":{"Trait":3}},{"Ident":["intersperse_with",0]}]},{"key":{"Fun":191},"value":[{"Impl":{"Trait":3}},{"Ident":["map",0]}]},{"key":{"Fun":192},"value":[{"Impl":{"Trait":3}},{"Ident":["for_each",0]}]},{"key":{"Fun":193},"value":[{"Impl":{"Trait":3}},{"Ident":["filter",0]}]},{"key":{"Fun":194},"value":[{"Impl":{"Trait":3}},{"Ident":["filter_map",0]}]},{"key":{"Fun":195},"value":[{"Impl":{"Trait":3}},{"Ident":["enumerate",0]}]},{"key":{"Fun":196},"value":[{"Impl":{"Trait":3}},{"Ident":["peekable",0]}]},{"key":{"Fun":197},"value":[{"Impl":{"Trait":3}},{"Ident":["skip_while",0]}]},{"key":{"Fun":198},"value":[{"Impl":{"Trait":3}},{"Ident":["take_while",0]}]},{"key":{"Fun":199},"value":[{"Impl":{"Trait":3}},{"Ident":["map_while",0]}]},{"key":{"Fun":200},"value":[{"Impl":{"Trait":3}},{"Ident":["skip",0]}]},{"key":{"Fun":201},"value":[{"Impl":{"Trait":3}},{"Ident":["take",0]}]},{"key":{"Fun":202},"value":[{"Impl":{"Trait":3}},{"Ident":["scan",0]}]},{"key":{"Fun":203},"value":[{"Impl":{"Trait":3}},{"Ident":["flat_map",0]}]},{"key":{"Fun":204},"value":[{"Impl":{"Trait":3}},{"Ident":["flatten",0]}]},{"key":{"Fun":205},"value":[{"Impl":{"Trait":3}},{"Ident":["map_windows",0]}]},{"key":{"Fun":206},"value":[{"Impl":{"Trait":3}},{"Ident":["fuse",0]}]},{"key":{"Fun":207},"value":[{"Impl":{"Trait":3}},{"Ident":["inspect",0]}]},{"key":{"Fun":208},"value":[{"Impl":{"Trait":3}},{"Ident":["by_ref",0]}]},{"key":{"Fun":209},"value":[{"Impl":{"Trait":3}},{"Ident":["collect",0]}]},{"key":{"Fun":210},"value":[{"Impl":{"Trait":3}},{"Ident":["try_collect",0]}]},{"key":{"Fun":211},"value":[{"Impl":{"Trait":3}},{"Ident":["collect_into",0]}]},{"key":{"Fun":212},"value":[{"Impl":{"Trait":3}},{"Ident":["partition",0]}]},{"key":{"Fun":213},"value":[{"Impl":{"Trait":3}},{"Ident":["partition_in_place",0]}]},{"key":{"Fun":214},"value":[{"Impl":{"Trait":3}},{"Ident":["is_partitioned",0]}]},{"key":{"Fun":215},"value":[{"Impl":{"Trait":3}},{"Ident":["try_fold",0]}]},{"key":{"Fun":216},"value":[{"Impl":{"Trait":3}},{"Ident":["try_for_each",0]}]},{"key":{"Fun":217},"value":[{"Impl":{"Trait":3}},{"Ident":["fold",0]}]},{"key":{"Fun":218},"value":[{"Impl":{"Trait":3}},{"Ident":["reduce",0]}]},{"key":{"Fun":219},"value":[{"Impl":{"Trait":3}},{"Ident":["try_reduce",0]}]},{"key":{"Fun":220},"value":[{"Impl":{"Trait":3}},{"Ident":["all",0]}]},{"key":{"Fun":221},"value":[{"Impl":{"Trait":3}},{"Ident":["any",0]}]},{"key":{"Fun":222},"value":[{"Impl":{"Trait":3}},{"Ident":["find",0]}]},{"key":{"Fun":223},"value":[{"Impl":{"Trait":3}},{"Ident":["find_map",0]}]},{"key":{"Fun":224},"value":[{"Impl":{"Trait":3}},{"Ident":["try_find",0]}]},{"key":{"Fun":225},"value":[{"Impl":{"Trait":3}},{"Ident":["position",0]}]},{"key":{"Fun":226},"value":[{"Impl":{"Trait":3}},{"Ident":["rposition",0]}]},{"key":{"Fun":227},"value":[{"Impl":{"Trait":3}},{"Ident":["max",0]}]},{"key":{"Fun":228},"value":[{"Impl":{"Trait":3}},{"Ident":["min",0]}]},{"key":{"Fun":229},"value":[{"Impl":{"Trait":3}},{"Ident":["max_by_key",0]}]},{"key":{"Fun":230},"value":[{"Impl":{"Trait":3}},{"Ident":["max_by",0]}]},{"key":{"Fun":231},"value":[{"Impl":{"Trait":3}},{"Ident":["min_by_key",0]}]},{"key":{"Fun":232},"value":[{"Impl":{"Trait":3}},{"Ident":["min_by",0]}]},{"key":{"Fun":233},"value":[{"Impl":{"Trait":3}},{"Ident":["rev",0]}]},{"key":{"Fun":234},"value":[{"Impl":{"Trait":3}},{"Ident":["unzip",0]}]},{"key":{"Fun":235},"value":[{"Impl":{"Trait":3}},{"Ident":["copied",0]}]},{"key":{"Fun":236},"value":[{"Impl":{"Trait":3}},{"Ident":["cloned",0]}]},{"key":{"Fun":237},"value":[{"Impl":{"Trait":3}},{"Ident":["cycle",0]}]},{"key":{"Fun":238},"value":[{"Impl":{"Trait":3}},{"Ident":["array_chunks",0]}]},{"key":{"Fun":239},"value":[{"Impl":{"Trait":3}},{"Ident":["sum",0]}]},{"key":{"Fun":240},"value":[{"Impl":{"Trait":3}},{"Ident":["product",0]}]},{"key":{"Fun":241},"value":[{"Impl":{"Trait":3}},{"Ident":["cmp",0]}]},{"key":{"Fun":242},"value":[{"Impl":{"Trait":3}},{"Ident":["cmp_by",0]}]},{"key":{"Fun":243},"value":[{"Impl":{"Trait":3}},{"Ident":["partial_cmp",0]}]},{"key":{"Fun":244},"value":[{"Impl":{"Trait":3}},{"Ident":["partial_cmp_by",0]}]},{"key":{"Fun":245},"value":[{"Impl":{"Trait":3}},{"Ident":["eq",0]}]},{"key":{"Fun":246},"value":[{"Impl":{"Trait":3}},{"Ident":["eq_by",0]}]},{"key":{"Fun":247},"value":[{"Impl":{"Trait":3}},{"Ident":["ne",0]}]},{"key":{"Fun":248},"value":[{"Impl":{"Trait":3}},{"Ident":["lt",0]}]},{"key":{"Fun":249},"value":[{"Impl":{"Trait":3}},{"Ident":["le",0]}]},{"key":{"Fun":250},"value":[{"Impl":{"Trait":3}},{"Ident":["gt",0]}]},{"key":{"Fun":251},"value":[{"Impl":{"Trait":3}},{"Ident":["ge",0]}]},{"key":{"Fun":252},"value":[{"Impl":{"Trait":3}},{"Ident":["is_sorted",0]}]},{"key":{"Fun":253},"value":[{"Impl":{"Trait":3}},{"Ident":["is_sorted_by",0]}]},{"key":{"Fun":254},"value":[{"Impl":{"Trait":3}},{"Ident":["is_sorted_by_key",0]}]},{"key":{"Fun":255},"value":[{"Impl":{"Trait":3}},{"Ident":["__iterator_get_unchecked",0]}]},{"key":{"Fun":256},"value":[{"Impl":{"Trait":4}},{"Ident":["drop_in_place",0]}]},{"key":{"Global":4},"value":[{"Impl":{"Trait":5}},{"Ident":["{vtable}",0]}]},{"key":{"Fun":257},"value":[{"Impl":{"Trait":6}},{"Ident":["from_output",0]}]},{"key":{"Fun":259},"value":[{"Impl":{"Trait":8}},{"Ident":["from",0]}]},{"key":{"Fun":260},"value":[{"Impl":{"Trait":9}},{"Ident":["call_once",0]}]},{"key":{"Fun":262},"value":[{"Impl":{"Trait":10}},{"Ident":["drop_in_place",0]}]},{"key":{"Fun":263},"value":[{"Impl":{"Trait":11}},{"Ident":["from_output",0]}]},{"key":{"TraitImpl":14},"value":[{"Impl":{"Trait":14}}]},{"key":{"TraitImpl":15},"value":[{"Impl":{"Trait":15}}]},{"key":{"TraitImpl":16},"value":[{"Impl":{"Trait":16}}]},{"key":{"TraitImpl":17},"value":[{"Impl":{"Trait":17}}]},{"key":{"Global":5},"value":[{"Impl":{"Trait":15}},{"Ident":["{vtable}",0]}]},{"key":{"TraitImpl":18},"value":[{"Impl":{"Trait":18}}]},{"key":{"Fun":304},"value":[{"Impl":{"Trait":17}},{"Ident":["clone",0]}]},{"key":{"Fun":305},"value":[{"Impl":{"Trait":17}},{"Ident":["clone_from",0]}]},{"key":{"Fun":306},"value":[{"Impl":{"Trait":18}},{"Ident":["clone",0]}]},{"key":{"Fun":307},"value":[{"Impl":{"Trait":18}},{"Ident":["clone_from",0]}]},{"key":{"TraitDecl":0},"value":[{"Ident":["Sized",0]}]},{"key":{"TraitDecl":24},"value":[{"Ident":["FromResidual",0]}]},{"key":{"Fun":281},"value":[{"Ident":["rfind",0]}]},{"key":{"Type":21},"value":[{"Ident":["Filter",0]}]},{"key":{"Fun":3},"value":[{"Ident":["array_of_refs_sum",0]}]},{"key":{"TraitDecl":8},"value":[{"Ident":["Clone",0]}]},{"key":{"Fun":274},"value":[{"Ident":["extend_one_unchecked",0]}]},{"key":{"Fun":275},"value":[{"Ident":["default",0]}]},{"key":{"Type":4},"value":[{"Ident":["HostRegistry",0]}]},{"key":{"Fun":277},"value":[{"Ident":["advance_back_by",0]}]},{"key":{"Fun":283},"value":[{"Ident":["is_empty",0]}]},{"key":{"Type":19},"value":[{"Ident":["IntersperseWith",0]}]},{"key":{"TraitDecl":4},"value":[{"Ident":["From",0]}]},{"key":{"Type":20},"value":[{"Ident":["Map",0]}]},{"key":{"TraitDecl":5},"value":[{"Ident":["FnOnce",0]}]},{"key":{"Type":5},"value":[{"Ident":["Result",0]}]},{"key":{"Fun":10},"value":[{"Ident":["option_source",0]}]},{"key":{"Fun":1},"value":[{"Ident":["branch_loop_sum",0]}]},{"key":{"Type":14},"value":[{"Ident":["NonZero",0]}]},{"key":{"TraitDecl":7},"value":[{"Ident":["ZeroablePrimitive",0]}]},{"key":{"TraitDecl":19},"value":[{"Ident":["Sum",0]}]},{"key":{"TraitDecl":22},"value":[{"Ident":["PartialEq",0]}]},{"key":{"Fun":279},"value":[{"Ident":["try_rfold",0]}]},{"key":{"TraitDecl":27},"value":[{"Ident":["Eq",0]}]},{"key":{"Fun":295},"value":[{"Ident":["__chaining_lt",0]}]},{"key":{"Fun":303},"value":[{"Ident":["assert_receiver_is_total_eq",0]}]},{"key":{"Type":8},"value":[{"Ident":["IntoIter",0]}]},{"key":{"Fun":24},"value":[{"Ident":["then_some",0]}]},{"key":{"Type":2},"value":[{"Ident":["Token",0]}]},{"key":{"TraitDecl":9},"value":[{"Ident":["FnMut",0]}]},{"key":{"Fun":297},"value":[{"Ident":["__chaining_gt",0]}]},{"key":{"Type":36},"value":[{"Ident":["Ordering",0]}]},{"key":{"Type":39},"value":[{"Ident":["Cloned",0]}]},{"key":{"Fun":8},"value":[{"Ident":["bool_then_closure",0]}]},{"key":{"Fun":280},"value":[{"Ident":["rfold",0]}]},{"key":{"Fun":6},"value":[{"Ident":["desugar_mix",0]}]},{"key":{"TraitDecl":20},"value":[{"Ident":["Product",0]}]},{"key":{"Type":6},"value":[{"Ident":["Iter",0]}]},{"key":{"Type":9},"value":[{"Ident":["ControlFlow",0]}]},{"key":{"TraitDecl":3},"value":[{"Ident":["Iterator",0]}]},{"key":{"Type":3},"value":[{"Ident":["HostCallback",0]}]},{"key":{"Type":11},"value":[{"Ident":["closure",0]}]},{"key":{"Type":26},"value":[{"Ident":["TakeWhile",0]}]},{"key":{"Fun":12},"value":[{"Ident":["host_registry_dispatch",0]}]},{"key":{"TraitDecl":11},"value":[{"Ident":["Try",0]}]},{"key":{"Type":44},"value":[{"Ident":["NonZeroUsizeInner",0]}]},{"key":{"Fun":268},"value":[{"Ident":["from_iter",0]}]},{"key":{"Type":27},"value":[{"Ident":["MapWhile",0]}]},{"key":{"Type":31},"value":[{"Ident":["FlatMap",0]}]},{"key":{"Type":1},"value":[{"Ident":["Strategy",0]}]},{"key":{"Type":15},"value":[{"Ident":["StepBy",0]}]},{"key":{"TraitDecl":10},"value":[{"Ident":["FromIterator",0]}]},{"key":{"Type":41},"value":[{"Ident":["ArrayChunks",0]}]},{"key":{"Fun":271},"value":[{"Ident":["extend",0]}]},{"key":{"TraitDecl":23},"value":[{"Ident":["TrustedRandomAccessNoCoerce",0]}]},{"key":{"Type":28},"value":[{"Ident":["Skip",0]}]},{"key":{"Fun":11},"value":[{"Ident":["option_question_mark",0]}]},{"key":{"Fun":19},"value":[{"Ident":["iter",0]}]},{"key":{"Fun":276},"value":[{"Ident":["next_back",0]}]},{"key":{"Fun":287},"value":[{"Ident":["clamp",0]}]},{"key":{"TraitDecl":21},"value":[{"Ident":["PartialOrd",0]}]},{"key":{"Fun":7},"value":[{"Ident":["tuple_roundtrip",0]}]},{"key":{"Type":23},"value":[{"Ident":["Enumerate",0]}]},{"key":{"Type":24},"value":[{"Ident":["Peekable",0]}]},{"key":{"Fun":278},"value":[{"Ident":["nth_back",0]}]},{"key":{"TraitDecl":1},"value":[{"Ident":["MetaSized",0]}]},{"key":{"Type":30},"value":[{"Ident":["Scan",0]}]},{"key":{"TraitDecl":18},"value":[{"Ident":["Copy",0]}]},{"key":{"Type":40},"value":[{"Ident":["Cycle",0]}]},{"key":{"Type":33},"value":[{"Ident":["MapWindows",0]}]},{"key":{"TraitDecl":26},"value":[{"Ident":["Sealed",0]}]},{"key":{"Fun":4},"value":[{"Ident":["strategy_len",0]}]},{"key":{"Fun":301},"value":[{"Ident":["size",0]}]},{"key":{"TraitDecl":6},"value":[{"Ident":["IntoIterator",0]}]},{"key":{"Type":29},"value":[{"Ident":["Take",0]}]},{"key":{"TraitDecl":2},"value":[{"Ident":["Destruct",0]}]},{"key":{"Fun":298},"value":[{"Ident":["__chaining_ge",0]}]},{"key":{"Type":0},"value":[{"Ident":["PyResult",0]}]},{"key":{"Type":10},"value":[{"Ident":["Infallible",0]}]},{"key":{"Fun":2},"value":[{"Ident":["slice_of_refs_sum",0]}]},{"key":{"TraitDecl":14},"value":[{"Ident":["Default",0]}]},{"key":{"Fun":282},"value":[{"Ident":["len",0]}]},{"key":{"Fun":296},"value":[{"Ident":["__chaining_le",0]}]},{"key":{"Type":18},"value":[{"Ident":["Intersperse",0]}]},{"key":{"Type":16},"value":[{"Ident":["Chain",0]}]},{"key":{"Type":25},"value":[{"Ident":["SkipWhile",0]}]},{"key":{"Type":34},"value":[{"Ident":["Fuse",0]}]},{"key":{"Type":17},"value":[{"Ident":["Zip",0]}]},{"key":{"TraitDecl":16},"value":[{"Ident":["ExactSizeIterator",0]}]},{"key":{"TraitDecl":13},"value":[{"Ident":["Extend",0]}]},{"key":{"Fun":23},"value":[{"Ident":["then",0]}]},{"key":{"Fun":13},"value":[{"Ident":["host_registry_dispatch_optional",0]}]},{"key":{"Fun":5},"value":[{"Ident":["parse_one",0]}]},{"key":{"TraitDecl":12},"value":[{"Ident":["Residual",0]}]},{"key":{"Type":37},"value":[{"Ident":["Rev",0]}]},{"key":{"Type":38},"value":[{"Ident":["Copied",0]}]},{"key":{"TraitDecl":25},"value":[{"Ident":["Tuple",0]}]},{"key":{"Type":22},"value":[{"Ident":["FilterMap",0]}]},{"key":{"Fun":272},"value":[{"Ident":["extend_one",0]}]},{"key":{"Fun":0},"value":[{"Ident":["straight_line_add",0]}]},{"key":{"Type":35},"value":[{"Ident":["Inspect",0]}]},{"key":{"Fun":267},"value":[{"Ident":["call_mut",0]}]},{"key":{"Fun":273},"value":[{"Ident":["extend_reserve",0]}]},{"key":{"Type":32},"value":[{"Ident":["Flatten",0]}]},{"key":{"Fun":9},"value":[{"Ident":["bool_then_some",0]}]},{"key":{"Type":7},"value":[{"Ident":["Option",0]}]},{"key":{"TraitDecl":17},"value":[{"Ident":["Ord",0]}]},{"key":{"TraitDecl":15},"value":[{"Ident":["DoubleEndedIterator",0]}]}],"type_decls":[{"def_id":0,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["PyResult",0]}],"span":{"data":{"file_id":0,"beg":{"line":10,"col":0},"end":{"line":10,"col":47}},"generated_from_span":null},"source_text":"pub type PyResult = Result;","attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":0,"beg":{"line":10,"col":18},"end":{"line":10,"col":19}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":{"Alias":{"HashConsedValue":[6986,{"Adt":{"id":{"Adt":5},"generics":{"regions":[],"types":[{"Deduplicated":220},{"HashConsedValue":[222,{"Ref":["Static",{"HashConsedValue":[221,{"Adt":{"id":{"Builtin":"Str"},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}}]},"Shared"]}]}],"const_generics":[],"trait_refs":[{"HashConsedValue":[223,{"kind":{"Clause":{"Bound":[0,0]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}]},{"HashConsedValue":[229,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[228,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"HashConsedValue":[227,{"Ref":["Erased",{"Deduplicated":221},"Shared"]}]}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":222}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},"layout":[],"ptr_metadata":"None"},{"def_id":1,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["Strategy",0]}],"span":{"data":{"file_id":0,"beg":{"line":60,"col":0},"end":{"line":64,"col":1}},"generated_from_span":null},"source_text":"pub enum Strategy {\n Empty,\n IntKeyed { len: usize },\n StrKeyed { len: usize, capacity: usize },\n}","attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":{"Enum":[{"id":0,"span":{"data":{"file_id":0,"beg":{"line":61,"col":4},"end":{"line":61,"col":9}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"Empty","fields":[],"discriminant":{"Scalar":{"Signed":["Isize","0"]}}},{"id":1,"span":{"data":{"file_id":0,"beg":{"line":62,"col":4},"end":{"line":62,"col":12}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"IntKeyed","fields":[{"span":{"data":{"file_id":0,"beg":{"line":62,"col":15},"end":{"line":62,"col":25}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"len","ty":{"HashConsedValue":[775,{"Literal":{"UInt":"Usize"}}]}}],"discriminant":{"Scalar":{"Signed":["Isize","1"]}}},{"id":2,"span":{"data":{"file_id":0,"beg":{"line":63,"col":4},"end":{"line":63,"col":12}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"StrKeyed","fields":[{"span":{"data":{"file_id":0,"beg":{"line":63,"col":15},"end":{"line":63,"col":25}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"len","ty":{"Deduplicated":775}},{"span":{"data":{"file_id":0,"beg":{"line":63,"col":27},"end":{"line":63,"col":42}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"capacity","ty":{"Deduplicated":775}}],"discriminant":{"Scalar":{"Signed":["Isize","2"]}}}]},"layout":[{"key":"aarch64-apple-darwin","value":{"size":24,"align":8,"discriminator":{"Branch":{"offset":0,"int_ty":{"Unsigned":"U64"},"children":[[{"start":{"Unsigned":["U64","0"]},"end":{"Unsigned":["U64","0"]}},{"Known":0}],[{"start":{"Unsigned":["U64","1"]},"end":{"Unsigned":["U64","1"]}},{"Known":1}],[{"start":{"Unsigned":["U64","2"]},"end":{"Unsigned":["U64","2"]}},{"Known":2}]],"fallback":"Invalid"}},"uninhabited":false,"variant_layouts":[{"field_offsets":[],"uninhabited":false,"tagger":[[0,{"Unsigned":["U64","0"]}]]},{"field_offsets":[8],"uninhabited":false,"tagger":[[0,{"Unsigned":["U64","1"]}]]},{"field_offsets":[8,16],"uninhabited":false,"tagger":[[0,{"Unsigned":["U64","2"]}]]}],"repr":{"repr_algo":"Rust","align_modif":null,"transparent":false,"explicit_discr_type":false}}}],"ptr_metadata":"None"},{"def_id":2,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["Token",0]}],"span":{"data":{"file_id":0,"beg":{"line":76,"col":0},"end":{"line":80,"col":1}},"generated_from_span":null},"source_text":"pub enum Token {\n Add(i64),\n Sub(i64),\n Halt,\n}","attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":{"Enum":[{"id":0,"span":{"data":{"file_id":0,"beg":{"line":77,"col":4},"end":{"line":77,"col":7}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"Add","fields":[{"span":{"data":{"file_id":0,"beg":{"line":77,"col":8},"end":{"line":77,"col":11}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":null,"ty":{"HashConsedValue":[231,{"Literal":{"Int":"I64"}}]}}],"discriminant":{"Scalar":{"Signed":["Isize","0"]}}},{"id":1,"span":{"data":{"file_id":0,"beg":{"line":78,"col":4},"end":{"line":78,"col":7}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"Sub","fields":[{"span":{"data":{"file_id":0,"beg":{"line":78,"col":8},"end":{"line":78,"col":11}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":null,"ty":{"Deduplicated":231}}],"discriminant":{"Scalar":{"Signed":["Isize","1"]}}},{"id":2,"span":{"data":{"file_id":0,"beg":{"line":79,"col":4},"end":{"line":79,"col":8}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"Halt","fields":[],"discriminant":{"Scalar":{"Signed":["Isize","2"]}}}]},"layout":[{"key":"aarch64-apple-darwin","value":{"size":16,"align":8,"discriminator":{"Branch":{"offset":0,"int_ty":{"Unsigned":"U64"},"children":[[{"start":{"Unsigned":["U64","0"]},"end":{"Unsigned":["U64","0"]}},{"Known":0}],[{"start":{"Unsigned":["U64","1"]},"end":{"Unsigned":["U64","1"]}},{"Known":1}],[{"start":{"Unsigned":["U64","2"]},"end":{"Unsigned":["U64","2"]}},{"Known":2}]],"fallback":"Invalid"}},"uninhabited":false,"variant_layouts":[{"field_offsets":[8],"uninhabited":false,"tagger":[[0,{"Unsigned":["U64","0"]}]]},{"field_offsets":[8],"uninhabited":false,"tagger":[[0,{"Unsigned":["U64","1"]}]]},{"field_offsets":[],"uninhabited":false,"tagger":[[0,{"Unsigned":["U64","2"]}]]}],"repr":{"repr_algo":"Rust","align_modif":null,"transparent":false,"explicit_discr_type":false}}}],"ptr_metadata":"None"},{"def_id":3,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["HostCallback",0]}],"span":{"data":{"file_id":0,"beg":{"line":157,"col":0},"end":{"line":157,"col":39}},"generated_from_span":null},"source_text":"pub type HostCallback = fn(i64) -> i64;","attr_info":{"attributes":[{"DocComment":" The callback a host installs at run time. A bare `fn` pointer, so the set"},{"DocComment":" of addresses that can reach a call through it is not recoverable from this"},{"DocComment":" artifact — the shape used by host-settable callback hooks."}],"inline":null,"rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":{"Alias":{"HashConsedValue":[2011,{"FnPtr":{"regions":[],"skip_binder":{"is_unsafe":false,"inputs":[{"Deduplicated":231}],"output":{"Deduplicated":231}}}}]}},"layout":[{"key":"aarch64-apple-darwin","value":{"size":8,"align":8,"discriminator":{"Known":0},"uninhabited":false,"variant_layouts":[],"repr":{"repr_algo":"Rust","align_modif":null,"transparent":false,"explicit_discr_type":false}}}],"ptr_metadata":"None"},{"def_id":4,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["HostRegistry",0]}],"span":{"data":{"file_id":0,"beg":{"line":159,"col":0},"end":{"line":162,"col":1}},"generated_from_span":null},"source_text":"pub struct HostRegistry {\n pub slot: HostCallback,\n pub maybe_slot: Option,\n}","attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":{"Struct":[{"span":{"data":{"file_id":0,"beg":{"line":160,"col":4},"end":{"line":160,"col":26}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"slot","ty":{"Deduplicated":2011}},{"span":{"data":{"file_id":0,"beg":{"line":161,"col":4},"end":{"line":161,"col":40}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"maybe_slot","ty":{"HashConsedValue":[2015,{"Adt":{"id":{"Adt":7},"generics":{"regions":[],"types":[{"Deduplicated":2011}],"const_generics":[],"trait_refs":[{"HashConsedValue":[2014,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[2013,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":2011}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2011}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}}]},"layout":[{"key":"aarch64-apple-darwin","value":{"size":16,"align":8,"discriminator":{"Known":0},"uninhabited":false,"variant_layouts":[{"field_offsets":[0,8],"uninhabited":false,"tagger":[]}],"repr":{"repr_algo":"Rust","align_modif":null,"transparent":false,"explicit_discr_type":false}}}],"ptr_metadata":"None"},{"def_id":5,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["result",0]},{"Ident":["Result",0]}],"span":{"data":{"file_id":3,"beg":{"line":557,"col":0},"end":{"line":557,"col":21}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" `Result` is a type that represents either success ([`Ok`]) or failure ([`Err`])."},{"DocComment":""},{"DocComment":" See the [module documentation](self) for details."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"Result"},"generics":{"regions":[],"types":[{"index":0,"name":"T"},{"index":1,"name":"E"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":3,"beg":{"line":557,"col":16},"end":{"line":557,"col":17}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":3,"beg":{"line":557,"col":19},"end":{"line":557,"col":20}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[2023,{"TypeVar":{"Bound":[1,1]}}]}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":{"Enum":[{"id":0,"span":{"data":{"file_id":3,"beg":{"line":561,"col":4},"end":{"line":561,"col":6}},"generated_from_span":null},"attr_info":{"attributes":[{"DocComment":" Contains the success value"}],"inline":null,"rename":null,"public":true},"name":"Ok","fields":[{"span":{"data":{"file_id":3,"beg":{"line":561,"col":53},"end":{"line":561,"col":54}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":null,"ty":{"Deduplicated":220}}],"discriminant":{"Scalar":{"Signed":["Isize","0"]}}},{"id":1,"span":{"data":{"file_id":3,"beg":{"line":566,"col":4},"end":{"line":566,"col":7}},"generated_from_span":null},"attr_info":{"attributes":[{"DocComment":" Contains the error value"}],"inline":null,"rename":null,"public":true},"name":"Err","fields":[{"span":{"data":{"file_id":3,"beg":{"line":566,"col":54},"end":{"line":566,"col":55}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":null,"ty":{"HashConsedValue":[2027,{"TypeVar":{"Bound":[0,1]}}]}}],"discriminant":{"Scalar":{"Signed":["Isize","1"]}}}]},"layout":[],"ptr_metadata":"None"},{"def_id":6,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Ident":["Iter",0]}],"span":{"data":{"file_id":4,"beg":{"line":69,"col":0},"end":{"line":69,"col":26}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Immutable slice iterator"},{"DocComment":""},{"DocComment":" This struct is created by the [`iter`] method on [slices]."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" Basic usage:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" // First, we need a slice to call the `iter` method on:"},{"DocComment":" let slice = &[1, 2, 3];"},{"DocComment":""},{"DocComment":" // Then we call `iter` on the slice to get the `Iter` iterator,"},{"DocComment":" // and iterate over it:"},{"DocComment":" for element in slice.iter() {"},{"DocComment":" println!(\"{element}\");"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" // This for loop actually already works without calling `iter`:"},{"DocComment":" for element in slice {"},{"DocComment":" println!(\"{element}\");"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" [`iter`]: slice::iter"},{"DocComment":" [slices]: slice"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"SliceIter"},"generics":{"regions":[{"index":0,"name":"'a","mutability":"Shared"}],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":4,"beg":{"line":69,"col":20},"end":{"line":69,"col":21}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[{"regions":[],"skip_binder":[{"Deduplicated":188},{"Var":{"Bound":[1,0]}}]},{"regions":[],"skip_binder":[{"Deduplicated":188},{"Var":{"Bound":[1,0]}}]}],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[{"key":"aarch64-apple-darwin","value":{"size":16,"align":8,"discriminator":{"Known":0},"uninhabited":false,"variant_layouts":[{"field_offsets":[0,8,16],"uninhabited":false,"tagger":[]}],"repr":{"repr_algo":"Rust","align_modif":null,"transparent":false,"explicit_discr_type":false}}}],"ptr_metadata":"None"},{"def_id":7,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["option",0]},{"Ident":["Option",0]}],"span":{"data":{"file_id":6,"beg":{"line":600,"col":0},"end":{"line":600,"col":18}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" The `Option` type. See [the module level documentation](self) for more."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"Option"},"generics":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":6,"beg":{"line":600,"col":16},"end":{"line":600,"col":17}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":{"Enum":[{"id":0,"span":{"data":{"file_id":6,"beg":{"line":604,"col":4},"end":{"line":604,"col":8}},"generated_from_span":null},"attr_info":{"attributes":[{"DocComment":" No value."}],"inline":null,"rename":null,"public":true},"name":"None","fields":[],"discriminant":{"Scalar":{"Signed":["Isize","0"]}}},{"id":1,"span":{"data":{"file_id":6,"beg":{"line":608,"col":4},"end":{"line":608,"col":8}},"generated_from_span":null},"attr_info":{"attributes":[{"DocComment":" Some value of type `T`."}],"inline":null,"rename":null,"public":true},"name":"Some","fields":[{"span":{"data":{"file_id":6,"beg":{"line":608,"col":55},"end":{"line":608,"col":56}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":null,"ty":{"Deduplicated":220}}],"discriminant":{"Scalar":{"Signed":["Isize","1"]}}}]},"layout":[],"ptr_metadata":"None"},{"def_id":8,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Ident":["IntoIter",0]}],"span":{"data":{"file_id":8,"beg":{"line":20,"col":0},"end":{"line":20,"col":38}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" A by-value [array] iterator."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"ArrayIntoIter"},"generics":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[{"index":0,"name":"N","ty":{"Deduplicated":775}}],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":8,"beg":{"line":20,"col":20},"end":{"line":20,"col":21}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":9,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["control_flow",0]},{"Ident":["ControlFlow",0]}],"span":{"data":{"file_id":10,"beg":{"line":89,"col":0},"end":{"line":89,"col":31}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Used to tell an operation whether it should exit early or go on as usual."},{"DocComment":""},{"DocComment":" This is used when exposing things (like graph traversals or visitors) where"},{"DocComment":" you want the user to be able to choose whether to exit early."},{"DocComment":" Having the enum makes it clearer -- no more wondering \"wait, what did `false`"},{"DocComment":" mean again?\" -- and allows including a value."},{"DocComment":""},{"DocComment":" Similar to [`Option`] and [`Result`], this enum can be used with the `?` operator"},{"DocComment":" to return immediately if the [`Break`] variant is present or otherwise continue normally"},{"DocComment":" with the value inside the [`Continue`] variant."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" Early-exiting from [`Iterator::try_for_each`]:"},{"DocComment":" ```"},{"DocComment":" use std::ops::ControlFlow;"},{"DocComment":""},{"DocComment":" let r = (2..100).try_for_each(|x| {"},{"DocComment":" if 403 % x == 0 {"},{"DocComment":" return ControlFlow::Break(x)"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" ControlFlow::Continue(())"},{"DocComment":" });"},{"DocComment":" assert_eq!(r, ControlFlow::Break(13));"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" A basic tree traversal:"},{"DocComment":" ```"},{"DocComment":" use std::ops::ControlFlow;"},{"DocComment":""},{"DocComment":" pub struct TreeNode {"},{"DocComment":" value: T,"},{"DocComment":" left: Option>>,"},{"DocComment":" right: Option>>,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl TreeNode {"},{"DocComment":" pub fn traverse_inorder(&self, f: &mut impl FnMut(&T) -> ControlFlow) -> ControlFlow {"},{"DocComment":" if let Some(left) = &self.left {"},{"DocComment":" left.traverse_inorder(f)?;"},{"DocComment":" }"},{"DocComment":" f(&self.value)?;"},{"DocComment":" if let Some(right) = &self.right {"},{"DocComment":" right.traverse_inorder(f)?;"},{"DocComment":" }"},{"DocComment":" ControlFlow::Continue(())"},{"DocComment":" }"},{"DocComment":" fn leaf(value: T) -> Option>> {"},{"DocComment":" Some(Box::new(Self { value, left: None, right: None }))"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" let node = TreeNode {"},{"DocComment":" value: 0,"},{"DocComment":" left: TreeNode::leaf(1),"},{"DocComment":" right: Some(Box::new(TreeNode {"},{"DocComment":" value: -1,"},{"DocComment":" left: TreeNode::leaf(5),"},{"DocComment":" right: TreeNode::leaf(2),"},{"DocComment":" }))"},{"DocComment":" };"},{"DocComment":" let mut sum = 0;"},{"DocComment":""},{"DocComment":" let res = node.traverse_inorder(&mut |val| {"},{"DocComment":" if *val < 0 {"},{"DocComment":" ControlFlow::Break(*val)"},{"DocComment":" } else {"},{"DocComment":" sum += *val;"},{"DocComment":" ControlFlow::Continue(())"},{"DocComment":" }"},{"DocComment":" });"},{"DocComment":" assert_eq!(res, ControlFlow::Break(-1));"},{"DocComment":" assert_eq!(sum, 6);"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" [`Break`]: ControlFlow::Break"},{"DocComment":" [`Continue`]: ControlFlow::Continue"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"ControlFlow"},"generics":{"regions":[],"types":[{"index":0,"name":"B"},{"index":1,"name":"C"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":10,"beg":{"line":89,"col":21},"end":{"line":89,"col":22}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":10,"beg":{"line":89,"col":24},"end":{"line":89,"col":30}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":{"Enum":[{"id":0,"span":{"data":{"file_id":10,"beg":{"line":93,"col":4},"end":{"line":93,"col":12}},"generated_from_span":null},"attr_info":{"attributes":[{"DocComment":" Move on to the next phase of the operation as normal."}],"inline":null,"rename":null,"public":true},"name":"Continue","fields":[{"span":{"data":{"file_id":10,"beg":{"line":93,"col":13},"end":{"line":93,"col":14}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":null,"ty":{"Deduplicated":2027}}],"discriminant":{"Scalar":{"Signed":["Isize","0"]}}},{"id":1,"span":{"data":{"file_id":10,"beg":{"line":97,"col":4},"end":{"line":97,"col":9}},"generated_from_span":null},"attr_info":{"attributes":[{"DocComment":" Exit the operation without running subsequent phases."}],"inline":null,"rename":null,"public":true},"name":"Break","fields":[{"span":{"data":{"file_id":10,"beg":{"line":97,"col":10},"end":{"line":97,"col":11}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":null,"ty":{"Deduplicated":220}}],"discriminant":{"Scalar":{"Signed":["Isize","1"]}}}]},"layout":[],"ptr_metadata":"None"},{"def_id":10,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["convert",0]},{"Ident":["Infallible",0]}],"span":{"data":{"file_id":12,"beg":{"line":930,"col":0},"end":{"line":930,"col":19}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" The error type for errors that can never happen."},{"DocComment":""},{"DocComment":" Since this enum has no variant, a value of this type can never actually exist."},{"DocComment":" This can be useful for generic APIs that use [`Result`] and parameterize the error type,"},{"DocComment":" to indicate that the result is always [`Ok`]."},{"DocComment":""},{"DocComment":" For example, the [`TryFrom`] trait (conversion that returns a [`Result`])"},{"DocComment":" has a blanket implementation for all types where a reverse [`Into`] implementation exists."},{"DocComment":""},{"DocComment":" ```ignore (illustrates std code, duplicating the impl in a doctest would be an error)"},{"DocComment":" impl TryFrom for T where U: Into {"},{"DocComment":" type Error = Infallible;"},{"DocComment":""},{"DocComment":" fn try_from(value: U) -> Result {"},{"DocComment":" Ok(U::into(value)) // Never returns `Err`"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" # Future compatibility"},{"DocComment":""},{"DocComment":" This enum has the same role as [the `!` “never” type][never],"},{"DocComment":" which is unstable in this version of Rust."},{"DocComment":" When `!` is stabilized, we plan to make `Infallible` a type alias to it:"},{"DocComment":""},{"DocComment":" ```ignore (illustrates future std change)"},{"DocComment":" pub type Infallible = !;"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" … and eventually deprecate `Infallible`."},{"DocComment":""},{"DocComment":" However there is one case where `!` syntax can be used"},{"DocComment":" before `!` is stabilized as a full-fledged type: in the position of a function’s return type."},{"DocComment":" Specifically, it is possible to have implementations for two different function pointer types:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" trait MyTrait {}"},{"DocComment":" impl MyTrait for fn() -> ! {}"},{"DocComment":" impl MyTrait for fn() -> std::convert::Infallible {}"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" With `Infallible` being an enum, this code is valid."},{"DocComment":" However when `Infallible` becomes an alias for the never type,"},{"DocComment":" the two `impl`s will start to overlap"},{"DocComment":" and therefore will be disallowed by the language’s trait coherence rules."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":{"Enum":[]},"layout":[{"key":"aarch64-apple-darwin","value":{"size":0,"align":1,"discriminator":null,"uninhabited":true,"variant_layouts":[],"repr":{"repr_algo":"Rust","align_modif":null,"transparent":false,"explicit_discr_type":false}}}],"ptr_metadata":"None"},{"def_id":11,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["bool_then_closure",0]},{"Ident":["closure",0]}],"span":{"data":{"file_id":0,"beg":{"line":126,"col":11},"end":{"line":126,"col":19}},"generated_from_span":null},"source_text":"|| x + 1","attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":{"Closure":{"info":{"kind":"FnOnce","fn_once_impl":{"regions":[],"skip_binder":{"id":9,"generics":{"regions":[{"Var":{"Bound":[1,0]}}],"types":[],"const_generics":[],"trait_refs":[]}}},"fn_mut_impl":null,"fn_impl":null,"signature":{"regions":[],"skip_binder":{"is_unsafe":false,"inputs":[],"output":{"Deduplicated":231}}}}}},"kind":{"Struct":[{"span":{"data":{"file_id":0,"beg":{"line":126,"col":11},"end":{"line":126,"col":19}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"name":null,"ty":{"HashConsedValue":[774,{"Ref":[{"Var":{"Bound":[0,0]}},{"Deduplicated":231},"Shared"]}]}}]},"layout":[{"key":"aarch64-apple-darwin","value":{"size":8,"align":8,"discriminator":{"Known":0},"uninhabited":false,"variant_layouts":[{"field_offsets":[0],"uninhabited":false,"tagger":[]}],"repr":{"repr_algo":"Rust","align_modif":null,"transparent":false,"explicit_discr_type":false}}}],"ptr_metadata":"None"},null,null,{"def_id":14,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["num",0]},{"Ident":["nonzero",0]},{"Ident":["NonZero",0]}],"span":{"data":{"file_id":19,"beg":{"line":127,"col":0},"end":{"line":127,"col":40}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" A value that is known not to equal zero."},{"DocComment":""},{"DocComment":" This enables some memory layout optimization."},{"DocComment":" For example, `Option>` is the same size as `u32`:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" use core::{num::NonZero};"},{"DocComment":""},{"DocComment":" assert_eq!(size_of::>>(), size_of::());"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" # Layout"},{"DocComment":""},{"DocComment":" `NonZero` is guaranteed to have the same layout and bit validity as `T`"},{"DocComment":" with the exception that the all-zero bit pattern is invalid."},{"DocComment":" `Option>` is guaranteed to be compatible with `T`, including in"},{"DocComment":" FFI."},{"DocComment":""},{"DocComment":" Thanks to the [null pointer optimization], `NonZero` and"},{"DocComment":" `Option>` are guaranteed to have the same size and alignment:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" use std::num::NonZero;"},{"DocComment":""},{"DocComment":" assert_eq!(size_of::>(), size_of::>>());"},{"DocComment":" assert_eq!(align_of::>(), align_of::>>());"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" [null pointer optimization]: crate::option#representation"},{"DocComment":""},{"DocComment":" # Note on generic usage"},{"DocComment":""},{"DocComment":" `NonZero` can only be used with some standard library primitive types"},{"DocComment":" (such as `u8`, `i32`, and etc.). The type parameter `T` must implement the"},{"DocComment":" internal trait [`ZeroablePrimitive`], which is currently permanently unstable"},{"DocComment":" and cannot be implemented by users. Therefore, you cannot use `NonZero`"},{"DocComment":" with your own types, nor can you implement traits for all `NonZero`,"},{"DocComment":" only for concrete types."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"NonZero"},"generics":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":19,"beg":{"line":127,"col":19},"end":{"line":127,"col":20}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":19,"beg":{"line":127,"col":22},"end":{"line":127,"col":39}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":7,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":15,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["step_by",0]},{"Ident":["StepBy",0]}],"span":{"data":{"file_id":21,"beg":{"line":16,"col":0},"end":{"line":16,"col":20}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator for stepping iterators by a custom amount."},{"DocComment":""},{"DocComment":" This `struct` is created by the [`step_by`] method on [`Iterator`]. See"},{"DocComment":" its documentation for more."},{"DocComment":""},{"DocComment":" [`step_by`]: Iterator::step_by"},{"DocComment":" [`Iterator`]: trait.Iterator.html"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":21,"beg":{"line":16,"col":18},"end":{"line":16,"col":19}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":16,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["chain",0]},{"Ident":["Chain",0]}],"span":{"data":{"file_id":23,"beg":{"line":23,"col":0},"end":{"line":23,"col":22}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator that links two iterators together, in a chain."},{"DocComment":""},{"DocComment":" This `struct` is created by [`chain`] or [`Iterator::chain`]. See their"},{"DocComment":" documentation for more."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" use std::iter::Chain;"},{"DocComment":" use std::slice::Iter;"},{"DocComment":""},{"DocComment":" let a1 = [1, 2, 3];"},{"DocComment":" let a2 = [4, 5, 6];"},{"DocComment":" let iter: Chain, Iter<'_, _>> = a1.iter().chain(a2.iter());"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"A"},{"index":1,"name":"B"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":23,"beg":{"line":23,"col":17},"end":{"line":23,"col":18}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":23,"beg":{"line":23,"col":20},"end":{"line":23,"col":21}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":17,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["zip",0]},{"Ident":["Zip",0]}],"span":{"data":{"file_id":24,"beg":{"line":15,"col":0},"end":{"line":15,"col":20}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator that iterates two other iterators simultaneously."},{"DocComment":""},{"DocComment":" This `struct` is created by [`zip`] or [`Iterator::zip`]."},{"DocComment":" See their documentation for more."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"A"},{"index":1,"name":"B"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":24,"beg":{"line":15,"col":15},"end":{"line":15,"col":16}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":24,"beg":{"line":15,"col":18},"end":{"line":15,"col":19}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":18,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["intersperse",0]},{"Ident":["Intersperse",0]}],"span":{"data":{"file_id":26,"beg":{"line":10,"col":0},"end":{"line":10,"col":35}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator adapter that places a separator between all elements."},{"DocComment":""},{"DocComment":" This `struct` is created by [`Iterator::intersperse`]. See its documentation"},{"DocComment":" for more information."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":26,"beg":{"line":10,"col":23},"end":{"line":10,"col":24}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":26,"beg":{"line":10,"col":26},"end":{"line":10,"col":34}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":2,"span":{"data":{"file_id":26,"beg":{"line":12,"col":13},"end":{"line":12,"col":18}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":8,"generics":{"regions":[],"types":[{"HashConsedValue":[5172,{"TraitType":[{"HashConsedValue":[5171,{"kind":{"Clause":{"Bound":[1,1]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"HashConsedValue":[2049,{"TypeVar":{"Bound":[2,0]}}]}],"const_generics":[],"trait_refs":[]}}}}]},0]}]}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":19,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["intersperse",0]},{"Ident":["IntersperseWith",0]}],"span":{"data":{"file_id":26,"beg":{"line":91,"col":0},"end":{"line":91,"col":32}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator adapter that places a separator between all elements."},{"DocComment":""},{"DocComment":" This `struct` is created by [`Iterator::intersperse_with`]. See its"},{"DocComment":" documentation for more information."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"},{"index":1,"name":"G"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":26,"beg":{"line":91,"col":27},"end":{"line":91,"col":28}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":26,"beg":{"line":91,"col":30},"end":{"line":91,"col":31}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":2,"span":{"data":{"file_id":26,"beg":{"line":93,"col":7},"end":{"line":93,"col":15}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":20,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["map",0]},{"Ident":["Map",0]}],"span":{"data":{"file_id":27,"beg":{"line":61,"col":0},"end":{"line":61,"col":20}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator that maps the values of `iter` with `f`."},{"DocComment":""},{"DocComment":" This `struct` is created by the [`map`] method on [`Iterator`]. See its"},{"DocComment":" documentation for more."},{"DocComment":""},{"DocComment":" [`map`]: Iterator::map"},{"DocComment":" [`Iterator`]: trait.Iterator.html"},{"DocComment":""},{"DocComment":" # Notes about side effects"},{"DocComment":""},{"DocComment":" The [`map`] iterator implements [`DoubleEndedIterator`], meaning that"},{"DocComment":" you can also [`map`] backwards:"},{"DocComment":""},{"DocComment":" ```rust"},{"DocComment":" let v: Vec = [1, 2, 3].into_iter().map(|x| x + 1).rev().collect();"},{"DocComment":""},{"DocComment":" assert_eq!(v, [4, 3, 2]);"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" [`DoubleEndedIterator`]: trait.DoubleEndedIterator.html"},{"DocComment":""},{"DocComment":" But if your closure has state, iterating backwards may act in a way you do"},{"DocComment":" not expect. Let's go through an example. First, in the forward direction:"},{"DocComment":""},{"DocComment":" ```rust"},{"DocComment":" let mut c = 0;"},{"DocComment":""},{"DocComment":" for pair in ['a', 'b', 'c'].into_iter()"},{"DocComment":" .map(|letter| { c += 1; (letter, c) }) {"},{"DocComment":" println!(\"{pair:?}\");"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" This will print `('a', 1), ('b', 2), ('c', 3)`."},{"DocComment":""},{"DocComment":" Now consider this twist where we add a call to `rev`. This version will"},{"DocComment":" print `('c', 1), ('b', 2), ('a', 3)`. Note that the letters are reversed,"},{"DocComment":" but the values of the counter still go in order. This is because `map()` is"},{"DocComment":" still being called lazily on each item, but we are popping items off the"},{"DocComment":" back of the vector now, instead of shifting them from the front."},{"DocComment":""},{"DocComment":" ```rust"},{"DocComment":" let mut c = 0;"},{"DocComment":""},{"DocComment":" for pair in ['a', 'b', 'c'].into_iter()"},{"DocComment":" .map(|letter| { c += 1; (letter, c) })"},{"DocComment":" .rev() {"},{"DocComment":" println!(\"{pair:?}\");"},{"DocComment":" }"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"},{"index":1,"name":"F"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":27,"beg":{"line":61,"col":15},"end":{"line":61,"col":16}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":27,"beg":{"line":61,"col":18},"end":{"line":61,"col":19}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":21,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["filter",0]},{"Ident":["Filter",0]}],"span":{"data":{"file_id":28,"beg":{"line":21,"col":0},"end":{"line":21,"col":23}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator that filters the elements of `iter` with `predicate`."},{"DocComment":""},{"DocComment":" This `struct` is created by the [`filter`] method on [`Iterator`]. See its"},{"DocComment":" documentation for more."},{"DocComment":""},{"DocComment":" [`filter`]: Iterator::filter"},{"DocComment":" [`Iterator`]: trait.Iterator.html"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"},{"index":1,"name":"P"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":28,"beg":{"line":21,"col":18},"end":{"line":21,"col":19}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":28,"beg":{"line":21,"col":21},"end":{"line":21,"col":22}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":22,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["filter_map",0]},{"Ident":["FilterMap",0]}],"span":{"data":{"file_id":29,"beg":{"line":18,"col":0},"end":{"line":18,"col":26}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator that uses `f` to both filter and map elements from `iter`."},{"DocComment":""},{"DocComment":" This `struct` is created by the [`filter_map`] method on [`Iterator`]. See its"},{"DocComment":" documentation for more."},{"DocComment":""},{"DocComment":" [`filter_map`]: Iterator::filter_map"},{"DocComment":" [`Iterator`]: trait.Iterator.html"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"},{"index":1,"name":"F"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":29,"beg":{"line":18,"col":21},"end":{"line":18,"col":22}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":29,"beg":{"line":18,"col":24},"end":{"line":18,"col":25}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":23,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["enumerate",0]},{"Ident":["Enumerate",0]}],"span":{"data":{"file_id":30,"beg":{"line":18,"col":0},"end":{"line":18,"col":23}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator that yields the current count and the element during iteration."},{"DocComment":""},{"DocComment":" This `struct` is created by the [`enumerate`] method on [`Iterator`]. See its"},{"DocComment":" documentation for more."},{"DocComment":""},{"DocComment":" [`enumerate`]: Iterator::enumerate"},{"DocComment":" [`Iterator`]: trait.Iterator.html"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"Enumerate"},"generics":{"regions":[],"types":[{"index":0,"name":"I"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":30,"beg":{"line":18,"col":21},"end":{"line":18,"col":22}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":24,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["peekable",0]},{"Ident":["Peekable",0]}],"span":{"data":{"file_id":31,"beg":{"line":17,"col":0},"end":{"line":17,"col":32}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator with a `peek()` that returns an optional reference to the next"},{"DocComment":" element."},{"DocComment":""},{"DocComment":" This `struct` is created by the [`peekable`] method on [`Iterator`]. See its"},{"DocComment":" documentation for more."},{"DocComment":""},{"DocComment":" [`peekable`]: Iterator::peekable"},{"DocComment":" [`Iterator`]: trait.Iterator.html"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"IterPeekable"},"generics":{"regions":[],"types":[{"index":0,"name":"I"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":31,"beg":{"line":17,"col":20},"end":{"line":17,"col":21}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":31,"beg":{"line":17,"col":23},"end":{"line":17,"col":31}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":25,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["skip_while",0]},{"Ident":["SkipWhile",0]}],"span":{"data":{"file_id":32,"beg":{"line":17,"col":0},"end":{"line":17,"col":26}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator that rejects elements while `predicate` returns `true`."},{"DocComment":""},{"DocComment":" This `struct` is created by the [`skip_while`] method on [`Iterator`]. See its"},{"DocComment":" documentation for more."},{"DocComment":""},{"DocComment":" [`skip_while`]: Iterator::skip_while"},{"DocComment":" [`Iterator`]: trait.Iterator.html"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"},{"index":1,"name":"P"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":32,"beg":{"line":17,"col":21},"end":{"line":17,"col":22}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":32,"beg":{"line":17,"col":24},"end":{"line":17,"col":25}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":26,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["take_while",0]},{"Ident":["TakeWhile",0]}],"span":{"data":{"file_id":33,"beg":{"line":17,"col":0},"end":{"line":17,"col":26}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator that only accepts elements while `predicate` returns `true`."},{"DocComment":""},{"DocComment":" This `struct` is created by the [`take_while`] method on [`Iterator`]. See its"},{"DocComment":" documentation for more."},{"DocComment":""},{"DocComment":" [`take_while`]: Iterator::take_while"},{"DocComment":" [`Iterator`]: trait.Iterator.html"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"},{"index":1,"name":"P"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":33,"beg":{"line":17,"col":21},"end":{"line":17,"col":22}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":33,"beg":{"line":17,"col":24},"end":{"line":17,"col":25}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":27,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["map_while",0]},{"Ident":["MapWhile",0]}],"span":{"data":{"file_id":34,"beg":{"line":17,"col":0},"end":{"line":17,"col":25}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator that only accepts elements while `predicate` returns `Some(_)`."},{"DocComment":""},{"DocComment":" This `struct` is created by the [`map_while`] method on [`Iterator`]. See its"},{"DocComment":" documentation for more."},{"DocComment":""},{"DocComment":" [`map_while`]: Iterator::map_while"},{"DocComment":" [`Iterator`]: trait.Iterator.html"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"},{"index":1,"name":"P"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":34,"beg":{"line":17,"col":20},"end":{"line":17,"col":21}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":34,"beg":{"line":17,"col":23},"end":{"line":17,"col":24}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":28,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["skip",0]},{"Ident":["Skip",0]}],"span":{"data":{"file_id":35,"beg":{"line":21,"col":0},"end":{"line":21,"col":18}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator that skips over `n` elements of `iter`."},{"DocComment":""},{"DocComment":" This `struct` is created by the [`skip`] method on [`Iterator`]. See its"},{"DocComment":" documentation for more."},{"DocComment":""},{"DocComment":" [`skip`]: Iterator::skip"},{"DocComment":" [`Iterator`]: trait.Iterator.html"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":35,"beg":{"line":21,"col":16},"end":{"line":21,"col":17}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":29,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["take",0]},{"Ident":["Take",0]}],"span":{"data":{"file_id":36,"beg":{"line":17,"col":0},"end":{"line":17,"col":18}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator that only iterates over the first `n` iterations of `iter`."},{"DocComment":""},{"DocComment":" This `struct` is created by the [`take`] method on [`Iterator`]. See its"},{"DocComment":" documentation for more."},{"DocComment":""},{"DocComment":" [`take`]: Iterator::take"},{"DocComment":" [`Iterator`]: trait.Iterator.html"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":36,"beg":{"line":17,"col":16},"end":{"line":17,"col":17}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":30,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["scan",0]},{"Ident":["Scan",0]}],"span":{"data":{"file_id":37,"beg":{"line":17,"col":0},"end":{"line":17,"col":25}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator to maintain state while iterating another iterator."},{"DocComment":""},{"DocComment":" This `struct` is created by the [`scan`] method on [`Iterator`]. See its"},{"DocComment":" documentation for more."},{"DocComment":""},{"DocComment":" [`scan`]: Iterator::scan"},{"DocComment":" [`Iterator`]: trait.Iterator.html"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"},{"index":1,"name":"St"},{"index":2,"name":"F"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":37,"beg":{"line":17,"col":16},"end":{"line":17,"col":17}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":37,"beg":{"line":17,"col":19},"end":{"line":17,"col":21}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":2,"span":{"data":{"file_id":37,"beg":{"line":17,"col":23},"end":{"line":17,"col":24}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[3001,{"TypeVar":{"Bound":[1,2]}}]}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":31,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["flatten",0]},{"Ident":["FlatMap",0]}],"span":{"data":{"file_id":38,"beg":{"line":17,"col":0},"end":{"line":17,"col":41}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator that maps each element to an iterator, and yields the elements"},{"DocComment":" of the produced iterators."},{"DocComment":""},{"DocComment":" This `struct` is created by [`Iterator::flat_map`]. See its documentation"},{"DocComment":" for more."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"},{"index":1,"name":"U"},{"index":2,"name":"F"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":38,"beg":{"line":17,"col":19},"end":{"line":17,"col":20}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":38,"beg":{"line":17,"col":22},"end":{"line":17,"col":23}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":2,"span":{"data":{"file_id":38,"beg":{"line":17,"col":39},"end":{"line":17,"col":40}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":3001}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":3,"span":{"data":{"file_id":38,"beg":{"line":17,"col":25},"end":{"line":17,"col":37}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":32,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["flatten",0]},{"Ident":["Flatten",0]}],"span":{"data":{"file_id":38,"beg":{"line":184,"col":0},"end":{"line":184,"col":51}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator that flattens one level of nesting in an iterator of things"},{"DocComment":" that can be turned into iterators."},{"DocComment":""},{"DocComment":" This `struct` is created by the [`flatten`] method on [`Iterator`]. See its"},{"DocComment":" documentation for more."},{"DocComment":""},{"DocComment":" [`flatten`]: Iterator::flatten()"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":38,"beg":{"line":184,"col":19},"end":{"line":184,"col":20}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":38,"beg":{"line":184,"col":22},"end":{"line":184,"col":50}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":2,"span":{"data":{"file_id":38,"beg":{"line":184,"col":37},"end":{"line":184,"col":49}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":5172}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":33,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["map_windows",0]},{"Ident":["MapWindows",0]}],"span":{"data":{"file_id":39,"beg":{"line":11,"col":0},"end":{"line":11,"col":53}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator over the mapped windows of another iterator."},{"DocComment":""},{"DocComment":" This `struct` is created by the [`Iterator::map_windows`]. See its"},{"DocComment":" documentation for more information."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"},{"index":1,"name":"F"}],"const_generics":[{"index":0,"name":"N","ty":{"Deduplicated":775}}],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":39,"beg":{"line":11,"col":22},"end":{"line":11,"col":23}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":39,"beg":{"line":11,"col":35},"end":{"line":11,"col":36}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":2,"span":{"data":{"file_id":39,"beg":{"line":11,"col":25},"end":{"line":11,"col":33}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":34,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["fuse",0]},{"Ident":["Fuse",0]}],"span":{"data":{"file_id":40,"beg":{"line":17,"col":0},"end":{"line":17,"col":18}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator that yields `None` forever after the underlying iterator"},{"DocComment":" yields `None` once."},{"DocComment":""},{"DocComment":" This `struct` is created by [`Iterator::fuse`]. See its documentation"},{"DocComment":" for more."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":40,"beg":{"line":17,"col":16},"end":{"line":17,"col":17}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":35,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["inspect",0]},{"Ident":["Inspect",0]}],"span":{"data":{"file_id":41,"beg":{"line":18,"col":0},"end":{"line":18,"col":24}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator that calls a function with a reference to each element before"},{"DocComment":" yielding it."},{"DocComment":""},{"DocComment":" This `struct` is created by the [`inspect`] method on [`Iterator`]. See its"},{"DocComment":" documentation for more."},{"DocComment":""},{"DocComment":" [`inspect`]: Iterator::inspect"},{"DocComment":" [`Iterator`]: trait.Iterator.html"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"},{"index":1,"name":"F"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":41,"beg":{"line":18,"col":19},"end":{"line":18,"col":20}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":41,"beg":{"line":18,"col":22},"end":{"line":18,"col":23}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":36,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["Ordering",0]}],"span":{"data":{"file_id":46,"beg":{"line":396,"col":0},"end":{"line":396,"col":17}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An `Ordering` is the result of a comparison between two values."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" use std::cmp::Ordering;"},{"DocComment":""},{"DocComment":" assert_eq!(1.cmp(&2), Ordering::Less);"},{"DocComment":""},{"DocComment":" assert_eq!(1.cmp(&1), Ordering::Equal);"},{"DocComment":""},{"DocComment":" assert_eq!(2.cmp(&1), Ordering::Greater);"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"Ordering"},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":{"Enum":[{"id":0,"span":{"data":{"file_id":46,"beg":{"line":399,"col":4},"end":{"line":399,"col":8}},"generated_from_span":null},"attr_info":{"attributes":[{"DocComment":" An ordering where a compared value is less than another."}],"inline":null,"rename":null,"public":true},"name":"Less","fields":[],"discriminant":{"Scalar":{"Signed":["I8","-1"]}}},{"id":1,"span":{"data":{"file_id":46,"beg":{"line":402,"col":4},"end":{"line":402,"col":9}},"generated_from_span":null},"attr_info":{"attributes":[{"DocComment":" An ordering where a compared value is equal to another."}],"inline":null,"rename":null,"public":true},"name":"Equal","fields":[],"discriminant":{"Scalar":{"Signed":["I8","0"]}}},{"id":2,"span":{"data":{"file_id":46,"beg":{"line":405,"col":4},"end":{"line":405,"col":11}},"generated_from_span":null},"attr_info":{"attributes":[{"DocComment":" An ordering where a compared value is greater than another."}],"inline":null,"rename":null,"public":true},"name":"Greater","fields":[],"discriminant":{"Scalar":{"Signed":["I8","1"]}}}]},"layout":[{"key":"aarch64-apple-darwin","value":{"size":1,"align":1,"discriminator":{"Branch":{"offset":0,"int_ty":{"Signed":"I8"},"children":[[{"start":{"Signed":["I8","-1"]},"end":{"Signed":["I8","-1"]}},{"Known":0}],[{"start":{"Signed":["I8","0"]},"end":{"Signed":["I8","0"]}},{"Known":1}],[{"start":{"Signed":["I8","1"]},"end":{"Signed":["I8","1"]}},{"Known":2}]],"fallback":"Invalid"}},"uninhabited":false,"variant_layouts":[{"field_offsets":[],"uninhabited":false,"tagger":[[0,{"Signed":["I8","-1"]}]]},{"field_offsets":[],"uninhabited":false,"tagger":[[0,{"Signed":["I8","0"]}]]},{"field_offsets":[],"uninhabited":false,"tagger":[[0,{"Signed":["I8","1"]}]]}],"repr":{"repr_algo":"Rust","align_modif":null,"transparent":false,"explicit_discr_type":true}}}],"ptr_metadata":"None"},{"def_id":37,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["rev",0]},{"Ident":["Rev",0]}],"span":{"data":{"file_id":47,"beg":{"line":15,"col":0},"end":{"line":15,"col":17}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" A double-ended iterator with the direction inverted."},{"DocComment":""},{"DocComment":" This `struct` is created by the [`rev`] method on [`Iterator`]. See its"},{"DocComment":" documentation for more."},{"DocComment":""},{"DocComment":" [`rev`]: Iterator::rev"},{"DocComment":" [`Iterator`]: trait.Iterator.html"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":47,"beg":{"line":15,"col":15},"end":{"line":15,"col":16}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":38,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["copied",0]},{"Ident":["Copied",0]}],"span":{"data":{"file_id":48,"beg":{"line":19,"col":0},"end":{"line":19,"col":20}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator that copies the elements of an underlying iterator."},{"DocComment":""},{"DocComment":" This `struct` is created by the [`copied`] method on [`Iterator`]. See its"},{"DocComment":" documentation for more."},{"DocComment":""},{"DocComment":" [`copied`]: Iterator::copied"},{"DocComment":" [`Iterator`]: trait.Iterator.html"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":48,"beg":{"line":19,"col":18},"end":{"line":19,"col":19}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":39,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["cloned",0]},{"Ident":["Cloned",0]}],"span":{"data":{"file_id":49,"beg":{"line":18,"col":0},"end":{"line":18,"col":20}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator that clones the elements of an underlying iterator."},{"DocComment":""},{"DocComment":" This `struct` is created by the [`cloned`] method on [`Iterator`]. See its"},{"DocComment":" documentation for more."},{"DocComment":""},{"DocComment":" [`cloned`]: Iterator::cloned"},{"DocComment":" [`Iterator`]: trait.Iterator.html"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":49,"beg":{"line":18,"col":18},"end":{"line":18,"col":19}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":40,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["cycle",0]},{"Ident":["Cycle",0]}],"span":{"data":{"file_id":50,"beg":{"line":15,"col":0},"end":{"line":15,"col":19}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator that repeats endlessly."},{"DocComment":""},{"DocComment":" This `struct` is created by the [`cycle`] method on [`Iterator`]. See its"},{"DocComment":" documentation for more."},{"DocComment":""},{"DocComment":" [`cycle`]: Iterator::cycle"},{"DocComment":" [`Iterator`]: trait.Iterator.html"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":50,"beg":{"line":15,"col":17},"end":{"line":15,"col":18}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":41,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["array_chunks",0]},{"Ident":["ArrayChunks",0]}],"span":{"data":{"file_id":51,"beg":{"line":19,"col":0},"end":{"line":19,"col":51}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator over `N` elements of the iterator at a time."},{"DocComment":""},{"DocComment":" The chunks do not overlap. If `N` does not divide the length of the"},{"DocComment":" iterator, then the last up to `N-1` elements will be omitted."},{"DocComment":""},{"DocComment":" This `struct` is created by the [`array_chunks`][Iterator::array_chunks]"},{"DocComment":" method on [`Iterator`]. See its documentation for more."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"}],"const_generics":[{"index":0,"name":"N","ty":{"Deduplicated":775}}],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":51,"beg":{"line":19,"col":23},"end":{"line":19,"col":24}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":51,"beg":{"line":19,"col":26},"end":{"line":19,"col":34}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},null,null,{"def_id":44,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["num",0]},{"Ident":["niche_types",0]},{"Ident":["NonZeroUsizeInner",0]}],"span":{"data":{"file_id":53,"beg":{"line":20,"col":8},"end":{"line":20,"col":55}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[{"key":"aarch64-apple-darwin","value":{"size":8,"align":8,"discriminator":{"Known":0},"uninhabited":false,"variant_layouts":[{"field_offsets":[0],"uninhabited":false,"tagger":[]}],"repr":{"repr_algo":"Rust","align_modif":null,"transparent":true,"explicit_discr_type":false}}}],"ptr_metadata":"None"},null,null,null,null,null,null],"fun_decls":[{"def_id":0,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["straight_line_add",0]}],"span":{"data":{"file_id":0,"beg":{"line":14,"col":0},"end":{"line":18,"col":1}},"generated_from_span":null},"source_text":"pub fn straight_line_add(a: i64, b: i64, c: i64) -> i64 {\n let s = a + b;\n let t = s * 2;\n t + c\n}","attr_info":{"attributes":[],"inline":"Never","rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":231},{"Deduplicated":231},{"Deduplicated":231}],"output":{"Deduplicated":231}},"src":"TopLevel","is_global_initializer":null,"body":{"Unstructured":{"span":{"data":{"file_id":0,"beg":{"line":14,"col":0},"end":{"line":18,"col":1}},"generated_from_span":null},"bound_body_regions":0,"locals":{"arg_count":3,"locals":[{"index":0,"name":null,"span":{"data":{"file_id":0,"beg":{"line":14,"col":52},"end":{"line":14,"col":55}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":1,"name":"a","span":{"data":{"file_id":0,"beg":{"line":14,"col":25},"end":{"line":14,"col":26}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":2,"name":"b","span":{"data":{"file_id":0,"beg":{"line":14,"col":33},"end":{"line":14,"col":34}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":3,"name":"c","span":{"data":{"file_id":0,"beg":{"line":14,"col":41},"end":{"line":14,"col":42}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":4,"name":"s","span":{"data":{"file_id":0,"beg":{"line":15,"col":8},"end":{"line":15,"col":9}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":5,"name":null,"span":{"data":{"file_id":0,"beg":{"line":15,"col":12},"end":{"line":15,"col":13}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":6,"name":null,"span":{"data":{"file_id":0,"beg":{"line":15,"col":16},"end":{"line":15,"col":17}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":7,"name":null,"span":{"data":{"file_id":0,"beg":{"line":15,"col":12},"end":{"line":15,"col":17}},"generated_from_span":null},"ty":{"HashConsedValue":[236,{"Adt":{"id":"Tuple","generics":{"regions":[],"types":[{"Deduplicated":231},{"Deduplicated":235}],"const_generics":[],"trait_refs":[]}}}]}},{"index":8,"name":"t","span":{"data":{"file_id":0,"beg":{"line":16,"col":8},"end":{"line":16,"col":9}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":9,"name":null,"span":{"data":{"file_id":0,"beg":{"line":16,"col":12},"end":{"line":16,"col":13}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":10,"name":null,"span":{"data":{"file_id":0,"beg":{"line":16,"col":12},"end":{"line":16,"col":17}},"generated_from_span":null},"ty":{"Deduplicated":236}},{"index":11,"name":null,"span":{"data":{"file_id":0,"beg":{"line":17,"col":4},"end":{"line":17,"col":5}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":12,"name":null,"span":{"data":{"file_id":0,"beg":{"line":17,"col":8},"end":{"line":17,"col":9}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":13,"name":null,"span":{"data":{"file_id":0,"beg":{"line":17,"col":4},"end":{"line":17,"col":9}},"generated_from_span":null},"ty":{"Deduplicated":236}}]},"body":[{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":15,"col":8},"end":{"line":15,"col":9}},"generated_from_span":null},"kind":{"StorageLive":7},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":15,"col":8},"end":{"line":15,"col":9}},"generated_from_span":null},"kind":{"StorageLive":10},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":15,"col":8},"end":{"line":15,"col":9}},"generated_from_span":null},"kind":{"StorageLive":13},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":15,"col":8},"end":{"line":15,"col":9}},"generated_from_span":null},"kind":{"StorageLive":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":15,"col":12},"end":{"line":15,"col":13}},"generated_from_span":null},"kind":{"StorageLive":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":15,"col":12},"end":{"line":15,"col":13}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":5},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Local":1},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":15,"col":16},"end":{"line":15,"col":17}},"generated_from_span":null},"kind":{"StorageLive":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":15,"col":16},"end":{"line":15,"col":17}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":6},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Local":2},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":15,"col":12},"end":{"line":15,"col":17}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":7},"ty":{"Deduplicated":236}},{"BinaryOp":["AddChecked",{"Copy":{"kind":{"Local":5},"ty":{"Deduplicated":231}}},{"Copy":{"kind":{"Local":6},"ty":{"Deduplicated":231}}}]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":15,"col":12},"end":{"line":15,"col":17}},"generated_from_span":null},"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":7},"ty":{"Deduplicated":236}},{"Field":[{"Tuple":2},1]}]},"ty":{"Deduplicated":235}}},"expected":false,"check_kind":{"Overflow":[{"Add":"Wrap"},{"Move":{"kind":{"Local":5},"ty":{"Deduplicated":231}}},{"Move":{"kind":{"Local":6},"ty":{"Deduplicated":231}}}]}},"target":2,"on_unwind":1}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":14,"col":0},"end":{"line":18,"col":1}},"generated_from_span":null},"kind":"UnwindResume","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":15,"col":12},"end":{"line":15,"col":17}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":4},"ty":{"Deduplicated":231}},{"Use":{"Move":{"kind":{"Projection":[{"kind":{"Local":7},"ty":{"Deduplicated":236}},{"Field":[{"Tuple":2},0]}]},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":15,"col":16},"end":{"line":15,"col":17}},"generated_from_span":null},"kind":{"StorageDead":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":15,"col":16},"end":{"line":15,"col":17}},"generated_from_span":null},"kind":{"StorageDead":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":16,"col":8},"end":{"line":16,"col":9}},"generated_from_span":null},"kind":{"StorageLive":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":16,"col":12},"end":{"line":16,"col":13}},"generated_from_span":null},"kind":{"StorageLive":9},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":16,"col":12},"end":{"line":16,"col":13}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":9},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Local":4},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":16,"col":12},"end":{"line":16,"col":17}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":10},"ty":{"Deduplicated":236}},{"BinaryOp":["MulChecked",{"Copy":{"kind":{"Local":9},"ty":{"Deduplicated":231}}},{"Const":{"kind":{"Literal":{"Scalar":{"Signed":["I64","2"]}}},"ty":{"Deduplicated":231}}}]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":16,"col":12},"end":{"line":16,"col":17}},"generated_from_span":null},"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":10},"ty":{"Deduplicated":236}},{"Field":[{"Tuple":2},1]}]},"ty":{"Deduplicated":235}}},"expected":false,"check_kind":{"Overflow":[{"Mul":"Wrap"},{"Move":{"kind":{"Local":9},"ty":{"Deduplicated":231}}},{"Const":{"kind":{"Literal":{"Scalar":{"Signed":["I64","2"]}}},"ty":{"Deduplicated":231}}}]}},"target":3,"on_unwind":1}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":16,"col":12},"end":{"line":16,"col":17}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":8},"ty":{"Deduplicated":231}},{"Use":{"Move":{"kind":{"Projection":[{"kind":{"Local":10},"ty":{"Deduplicated":236}},{"Field":[{"Tuple":2},0]}]},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":16,"col":16},"end":{"line":16,"col":17}},"generated_from_span":null},"kind":{"StorageDead":9},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":17,"col":4},"end":{"line":17,"col":5}},"generated_from_span":null},"kind":{"StorageLive":11},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":17,"col":4},"end":{"line":17,"col":5}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":11},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Local":8},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":17,"col":8},"end":{"line":17,"col":9}},"generated_from_span":null},"kind":{"StorageLive":12},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":17,"col":8},"end":{"line":17,"col":9}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":12},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Local":3},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":17,"col":4},"end":{"line":17,"col":9}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":13},"ty":{"Deduplicated":236}},{"BinaryOp":["AddChecked",{"Copy":{"kind":{"Local":11},"ty":{"Deduplicated":231}}},{"Copy":{"kind":{"Local":12},"ty":{"Deduplicated":231}}}]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":17,"col":4},"end":{"line":17,"col":9}},"generated_from_span":null},"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":13},"ty":{"Deduplicated":236}},{"Field":[{"Tuple":2},1]}]},"ty":{"Deduplicated":235}}},"expected":false,"check_kind":{"Overflow":[{"Add":"Wrap"},{"Move":{"kind":{"Local":11},"ty":{"Deduplicated":231}}},{"Move":{"kind":{"Local":12},"ty":{"Deduplicated":231}}}]}},"target":4,"on_unwind":1}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":17,"col":4},"end":{"line":17,"col":9}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":231}},{"Use":{"Move":{"kind":{"Projection":[{"kind":{"Local":13},"ty":{"Deduplicated":236}},{"Field":[{"Tuple":2},0]}]},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":17,"col":8},"end":{"line":17,"col":9}},"generated_from_span":null},"kind":{"StorageDead":12},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":17,"col":8},"end":{"line":17,"col":9}},"generated_from_span":null},"kind":{"StorageDead":11},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":18,"col":0},"end":{"line":18,"col":1}},"generated_from_span":null},"kind":{"StorageDead":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":18,"col":0},"end":{"line":18,"col":1}},"generated_from_span":null},"kind":{"StorageDead":4},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":18,"col":1},"end":{"line":18,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}}],"comments":[]}}},{"def_id":1,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["branch_loop_sum",0]}],"span":{"data":{"file_id":0,"beg":{"line":22,"col":0},"end":{"line":32,"col":1}},"generated_from_span":null},"source_text":"pub fn branch_loop_sum(slice: &[i64], threshold: i64) -> i64 {\n let mut acc: i64 = 0;\n for &v in slice {\n if v > threshold {\n acc += v;\n } else {\n acc -= v;\n }\n }\n acc\n}","attr_info":{"attributes":[],"inline":"Never","rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"HashConsedValue":[238,{"Ref":[{"Var":{"Bound":[0,0]}},{"HashConsedValue":[237,{"Slice":{"Deduplicated":231}}]},"Shared"]}]},{"Deduplicated":231}],"output":{"Deduplicated":231}},"src":"TopLevel","is_global_initializer":null,"body":{"Unstructured":{"span":{"data":{"file_id":0,"beg":{"line":22,"col":0},"end":{"line":32,"col":1}},"generated_from_span":null},"bound_body_regions":30,"locals":{"arg_count":2,"locals":[{"index":0,"name":null,"span":{"data":{"file_id":0,"beg":{"line":22,"col":57},"end":{"line":22,"col":60}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":1,"name":"slice","span":{"data":{"file_id":0,"beg":{"line":22,"col":23},"end":{"line":22,"col":28}},"generated_from_span":null},"ty":{"HashConsedValue":[241,{"Ref":[{"Body":1},{"Deduplicated":237},"Shared"]}]}},{"index":2,"name":"threshold","span":{"data":{"file_id":0,"beg":{"line":22,"col":38},"end":{"line":22,"col":47}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":3,"name":"acc","span":{"data":{"file_id":0,"beg":{"line":23,"col":8},"end":{"line":23,"col":15}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":4,"name":null,"span":{"data":{"file_id":0,"beg":{"line":24,"col":14},"end":{"line":24,"col":19}},"generated_from_span":null},"ty":{"HashConsedValue":[358,{"Adt":{"id":{"Adt":6},"generics":{"regions":[{"Body":3}],"types":[{"Deduplicated":231}],"const_generics":[],"trait_refs":[{"HashConsedValue":[356,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[355,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":231}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":231}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},{"index":5,"name":null,"span":{"data":{"file_id":0,"beg":{"line":24,"col":14},"end":{"line":24,"col":19}},"generated_from_span":null},"ty":{"HashConsedValue":[359,{"Ref":[{"Body":4},{"Deduplicated":237},"Shared"]}]}},{"index":6,"name":"iter","span":{"data":{"file_id":0,"beg":{"line":24,"col":14},"end":{"line":24,"col":19}},"generated_from_span":null},"ty":{"HashConsedValue":[360,{"Adt":{"id":{"Adt":6},"generics":{"regions":[{"Body":5}],"types":[{"Deduplicated":231}],"const_generics":[],"trait_refs":[{"Deduplicated":356}]}}}]}},{"index":7,"name":null,"span":{"data":{"file_id":0,"beg":{"line":24,"col":14},"end":{"line":24,"col":19}},"generated_from_span":null},"ty":{"HashConsedValue":[5996,{"Adt":{"id":{"Adt":7},"generics":{"regions":[],"types":[{"HashConsedValue":[398,{"Ref":[{"Body":12},{"Deduplicated":231},"Shared"]}]}],"const_generics":[],"trait_refs":[{"HashConsedValue":[5995,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[5994,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":398}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":398}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},{"index":8,"name":null,"span":{"data":{"file_id":0,"beg":{"line":24,"col":14},"end":{"line":24,"col":19}},"generated_from_span":null},"ty":{"HashConsedValue":[408,{"Ref":[{"Body":17},{"HashConsedValue":[407,{"Adt":{"id":{"Adt":6},"generics":{"regions":[{"Body":18}],"types":[{"Deduplicated":231}],"const_generics":[],"trait_refs":[{"Deduplicated":356}]}}}]},"Mut"]}]}},{"index":9,"name":null,"span":{"data":{"file_id":0,"beg":{"line":24,"col":14},"end":{"line":24,"col":19}},"generated_from_span":null},"ty":{"HashConsedValue":[410,{"Ref":[{"Body":19},{"HashConsedValue":[409,{"Adt":{"id":{"Adt":6},"generics":{"regions":[{"Body":20}],"types":[{"Deduplicated":231}],"const_generics":[],"trait_refs":[{"Deduplicated":356}]}}}]},"Mut"]}]}},{"index":10,"name":null,"span":{"data":{"file_id":0,"beg":{"line":24,"col":4},"end":{"line":30,"col":5}},"generated_from_span":null},"ty":{"HashConsedValue":[411,{"Literal":{"Int":"Isize"}}]}},{"index":11,"name":"v","span":{"data":{"file_id":0,"beg":{"line":24,"col":9},"end":{"line":24,"col":10}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":12,"name":null,"span":{"data":{"file_id":0,"beg":{"line":25,"col":11},"end":{"line":25,"col":24}},"generated_from_span":null},"ty":{"Deduplicated":235}},{"index":13,"name":null,"span":{"data":{"file_id":0,"beg":{"line":25,"col":11},"end":{"line":25,"col":12}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":14,"name":null,"span":{"data":{"file_id":0,"beg":{"line":25,"col":15},"end":{"line":25,"col":24}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":15,"name":null,"span":{"data":{"file_id":0,"beg":{"line":26,"col":19},"end":{"line":26,"col":20}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":16,"name":null,"span":{"data":{"file_id":0,"beg":{"line":26,"col":12},"end":{"line":26,"col":20}},"generated_from_span":null},"ty":{"Deduplicated":236}},{"index":17,"name":null,"span":{"data":{"file_id":0,"beg":{"line":28,"col":19},"end":{"line":28,"col":20}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":18,"name":null,"span":{"data":{"file_id":0,"beg":{"line":28,"col":12},"end":{"line":28,"col":20}},"generated_from_span":null},"ty":{"Deduplicated":236}}]},"body":[{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":23,"col":8},"end":{"line":23,"col":15}},"generated_from_span":null},"kind":{"StorageLive":10},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":23,"col":8},"end":{"line":23,"col":15}},"generated_from_span":null},"kind":{"StorageLive":16},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":23,"col":8},"end":{"line":23,"col":15}},"generated_from_span":null},"kind":{"StorageLive":18},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":23,"col":8},"end":{"line":23,"col":15}},"generated_from_span":null},"kind":{"StorageLive":3},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":23,"col":23},"end":{"line":23,"col":24}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":3},"ty":{"Deduplicated":231}},{"Use":{"Const":{"kind":{"Literal":{"Scalar":{"Signed":["I64","0"]}}},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":24,"col":14},"end":{"line":24,"col":19}},"generated_from_span":null},"kind":{"StorageLive":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":24,"col":14},"end":{"line":24,"col":19}},"generated_from_span":null},"kind":{"StorageLive":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":24,"col":14},"end":{"line":24,"col":19}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":5},"ty":{"Deduplicated":359}},{"Use":{"Copy":{"kind":{"Local":1},"ty":{"Deduplicated":241}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":24,"col":14},"end":{"line":24,"col":19}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":{"Regular":14}},"generics":{"regions":[{"Body":21}],"types":[{"Deduplicated":231}],"const_generics":[],"trait_refs":[{"Deduplicated":356}]}}},"args":[{"Move":{"kind":{"Local":5},"ty":{"Deduplicated":359}}}],"dest":{"kind":{"Local":4},"ty":{"Deduplicated":358}}},"target":2,"on_unwind":1}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":22,"col":0},"end":{"line":32,"col":1}},"generated_from_span":null},"kind":"UnwindResume","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":24,"col":18},"end":{"line":24,"col":19}},"generated_from_span":null},"kind":{"StorageDead":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":24,"col":14},"end":{"line":24,"col":19}},"generated_from_span":null},"kind":{"StorageLive":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":24,"col":14},"end":{"line":24,"col":19}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":6},"ty":{"Deduplicated":360}},{"Use":{"Move":{"kind":{"Local":4},"ty":{"Deduplicated":358}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":24,"col":4},"end":{"line":30,"col":5}},"generated_from_span":null},"kind":{"Goto":{"target":3}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":24,"col":14},"end":{"line":24,"col":19}},"generated_from_span":null},"kind":{"StorageLive":7},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":24,"col":14},"end":{"line":24,"col":19}},"generated_from_span":null},"kind":{"StorageLive":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":24,"col":14},"end":{"line":24,"col":19}},"generated_from_span":null},"kind":{"StorageLive":9},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":24,"col":14},"end":{"line":24,"col":19}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":9},"ty":{"Deduplicated":410}},{"Ref":{"place":{"kind":{"Local":6},"ty":{"Deduplicated":360}},"kind":"Mut","ptr_metadata":{"Const":{"kind":{"Adt":[null,[]]},"ty":{"HashConsedValue":[245,{"Adt":{"id":"Tuple","generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}}]}}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":24,"col":14},"end":{"line":24,"col":19}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":8},"ty":{"Deduplicated":408}},{"Ref":{"place":{"kind":{"Projection":[{"kind":{"Local":9},"ty":{"Deduplicated":410}},"Deref"]},"ty":{"HashConsedValue":[7065,{"Adt":{"id":{"Adt":6},"generics":{"regions":[{"Body":22}],"types":[{"Deduplicated":231}],"const_generics":[],"trait_refs":[{"Deduplicated":356}]}}}]}},"kind":"TwoPhaseMut","ptr_metadata":{"Const":{"kind":{"Adt":[null,[]]},"ty":{"Deduplicated":245}}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":24,"col":14},"end":{"line":24,"col":19}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":{"Regular":15}},"generics":{"regions":[{"Body":23},{"Body":25}],"types":[{"Deduplicated":231}],"const_generics":[],"trait_refs":[{"Deduplicated":356}]}}},"args":[{"Move":{"kind":{"Local":8},"ty":{"Deduplicated":408}}}],"dest":{"kind":{"Local":7},"ty":{"Deduplicated":5996}}},"target":4,"on_unwind":1}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":24,"col":18},"end":{"line":24,"col":19}},"generated_from_span":null},"kind":{"StorageDead":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":24,"col":14},"end":{"line":24,"col":19}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":10},"ty":{"Deduplicated":411}},{"Discriminant":{"kind":{"Local":7},"ty":{"Deduplicated":5996}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":24,"col":14},"end":{"line":24,"col":19}},"generated_from_span":null},"kind":{"Switch":{"discr":{"Move":{"kind":{"Local":10},"ty":{"Deduplicated":411}}},"targets":{"SwitchInt":[{"Int":"Isize"},[[{"Scalar":{"Signed":["Isize","0"]}},5],[{"Scalar":{"Signed":["Isize","1"]}},6]],7]}}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":30,"col":4},"end":{"line":30,"col":5}},"generated_from_span":null},"kind":{"StorageDead":9},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":30,"col":4},"end":{"line":30,"col":5}},"generated_from_span":null},"kind":{"StorageDead":7},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":30,"col":4},"end":{"line":30,"col":5}},"generated_from_span":null},"kind":{"StorageDead":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":30,"col":4},"end":{"line":30,"col":5}},"generated_from_span":null},"kind":{"StorageDead":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":31,"col":4},"end":{"line":31,"col":7}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Local":3},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":32,"col":0},"end":{"line":32,"col":1}},"generated_from_span":null},"kind":{"StorageDead":3},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":32,"col":1},"end":{"line":32,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":24,"col":9},"end":{"line":24,"col":10}},"generated_from_span":null},"kind":{"StorageLive":11},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":24,"col":9},"end":{"line":24,"col":10}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":11},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Projection":[{"kind":{"Local":7},"ty":{"Deduplicated":5996}},{"Field":[{"Adt":[7,1]},0]}]},"ty":{"HashConsedValue":[7066,{"Ref":[{"Body":29},{"Deduplicated":231},"Shared"]}]}},"Deref"]},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":25,"col":11},"end":{"line":25,"col":24}},"generated_from_span":null},"kind":{"StorageLive":12},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":25,"col":11},"end":{"line":25,"col":12}},"generated_from_span":null},"kind":{"StorageLive":13},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":25,"col":11},"end":{"line":25,"col":12}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":13},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Local":11},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":25,"col":15},"end":{"line":25,"col":24}},"generated_from_span":null},"kind":{"StorageLive":14},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":25,"col":15},"end":{"line":25,"col":24}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":14},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Local":2},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":25,"col":11},"end":{"line":25,"col":24}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":12},"ty":{"Deduplicated":235}},{"BinaryOp":["Gt",{"Move":{"kind":{"Local":13},"ty":{"Deduplicated":231}}},{"Move":{"kind":{"Local":14},"ty":{"Deduplicated":231}}}]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":25,"col":11},"end":{"line":25,"col":24}},"generated_from_span":null},"kind":{"Switch":{"discr":{"Move":{"kind":{"Local":12},"ty":{"Deduplicated":235}}},"targets":{"If":[8,9]}}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":24,"col":14},"end":{"line":24,"col":19}},"generated_from_span":null},"kind":{"Abort":"UndefinedBehavior"},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":25,"col":23},"end":{"line":25,"col":24}},"generated_from_span":null},"kind":{"StorageDead":14},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":25,"col":23},"end":{"line":25,"col":24}},"generated_from_span":null},"kind":{"StorageDead":13},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":26,"col":19},"end":{"line":26,"col":20}},"generated_from_span":null},"kind":{"StorageLive":15},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":26,"col":19},"end":{"line":26,"col":20}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":15},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Local":11},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":26,"col":12},"end":{"line":26,"col":20}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":16},"ty":{"Deduplicated":236}},{"BinaryOp":["AddChecked",{"Copy":{"kind":{"Local":3},"ty":{"Deduplicated":231}}},{"Copy":{"kind":{"Local":15},"ty":{"Deduplicated":231}}}]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":26,"col":12},"end":{"line":26,"col":20}},"generated_from_span":null},"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":16},"ty":{"Deduplicated":236}},{"Field":[{"Tuple":2},1]}]},"ty":{"Deduplicated":235}}},"expected":false,"check_kind":{"Overflow":[{"Add":"Wrap"},{"Copy":{"kind":{"Local":3},"ty":{"Deduplicated":231}}},{"Move":{"kind":{"Local":19},"ty":{"Deduplicated":231}}}]}},"target":10,"on_unwind":1}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":25,"col":23},"end":{"line":25,"col":24}},"generated_from_span":null},"kind":{"StorageDead":14},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":25,"col":23},"end":{"line":25,"col":24}},"generated_from_span":null},"kind":{"StorageDead":13},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":28,"col":19},"end":{"line":28,"col":20}},"generated_from_span":null},"kind":{"StorageLive":17},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":28,"col":19},"end":{"line":28,"col":20}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":17},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Local":11},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":28,"col":12},"end":{"line":28,"col":20}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":18},"ty":{"Deduplicated":236}},{"BinaryOp":["SubChecked",{"Copy":{"kind":{"Local":3},"ty":{"Deduplicated":231}}},{"Copy":{"kind":{"Local":17},"ty":{"Deduplicated":231}}}]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":28,"col":12},"end":{"line":28,"col":20}},"generated_from_span":null},"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":18},"ty":{"Deduplicated":236}},{"Field":[{"Tuple":2},1]}]},"ty":{"Deduplicated":235}}},"expected":false,"check_kind":{"Overflow":[{"Sub":"Wrap"},{"Copy":{"kind":{"Local":3},"ty":{"Deduplicated":231}}},{"Move":{"kind":{"Local":21},"ty":{"Deduplicated":231}}}]}},"target":11,"on_unwind":1}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":26,"col":12},"end":{"line":26,"col":20}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":3},"ty":{"Deduplicated":231}},{"Use":{"Move":{"kind":{"Projection":[{"kind":{"Local":16},"ty":{"Deduplicated":236}},{"Field":[{"Tuple":2},0]}]},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":26,"col":19},"end":{"line":26,"col":20}},"generated_from_span":null},"kind":{"StorageDead":15},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":25,"col":8},"end":{"line":29,"col":9}},"generated_from_span":null},"kind":{"Goto":{"target":12}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":28,"col":12},"end":{"line":28,"col":20}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":3},"ty":{"Deduplicated":231}},{"Use":{"Move":{"kind":{"Projection":[{"kind":{"Local":18},"ty":{"Deduplicated":236}},{"Field":[{"Tuple":2},0]}]},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":28,"col":19},"end":{"line":28,"col":20}},"generated_from_span":null},"kind":{"StorageDead":17},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":25,"col":8},"end":{"line":29,"col":9}},"generated_from_span":null},"kind":{"Goto":{"target":12}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":29,"col":8},"end":{"line":29,"col":9}},"generated_from_span":null},"kind":{"StorageDead":12},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":30,"col":4},"end":{"line":30,"col":5}},"generated_from_span":null},"kind":{"StorageDead":11},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":30,"col":4},"end":{"line":30,"col":5}},"generated_from_span":null},"kind":{"StorageDead":9},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":30,"col":4},"end":{"line":30,"col":5}},"generated_from_span":null},"kind":{"StorageDead":7},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":24,"col":4},"end":{"line":30,"col":5}},"generated_from_span":null},"kind":{"Goto":{"target":3}},"comments_before":[]}}],"comments":[]}}},{"def_id":2,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["slice_of_refs_sum",0]}],"span":{"data":{"file_id":0,"beg":{"line":42,"col":0},"end":{"line":48,"col":1}},"generated_from_span":null},"source_text":"pub fn slice_of_refs_sum(slice: &[&i64]) -> i64 {\n let mut acc: i64 = 0;\n for r in slice {\n acc += **r;\n }\n acc\n}","attr_info":{"attributes":[],"inline":"Never","rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"},{"index":1,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"HashConsedValue":[7069,{"Ref":[{"Var":{"Bound":[0,0]}},{"HashConsedValue":[7068,{"Slice":{"HashConsedValue":[7067,{"Ref":[{"Var":{"Bound":[0,1]}},{"Deduplicated":231},"Shared"]}]}}]},"Shared"]}]}],"output":{"Deduplicated":231}},"src":"TopLevel","is_global_initializer":null,"body":{"Unstructured":{"span":{"data":{"file_id":0,"beg":{"line":42,"col":0},"end":{"line":48,"col":1}},"generated_from_span":null},"bound_body_regions":86,"locals":{"arg_count":1,"locals":[{"index":0,"name":null,"span":{"data":{"file_id":0,"beg":{"line":42,"col":44},"end":{"line":42,"col":47}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":1,"name":"slice","span":{"data":{"file_id":0,"beg":{"line":42,"col":25},"end":{"line":42,"col":30}},"generated_from_span":null},"ty":{"HashConsedValue":[648,{"Ref":[{"Body":4},{"HashConsedValue":[647,{"Slice":{"HashConsedValue":[646,{"Ref":[{"Body":5},{"Deduplicated":231},"Shared"]}]}}]},"Shared"]}]}},{"index":2,"name":"acc","span":{"data":{"file_id":0,"beg":{"line":43,"col":8},"end":{"line":43,"col":15}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":3,"name":null,"span":{"data":{"file_id":0,"beg":{"line":44,"col":13},"end":{"line":44,"col":18}},"generated_from_span":null},"ty":{"HashConsedValue":[6004,{"Adt":{"id":{"Adt":6},"generics":{"regions":[{"Body":12}],"types":[{"HashConsedValue":[399,{"Ref":[{"Body":13},{"Deduplicated":231},"Shared"]}]}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6003,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[400,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":399}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":399}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},{"index":4,"name":null,"span":{"data":{"file_id":0,"beg":{"line":44,"col":13},"end":{"line":44,"col":18}},"generated_from_span":null},"ty":{"HashConsedValue":[658,{"Ref":[{"Body":16},{"HashConsedValue":[657,{"Slice":{"HashConsedValue":[656,{"Ref":[{"Body":17},{"Deduplicated":231},"Shared"]}]}}]},"Shared"]}]}},{"index":5,"name":"iter","span":{"data":{"file_id":0,"beg":{"line":44,"col":13},"end":{"line":44,"col":18}},"generated_from_span":null},"ty":{"HashConsedValue":[6006,{"Adt":{"id":{"Adt":6},"generics":{"regions":[{"Body":18}],"types":[{"HashConsedValue":[659,{"Ref":[{"Body":19},{"Deduplicated":231},"Shared"]}]}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6005,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[867,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":659}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":659}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},{"index":6,"name":null,"span":{"data":{"file_id":0,"beg":{"line":44,"col":13},"end":{"line":44,"col":18}},"generated_from_span":null},"ty":{"HashConsedValue":[6009,{"Adt":{"id":{"Adt":7},"generics":{"regions":[],"types":[{"HashConsedValue":[688,{"Ref":[{"Body":36},{"HashConsedValue":[687,{"Ref":[{"Body":37},{"Deduplicated":231},"Shared"]}]},"Shared"]}]}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6008,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6007,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":688}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":688}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},{"index":7,"name":null,"span":{"data":{"file_id":0,"beg":{"line":44,"col":13},"end":{"line":44,"col":18}},"generated_from_span":null},"ty":{"HashConsedValue":[6013,{"Ref":[{"Body":47},{"HashConsedValue":[6012,{"Adt":{"id":{"Adt":6},"generics":{"regions":[{"Body":48}],"types":[{"HashConsedValue":[704,{"Ref":[{"Body":49},{"Deduplicated":231},"Shared"]}]}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6011,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6010,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":704}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":704}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]},"Mut"]}]}},{"index":8,"name":null,"span":{"data":{"file_id":0,"beg":{"line":44,"col":13},"end":{"line":44,"col":18}},"generated_from_span":null},"ty":{"HashConsedValue":[6017,{"Ref":[{"Body":52},{"HashConsedValue":[6016,{"Adt":{"id":{"Adt":6},"generics":{"regions":[{"Body":53}],"types":[{"HashConsedValue":[711,{"Ref":[{"Body":54},{"Deduplicated":231},"Shared"]}]}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6015,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6014,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":711}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":711}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]},"Mut"]}]}},{"index":9,"name":null,"span":{"data":{"file_id":0,"beg":{"line":44,"col":4},"end":{"line":46,"col":5}},"generated_from_span":null},"ty":{"Deduplicated":411}},{"index":10,"name":"r","span":{"data":{"file_id":0,"beg":{"line":44,"col":8},"end":{"line":44,"col":9}},"generated_from_span":null},"ty":{"HashConsedValue":[719,{"Ref":[{"Body":57},{"HashConsedValue":[718,{"Ref":[{"Body":58},{"Deduplicated":231},"Shared"]}]},"Shared"]}]}},{"index":11,"name":null,"span":{"data":{"file_id":0,"beg":{"line":45,"col":15},"end":{"line":45,"col":18}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":12,"name":null,"span":{"data":{"file_id":0,"beg":{"line":45,"col":8},"end":{"line":45,"col":18}},"generated_from_span":null},"ty":{"Deduplicated":236}}]},"body":[{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":43,"col":8},"end":{"line":43,"col":15}},"generated_from_span":null},"kind":{"StorageLive":9},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":43,"col":8},"end":{"line":43,"col":15}},"generated_from_span":null},"kind":{"StorageLive":12},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":43,"col":8},"end":{"line":43,"col":15}},"generated_from_span":null},"kind":{"StorageLive":2},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":43,"col":23},"end":{"line":43,"col":24}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":2},"ty":{"Deduplicated":231}},{"Use":{"Const":{"kind":{"Literal":{"Scalar":{"Signed":["I64","0"]}}},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":44,"col":13},"end":{"line":44,"col":18}},"generated_from_span":null},"kind":{"StorageLive":3},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":44,"col":13},"end":{"line":44,"col":18}},"generated_from_span":null},"kind":{"StorageLive":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":44,"col":13},"end":{"line":44,"col":18}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":4},"ty":{"Deduplicated":658}},{"Use":{"Copy":{"kind":{"Local":1},"ty":{"Deduplicated":648}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":44,"col":13},"end":{"line":44,"col":18}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":{"Regular":14}},"generics":{"regions":[{"Body":59}],"types":[{"HashConsedValue":[733,{"Ref":[{"Body":60},{"Deduplicated":231},"Shared"]}]}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6019,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6018,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":733}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":733}],"const_generics":[],"trait_refs":[]}}}}]}]}}},"args":[{"Move":{"kind":{"Local":4},"ty":{"Deduplicated":658}}}],"dest":{"kind":{"Local":3},"ty":{"Deduplicated":6004}}},"target":2,"on_unwind":1}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":42,"col":0},"end":{"line":48,"col":1}},"generated_from_span":null},"kind":"UnwindResume","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":44,"col":17},"end":{"line":44,"col":18}},"generated_from_span":null},"kind":{"StorageDead":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":44,"col":13},"end":{"line":44,"col":18}},"generated_from_span":null},"kind":{"StorageLive":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":44,"col":13},"end":{"line":44,"col":18}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":5},"ty":{"Deduplicated":6006}},{"Use":{"Move":{"kind":{"Local":3},"ty":{"Deduplicated":6004}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":44,"col":4},"end":{"line":46,"col":5}},"generated_from_span":null},"kind":{"Goto":{"target":3}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":44,"col":13},"end":{"line":44,"col":18}},"generated_from_span":null},"kind":{"StorageLive":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":44,"col":13},"end":{"line":44,"col":18}},"generated_from_span":null},"kind":{"StorageLive":7},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":44,"col":13},"end":{"line":44,"col":18}},"generated_from_span":null},"kind":{"StorageLive":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":44,"col":13},"end":{"line":44,"col":18}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":8},"ty":{"Deduplicated":6017}},{"Ref":{"place":{"kind":{"Local":5},"ty":{"Deduplicated":6006}},"kind":"Mut","ptr_metadata":{"Const":{"kind":{"Adt":[null,[]]},"ty":{"Deduplicated":245}}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":44,"col":13},"end":{"line":44,"col":18}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":7},"ty":{"Deduplicated":6013}},{"Ref":{"place":{"kind":{"Projection":[{"kind":{"Local":8},"ty":{"Deduplicated":6017}},"Deref"]},"ty":{"HashConsedValue":[7074,{"Adt":{"id":{"Adt":6},"generics":{"regions":[{"Body":65}],"types":[{"HashConsedValue":[738,{"Ref":[{"Body":66},{"Deduplicated":231},"Shared"]}]}],"const_generics":[],"trait_refs":[{"HashConsedValue":[7073,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[7072,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"HashConsedValue":[7071,{"Ref":[{"Body":67},{"Deduplicated":231},"Shared"]}]}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[741,{"Ref":[{"Body":68},{"Deduplicated":231},"Shared"]}]}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},"kind":"TwoPhaseMut","ptr_metadata":{"Const":{"kind":{"Adt":[null,[]]},"ty":{"Deduplicated":245}}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":44,"col":13},"end":{"line":44,"col":18}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":{"Regular":15}},"generics":{"regions":[{"Body":69},{"Body":76}],"types":[{"HashConsedValue":[757,{"Ref":[{"Body":70},{"Deduplicated":231},"Shared"]}]}],"const_generics":[],"trait_refs":[{"HashConsedValue":[7075,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[1020,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":757}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":757}],"const_generics":[],"trait_refs":[]}}}}]}]}}},"args":[{"Move":{"kind":{"Local":7},"ty":{"Deduplicated":6013}}}],"dest":{"kind":{"Local":6},"ty":{"Deduplicated":6009}}},"target":4,"on_unwind":1}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":44,"col":17},"end":{"line":44,"col":18}},"generated_from_span":null},"kind":{"StorageDead":7},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":44,"col":13},"end":{"line":44,"col":18}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":9},"ty":{"Deduplicated":411}},{"Discriminant":{"kind":{"Local":6},"ty":{"Deduplicated":6009}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":44,"col":13},"end":{"line":44,"col":18}},"generated_from_span":null},"kind":{"Switch":{"discr":{"Move":{"kind":{"Local":9},"ty":{"Deduplicated":411}}},"targets":{"SwitchInt":[{"Int":"Isize"},[[{"Scalar":{"Signed":["Isize","0"]}},5],[{"Scalar":{"Signed":["Isize","1"]}},6]],7]}}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":46,"col":4},"end":{"line":46,"col":5}},"generated_from_span":null},"kind":{"StorageDead":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":46,"col":4},"end":{"line":46,"col":5}},"generated_from_span":null},"kind":{"StorageDead":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":46,"col":4},"end":{"line":46,"col":5}},"generated_from_span":null},"kind":{"StorageDead":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":46,"col":4},"end":{"line":46,"col":5}},"generated_from_span":null},"kind":{"StorageDead":3},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":47,"col":4},"end":{"line":47,"col":7}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Local":2},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":48,"col":0},"end":{"line":48,"col":1}},"generated_from_span":null},"kind":{"StorageDead":2},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":48,"col":1},"end":{"line":48,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":44,"col":8},"end":{"line":44,"col":9}},"generated_from_span":null},"kind":{"StorageLive":10},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":44,"col":8},"end":{"line":44,"col":9}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":10},"ty":{"Deduplicated":719}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Local":6},"ty":{"Deduplicated":6009}},{"Field":[{"Adt":[7,1]},0]}]},"ty":{"HashConsedValue":[7076,{"Ref":[{"Body":83},{"HashConsedValue":[771,{"Ref":[{"Body":84},{"Deduplicated":231},"Shared"]}]},"Shared"]}]}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":45,"col":15},"end":{"line":45,"col":18}},"generated_from_span":null},"kind":{"StorageLive":11},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":45,"col":15},"end":{"line":45,"col":18}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":11},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Projection":[{"kind":{"Local":10},"ty":{"Deduplicated":719}},"Deref"]},"ty":{"HashConsedValue":[7077,{"Ref":[{"Body":85},{"Deduplicated":231},"Shared"]}]}},"Deref"]},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":45,"col":8},"end":{"line":45,"col":18}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":12},"ty":{"Deduplicated":236}},{"BinaryOp":["AddChecked",{"Copy":{"kind":{"Local":2},"ty":{"Deduplicated":231}}},{"Copy":{"kind":{"Local":11},"ty":{"Deduplicated":231}}}]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":45,"col":8},"end":{"line":45,"col":18}},"generated_from_span":null},"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":12},"ty":{"Deduplicated":236}},{"Field":[{"Tuple":2},1]}]},"ty":{"Deduplicated":235}}},"expected":false,"check_kind":{"Overflow":[{"Add":"Wrap"},{"Copy":{"kind":{"Local":2},"ty":{"Deduplicated":231}}},{"Move":{"kind":{"Local":15},"ty":{"Deduplicated":231}}}]}},"target":8,"on_unwind":1}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":44,"col":13},"end":{"line":44,"col":18}},"generated_from_span":null},"kind":{"Abort":"UndefinedBehavior"},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":45,"col":8},"end":{"line":45,"col":18}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":2},"ty":{"Deduplicated":231}},{"Use":{"Move":{"kind":{"Projection":[{"kind":{"Local":12},"ty":{"Deduplicated":236}},{"Field":[{"Tuple":2},0]}]},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":45,"col":17},"end":{"line":45,"col":18}},"generated_from_span":null},"kind":{"StorageDead":11},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":46,"col":4},"end":{"line":46,"col":5}},"generated_from_span":null},"kind":{"StorageDead":10},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":46,"col":4},"end":{"line":46,"col":5}},"generated_from_span":null},"kind":{"StorageDead":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":46,"col":4},"end":{"line":46,"col":5}},"generated_from_span":null},"kind":{"StorageDead":6},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":44,"col":4},"end":{"line":46,"col":5}},"generated_from_span":null},"kind":{"Goto":{"target":3}},"comments_before":[]}}],"comments":[]}}},{"def_id":3,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["array_of_refs_sum",0]}],"span":{"data":{"file_id":0,"beg":{"line":51,"col":0},"end":{"line":57,"col":1}},"generated_from_span":null},"source_text":"pub fn array_of_refs_sum(refs: [&i64; 3]) -> i64 {\n let mut acc: i64 = 0;\n for r in refs {\n acc += *r;\n }\n acc\n}","attr_info":{"attributes":[],"inline":"Never","rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"HashConsedValue":[7078,{"Array":[{"Deduplicated":774},{"kind":{"Literal":{"Scalar":{"Unsigned":["Usize","3"]}}},"ty":{"Deduplicated":775}}]}]}],"output":{"Deduplicated":231}},"src":"TopLevel","is_global_initializer":null,"body":{"Unstructured":{"span":{"data":{"file_id":0,"beg":{"line":51,"col":0},"end":{"line":57,"col":1}},"generated_from_span":null},"bound_body_regions":111,"locals":{"arg_count":1,"locals":[{"index":0,"name":null,"span":{"data":{"file_id":0,"beg":{"line":51,"col":45},"end":{"line":51,"col":48}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":1,"name":"refs","span":{"data":{"file_id":0,"beg":{"line":51,"col":25},"end":{"line":51,"col":29}},"generated_from_span":null},"ty":{"HashConsedValue":[781,{"Array":[{"HashConsedValue":[641,{"Ref":[{"Body":2},{"Deduplicated":231},"Shared"]}]},{"kind":{"Literal":{"Scalar":{"Unsigned":["Usize","3"]}}},"ty":{"Deduplicated":775}}]}]}},{"index":2,"name":"acc","span":{"data":{"file_id":0,"beg":{"line":52,"col":8},"end":{"line":52,"col":15}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":3,"name":null,"span":{"data":{"file_id":0,"beg":{"line":53,"col":13},"end":{"line":53,"col":17}},"generated_from_span":null},"ty":{"HashConsedValue":[6062,{"Adt":{"id":{"Adt":8},"generics":{"regions":[],"types":[{"HashConsedValue":[391,{"Ref":[{"Body":8},{"Deduplicated":231},"Shared"]}]}],"const_generics":[{"kind":{"Literal":{"Scalar":{"Unsigned":["Usize","3"]}}},"ty":{"Deduplicated":775}}],"trait_refs":[{"HashConsedValue":[6061,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6060,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":391}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":391}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},{"index":4,"name":null,"span":{"data":{"file_id":0,"beg":{"line":53,"col":13},"end":{"line":53,"col":17}},"generated_from_span":null},"ty":{"HashConsedValue":[863,{"Array":[{"HashConsedValue":[394,{"Ref":[{"Body":11},{"Deduplicated":231},"Shared"]}]},{"kind":{"Literal":{"Scalar":{"Unsigned":["Usize","3"]}}},"ty":{"Deduplicated":775}}]}]}},{"index":5,"name":"iter","span":{"data":{"file_id":0,"beg":{"line":53,"col":13},"end":{"line":53,"col":17}},"generated_from_span":null},"ty":{"HashConsedValue":[6063,{"Adt":{"id":{"Adt":8},"generics":{"regions":[],"types":[{"Deduplicated":398}],"const_generics":[{"kind":{"Literal":{"Scalar":{"Unsigned":["Usize","3"]}}},"ty":{"Deduplicated":775}}],"trait_refs":[{"Deduplicated":5995}]}}}]}},{"index":6,"name":null,"span":{"data":{"file_id":0,"beg":{"line":53,"col":13},"end":{"line":53,"col":17}},"generated_from_span":null},"ty":{"HashConsedValue":[6066,{"Adt":{"id":{"Adt":7},"generics":{"regions":[],"types":[{"HashConsedValue":[660,{"Ref":[{"Body":20},{"Deduplicated":231},"Shared"]}]}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6065,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6064,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":660}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":660}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},{"index":7,"name":null,"span":{"data":{"file_id":0,"beg":{"line":53,"col":13},"end":{"line":53,"col":17}},"generated_from_span":null},"ty":{"HashConsedValue":[6070,{"Ref":[{"Body":27},{"HashConsedValue":[6069,{"Adt":{"id":{"Adt":8},"generics":{"regions":[],"types":[{"HashConsedValue":[630,{"Ref":[{"Body":28},{"Deduplicated":231},"Shared"]}]}],"const_generics":[{"kind":{"Literal":{"Scalar":{"Unsigned":["Usize","3"]}}},"ty":{"Deduplicated":775}}],"trait_refs":[{"HashConsedValue":[6068,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6067,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":630}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":630}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]},"Mut"]}]}},{"index":8,"name":null,"span":{"data":{"file_id":0,"beg":{"line":53,"col":13},"end":{"line":53,"col":17}},"generated_from_span":null},"ty":{"HashConsedValue":[6074,{"Ref":[{"Body":31},{"HashConsedValue":[6073,{"Adt":{"id":{"Adt":8},"generics":{"regions":[],"types":[{"HashConsedValue":[679,{"Ref":[{"Body":32},{"Deduplicated":231},"Shared"]}]}],"const_generics":[{"kind":{"Literal":{"Scalar":{"Unsigned":["Usize","3"]}}},"ty":{"Deduplicated":775}}],"trait_refs":[{"HashConsedValue":[6072,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6071,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":679}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":679}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]},"Mut"]}]}},{"index":9,"name":null,"span":{"data":{"file_id":0,"beg":{"line":53,"col":4},"end":{"line":55,"col":5}},"generated_from_span":null},"ty":{"Deduplicated":411}},{"index":10,"name":"r","span":{"data":{"file_id":0,"beg":{"line":53,"col":8},"end":{"line":53,"col":9}},"generated_from_span":null},"ty":{"HashConsedValue":[682,{"Ref":[{"Body":35},{"Deduplicated":231},"Shared"]}]}},{"index":11,"name":null,"span":{"data":{"file_id":0,"beg":{"line":54,"col":15},"end":{"line":54,"col":17}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":12,"name":null,"span":{"data":{"file_id":0,"beg":{"line":54,"col":8},"end":{"line":54,"col":17}},"generated_from_span":null},"ty":{"Deduplicated":236}}]},"body":[{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":52,"col":8},"end":{"line":52,"col":15}},"generated_from_span":null},"kind":{"StorageLive":9},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":52,"col":8},"end":{"line":52,"col":15}},"generated_from_span":null},"kind":{"StorageLive":12},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":52,"col":8},"end":{"line":52,"col":15}},"generated_from_span":null},"kind":{"StorageLive":2},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":52,"col":23},"end":{"line":52,"col":24}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":2},"ty":{"Deduplicated":231}},{"Use":{"Const":{"kind":{"Literal":{"Scalar":{"Signed":["I64","0"]}}},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":53,"col":13},"end":{"line":53,"col":17}},"generated_from_span":null},"kind":{"StorageLive":3},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":53,"col":13},"end":{"line":53,"col":17}},"generated_from_span":null},"kind":{"StorageLive":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":53,"col":13},"end":{"line":53,"col":17}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":4},"ty":{"Deduplicated":863}},{"Use":{"Copy":{"kind":{"Local":1},"ty":{"Deduplicated":781}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":53,"col":13},"end":{"line":53,"col":17}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":{"Regular":16}},"generics":{"regions":[],"types":[{"HashConsedValue":[6075,{"Ref":[{"Body":36},{"Deduplicated":231},"Shared"]}]}],"const_generics":[{"kind":{"Literal":{"Scalar":{"Unsigned":["Usize","3"]}}},"ty":{"Deduplicated":775}}],"trait_refs":[{"HashConsedValue":[7084,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[7083,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":6075}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":6075}],"const_generics":[],"trait_refs":[]}}}}]}]}}},"args":[{"Move":{"kind":{"Local":4},"ty":{"Deduplicated":863}}}],"dest":{"kind":{"Local":3},"ty":{"Deduplicated":6062}}},"target":2,"on_unwind":1}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":51,"col":0},"end":{"line":57,"col":1}},"generated_from_span":null},"kind":"UnwindResume","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":53,"col":16},"end":{"line":53,"col":17}},"generated_from_span":null},"kind":{"StorageDead":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":53,"col":13},"end":{"line":53,"col":17}},"generated_from_span":null},"kind":{"StorageLive":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":53,"col":13},"end":{"line":53,"col":17}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":5},"ty":{"Deduplicated":6063}},{"Use":{"Move":{"kind":{"Local":3},"ty":{"Deduplicated":6062}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":53,"col":4},"end":{"line":55,"col":5}},"generated_from_span":null},"kind":{"Goto":{"target":3}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":53,"col":13},"end":{"line":53,"col":17}},"generated_from_span":null},"kind":{"StorageLive":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":53,"col":13},"end":{"line":53,"col":17}},"generated_from_span":null},"kind":{"StorageLive":7},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":53,"col":13},"end":{"line":53,"col":17}},"generated_from_span":null},"kind":{"StorageLive":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":53,"col":13},"end":{"line":53,"col":17}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":8},"ty":{"Deduplicated":6074}},{"Ref":{"place":{"kind":{"Local":5},"ty":{"Deduplicated":6063}},"kind":"Mut","ptr_metadata":{"Const":{"kind":{"Adt":[null,[]]},"ty":{"Deduplicated":245}}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":53,"col":13},"end":{"line":53,"col":17}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":7},"ty":{"Deduplicated":6070}},{"Ref":{"place":{"kind":{"Projection":[{"kind":{"Local":8},"ty":{"Deduplicated":6074}},"Deref"]},"ty":{"HashConsedValue":[7090,{"Adt":{"id":{"Adt":8},"generics":{"regions":[],"types":[{"HashConsedValue":[7085,{"Ref":[{"Body":41},{"Deduplicated":231},"Shared"]}]}],"const_generics":[{"kind":{"Literal":{"Scalar":{"Unsigned":["Usize","3"]}}},"ty":{"Deduplicated":775}}],"trait_refs":[{"HashConsedValue":[7089,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[7087,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"HashConsedValue":[7086,{"Ref":[{"Body":42},{"Deduplicated":231},"Shared"]}]}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[7088,{"Ref":[{"Body":43},{"Deduplicated":231},"Shared"]}]}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},"kind":"TwoPhaseMut","ptr_metadata":{"Const":{"kind":{"Adt":[null,[]]},"ty":{"Deduplicated":245}}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":53,"col":13},"end":{"line":53,"col":17}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":{"Regular":17}},"generics":{"regions":[{"Body":50}],"types":[{"HashConsedValue":[697,{"Ref":[{"Body":44},{"Deduplicated":231},"Shared"]}]}],"const_generics":[{"kind":{"Literal":{"Scalar":{"Unsigned":["Usize","3"]}}},"ty":{"Deduplicated":775}}],"trait_refs":[{"HashConsedValue":[7092,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[7091,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":697}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":697}],"const_generics":[],"trait_refs":[]}}}}]}]}}},"args":[{"Move":{"kind":{"Local":7},"ty":{"Deduplicated":6070}}}],"dest":{"kind":{"Local":6},"ty":{"Deduplicated":6066}}},"target":5,"on_unwind":4}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":55,"col":4},"end":{"line":55,"col":5}},"generated_from_span":null},"kind":{"Drop":{"kind":"Conditional","place":{"kind":{"Local":5},"ty":{"Deduplicated":6063}},"fn_ptr":{"kind":{"Fun":{"Regular":256}},"generics":{"regions":[],"types":[{"Deduplicated":733}],"const_generics":[{"kind":{"Literal":{"Scalar":{"Unsigned":["Usize","3"]}}},"ty":{"Deduplicated":775}}],"trait_refs":[{"Deduplicated":6019}]}},"target":6,"on_unwind":7}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":53,"col":16},"end":{"line":53,"col":17}},"generated_from_span":null},"kind":{"StorageDead":7},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":53,"col":13},"end":{"line":53,"col":17}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":9},"ty":{"Deduplicated":411}},{"Discriminant":{"kind":{"Local":6},"ty":{"Deduplicated":6066}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":53,"col":13},"end":{"line":53,"col":17}},"generated_from_span":null},"kind":{"Switch":{"discr":{"Move":{"kind":{"Local":9},"ty":{"Deduplicated":411}}},"targets":{"SwitchInt":[{"Int":"Isize"},[[{"Scalar":{"Signed":["Isize","0"]}},8],[{"Scalar":{"Signed":["Isize","1"]}},9]],10]}}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":55,"col":4},"end":{"line":55,"col":5}},"generated_from_span":null},"kind":{"Drop":{"kind":"Conditional","place":{"kind":{"Local":3},"ty":{"Deduplicated":6062}},"fn_ptr":{"kind":{"Fun":{"Regular":256}},"generics":{"regions":[],"types":[{"HashConsedValue":[6090,{"Ref":[{"Body":74},{"Deduplicated":231},"Shared"]}]}],"const_generics":[{"kind":{"Literal":{"Scalar":{"Unsigned":["Usize","3"]}}},"ty":{"Deduplicated":775}}],"trait_refs":[{"HashConsedValue":[6314,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6313,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":6090}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":6090}],"const_generics":[],"trait_refs":[]}}}}]}]}},"target":1,"on_unwind":11}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":55,"col":4},"end":{"line":55,"col":5}},"generated_from_span":null},"kind":{"Abort":"UnwindTerminate"},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":55,"col":4},"end":{"line":55,"col":5}},"generated_from_span":null},"kind":{"StorageDead":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":55,"col":4},"end":{"line":55,"col":5}},"generated_from_span":null},"kind":{"StorageDead":6},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":55,"col":4},"end":{"line":55,"col":5}},"generated_from_span":null},"kind":{"Drop":{"kind":"Conditional","place":{"kind":{"Local":5},"ty":{"Deduplicated":6063}},"fn_ptr":{"kind":{"Fun":{"Regular":256}},"generics":{"regions":[],"types":[{"HashConsedValue":[6097,{"Ref":[{"Body":92},{"Deduplicated":231},"Shared"]}]}],"const_generics":[{"kind":{"Literal":{"Scalar":{"Unsigned":["Usize","3"]}}},"ty":{"Deduplicated":775}}],"trait_refs":[{"HashConsedValue":[6320,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6319,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":6097}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":6097}],"const_generics":[],"trait_refs":[]}}}}]}]}},"target":13,"on_unwind":6}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":53,"col":8},"end":{"line":53,"col":9}},"generated_from_span":null},"kind":{"StorageLive":10},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":53,"col":8},"end":{"line":53,"col":9}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":10},"ty":{"Deduplicated":682}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Local":6},"ty":{"Deduplicated":6066}},{"Field":[{"Adt":[7,1]},0]}]},"ty":{"HashConsedValue":[767,{"Ref":[{"Body":82},{"Deduplicated":231},"Shared"]}]}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":54,"col":15},"end":{"line":54,"col":17}},"generated_from_span":null},"kind":{"StorageLive":11},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":54,"col":15},"end":{"line":54,"col":17}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":11},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Local":10},"ty":{"Deduplicated":682}},"Deref"]},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":54,"col":8},"end":{"line":54,"col":17}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":12},"ty":{"Deduplicated":236}},{"BinaryOp":["AddChecked",{"Copy":{"kind":{"Local":2},"ty":{"Deduplicated":231}}},{"Copy":{"kind":{"Local":11},"ty":{"Deduplicated":231}}}]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":54,"col":8},"end":{"line":54,"col":17}},"generated_from_span":null},"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":12},"ty":{"Deduplicated":236}},{"Field":[{"Tuple":2},1]}]},"ty":{"Deduplicated":235}}},"expected":false,"check_kind":{"Overflow":[{"Add":"Wrap"},{"Copy":{"kind":{"Local":2},"ty":{"Deduplicated":231}}},{"Move":{"kind":{"Local":15},"ty":{"Deduplicated":231}}}]}},"target":12,"on_unwind":4}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":53,"col":13},"end":{"line":53,"col":17}},"generated_from_span":null},"kind":{"Abort":"UndefinedBehavior"},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":55,"col":4},"end":{"line":55,"col":5}},"generated_from_span":null},"kind":{"Abort":"UnwindTerminate"},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":54,"col":8},"end":{"line":54,"col":17}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":2},"ty":{"Deduplicated":231}},{"Use":{"Move":{"kind":{"Projection":[{"kind":{"Local":12},"ty":{"Deduplicated":236}},{"Field":[{"Tuple":2},0]}]},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":54,"col":16},"end":{"line":54,"col":17}},"generated_from_span":null},"kind":{"StorageDead":11},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":55,"col":4},"end":{"line":55,"col":5}},"generated_from_span":null},"kind":{"StorageDead":10},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":55,"col":4},"end":{"line":55,"col":5}},"generated_from_span":null},"kind":{"StorageDead":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":55,"col":4},"end":{"line":55,"col":5}},"generated_from_span":null},"kind":{"StorageDead":6},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":53,"col":4},"end":{"line":55,"col":5}},"generated_from_span":null},"kind":{"Goto":{"target":3}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":55,"col":4},"end":{"line":55,"col":5}},"generated_from_span":null},"kind":{"StorageDead":5},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":55,"col":4},"end":{"line":55,"col":5}},"generated_from_span":null},"kind":{"Drop":{"kind":"Conditional","place":{"kind":{"Local":3},"ty":{"Deduplicated":6062}},"fn_ptr":{"kind":{"Fun":{"Regular":256}},"generics":{"regions":[],"types":[{"HashConsedValue":[6104,{"Ref":[{"Body":106},{"Deduplicated":231},"Shared"]}]}],"const_generics":[{"kind":{"Literal":{"Scalar":{"Unsigned":["Usize","3"]}}},"ty":{"Deduplicated":775}}],"trait_refs":[{"HashConsedValue":[6326,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6325,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":6104}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":6104}],"const_generics":[],"trait_refs":[]}}}}]}]}},"target":14,"on_unwind":1}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":55,"col":4},"end":{"line":55,"col":5}},"generated_from_span":null},"kind":{"StorageDead":3},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":56,"col":4},"end":{"line":56,"col":7}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Local":2},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":57,"col":0},"end":{"line":57,"col":1}},"generated_from_span":null},"kind":{"StorageDead":2},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":57,"col":1},"end":{"line":57,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}}],"comments":[]}}},{"def_id":4,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["strategy_len",0]}],"span":{"data":{"file_id":0,"beg":{"line":67,"col":0},"end":{"line":73,"col":1}},"generated_from_span":null},"source_text":"pub fn strategy_len(s: &Strategy) -> usize {\n match s {\n Strategy::Empty => 0,\n Strategy::IntKeyed { len } => *len,\n Strategy::StrKeyed { len, capacity: _ } => *len,\n }\n}","attr_info":{"attributes":[],"inline":"Never","rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"HashConsedValue":[7093,{"Ref":[{"Var":{"Bound":[0,0]}},{"HashConsedValue":[1087,{"Adt":{"id":{"Adt":1},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}}]},"Shared"]}]}],"output":{"Deduplicated":775}},"src":"TopLevel","is_global_initializer":null,"body":{"Unstructured":{"span":{"data":{"file_id":0,"beg":{"line":67,"col":0},"end":{"line":73,"col":1}},"generated_from_span":null},"bound_body_regions":5,"locals":{"arg_count":1,"locals":[{"index":0,"name":null,"span":{"data":{"file_id":0,"beg":{"line":67,"col":37},"end":{"line":67,"col":42}},"generated_from_span":null},"ty":{"Deduplicated":775}},{"index":1,"name":"s","span":{"data":{"file_id":0,"beg":{"line":67,"col":20},"end":{"line":67,"col":21}},"generated_from_span":null},"ty":{"HashConsedValue":[1091,{"Ref":[{"Body":1},{"Deduplicated":1087},"Shared"]}]}},{"index":2,"name":null,"span":{"data":{"file_id":0,"beg":{"line":69,"col":8},"end":{"line":69,"col":23}},"generated_from_span":null},"ty":{"Deduplicated":411}},{"index":3,"name":"len","span":{"data":{"file_id":0,"beg":{"line":70,"col":29},"end":{"line":70,"col":32}},"generated_from_span":null},"ty":{"HashConsedValue":[1094,{"Ref":[{"Body":3},{"Deduplicated":775},"Shared"]}]}},{"index":4,"name":"len","span":{"data":{"file_id":0,"beg":{"line":71,"col":29},"end":{"line":71,"col":32}},"generated_from_span":null},"ty":{"HashConsedValue":[1095,{"Ref":[{"Body":4},{"Deduplicated":775},"Shared"]}]}}]},"body":[{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":68,"col":10},"end":{"line":68,"col":11}},"generated_from_span":null},"kind":{"StorageLive":2},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":68,"col":10},"end":{"line":68,"col":11}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":2},"ty":{"Deduplicated":411}},{"Discriminant":{"kind":{"Projection":[{"kind":{"Local":1},"ty":{"Deduplicated":1091}},"Deref"]},"ty":{"Deduplicated":1087}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":68,"col":4},"end":{"line":68,"col":11}},"generated_from_span":null},"kind":{"Switch":{"discr":{"Move":{"kind":{"Local":2},"ty":{"Deduplicated":411}}},"targets":{"SwitchInt":[{"Int":"Isize"},[[{"Scalar":{"Signed":["Isize","0"]}},1],[{"Scalar":{"Signed":["Isize","1"]}},2],[{"Scalar":{"Signed":["Isize","2"]}},3]],4]}}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":69,"col":27},"end":{"line":69,"col":28}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":775}},{"Use":{"Const":{"kind":{"Literal":{"Scalar":{"Unsigned":["Usize","0"]}}},"ty":{"Deduplicated":775}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":73,"col":1},"end":{"line":73,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":70,"col":29},"end":{"line":70,"col":32}},"generated_from_span":null},"kind":{"StorageLive":3},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":70,"col":29},"end":{"line":70,"col":32}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":3},"ty":{"Deduplicated":1094}},{"Ref":{"place":{"kind":{"Projection":[{"kind":{"Projection":[{"kind":{"Local":1},"ty":{"Deduplicated":1091}},"Deref"]},"ty":{"Deduplicated":1087}},{"Field":[{"Adt":[1,1]},0]}]},"ty":{"Deduplicated":775}},"kind":"Shared","ptr_metadata":{"Const":{"kind":{"Adt":[null,[]]},"ty":{"Deduplicated":245}}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":70,"col":38},"end":{"line":70,"col":42}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":775}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Local":3},"ty":{"Deduplicated":1094}},"Deref"]},"ty":{"Deduplicated":775}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":70,"col":41},"end":{"line":70,"col":42}},"generated_from_span":null},"kind":{"StorageDead":3},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":73,"col":1},"end":{"line":73,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":71,"col":29},"end":{"line":71,"col":32}},"generated_from_span":null},"kind":{"StorageLive":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":71,"col":29},"end":{"line":71,"col":32}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":4},"ty":{"Deduplicated":1095}},{"Ref":{"place":{"kind":{"Projection":[{"kind":{"Projection":[{"kind":{"Local":1},"ty":{"Deduplicated":1091}},"Deref"]},"ty":{"Deduplicated":1087}},{"Field":[{"Adt":[1,2]},0]}]},"ty":{"Deduplicated":775}},"kind":"Shared","ptr_metadata":{"Const":{"kind":{"Adt":[null,[]]},"ty":{"Deduplicated":245}}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":71,"col":51},"end":{"line":71,"col":55}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":775}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Local":4},"ty":{"Deduplicated":1095}},"Deref"]},"ty":{"Deduplicated":775}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":71,"col":54},"end":{"line":71,"col":55}},"generated_from_span":null},"kind":{"StorageDead":4},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":73,"col":1},"end":{"line":73,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":68,"col":10},"end":{"line":68,"col":11}},"generated_from_span":null},"kind":{"Abort":"UndefinedBehavior"},"comments_before":[]}}],"comments":[]}}},{"def_id":5,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["parse_one",0]}],"span":{"data":{"file_id":0,"beg":{"line":82,"col":0},"end":{"line":89,"col":1}},"generated_from_span":null},"source_text":"fn parse_one(raw: i64) -> PyResult {\n match raw {\n i64::MIN => Ok(Token::Halt),\n 0 => Err(\"halt-zero forbidden\"),\n v if v > 0 => Ok(Token::Add(v)),\n v => Ok(Token::Sub(-v)),\n }\n}","attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":231}],"output":{"HashConsedValue":[7094,{"Adt":{"id":{"Adt":5},"generics":{"regions":[],"types":[{"HashConsedValue":[1101,{"Adt":{"id":{"Adt":2},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}}]},{"Deduplicated":222}],"const_generics":[],"trait_refs":[{"HashConsedValue":[1103,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[1102,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":1101}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":1101}],"const_generics":[],"trait_refs":[]}}}}]},{"Deduplicated":229}]}}}]}},"src":"TopLevel","is_global_initializer":null,"body":{"Unstructured":{"span":{"data":{"file_id":0,"beg":{"line":82,"col":0},"end":{"line":89,"col":1}},"generated_from_span":null},"bound_body_regions":35,"locals":{"arg_count":1,"locals":[{"index":0,"name":null,"span":{"data":{"file_id":0,"beg":{"line":82,"col":26},"end":{"line":82,"col":41}},"generated_from_span":null},"ty":{"HashConsedValue":[6115,{"Adt":{"id":{"Adt":5},"generics":{"regions":[],"types":[{"Deduplicated":1101},{"HashConsedValue":[1118,{"Ref":[{"Body":6},{"Deduplicated":221},"Shared"]}]}],"const_generics":[],"trait_refs":[{"Deduplicated":1103},{"HashConsedValue":[6114,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6113,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":1118}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":1118}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},{"index":1,"name":"raw","span":{"data":{"file_id":0,"beg":{"line":82,"col":13},"end":{"line":82,"col":16}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":2,"name":null,"span":{"data":{"file_id":0,"beg":{"line":83,"col":10},"end":{"line":83,"col":13}},"generated_from_span":null},"ty":{"HashConsedValue":[393,{"Ref":[{"Body":10},{"Deduplicated":231},"Shared"]}]}},{"index":3,"name":null,"span":{"data":{"file_id":0,"beg":{"line":84,"col":23},"end":{"line":84,"col":34}},"generated_from_span":null},"ty":{"Deduplicated":1101}},{"index":4,"name":null,"span":{"data":{"file_id":0,"beg":{"line":85,"col":17},"end":{"line":85,"col":38}},"generated_from_span":null},"ty":{"HashConsedValue":[1124,{"Ref":[{"Body":11},{"Deduplicated":221},"Shared"]}]}},{"index":5,"name":null,"span":{"data":{"file_id":0,"beg":{"line":85,"col":17},"end":{"line":85,"col":38}},"generated_from_span":null},"ty":{"HashConsedValue":[1125,{"Ref":[{"Body":12},{"Deduplicated":221},"Shared"]}]}},{"index":6,"name":"v","span":{"data":{"file_id":0,"beg":{"line":86,"col":8},"end":{"line":86,"col":9}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":7,"name":"v","span":{"data":{"file_id":0,"beg":{"line":86,"col":8},"end":{"line":86,"col":9}},"generated_from_span":null},"ty":{"Deduplicated":399}},{"index":8,"name":null,"span":{"data":{"file_id":0,"beg":{"line":86,"col":13},"end":{"line":86,"col":18}},"generated_from_span":null},"ty":{"Deduplicated":235}},{"index":9,"name":null,"span":{"data":{"file_id":0,"beg":{"line":86,"col":13},"end":{"line":86,"col":14}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":10,"name":null,"span":{"data":{"file_id":0,"beg":{"line":86,"col":25},"end":{"line":86,"col":38}},"generated_from_span":null},"ty":{"Deduplicated":1101}},{"index":11,"name":null,"span":{"data":{"file_id":0,"beg":{"line":86,"col":36},"end":{"line":86,"col":37}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":12,"name":"v","span":{"data":{"file_id":0,"beg":{"line":87,"col":8},"end":{"line":87,"col":9}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":13,"name":null,"span":{"data":{"file_id":0,"beg":{"line":87,"col":16},"end":{"line":87,"col":30}},"generated_from_span":null},"ty":{"Deduplicated":1101}},{"index":14,"name":null,"span":{"data":{"file_id":0,"beg":{"line":87,"col":27},"end":{"line":87,"col":29}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":15,"name":null,"span":{"data":{"file_id":0,"beg":{"line":87,"col":28},"end":{"line":87,"col":29}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":16,"name":null,"span":{"data":{"file_id":0,"beg":{"line":87,"col":27},"end":{"line":87,"col":29}},"generated_from_span":null},"ty":{"Deduplicated":235}}]},"body":[{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":83,"col":4},"end":{"line":83,"col":13}},"generated_from_span":null},"kind":{"StorageLive":2},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":83,"col":4},"end":{"line":83,"col":13}},"generated_from_span":null},"kind":{"StorageLive":16},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":83,"col":4},"end":{"line":83,"col":13}},"generated_from_span":null},"kind":{"Switch":{"discr":{"Copy":{"kind":{"Local":1},"ty":{"Deduplicated":231}}},"targets":{"SwitchInt":[{"Int":"I64"},[[{"Scalar":{"Signed":["I64","-9223372036854775808"]}},1],[{"Scalar":{"Signed":["I64","0"]}},2]],3]}}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":84,"col":23},"end":{"line":84,"col":34}},"generated_from_span":null},"kind":{"StorageLive":3},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":84,"col":23},"end":{"line":84,"col":34}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":3},"ty":{"Deduplicated":1101}},{"Aggregate":[{"Adt":[{"id":{"Adt":2},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}},2,null]},[]]}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":84,"col":20},"end":{"line":84,"col":35}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":6115}},{"Aggregate":[{"Adt":[{"id":{"Adt":5},"generics":{"regions":[],"types":[{"Deduplicated":1101},{"HashConsedValue":[7095,{"Ref":[{"Body":14},{"Deduplicated":221},"Shared"]}]}],"const_generics":[],"trait_refs":[{"Deduplicated":1103},{"HashConsedValue":[7099,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[7097,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"HashConsedValue":[7096,{"Ref":[{"Body":18},{"Deduplicated":221},"Shared"]}]}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[7098,{"Ref":[{"Body":16},{"Deduplicated":221},"Shared"]}]}],"const_generics":[],"trait_refs":[]}}}}]}]}},0,null]},[{"Move":{"kind":{"Local":3},"ty":{"Deduplicated":1101}}}]]}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":84,"col":34},"end":{"line":84,"col":35}},"generated_from_span":null},"kind":{"StorageDead":3},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":89,"col":1},"end":{"line":89,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":85,"col":17},"end":{"line":85,"col":38}},"generated_from_span":null},"kind":{"StorageLive":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":85,"col":17},"end":{"line":85,"col":38}},"generated_from_span":null},"kind":{"StorageLive":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":85,"col":17},"end":{"line":85,"col":38}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":5},"ty":{"Deduplicated":1125}},{"Use":{"Const":{"kind":{"Literal":{"Str":"halt-zero forbidden"}},"ty":{"HashConsedValue":[7100,{"Ref":[{"Body":19},{"Deduplicated":221},"Shared"]}]}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":85,"col":17},"end":{"line":85,"col":38}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":4},"ty":{"Deduplicated":1124}},{"Ref":{"place":{"kind":{"Projection":[{"kind":{"Local":5},"ty":{"Deduplicated":1125}},"Deref"]},"ty":{"Deduplicated":221}},"kind":"Shared","ptr_metadata":{"Copy":{"kind":{"Projection":[{"kind":{"Local":5},"ty":{"Deduplicated":1125}},"PtrMetadata"]},"ty":{"Deduplicated":775}}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":85,"col":13},"end":{"line":85,"col":39}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":6115}},{"Aggregate":[{"Adt":[{"id":{"Adt":5},"generics":{"regions":[],"types":[{"Deduplicated":1101},{"HashConsedValue":[7101,{"Ref":[{"Body":20},{"Deduplicated":221},"Shared"]}]}],"const_generics":[],"trait_refs":[{"Deduplicated":1103},{"HashConsedValue":[7105,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[7103,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"HashConsedValue":[7102,{"Ref":[{"Body":24},{"Deduplicated":221},"Shared"]}]}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[7104,{"Ref":[{"Body":22},{"Deduplicated":221},"Shared"]}]}],"const_generics":[],"trait_refs":[]}}}}]}]}},1,null]},[{"Move":{"kind":{"Local":4},"ty":{"Deduplicated":1124}}}]]}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":85,"col":38},"end":{"line":85,"col":39}},"generated_from_span":null},"kind":{"StorageDead":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":85,"col":38},"end":{"line":85,"col":39}},"generated_from_span":null},"kind":{"StorageDead":5},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":89,"col":1},"end":{"line":89,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":86,"col":8},"end":{"line":86,"col":9}},"generated_from_span":null},"kind":{"StorageLive":7},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":86,"col":8},"end":{"line":86,"col":9}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":7},"ty":{"Deduplicated":399}},{"Ref":{"place":{"kind":{"Local":1},"ty":{"Deduplicated":231}},"kind":"Shared","ptr_metadata":{"Const":{"kind":{"Adt":[null,[]]},"ty":{"Deduplicated":245}}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":83,"col":10},"end":{"line":83,"col":13}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":2},"ty":{"Deduplicated":393}},{"Ref":{"place":{"kind":{"Local":1},"ty":{"Deduplicated":231}},"kind":"Shallow","ptr_metadata":{"Const":{"kind":{"Adt":[null,[]]},"ty":{"Deduplicated":245}}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":86,"col":13},"end":{"line":86,"col":18}},"generated_from_span":null},"kind":{"StorageLive":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":86,"col":13},"end":{"line":86,"col":14}},"generated_from_span":null},"kind":{"StorageLive":9},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":86,"col":13},"end":{"line":86,"col":14}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":9},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Local":7},"ty":{"Deduplicated":399}},"Deref"]},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":86,"col":13},"end":{"line":86,"col":18}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":8},"ty":{"Deduplicated":235}},{"BinaryOp":["Gt",{"Move":{"kind":{"Local":9},"ty":{"Deduplicated":231}}},{"Const":{"kind":{"Literal":{"Scalar":{"Signed":["I64","0"]}}},"ty":{"Deduplicated":231}}}]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":86,"col":13},"end":{"line":86,"col":18}},"generated_from_span":null},"kind":{"Switch":{"discr":{"Move":{"kind":{"Local":8},"ty":{"Deduplicated":235}}},"targets":{"If":[4,5]}}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":86,"col":17},"end":{"line":86,"col":18}},"generated_from_span":null},"kind":{"StorageDead":9},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":86,"col":17},"end":{"line":86,"col":18}},"generated_from_span":null},"kind":{"StorageDead":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":86,"col":8},"end":{"line":86,"col":9}},"generated_from_span":null},"kind":{"StorageLive":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":86,"col":8},"end":{"line":86,"col":9}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":6},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Local":1},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":86,"col":25},"end":{"line":86,"col":38}},"generated_from_span":null},"kind":{"StorageLive":10},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":86,"col":36},"end":{"line":86,"col":37}},"generated_from_span":null},"kind":{"StorageLive":11},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":86,"col":36},"end":{"line":86,"col":37}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":11},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Local":6},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":86,"col":25},"end":{"line":86,"col":38}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":10},"ty":{"Deduplicated":1101}},{"Aggregate":[{"Adt":[{"id":{"Adt":2},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}},0,null]},[{"Move":{"kind":{"Local":11},"ty":{"Deduplicated":231}}}]]}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":86,"col":37},"end":{"line":86,"col":38}},"generated_from_span":null},"kind":{"StorageDead":11},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":86,"col":22},"end":{"line":86,"col":39}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":6115}},{"Aggregate":[{"Adt":[{"id":{"Adt":5},"generics":{"regions":[],"types":[{"Deduplicated":1101},{"HashConsedValue":[7106,{"Ref":[{"Body":25},{"Deduplicated":221},"Shared"]}]}],"const_generics":[],"trait_refs":[{"Deduplicated":1103},{"HashConsedValue":[7110,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[7108,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"HashConsedValue":[7107,{"Ref":[{"Body":29},{"Deduplicated":221},"Shared"]}]}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[7109,{"Ref":[{"Body":27},{"Deduplicated":221},"Shared"]}]}],"const_generics":[],"trait_refs":[]}}}}]}]}},0,null]},[{"Move":{"kind":{"Local":10},"ty":{"Deduplicated":1101}}}]]}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":86,"col":38},"end":{"line":86,"col":39}},"generated_from_span":null},"kind":{"StorageDead":10},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":86,"col":38},"end":{"line":86,"col":39}},"generated_from_span":null},"kind":{"StorageDead":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":86,"col":38},"end":{"line":86,"col":39}},"generated_from_span":null},"kind":{"StorageDead":7},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":89,"col":1},"end":{"line":89,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":86,"col":17},"end":{"line":86,"col":18}},"generated_from_span":null},"kind":{"StorageDead":9},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":86,"col":17},"end":{"line":86,"col":18}},"generated_from_span":null},"kind":{"StorageDead":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":86,"col":38},"end":{"line":86,"col":39}},"generated_from_span":null},"kind":{"StorageDead":7},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":87,"col":8},"end":{"line":87,"col":9}},"generated_from_span":null},"kind":{"StorageLive":12},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":87,"col":8},"end":{"line":87,"col":9}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":12},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Local":1},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":87,"col":16},"end":{"line":87,"col":30}},"generated_from_span":null},"kind":{"StorageLive":13},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":87,"col":27},"end":{"line":87,"col":29}},"generated_from_span":null},"kind":{"StorageLive":14},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":87,"col":28},"end":{"line":87,"col":29}},"generated_from_span":null},"kind":{"StorageLive":15},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":87,"col":28},"end":{"line":87,"col":29}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":15},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Local":12},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":87,"col":27},"end":{"line":87,"col":29}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":16},"ty":{"Deduplicated":235}},{"BinaryOp":["Eq",{"Copy":{"kind":{"Local":15},"ty":{"Deduplicated":231}}},{"Const":{"kind":{"Literal":{"Scalar":{"Signed":["I64","-9223372036854775808"]}}},"ty":{"Deduplicated":231}}}]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":87,"col":27},"end":{"line":87,"col":29}},"generated_from_span":null},"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Local":16},"ty":{"Deduplicated":235}}},"expected":false,"check_kind":{"OverflowNeg":{"Copy":{"kind":{"Local":15},"ty":{"Deduplicated":231}}}}},"target":7,"on_unwind":6}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":82,"col":0},"end":{"line":89,"col":1}},"generated_from_span":null},"kind":"UnwindResume","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":87,"col":27},"end":{"line":87,"col":29}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":14},"ty":{"Deduplicated":231}},{"UnaryOp":[{"Neg":"Wrap"},{"Move":{"kind":{"Local":15},"ty":{"Deduplicated":231}}}]}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":87,"col":28},"end":{"line":87,"col":29}},"generated_from_span":null},"kind":{"StorageDead":15},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":87,"col":16},"end":{"line":87,"col":30}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":13},"ty":{"Deduplicated":1101}},{"Aggregate":[{"Adt":[{"id":{"Adt":2},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}},1,null]},[{"Move":{"kind":{"Local":14},"ty":{"Deduplicated":231}}}]]}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":87,"col":29},"end":{"line":87,"col":30}},"generated_from_span":null},"kind":{"StorageDead":14},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":87,"col":13},"end":{"line":87,"col":31}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":6115}},{"Aggregate":[{"Adt":[{"id":{"Adt":5},"generics":{"regions":[],"types":[{"Deduplicated":1101},{"HashConsedValue":[7111,{"Ref":[{"Body":30},{"Deduplicated":221},"Shared"]}]}],"const_generics":[],"trait_refs":[{"Deduplicated":1103},{"HashConsedValue":[7115,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[7113,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"HashConsedValue":[7112,{"Ref":[{"Body":34},{"Deduplicated":221},"Shared"]}]}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[7114,{"Ref":[{"Body":32},{"Deduplicated":221},"Shared"]}]}],"const_generics":[],"trait_refs":[]}}}}]}]}},0,null]},[{"Move":{"kind":{"Local":13},"ty":{"Deduplicated":1101}}}]]}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":87,"col":30},"end":{"line":87,"col":31}},"generated_from_span":null},"kind":{"StorageDead":13},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":87,"col":30},"end":{"line":87,"col":31}},"generated_from_span":null},"kind":{"StorageDead":12},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":89,"col":1},"end":{"line":89,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}}],"comments":[]}}},{"def_id":6,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["desugar_mix",0]}],"span":{"data":{"file_id":0,"beg":{"line":92,"col":0},"end":{"line":103,"col":1}},"generated_from_span":null},"source_text":"pub fn desugar_mix(input: &[i64]) -> PyResult {\n let mut acc: i64 = 0;\n for &raw in input.iter() {\n let tok = parse_one(raw)?;\n match tok {\n Token::Add(v) => acc += v,\n Token::Sub(v) => acc -= v,\n Token::Halt => break,\n }\n }\n Ok(acc)\n}","attr_info":{"attributes":[],"inline":"Never","rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":238}],"output":{"HashConsedValue":[7116,{"Adt":{"id":{"Adt":5},"generics":{"regions":[],"types":[{"Deduplicated":231},{"Deduplicated":222}],"const_generics":[],"trait_refs":[{"Deduplicated":356},{"Deduplicated":229}]}}}]}},"src":"TopLevel","is_global_initializer":null,"body":{"Unstructured":{"span":{"data":{"file_id":0,"beg":{"line":92,"col":0},"end":{"line":103,"col":1}},"generated_from_span":null},"bound_body_regions":147,"locals":{"arg_count":1,"locals":[{"index":0,"name":null,"span":{"data":{"file_id":0,"beg":{"line":92,"col":37},"end":{"line":92,"col":50}},"generated_from_span":null},"ty":{"HashConsedValue":[6169,{"Adt":{"id":{"Adt":5},"generics":{"regions":[],"types":[{"Deduplicated":231},{"Deduplicated":1118}],"const_generics":[],"trait_refs":[{"Deduplicated":356},{"Deduplicated":6114}]}}}]}},{"index":1,"name":"input","span":{"data":{"file_id":0,"beg":{"line":92,"col":19},"end":{"line":92,"col":24}},"generated_from_span":null},"ty":{"HashConsedValue":[1161,{"Ref":[{"Body":10},{"Deduplicated":237},"Shared"]}]}},{"index":2,"name":"acc","span":{"data":{"file_id":0,"beg":{"line":93,"col":8},"end":{"line":93,"col":15}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":3,"name":null,"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":28}},"generated_from_span":null},"ty":{"HashConsedValue":[1163,{"Adt":{"id":{"Adt":6},"generics":{"regions":[{"Body":12}],"types":[{"Deduplicated":231}],"const_generics":[],"trait_refs":[{"Deduplicated":356}]}}}]}},{"index":4,"name":null,"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":28}},"generated_from_span":null},"ty":{"HashConsedValue":[1164,{"Adt":{"id":{"Adt":6},"generics":{"regions":[{"Body":13}],"types":[{"Deduplicated":231}],"const_generics":[],"trait_refs":[{"Deduplicated":356}]}}}]}},{"index":5,"name":null,"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":21}},"generated_from_span":null},"ty":{"HashConsedValue":[1165,{"Ref":[{"Body":14},{"Deduplicated":237},"Shared"]}]}},{"index":6,"name":"iter","span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":28}},"generated_from_span":null},"ty":{"HashConsedValue":[1166,{"Adt":{"id":{"Adt":6},"generics":{"regions":[{"Body":15}],"types":[{"Deduplicated":231}],"const_generics":[],"trait_refs":[{"Deduplicated":356}]}}}]}},{"index":7,"name":null,"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":28}},"generated_from_span":null},"ty":{"HashConsedValue":[6172,{"Adt":{"id":{"Adt":7},"generics":{"regions":[],"types":[{"HashConsedValue":[871,{"Ref":[{"Body":22},{"Deduplicated":231},"Shared"]}]}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6171,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6170,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":871}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":871}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},{"index":8,"name":null,"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":28}},"generated_from_span":null},"ty":{"HashConsedValue":[1175,{"Ref":[{"Body":27},{"HashConsedValue":[1174,{"Adt":{"id":{"Adt":6},"generics":{"regions":[{"Body":28}],"types":[{"Deduplicated":231}],"const_generics":[],"trait_refs":[{"Deduplicated":356}]}}}]},"Mut"]}]}},{"index":9,"name":null,"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":28}},"generated_from_span":null},"ty":{"HashConsedValue":[1177,{"Ref":[{"Body":29},{"HashConsedValue":[1176,{"Adt":{"id":{"Adt":6},"generics":{"regions":[{"Body":30}],"types":[{"Deduplicated":231}],"const_generics":[],"trait_refs":[{"Deduplicated":356}]}}}]},"Mut"]}]}},{"index":10,"name":null,"span":{"data":{"file_id":0,"beg":{"line":94,"col":4},"end":{"line":101,"col":5}},"generated_from_span":null},"ty":{"Deduplicated":411}},{"index":11,"name":"raw","span":{"data":{"file_id":0,"beg":{"line":94,"col":9},"end":{"line":94,"col":12}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":12,"name":"tok","span":{"data":{"file_id":0,"beg":{"line":95,"col":12},"end":{"line":95,"col":15}},"generated_from_span":null},"ty":{"Deduplicated":1101}},{"index":13,"name":null,"span":{"data":{"file_id":0,"beg":{"line":95,"col":18},"end":{"line":95,"col":33}},"generated_from_span":null},"ty":{"HashConsedValue":[6178,{"Adt":{"id":{"Adt":9},"generics":{"regions":[],"types":[{"HashConsedValue":[6175,{"Adt":{"id":{"Adt":5},"generics":{"regions":[],"types":[{"HashConsedValue":[1283,{"Adt":{"id":{"Adt":10},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}}]},{"HashConsedValue":[1329,{"Ref":[{"Body":57},{"Deduplicated":221},"Shared"]}]}],"const_generics":[],"trait_refs":[{"HashConsedValue":[1285,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[1284,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":1283}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":1283}],"const_generics":[],"trait_refs":[]}}}}]},{"HashConsedValue":[6174,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6173,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":1329}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":1329}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]},{"Deduplicated":1101}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6177,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6176,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":6175}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":6175}],"const_generics":[],"trait_refs":[]}}}}]},{"Deduplicated":1103}]}}}]}},{"index":14,"name":null,"span":{"data":{"file_id":0,"beg":{"line":95,"col":18},"end":{"line":95,"col":32}},"generated_from_span":null},"ty":{"HashConsedValue":[6181,{"Adt":{"id":{"Adt":5},"generics":{"regions":[],"types":[{"Deduplicated":1101},{"HashConsedValue":[1358,{"Ref":[{"Body":71},{"Deduplicated":221},"Shared"]}]}],"const_generics":[],"trait_refs":[{"Deduplicated":1103},{"HashConsedValue":[6180,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6179,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":1358}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":1358}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},{"index":15,"name":null,"span":{"data":{"file_id":0,"beg":{"line":95,"col":28},"end":{"line":95,"col":31}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":16,"name":null,"span":{"data":{"file_id":0,"beg":{"line":95,"col":32},"end":{"line":95,"col":33}},"generated_from_span":null},"ty":{"Deduplicated":411}},{"index":17,"name":"residual","span":{"data":{"file_id":0,"beg":{"line":95,"col":32},"end":{"line":95,"col":33}},"generated_from_span":null},"ty":{"HashConsedValue":[6184,{"Adt":{"id":{"Adt":5},"generics":{"regions":[],"types":[{"Deduplicated":1283},{"HashConsedValue":[1364,{"Ref":[{"Body":74},{"Deduplicated":221},"Shared"]}]}],"const_generics":[],"trait_refs":[{"Deduplicated":1285},{"HashConsedValue":[6183,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6182,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":1364}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":1364}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},{"index":18,"name":null,"span":{"data":{"file_id":0,"beg":{"line":95,"col":32},"end":{"line":95,"col":33}},"generated_from_span":null},"ty":{"HashConsedValue":[6187,{"Adt":{"id":{"Adt":5},"generics":{"regions":[],"types":[{"Deduplicated":1283},{"HashConsedValue":[1370,{"Ref":[{"Body":77},{"Deduplicated":221},"Shared"]}]}],"const_generics":[],"trait_refs":[{"Deduplicated":1285},{"HashConsedValue":[6186,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6185,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":1370}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":1370}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},{"index":19,"name":"val","span":{"data":{"file_id":0,"beg":{"line":95,"col":18},"end":{"line":95,"col":33}},"generated_from_span":null},"ty":{"Deduplicated":1101}},{"index":20,"name":null,"span":{"data":{"file_id":0,"beg":{"line":97,"col":12},"end":{"line":97,"col":25}},"generated_from_span":null},"ty":{"Deduplicated":411}},{"index":21,"name":"v","span":{"data":{"file_id":0,"beg":{"line":97,"col":23},"end":{"line":97,"col":24}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":22,"name":null,"span":{"data":{"file_id":0,"beg":{"line":97,"col":36},"end":{"line":97,"col":37}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":23,"name":null,"span":{"data":{"file_id":0,"beg":{"line":97,"col":29},"end":{"line":97,"col":37}},"generated_from_span":null},"ty":{"Deduplicated":236}},{"index":24,"name":"v","span":{"data":{"file_id":0,"beg":{"line":98,"col":23},"end":{"line":98,"col":24}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":25,"name":null,"span":{"data":{"file_id":0,"beg":{"line":98,"col":36},"end":{"line":98,"col":37}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":26,"name":null,"span":{"data":{"file_id":0,"beg":{"line":98,"col":29},"end":{"line":98,"col":37}},"generated_from_span":null},"ty":{"Deduplicated":236}},{"index":27,"name":null,"span":{"data":{"file_id":0,"beg":{"line":102,"col":7},"end":{"line":102,"col":10}},"generated_from_span":null},"ty":{"Deduplicated":231}}]},"body":[{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":93,"col":8},"end":{"line":93,"col":15}},"generated_from_span":null},"kind":{"StorageLive":10},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":93,"col":8},"end":{"line":93,"col":15}},"generated_from_span":null},"kind":{"StorageLive":16},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":93,"col":8},"end":{"line":93,"col":15}},"generated_from_span":null},"kind":{"StorageLive":20},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":93,"col":8},"end":{"line":93,"col":15}},"generated_from_span":null},"kind":{"StorageLive":23},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":93,"col":8},"end":{"line":93,"col":15}},"generated_from_span":null},"kind":{"StorageLive":26},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":93,"col":8},"end":{"line":93,"col":15}},"generated_from_span":null},"kind":{"StorageLive":2},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":93,"col":23},"end":{"line":93,"col":24}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":2},"ty":{"Deduplicated":231}},{"Use":{"Const":{"kind":{"Literal":{"Scalar":{"Signed":["I64","0"]}}},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":28}},"generated_from_span":null},"kind":{"StorageLive":3},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":28}},"generated_from_span":null},"kind":{"StorageLive":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":21}},"generated_from_span":null},"kind":{"StorageLive":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":21}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":5},"ty":{"Deduplicated":1165}},{"Ref":{"place":{"kind":{"Projection":[{"kind":{"Local":1},"ty":{"Deduplicated":1161}},"Deref"]},"ty":{"Deduplicated":237}},"kind":"Shared","ptr_metadata":{"Copy":{"kind":{"Projection":[{"kind":{"Local":1},"ty":{"Deduplicated":1161}},"PtrMetadata"]},"ty":{"Deduplicated":775}}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":28}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":{"Regular":19}},"generics":{"regions":[{"Body":81}],"types":[{"Deduplicated":231}],"const_generics":[],"trait_refs":[{"Deduplicated":356}]}}},"args":[{"Move":{"kind":{"Local":5},"ty":{"Deduplicated":1165}}}],"dest":{"kind":{"Local":4},"ty":{"Deduplicated":1164}}},"target":2,"on_unwind":1}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":92,"col":0},"end":{"line":103,"col":1}},"generated_from_span":null},"kind":"UnwindResume","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":94,"col":27},"end":{"line":94,"col":28}},"generated_from_span":null},"kind":{"StorageDead":5},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":28}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":{"Regular":20}},"generics":{"regions":[],"types":[{"HashConsedValue":[6188,{"Adt":{"id":{"Adt":6},"generics":{"regions":[{"Body":82}],"types":[{"Deduplicated":231}],"const_generics":[],"trait_refs":[{"Deduplicated":356}]}}}]}],"const_generics":[],"trait_refs":[{"HashConsedValue":[7124,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[7123,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":6188}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":6188}],"const_generics":[],"trait_refs":[]}}}}]},{"HashConsedValue":[7125,{"kind":{"TraitImpl":{"id":1,"generics":{"regions":[{"Body":82}],"types":[{"Deduplicated":231}],"const_generics":[],"trait_refs":[{"Deduplicated":356}]}}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":6188}],"const_generics":[],"trait_refs":[]}}}}]}]}}},"args":[{"Move":{"kind":{"Local":4},"ty":{"Deduplicated":1164}}}],"dest":{"kind":{"Local":3},"ty":{"Deduplicated":1163}}},"target":3,"on_unwind":1}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":94,"col":27},"end":{"line":94,"col":28}},"generated_from_span":null},"kind":{"StorageDead":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":28}},"generated_from_span":null},"kind":{"StorageLive":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":28}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":6},"ty":{"Deduplicated":1166}},{"Use":{"Move":{"kind":{"Local":3},"ty":{"Deduplicated":1163}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":94,"col":4},"end":{"line":101,"col":5}},"generated_from_span":null},"kind":{"Goto":{"target":4}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":28}},"generated_from_span":null},"kind":{"StorageLive":7},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":28}},"generated_from_span":null},"kind":{"StorageLive":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":28}},"generated_from_span":null},"kind":{"StorageLive":9},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":28}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":9},"ty":{"Deduplicated":1177}},{"Ref":{"place":{"kind":{"Local":6},"ty":{"Deduplicated":1166}},"kind":"Mut","ptr_metadata":{"Const":{"kind":{"Adt":[null,[]]},"ty":{"Deduplicated":245}}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":28}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":8},"ty":{"Deduplicated":1175}},{"Ref":{"place":{"kind":{"Projection":[{"kind":{"Local":9},"ty":{"Deduplicated":1177}},"Deref"]},"ty":{"HashConsedValue":[7126,{"Adt":{"id":{"Adt":6},"generics":{"regions":[{"Body":90}],"types":[{"Deduplicated":231}],"const_generics":[],"trait_refs":[{"Deduplicated":356}]}}}]}},"kind":"TwoPhaseMut","ptr_metadata":{"Const":{"kind":{"Adt":[null,[]]},"ty":{"Deduplicated":245}}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":28}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":{"Regular":15}},"generics":{"regions":[{"Body":91},{"Body":93}],"types":[{"Deduplicated":231}],"const_generics":[],"trait_refs":[{"Deduplicated":356}]}}},"args":[{"Move":{"kind":{"Local":8},"ty":{"Deduplicated":1175}}}],"dest":{"kind":{"Local":7},"ty":{"Deduplicated":6172}}},"target":5,"on_unwind":1}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":94,"col":27},"end":{"line":94,"col":28}},"generated_from_span":null},"kind":{"StorageDead":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":28}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":10},"ty":{"Deduplicated":411}},{"Discriminant":{"kind":{"Local":7},"ty":{"Deduplicated":6172}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":28}},"generated_from_span":null},"kind":{"Switch":{"discr":{"Move":{"kind":{"Local":10},"ty":{"Deduplicated":411}}},"targets":{"SwitchInt":[{"Int":"Isize"},[[{"Scalar":{"Signed":["Isize","0"]}},9],[{"Scalar":{"Signed":["Isize","1"]}},6]],7]}}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":94,"col":9},"end":{"line":94,"col":12}},"generated_from_span":null},"kind":{"StorageLive":11},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":94,"col":9},"end":{"line":94,"col":12}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":11},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Projection":[{"kind":{"Local":7},"ty":{"Deduplicated":6172}},{"Field":[{"Adt":[7,1]},0]}]},"ty":{"HashConsedValue":[7127,{"Ref":[{"Body":97},{"Deduplicated":231},"Shared"]}]}},"Deref"]},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":95,"col":12},"end":{"line":95,"col":15}},"generated_from_span":null},"kind":{"StorageLive":12},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":95,"col":18},"end":{"line":95,"col":33}},"generated_from_span":null},"kind":{"StorageLive":13},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":95,"col":18},"end":{"line":95,"col":32}},"generated_from_span":null},"kind":{"StorageLive":14},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":95,"col":28},"end":{"line":95,"col":31}},"generated_from_span":null},"kind":{"StorageLive":15},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":95,"col":28},"end":{"line":95,"col":31}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":15},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Local":11},"ty":{"Deduplicated":231}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":95,"col":18},"end":{"line":95,"col":32}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":{"Regular":5}},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}},"args":[{"Move":{"kind":{"Local":15},"ty":{"Deduplicated":231}}}],"dest":{"kind":{"Local":14},"ty":{"Deduplicated":6181}}},"target":8,"on_unwind":1}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":28}},"generated_from_span":null},"kind":{"Abort":"UndefinedBehavior"},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":95,"col":31},"end":{"line":95,"col":32}},"generated_from_span":null},"kind":{"StorageDead":15},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":95,"col":18},"end":{"line":95,"col":33}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":{"Regular":21}},"generics":{"regions":[],"types":[{"Deduplicated":1101},{"HashConsedValue":[6194,{"Ref":[{"Body":98},{"Deduplicated":221},"Shared"]}]}],"const_generics":[],"trait_refs":[{"Deduplicated":1103},{"HashConsedValue":[7129,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[7128,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":6194}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":6194}],"const_generics":[],"trait_refs":[]}}}}]}]}}},"args":[{"Move":{"kind":{"Local":14},"ty":{"Deduplicated":6181}}}],"dest":{"kind":{"Local":13},"ty":{"Deduplicated":6178}}},"target":10,"on_unwind":1}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":101,"col":4},"end":{"line":101,"col":5}},"generated_from_span":null},"kind":{"StorageDead":9},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":101,"col":4},"end":{"line":101,"col":5}},"generated_from_span":null},"kind":{"StorageDead":7},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":101,"col":4},"end":{"line":101,"col":5}},"generated_from_span":null},"kind":{"StorageDead":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":101,"col":4},"end":{"line":101,"col":5}},"generated_from_span":null},"kind":{"StorageDead":3},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":102,"col":7},"end":{"line":102,"col":10}},"generated_from_span":null},"kind":{"StorageLive":27},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":102,"col":7},"end":{"line":102,"col":10}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":27},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Local":2},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":102,"col":4},"end":{"line":102,"col":11}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":6169}},{"Aggregate":[{"Adt":[{"id":{"Adt":5},"generics":{"regions":[],"types":[{"Deduplicated":231},{"HashConsedValue":[7130,{"Ref":[{"Body":103},{"Deduplicated":221},"Shared"]}]}],"const_generics":[],"trait_refs":[{"Deduplicated":356},{"HashConsedValue":[7134,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[7132,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"HashConsedValue":[7131,{"Ref":[{"Body":107},{"Deduplicated":221},"Shared"]}]}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[7133,{"Ref":[{"Body":105},{"Deduplicated":221},"Shared"]}]}],"const_generics":[],"trait_refs":[]}}}}]}]}},0,null]},[{"Move":{"kind":{"Local":27},"ty":{"Deduplicated":231}}}]]}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":102,"col":10},"end":{"line":102,"col":11}},"generated_from_span":null},"kind":{"StorageDead":27},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":103,"col":0},"end":{"line":103,"col":1}},"generated_from_span":null},"kind":{"StorageDead":2},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":103,"col":1},"end":{"line":103,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":95,"col":32},"end":{"line":95,"col":33}},"generated_from_span":null},"kind":{"StorageDead":14},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":95,"col":18},"end":{"line":95,"col":33}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":16},"ty":{"Deduplicated":411}},{"Discriminant":{"kind":{"Local":13},"ty":{"Deduplicated":6178}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":95,"col":18},"end":{"line":95,"col":33}},"generated_from_span":null},"kind":{"Switch":{"discr":{"Move":{"kind":{"Local":16},"ty":{"Deduplicated":411}}},"targets":{"SwitchInt":[{"Int":"Isize"},[[{"Scalar":{"Signed":["Isize","0"]}},11],[{"Scalar":{"Signed":["Isize","1"]}},12]],13]}}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":95,"col":18},"end":{"line":95,"col":33}},"generated_from_span":null},"kind":{"StorageLive":19},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":95,"col":18},"end":{"line":95,"col":33}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":19},"ty":{"Deduplicated":1101}},{"Use":{"Move":{"kind":{"Projection":[{"kind":{"Local":13},"ty":{"Deduplicated":6178}},{"Field":[{"Adt":[9,0]},0]}]},"ty":{"Deduplicated":1101}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":95,"col":18},"end":{"line":95,"col":33}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":12},"ty":{"Deduplicated":1101}},{"Use":{"Move":{"kind":{"Local":19},"ty":{"Deduplicated":1101}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":95,"col":32},"end":{"line":95,"col":33}},"generated_from_span":null},"kind":{"StorageDead":19},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":95,"col":33},"end":{"line":95,"col":34}},"generated_from_span":null},"kind":{"StorageDead":13},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":96,"col":14},"end":{"line":96,"col":17}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":20},"ty":{"Deduplicated":411}},{"Discriminant":{"kind":{"Local":12},"ty":{"Deduplicated":1101}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":96,"col":8},"end":{"line":96,"col":17}},"generated_from_span":null},"kind":{"Switch":{"discr":{"Move":{"kind":{"Local":20},"ty":{"Deduplicated":411}}},"targets":{"SwitchInt":[{"Int":"Isize"},[[{"Scalar":{"Signed":["Isize","0"]}},14],[{"Scalar":{"Signed":["Isize","1"]}},15],[{"Scalar":{"Signed":["Isize","2"]}},16]],17]}}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":95,"col":32},"end":{"line":95,"col":33}},"generated_from_span":null},"kind":{"StorageLive":17},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":95,"col":32},"end":{"line":95,"col":33}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":17},"ty":{"Deduplicated":6184}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Local":13},"ty":{"Deduplicated":6178}},{"Field":[{"Adt":[9,1]},0]}]},"ty":{"HashConsedValue":[7140,{"Adt":{"id":{"Adt":5},"generics":{"regions":[],"types":[{"Deduplicated":1283},{"HashConsedValue":[7135,{"Ref":[{"Body":126},{"Deduplicated":221},"Shared"]}]}],"const_generics":[],"trait_refs":[{"Deduplicated":1285},{"HashConsedValue":[7139,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[7137,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"HashConsedValue":[7136,{"Ref":[{"Body":127},{"Deduplicated":221},"Shared"]}]}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[7138,{"Ref":[{"Body":128},{"Deduplicated":221},"Shared"]}]}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":95,"col":32},"end":{"line":95,"col":33}},"generated_from_span":null},"kind":{"StorageLive":18},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":95,"col":32},"end":{"line":95,"col":33}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":18},"ty":{"Deduplicated":6187}},{"Use":{"Copy":{"kind":{"Local":17},"ty":{"Deduplicated":6184}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":95,"col":18},"end":{"line":95,"col":33}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":{"Regular":22}},"generics":{"regions":[],"types":[{"Deduplicated":231},{"HashConsedValue":[6208,{"Ref":[{"Body":129},{"Deduplicated":221},"Shared"]}]},{"Deduplicated":6208}],"const_generics":[],"trait_refs":[{"Deduplicated":356},{"HashConsedValue":[6210,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6209,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":6208}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":6208}],"const_generics":[],"trait_refs":[]}}}}]},{"Deduplicated":6210},{"HashConsedValue":[7141,{"kind":{"TraitImpl":{"id":8,"generics":{"regions":[],"types":[{"Deduplicated":6208}],"const_generics":[],"trait_refs":[{"Deduplicated":6210}]}}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":4,"generics":{"regions":[],"types":[{"Deduplicated":6208},{"Deduplicated":6208}],"const_generics":[],"trait_refs":[]}}}}]}]}}},"args":[{"Move":{"kind":{"Local":18},"ty":{"Deduplicated":6187}}}],"dest":{"kind":{"Local":0},"ty":{"Deduplicated":6169}}},"target":18,"on_unwind":1}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":95,"col":18},"end":{"line":95,"col":33}},"generated_from_span":null},"kind":{"Abort":"UndefinedBehavior"},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":97,"col":23},"end":{"line":97,"col":24}},"generated_from_span":null},"kind":{"StorageLive":21},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":97,"col":23},"end":{"line":97,"col":24}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":21},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Local":12},"ty":{"Deduplicated":1101}},{"Field":[{"Adt":[2,0]},0]}]},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":97,"col":36},"end":{"line":97,"col":37}},"generated_from_span":null},"kind":{"StorageLive":22},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":97,"col":36},"end":{"line":97,"col":37}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":22},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Local":21},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":97,"col":29},"end":{"line":97,"col":37}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":23},"ty":{"Deduplicated":236}},{"BinaryOp":["AddChecked",{"Copy":{"kind":{"Local":2},"ty":{"Deduplicated":231}}},{"Copy":{"kind":{"Local":22},"ty":{"Deduplicated":231}}}]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":97,"col":29},"end":{"line":97,"col":37}},"generated_from_span":null},"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":23},"ty":{"Deduplicated":236}},{"Field":[{"Tuple":2},1]}]},"ty":{"Deduplicated":235}}},"expected":false,"check_kind":{"Overflow":[{"Add":"Wrap"},{"Copy":{"kind":{"Local":2},"ty":{"Deduplicated":231}}},{"Move":{"kind":{"Local":27},"ty":{"Deduplicated":231}}}]}},"target":19,"on_unwind":1}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":98,"col":23},"end":{"line":98,"col":24}},"generated_from_span":null},"kind":{"StorageLive":24},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":98,"col":23},"end":{"line":98,"col":24}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":24},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Local":12},"ty":{"Deduplicated":1101}},{"Field":[{"Adt":[2,1]},0]}]},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":98,"col":36},"end":{"line":98,"col":37}},"generated_from_span":null},"kind":{"StorageLive":25},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":98,"col":36},"end":{"line":98,"col":37}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":25},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Local":24},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":98,"col":29},"end":{"line":98,"col":37}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":26},"ty":{"Deduplicated":236}},{"BinaryOp":["SubChecked",{"Copy":{"kind":{"Local":2},"ty":{"Deduplicated":231}}},{"Copy":{"kind":{"Local":25},"ty":{"Deduplicated":231}}}]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":98,"col":29},"end":{"line":98,"col":37}},"generated_from_span":null},"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":26},"ty":{"Deduplicated":236}},{"Field":[{"Tuple":2},1]}]},"ty":{"Deduplicated":235}}},"expected":false,"check_kind":{"Overflow":[{"Sub":"Wrap"},{"Copy":{"kind":{"Local":2},"ty":{"Deduplicated":231}}},{"Move":{"kind":{"Local":30},"ty":{"Deduplicated":231}}}]}},"target":20,"on_unwind":1}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":101,"col":4},"end":{"line":101,"col":5}},"generated_from_span":null},"kind":{"StorageDead":12},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":101,"col":4},"end":{"line":101,"col":5}},"generated_from_span":null},"kind":{"StorageDead":11},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"kind":{"Goto":{"target":9}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":96,"col":14},"end":{"line":96,"col":17}},"generated_from_span":null},"kind":{"Abort":"UndefinedBehavior"},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":95,"col":32},"end":{"line":95,"col":33}},"generated_from_span":null},"kind":{"StorageDead":18},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":95,"col":32},"end":{"line":95,"col":33}},"generated_from_span":null},"kind":{"StorageDead":17},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":95,"col":33},"end":{"line":95,"col":34}},"generated_from_span":null},"kind":{"StorageDead":13},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":101,"col":4},"end":{"line":101,"col":5}},"generated_from_span":null},"kind":{"StorageDead":12},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":101,"col":4},"end":{"line":101,"col":5}},"generated_from_span":null},"kind":{"StorageDead":11},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":101,"col":4},"end":{"line":101,"col":5}},"generated_from_span":null},"kind":{"StorageDead":9},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":101,"col":4},"end":{"line":101,"col":5}},"generated_from_span":null},"kind":{"StorageDead":7},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":101,"col":4},"end":{"line":101,"col":5}},"generated_from_span":null},"kind":{"StorageDead":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":101,"col":4},"end":{"line":101,"col":5}},"generated_from_span":null},"kind":{"StorageDead":3},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":103,"col":0},"end":{"line":103,"col":1}},"generated_from_span":null},"kind":{"StorageDead":2},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":103,"col":1},"end":{"line":103,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":97,"col":29},"end":{"line":97,"col":37}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":2},"ty":{"Deduplicated":231}},{"Use":{"Move":{"kind":{"Projection":[{"kind":{"Local":23},"ty":{"Deduplicated":236}},{"Field":[{"Tuple":2},0]}]},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":97,"col":36},"end":{"line":97,"col":37}},"generated_from_span":null},"kind":{"StorageDead":22},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":97,"col":36},"end":{"line":97,"col":37}},"generated_from_span":null},"kind":{"StorageDead":21},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":97,"col":36},"end":{"line":97,"col":37}},"generated_from_span":null},"kind":{"Goto":{"target":21}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":98,"col":29},"end":{"line":98,"col":37}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":2},"ty":{"Deduplicated":231}},{"Use":{"Move":{"kind":{"Projection":[{"kind":{"Local":26},"ty":{"Deduplicated":236}},{"Field":[{"Tuple":2},0]}]},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":98,"col":36},"end":{"line":98,"col":37}},"generated_from_span":null},"kind":{"StorageDead":25},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":98,"col":36},"end":{"line":98,"col":37}},"generated_from_span":null},"kind":{"StorageDead":24},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":98,"col":36},"end":{"line":98,"col":37}},"generated_from_span":null},"kind":{"Goto":{"target":21}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":101,"col":4},"end":{"line":101,"col":5}},"generated_from_span":null},"kind":{"StorageDead":12},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":101,"col":4},"end":{"line":101,"col":5}},"generated_from_span":null},"kind":{"StorageDead":11},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":101,"col":4},"end":{"line":101,"col":5}},"generated_from_span":null},"kind":{"StorageDead":9},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":101,"col":4},"end":{"line":101,"col":5}},"generated_from_span":null},"kind":{"StorageDead":7},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":94,"col":4},"end":{"line":101,"col":5}},"generated_from_span":null},"kind":{"Goto":{"target":4}},"comments_before":[]}}],"comments":[]}}},{"def_id":7,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["tuple_roundtrip",0]}],"span":{"data":{"file_id":0,"beg":{"line":113,"col":0},"end":{"line":116,"col":1}},"generated_from_span":null},"source_text":"pub fn tuple_roundtrip(a: i64, b: i64) -> i64 {\n let pair = (a + b, a - b);\n pair.0 * pair.1\n}","attr_info":{"attributes":[],"inline":"Never","rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":231},{"Deduplicated":231}],"output":{"Deduplicated":231}},"src":"TopLevel","is_global_initializer":null,"body":{"Unstructured":{"span":{"data":{"file_id":0,"beg":{"line":113,"col":0},"end":{"line":116,"col":1}},"generated_from_span":null},"bound_body_regions":0,"locals":{"arg_count":2,"locals":[{"index":0,"name":null,"span":{"data":{"file_id":0,"beg":{"line":113,"col":42},"end":{"line":113,"col":45}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":1,"name":"a","span":{"data":{"file_id":0,"beg":{"line":113,"col":23},"end":{"line":113,"col":24}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":2,"name":"b","span":{"data":{"file_id":0,"beg":{"line":113,"col":31},"end":{"line":113,"col":32}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":3,"name":"pair","span":{"data":{"file_id":0,"beg":{"line":114,"col":8},"end":{"line":114,"col":12}},"generated_from_span":null},"ty":{"HashConsedValue":[1861,{"Adt":{"id":"Tuple","generics":{"regions":[],"types":[{"Deduplicated":231},{"Deduplicated":231}],"const_generics":[],"trait_refs":[]}}}]}},{"index":4,"name":null,"span":{"data":{"file_id":0,"beg":{"line":114,"col":16},"end":{"line":114,"col":21}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":5,"name":null,"span":{"data":{"file_id":0,"beg":{"line":114,"col":16},"end":{"line":114,"col":17}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":6,"name":null,"span":{"data":{"file_id":0,"beg":{"line":114,"col":20},"end":{"line":114,"col":21}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":7,"name":null,"span":{"data":{"file_id":0,"beg":{"line":114,"col":16},"end":{"line":114,"col":21}},"generated_from_span":null},"ty":{"Deduplicated":236}},{"index":8,"name":null,"span":{"data":{"file_id":0,"beg":{"line":114,"col":23},"end":{"line":114,"col":28}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":9,"name":null,"span":{"data":{"file_id":0,"beg":{"line":114,"col":23},"end":{"line":114,"col":24}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":10,"name":null,"span":{"data":{"file_id":0,"beg":{"line":114,"col":27},"end":{"line":114,"col":28}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":11,"name":null,"span":{"data":{"file_id":0,"beg":{"line":114,"col":23},"end":{"line":114,"col":28}},"generated_from_span":null},"ty":{"Deduplicated":236}},{"index":12,"name":null,"span":{"data":{"file_id":0,"beg":{"line":115,"col":4},"end":{"line":115,"col":10}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":13,"name":null,"span":{"data":{"file_id":0,"beg":{"line":115,"col":13},"end":{"line":115,"col":19}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":14,"name":null,"span":{"data":{"file_id":0,"beg":{"line":115,"col":4},"end":{"line":115,"col":19}},"generated_from_span":null},"ty":{"Deduplicated":236}}]},"body":[{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":114,"col":8},"end":{"line":114,"col":12}},"generated_from_span":null},"kind":{"StorageLive":7},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":8},"end":{"line":114,"col":12}},"generated_from_span":null},"kind":{"StorageLive":11},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":8},"end":{"line":114,"col":12}},"generated_from_span":null},"kind":{"StorageLive":14},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":8},"end":{"line":114,"col":12}},"generated_from_span":null},"kind":{"StorageLive":3},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":16},"end":{"line":114,"col":21}},"generated_from_span":null},"kind":{"StorageLive":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":16},"end":{"line":114,"col":17}},"generated_from_span":null},"kind":{"StorageLive":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":16},"end":{"line":114,"col":17}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":5},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Local":1},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":20},"end":{"line":114,"col":21}},"generated_from_span":null},"kind":{"StorageLive":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":20},"end":{"line":114,"col":21}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":6},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Local":2},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":16},"end":{"line":114,"col":21}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":7},"ty":{"Deduplicated":236}},{"BinaryOp":["AddChecked",{"Copy":{"kind":{"Local":5},"ty":{"Deduplicated":231}}},{"Copy":{"kind":{"Local":6},"ty":{"Deduplicated":231}}}]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":114,"col":16},"end":{"line":114,"col":21}},"generated_from_span":null},"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":7},"ty":{"Deduplicated":236}},{"Field":[{"Tuple":2},1]}]},"ty":{"Deduplicated":235}}},"expected":false,"check_kind":{"Overflow":[{"Add":"Wrap"},{"Move":{"kind":{"Local":5},"ty":{"Deduplicated":231}}},{"Move":{"kind":{"Local":6},"ty":{"Deduplicated":231}}}]}},"target":2,"on_unwind":1}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":113,"col":0},"end":{"line":116,"col":1}},"generated_from_span":null},"kind":"UnwindResume","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":114,"col":16},"end":{"line":114,"col":21}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":4},"ty":{"Deduplicated":231}},{"Use":{"Move":{"kind":{"Projection":[{"kind":{"Local":7},"ty":{"Deduplicated":236}},{"Field":[{"Tuple":2},0]}]},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":20},"end":{"line":114,"col":21}},"generated_from_span":null},"kind":{"StorageDead":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":20},"end":{"line":114,"col":21}},"generated_from_span":null},"kind":{"StorageDead":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":23},"end":{"line":114,"col":28}},"generated_from_span":null},"kind":{"StorageLive":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":23},"end":{"line":114,"col":24}},"generated_from_span":null},"kind":{"StorageLive":9},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":23},"end":{"line":114,"col":24}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":9},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Local":1},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":27},"end":{"line":114,"col":28}},"generated_from_span":null},"kind":{"StorageLive":10},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":27},"end":{"line":114,"col":28}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":10},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Local":2},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":23},"end":{"line":114,"col":28}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":11},"ty":{"Deduplicated":236}},{"BinaryOp":["SubChecked",{"Copy":{"kind":{"Local":9},"ty":{"Deduplicated":231}}},{"Copy":{"kind":{"Local":10},"ty":{"Deduplicated":231}}}]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":114,"col":23},"end":{"line":114,"col":28}},"generated_from_span":null},"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":11},"ty":{"Deduplicated":236}},{"Field":[{"Tuple":2},1]}]},"ty":{"Deduplicated":235}}},"expected":false,"check_kind":{"Overflow":[{"Sub":"Wrap"},{"Move":{"kind":{"Local":9},"ty":{"Deduplicated":231}}},{"Move":{"kind":{"Local":10},"ty":{"Deduplicated":231}}}]}},"target":3,"on_unwind":1}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":114,"col":23},"end":{"line":114,"col":28}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":8},"ty":{"Deduplicated":231}},{"Use":{"Move":{"kind":{"Projection":[{"kind":{"Local":11},"ty":{"Deduplicated":236}},{"Field":[{"Tuple":2},0]}]},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":27},"end":{"line":114,"col":28}},"generated_from_span":null},"kind":{"StorageDead":10},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":27},"end":{"line":114,"col":28}},"generated_from_span":null},"kind":{"StorageDead":9},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":15},"end":{"line":114,"col":29}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":3},"ty":{"Deduplicated":1861}},{"Aggregate":[{"Adt":[{"id":"Tuple","generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}},null,null]},[{"Move":{"kind":{"Local":4},"ty":{"Deduplicated":231}}},{"Move":{"kind":{"Local":8},"ty":{"Deduplicated":231}}}]]}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":28},"end":{"line":114,"col":29}},"generated_from_span":null},"kind":{"StorageDead":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":28},"end":{"line":114,"col":29}},"generated_from_span":null},"kind":{"StorageDead":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":115,"col":4},"end":{"line":115,"col":10}},"generated_from_span":null},"kind":{"StorageLive":12},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":115,"col":4},"end":{"line":115,"col":10}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":12},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Local":3},"ty":{"Deduplicated":1861}},{"Field":[{"Tuple":2},0]}]},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":115,"col":13},"end":{"line":115,"col":19}},"generated_from_span":null},"kind":{"StorageLive":13},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":115,"col":13},"end":{"line":115,"col":19}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":13},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Local":3},"ty":{"Deduplicated":1861}},{"Field":[{"Tuple":2},1]}]},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":115,"col":4},"end":{"line":115,"col":19}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":14},"ty":{"Deduplicated":236}},{"BinaryOp":["MulChecked",{"Copy":{"kind":{"Local":12},"ty":{"Deduplicated":231}}},{"Copy":{"kind":{"Local":13},"ty":{"Deduplicated":231}}}]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":115,"col":4},"end":{"line":115,"col":19}},"generated_from_span":null},"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":14},"ty":{"Deduplicated":236}},{"Field":[{"Tuple":2},1]}]},"ty":{"Deduplicated":235}}},"expected":false,"check_kind":{"Overflow":[{"Mul":"Wrap"},{"Move":{"kind":{"Local":12},"ty":{"Deduplicated":231}}},{"Move":{"kind":{"Local":13},"ty":{"Deduplicated":231}}}]}},"target":4,"on_unwind":1}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":115,"col":4},"end":{"line":115,"col":19}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":231}},{"Use":{"Move":{"kind":{"Projection":[{"kind":{"Local":14},"ty":{"Deduplicated":236}},{"Field":[{"Tuple":2},0]}]},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":115,"col":18},"end":{"line":115,"col":19}},"generated_from_span":null},"kind":{"StorageDead":13},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":115,"col":18},"end":{"line":115,"col":19}},"generated_from_span":null},"kind":{"StorageDead":12},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":116,"col":0},"end":{"line":116,"col":1}},"generated_from_span":null},"kind":{"StorageDead":3},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":116,"col":1},"end":{"line":116,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}}],"comments":[]}}},{"def_id":8,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["bool_then_closure",0]}],"span":{"data":{"file_id":0,"beg":{"line":125,"col":0},"end":{"line":127,"col":1}},"generated_from_span":null},"source_text":"pub fn bool_then_closure(c: bool, x: i64) -> Option {\n c.then(|| x + 1)\n}","attr_info":{"attributes":[],"inline":"Never","rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":235},{"Deduplicated":231}],"output":{"HashConsedValue":[1862,{"Adt":{"id":{"Adt":7},"generics":{"regions":[],"types":[{"Deduplicated":231}],"const_generics":[],"trait_refs":[{"Deduplicated":356}]}}}]}},"src":"TopLevel","is_global_initializer":null,"body":{"Unstructured":{"span":{"data":{"file_id":0,"beg":{"line":125,"col":0},"end":{"line":127,"col":1}},"generated_from_span":null},"bound_body_regions":16,"locals":{"arg_count":2,"locals":[{"index":0,"name":null,"span":{"data":{"file_id":0,"beg":{"line":125,"col":45},"end":{"line":125,"col":56}},"generated_from_span":null},"ty":{"Deduplicated":1862}},{"index":1,"name":"c","span":{"data":{"file_id":0,"beg":{"line":125,"col":25},"end":{"line":125,"col":26}},"generated_from_span":null},"ty":{"Deduplicated":235}},{"index":2,"name":"x","span":{"data":{"file_id":0,"beg":{"line":125,"col":34},"end":{"line":125,"col":35}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":3,"name":null,"span":{"data":{"file_id":0,"beg":{"line":126,"col":4},"end":{"line":126,"col":5}},"generated_from_span":null},"ty":{"Deduplicated":235}},{"index":4,"name":null,"span":{"data":{"file_id":0,"beg":{"line":126,"col":11},"end":{"line":126,"col":19}},"generated_from_span":null},"ty":{"HashConsedValue":[1879,{"Adt":{"id":{"Adt":11},"generics":{"regions":[{"Body":1}],"types":[],"const_generics":[],"trait_refs":[]}}}]}},{"index":5,"name":null,"span":{"data":{"file_id":0,"beg":{"line":126,"col":11},"end":{"line":126,"col":19}},"generated_from_span":null},"ty":{"HashConsedValue":[643,{"Ref":[{"Body":3},{"Deduplicated":231},"Shared"]}]}}]},"body":[{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":126,"col":4},"end":{"line":126,"col":5}},"generated_from_span":null},"kind":{"StorageLive":3},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":126,"col":4},"end":{"line":126,"col":5}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":3},"ty":{"Deduplicated":235}},{"Use":{"Copy":{"kind":{"Local":1},"ty":{"Deduplicated":235}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":126,"col":11},"end":{"line":126,"col":19}},"generated_from_span":null},"kind":{"StorageLive":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":126,"col":11},"end":{"line":126,"col":19}},"generated_from_span":null},"kind":{"StorageLive":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":126,"col":11},"end":{"line":126,"col":19}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":5},"ty":{"Deduplicated":643}},{"Ref":{"place":{"kind":{"Local":2},"ty":{"Deduplicated":231}},"kind":"Shared","ptr_metadata":{"Const":{"kind":{"Adt":[null,[]]},"ty":{"Deduplicated":245}}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":126,"col":11},"end":{"line":126,"col":19}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":4},"ty":{"Deduplicated":1879}},{"Aggregate":[{"Adt":[{"id":{"Adt":11},"generics":{"regions":[{"Body":4}],"types":[],"const_generics":[],"trait_refs":[]}},null,null]},[{"Move":{"kind":{"Local":5},"ty":{"Deduplicated":643}}}]]}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":126,"col":12},"end":{"line":126,"col":13}},"generated_from_span":null},"kind":{"StorageDead":5},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":126,"col":4},"end":{"line":126,"col":20}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":{"Regular":23}},"generics":{"regions":[],"types":[{"Deduplicated":231},{"HashConsedValue":[6223,{"Adt":{"id":{"Adt":11},"generics":{"regions":[{"Body":5}],"types":[],"const_generics":[],"trait_refs":[]}}}]}],"const_generics":[],"trait_refs":[{"Deduplicated":356},{"HashConsedValue":[7147,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[7146,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":6223}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":6223}],"const_generics":[],"trait_refs":[]}}}}]},{"HashConsedValue":[7148,{"kind":{"TraitImpl":{"id":9,"generics":{"regions":[{"Body":5}],"types":[],"const_generics":[],"trait_refs":[]}}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":5,"generics":{"regions":[],"types":[{"Deduplicated":6223},{"Deduplicated":245}],"const_generics":[],"trait_refs":[]}}}}]},{"HashConsedValue":[7149,{"kind":{"TraitImpl":{"id":10,"generics":{"regions":[{"Body":5}],"types":[],"const_generics":[],"trait_refs":[]}}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":2,"generics":{"regions":[],"types":[{"Deduplicated":6223}],"const_generics":[],"trait_refs":[]}}}}]}]}}},"args":[{"Move":{"kind":{"Local":3},"ty":{"Deduplicated":235}}},{"Move":{"kind":{"Local":4},"ty":{"Deduplicated":1879}}}],"dest":{"kind":{"Local":0},"ty":{"Deduplicated":1862}}},"target":2,"on_unwind":1}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":125,"col":0},"end":{"line":127,"col":1}},"generated_from_span":null},"kind":"UnwindResume","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":126,"col":19},"end":{"line":126,"col":20}},"generated_from_span":null},"kind":{"StorageDead":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":126,"col":19},"end":{"line":126,"col":20}},"generated_from_span":null},"kind":{"StorageDead":3},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":127,"col":1},"end":{"line":127,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}}],"comments":[]}}},{"def_id":9,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["bool_then_some",0]}],"span":{"data":{"file_id":0,"beg":{"line":133,"col":0},"end":{"line":135,"col":1}},"generated_from_span":null},"source_text":"pub fn bool_then_some(c: bool, x: i64) -> Option {\n c.then_some(x + 1)\n}","attr_info":{"attributes":[],"inline":"Never","rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":235},{"Deduplicated":231}],"output":{"Deduplicated":1862}},"src":"TopLevel","is_global_initializer":null,"body":{"Unstructured":{"span":{"data":{"file_id":0,"beg":{"line":133,"col":0},"end":{"line":135,"col":1}},"generated_from_span":null},"bound_body_regions":0,"locals":{"arg_count":2,"locals":[{"index":0,"name":null,"span":{"data":{"file_id":0,"beg":{"line":133,"col":42},"end":{"line":133,"col":53}},"generated_from_span":null},"ty":{"Deduplicated":1862}},{"index":1,"name":"c","span":{"data":{"file_id":0,"beg":{"line":133,"col":22},"end":{"line":133,"col":23}},"generated_from_span":null},"ty":{"Deduplicated":235}},{"index":2,"name":"x","span":{"data":{"file_id":0,"beg":{"line":133,"col":31},"end":{"line":133,"col":32}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":3,"name":null,"span":{"data":{"file_id":0,"beg":{"line":134,"col":4},"end":{"line":134,"col":5}},"generated_from_span":null},"ty":{"Deduplicated":235}},{"index":4,"name":null,"span":{"data":{"file_id":0,"beg":{"line":134,"col":16},"end":{"line":134,"col":21}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":5,"name":null,"span":{"data":{"file_id":0,"beg":{"line":134,"col":16},"end":{"line":134,"col":17}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":6,"name":null,"span":{"data":{"file_id":0,"beg":{"line":134,"col":16},"end":{"line":134,"col":21}},"generated_from_span":null},"ty":{"Deduplicated":236}}]},"body":[{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":134,"col":4},"end":{"line":134,"col":5}},"generated_from_span":null},"kind":{"StorageLive":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":134,"col":4},"end":{"line":134,"col":5}},"generated_from_span":null},"kind":{"StorageLive":3},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":134,"col":4},"end":{"line":134,"col":5}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":3},"ty":{"Deduplicated":235}},{"Use":{"Copy":{"kind":{"Local":1},"ty":{"Deduplicated":235}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":134,"col":16},"end":{"line":134,"col":21}},"generated_from_span":null},"kind":{"StorageLive":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":134,"col":16},"end":{"line":134,"col":17}},"generated_from_span":null},"kind":{"StorageLive":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":134,"col":16},"end":{"line":134,"col":17}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":5},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Local":2},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":134,"col":16},"end":{"line":134,"col":21}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":6},"ty":{"Deduplicated":236}},{"BinaryOp":["AddChecked",{"Copy":{"kind":{"Local":5},"ty":{"Deduplicated":231}}},{"Const":{"kind":{"Literal":{"Scalar":{"Signed":["I64","1"]}}},"ty":{"Deduplicated":231}}}]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":134,"col":16},"end":{"line":134,"col":21}},"generated_from_span":null},"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":6},"ty":{"Deduplicated":236}},{"Field":[{"Tuple":2},1]}]},"ty":{"Deduplicated":235}}},"expected":false,"check_kind":{"Overflow":[{"Add":"Wrap"},{"Move":{"kind":{"Local":5},"ty":{"Deduplicated":231}}},{"Const":{"kind":{"Literal":{"Scalar":{"Signed":["I64","1"]}}},"ty":{"Deduplicated":231}}}]}},"target":2,"on_unwind":1}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":133,"col":0},"end":{"line":135,"col":1}},"generated_from_span":null},"kind":"UnwindResume","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":134,"col":16},"end":{"line":134,"col":21}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":4},"ty":{"Deduplicated":231}},{"Use":{"Move":{"kind":{"Projection":[{"kind":{"Local":6},"ty":{"Deduplicated":236}},{"Field":[{"Tuple":2},0]}]},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":134,"col":20},"end":{"line":134,"col":21}},"generated_from_span":null},"kind":{"StorageDead":5},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":134,"col":4},"end":{"line":134,"col":22}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":{"Regular":24}},"generics":{"regions":[],"types":[{"Deduplicated":231}],"const_generics":[],"trait_refs":[{"Deduplicated":356},{"HashConsedValue":[7151,{"kind":{"BuiltinOrAuto":{"builtin_data":"NoopDestruct","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":2,"generics":{"regions":[],"types":[{"Deduplicated":231}],"const_generics":[],"trait_refs":[]}}}}]}]}}},"args":[{"Move":{"kind":{"Local":3},"ty":{"Deduplicated":235}}},{"Move":{"kind":{"Local":4},"ty":{"Deduplicated":231}}}],"dest":{"kind":{"Local":0},"ty":{"Deduplicated":1862}}},"target":3,"on_unwind":1}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":134,"col":21},"end":{"line":134,"col":22}},"generated_from_span":null},"kind":{"StorageDead":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":134,"col":21},"end":{"line":134,"col":22}},"generated_from_span":null},"kind":{"StorageDead":3},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":135,"col":1},"end":{"line":135,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}}],"comments":[]}}},{"def_id":10,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["option_source",0]}],"span":{"data":{"file_id":0,"beg":{"line":142,"col":0},"end":{"line":144,"col":1}},"generated_from_span":null},"source_text":"fn option_source(keep: bool, value: i64) -> Option {\n if keep { Some(value) } else { None }\n}","attr_info":{"attributes":[],"inline":"Never","rename":null,"public":false},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":235},{"Deduplicated":231}],"output":{"Deduplicated":1862}},"src":"TopLevel","is_global_initializer":null,"body":{"Unstructured":{"span":{"data":{"file_id":0,"beg":{"line":142,"col":0},"end":{"line":144,"col":1}},"generated_from_span":null},"bound_body_regions":0,"locals":{"arg_count":2,"locals":[{"index":0,"name":null,"span":{"data":{"file_id":0,"beg":{"line":142,"col":44},"end":{"line":142,"col":55}},"generated_from_span":null},"ty":{"Deduplicated":1862}},{"index":1,"name":"keep","span":{"data":{"file_id":0,"beg":{"line":142,"col":17},"end":{"line":142,"col":21}},"generated_from_span":null},"ty":{"Deduplicated":235}},{"index":2,"name":"value","span":{"data":{"file_id":0,"beg":{"line":142,"col":29},"end":{"line":142,"col":34}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":3,"name":null,"span":{"data":{"file_id":0,"beg":{"line":143,"col":7},"end":{"line":143,"col":11}},"generated_from_span":null},"ty":{"Deduplicated":235}},{"index":4,"name":null,"span":{"data":{"file_id":0,"beg":{"line":143,"col":19},"end":{"line":143,"col":24}},"generated_from_span":null},"ty":{"Deduplicated":231}}]},"body":[{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":143,"col":7},"end":{"line":143,"col":11}},"generated_from_span":null},"kind":{"StorageLive":3},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":143,"col":7},"end":{"line":143,"col":11}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":3},"ty":{"Deduplicated":235}},{"Use":{"Copy":{"kind":{"Local":1},"ty":{"Deduplicated":235}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":143,"col":7},"end":{"line":143,"col":11}},"generated_from_span":null},"kind":{"Switch":{"discr":{"Move":{"kind":{"Local":3},"ty":{"Deduplicated":235}}},"targets":{"If":[1,2]}}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":143,"col":19},"end":{"line":143,"col":24}},"generated_from_span":null},"kind":{"StorageLive":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":143,"col":19},"end":{"line":143,"col":24}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":4},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Local":2},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":143,"col":14},"end":{"line":143,"col":25}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":1862}},{"Aggregate":[{"Adt":[{"id":{"Adt":7},"generics":{"regions":[],"types":[{"Deduplicated":231}],"const_generics":[],"trait_refs":[{"Deduplicated":356}]}},1,null]},[{"Move":{"kind":{"Local":4},"ty":{"Deduplicated":231}}}]]}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":143,"col":24},"end":{"line":143,"col":25}},"generated_from_span":null},"kind":{"StorageDead":4},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":143,"col":4},"end":{"line":143,"col":41}},"generated_from_span":null},"kind":{"Goto":{"target":3}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":143,"col":35},"end":{"line":143,"col":39}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":1862}},{"Aggregate":[{"Adt":[{"id":{"Adt":7},"generics":{"regions":[],"types":[{"Deduplicated":231}],"const_generics":[],"trait_refs":[{"Deduplicated":356}]}},0,null]},[]]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":143,"col":4},"end":{"line":143,"col":41}},"generated_from_span":null},"kind":{"Goto":{"target":3}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":143,"col":40},"end":{"line":143,"col":41}},"generated_from_span":null},"kind":{"StorageDead":3},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":144,"col":1},"end":{"line":144,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}}],"comments":[]}}},{"def_id":11,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["option_question_mark",0]}],"span":{"data":{"file_id":0,"beg":{"line":147,"col":0},"end":{"line":150,"col":1}},"generated_from_span":null},"source_text":"pub fn option_question_mark(keep: bool, value: i64, addend: i64) -> Option {\n let v = option_source(keep, value)?;\n Some(v + addend)\n}","attr_info":{"attributes":[],"inline":"Never","rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":235},{"Deduplicated":231},{"Deduplicated":231}],"output":{"Deduplicated":1862}},"src":"TopLevel","is_global_initializer":null,"body":{"Unstructured":{"span":{"data":{"file_id":0,"beg":{"line":147,"col":0},"end":{"line":150,"col":1}},"generated_from_span":null},"bound_body_regions":0,"locals":{"arg_count":3,"locals":[{"index":0,"name":null,"span":{"data":{"file_id":0,"beg":{"line":147,"col":68},"end":{"line":147,"col":79}},"generated_from_span":null},"ty":{"Deduplicated":1862}},{"index":1,"name":"keep","span":{"data":{"file_id":0,"beg":{"line":147,"col":28},"end":{"line":147,"col":32}},"generated_from_span":null},"ty":{"Deduplicated":235}},{"index":2,"name":"value","span":{"data":{"file_id":0,"beg":{"line":147,"col":40},"end":{"line":147,"col":45}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":3,"name":"addend","span":{"data":{"file_id":0,"beg":{"line":147,"col":52},"end":{"line":147,"col":58}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":4,"name":"v","span":{"data":{"file_id":0,"beg":{"line":148,"col":8},"end":{"line":148,"col":9}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":5,"name":null,"span":{"data":{"file_id":0,"beg":{"line":148,"col":12},"end":{"line":148,"col":39}},"generated_from_span":null},"ty":{"HashConsedValue":[1974,{"Adt":{"id":{"Adt":9},"generics":{"regions":[],"types":[{"HashConsedValue":[1971,{"Adt":{"id":{"Adt":7},"generics":{"regions":[],"types":[{"Deduplicated":1283}],"const_generics":[],"trait_refs":[{"Deduplicated":1285}]}}}]},{"Deduplicated":231}],"const_generics":[],"trait_refs":[{"HashConsedValue":[1973,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[1972,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":1971}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":1971}],"const_generics":[],"trait_refs":[]}}}}]},{"Deduplicated":356}]}}}]}},{"index":6,"name":null,"span":{"data":{"file_id":0,"beg":{"line":148,"col":12},"end":{"line":148,"col":38}},"generated_from_span":null},"ty":{"Deduplicated":1862}},{"index":7,"name":null,"span":{"data":{"file_id":0,"beg":{"line":148,"col":26},"end":{"line":148,"col":30}},"generated_from_span":null},"ty":{"Deduplicated":235}},{"index":8,"name":null,"span":{"data":{"file_id":0,"beg":{"line":148,"col":32},"end":{"line":148,"col":37}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":9,"name":null,"span":{"data":{"file_id":0,"beg":{"line":148,"col":38},"end":{"line":148,"col":39}},"generated_from_span":null},"ty":{"Deduplicated":411}},{"index":10,"name":"residual","span":{"data":{"file_id":0,"beg":{"line":148,"col":38},"end":{"line":148,"col":39}},"generated_from_span":null},"ty":{"Deduplicated":1971}},{"index":11,"name":null,"span":{"data":{"file_id":0,"beg":{"line":148,"col":38},"end":{"line":148,"col":39}},"generated_from_span":null},"ty":{"Deduplicated":1971}},{"index":12,"name":"val","span":{"data":{"file_id":0,"beg":{"line":148,"col":12},"end":{"line":148,"col":39}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":13,"name":null,"span":{"data":{"file_id":0,"beg":{"line":149,"col":9},"end":{"line":149,"col":19}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":14,"name":null,"span":{"data":{"file_id":0,"beg":{"line":149,"col":9},"end":{"line":149,"col":10}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":15,"name":null,"span":{"data":{"file_id":0,"beg":{"line":149,"col":13},"end":{"line":149,"col":19}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":16,"name":null,"span":{"data":{"file_id":0,"beg":{"line":149,"col":9},"end":{"line":149,"col":19}},"generated_from_span":null},"ty":{"Deduplicated":236}}]},"body":[{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":148,"col":8},"end":{"line":148,"col":9}},"generated_from_span":null},"kind":{"StorageLive":9},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":148,"col":8},"end":{"line":148,"col":9}},"generated_from_span":null},"kind":{"StorageLive":16},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":148,"col":8},"end":{"line":148,"col":9}},"generated_from_span":null},"kind":{"StorageLive":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":148,"col":12},"end":{"line":148,"col":39}},"generated_from_span":null},"kind":{"StorageLive":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":148,"col":12},"end":{"line":148,"col":38}},"generated_from_span":null},"kind":{"StorageLive":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":148,"col":26},"end":{"line":148,"col":30}},"generated_from_span":null},"kind":{"StorageLive":7},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":148,"col":26},"end":{"line":148,"col":30}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":7},"ty":{"Deduplicated":235}},{"Use":{"Copy":{"kind":{"Local":1},"ty":{"Deduplicated":235}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":148,"col":32},"end":{"line":148,"col":37}},"generated_from_span":null},"kind":{"StorageLive":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":148,"col":32},"end":{"line":148,"col":37}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":8},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Local":2},"ty":{"Deduplicated":231}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":148,"col":12},"end":{"line":148,"col":38}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":{"Regular":10}},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}},"args":[{"Move":{"kind":{"Local":7},"ty":{"Deduplicated":235}}},{"Move":{"kind":{"Local":8},"ty":{"Deduplicated":231}}}],"dest":{"kind":{"Local":6},"ty":{"Deduplicated":1862}}},"target":2,"on_unwind":1}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":147,"col":0},"end":{"line":150,"col":1}},"generated_from_span":null},"kind":"UnwindResume","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":148,"col":37},"end":{"line":148,"col":38}},"generated_from_span":null},"kind":{"StorageDead":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":148,"col":37},"end":{"line":148,"col":38}},"generated_from_span":null},"kind":{"StorageDead":7},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":148,"col":12},"end":{"line":148,"col":39}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":{"Regular":25}},"generics":{"regions":[],"types":[{"Deduplicated":231}],"const_generics":[],"trait_refs":[{"Deduplicated":356}]}}},"args":[{"Move":{"kind":{"Local":6},"ty":{"Deduplicated":1862}}}],"dest":{"kind":{"Local":5},"ty":{"Deduplicated":1974}}},"target":3,"on_unwind":1}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":148,"col":38},"end":{"line":148,"col":39}},"generated_from_span":null},"kind":{"StorageDead":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":148,"col":12},"end":{"line":148,"col":39}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":9},"ty":{"Deduplicated":411}},{"Discriminant":{"kind":{"Local":5},"ty":{"Deduplicated":1974}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":148,"col":12},"end":{"line":148,"col":39}},"generated_from_span":null},"kind":{"Switch":{"discr":{"Move":{"kind":{"Local":9},"ty":{"Deduplicated":411}}},"targets":{"SwitchInt":[{"Int":"Isize"},[[{"Scalar":{"Signed":["Isize","0"]}},4],[{"Scalar":{"Signed":["Isize","1"]}},5]],6]}}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":148,"col":12},"end":{"line":148,"col":39}},"generated_from_span":null},"kind":{"StorageLive":12},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":148,"col":12},"end":{"line":148,"col":39}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":12},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Local":5},"ty":{"Deduplicated":1974}},{"Field":[{"Adt":[9,0]},0]}]},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":148,"col":12},"end":{"line":148,"col":39}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":4},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Local":12},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":148,"col":38},"end":{"line":148,"col":39}},"generated_from_span":null},"kind":{"StorageDead":12},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":148,"col":39},"end":{"line":148,"col":40}},"generated_from_span":null},"kind":{"StorageDead":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":149,"col":9},"end":{"line":149,"col":19}},"generated_from_span":null},"kind":{"StorageLive":13},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":149,"col":9},"end":{"line":149,"col":10}},"generated_from_span":null},"kind":{"StorageLive":14},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":149,"col":9},"end":{"line":149,"col":10}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":14},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Local":4},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":149,"col":13},"end":{"line":149,"col":19}},"generated_from_span":null},"kind":{"StorageLive":15},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":149,"col":13},"end":{"line":149,"col":19}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":15},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Local":3},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":149,"col":9},"end":{"line":149,"col":19}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":16},"ty":{"Deduplicated":236}},{"BinaryOp":["AddChecked",{"Copy":{"kind":{"Local":14},"ty":{"Deduplicated":231}}},{"Copy":{"kind":{"Local":15},"ty":{"Deduplicated":231}}}]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":149,"col":9},"end":{"line":149,"col":19}},"generated_from_span":null},"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":16},"ty":{"Deduplicated":236}},{"Field":[{"Tuple":2},1]}]},"ty":{"Deduplicated":235}}},"expected":false,"check_kind":{"Overflow":[{"Add":"Wrap"},{"Move":{"kind":{"Local":15},"ty":{"Deduplicated":231}}},{"Move":{"kind":{"Local":16},"ty":{"Deduplicated":231}}}]}},"target":7,"on_unwind":1}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":148,"col":38},"end":{"line":148,"col":39}},"generated_from_span":null},"kind":{"StorageLive":10},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":148,"col":38},"end":{"line":148,"col":39}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":10},"ty":{"Deduplicated":1971}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Local":5},"ty":{"Deduplicated":1974}},{"Field":[{"Adt":[9,1]},0]}]},"ty":{"Deduplicated":1971}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":148,"col":38},"end":{"line":148,"col":39}},"generated_from_span":null},"kind":{"StorageLive":11},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":148,"col":38},"end":{"line":148,"col":39}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":11},"ty":{"Deduplicated":1971}},{"Use":{"Copy":{"kind":{"Local":10},"ty":{"Deduplicated":1971}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":148,"col":12},"end":{"line":148,"col":39}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":{"Regular":26}},"generics":{"regions":[],"types":[{"Deduplicated":231}],"const_generics":[],"trait_refs":[{"Deduplicated":356}]}}},"args":[{"Move":{"kind":{"Local":11},"ty":{"Deduplicated":1971}}}],"dest":{"kind":{"Local":0},"ty":{"Deduplicated":1862}}},"target":8,"on_unwind":1}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":148,"col":12},"end":{"line":148,"col":39}},"generated_from_span":null},"kind":{"Abort":"UndefinedBehavior"},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":149,"col":9},"end":{"line":149,"col":19}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":13},"ty":{"Deduplicated":231}},{"Use":{"Move":{"kind":{"Projection":[{"kind":{"Local":16},"ty":{"Deduplicated":236}},{"Field":[{"Tuple":2},0]}]},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":149,"col":18},"end":{"line":149,"col":19}},"generated_from_span":null},"kind":{"StorageDead":15},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":149,"col":18},"end":{"line":149,"col":19}},"generated_from_span":null},"kind":{"StorageDead":14},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":149,"col":4},"end":{"line":149,"col":20}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":1862}},{"Aggregate":[{"Adt":[{"id":{"Adt":7},"generics":{"regions":[],"types":[{"Deduplicated":231}],"const_generics":[],"trait_refs":[{"Deduplicated":356}]}},1,null]},[{"Move":{"kind":{"Local":13},"ty":{"Deduplicated":231}}}]]}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":149,"col":19},"end":{"line":149,"col":20}},"generated_from_span":null},"kind":{"StorageDead":13},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":150,"col":0},"end":{"line":150,"col":1}},"generated_from_span":null},"kind":{"StorageDead":4},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":150,"col":1},"end":{"line":150,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":148,"col":38},"end":{"line":148,"col":39}},"generated_from_span":null},"kind":{"StorageDead":11},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":148,"col":38},"end":{"line":148,"col":39}},"generated_from_span":null},"kind":{"StorageDead":10},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":148,"col":39},"end":{"line":148,"col":40}},"generated_from_span":null},"kind":{"StorageDead":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":150,"col":0},"end":{"line":150,"col":1}},"generated_from_span":null},"kind":{"StorageDead":4},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":150,"col":1},"end":{"line":150,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}}],"comments":[]}}},{"def_id":12,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["host_registry_dispatch",0]}],"span":{"data":{"file_id":0,"beg":{"line":171,"col":0},"end":{"line":173,"col":1}},"generated_from_span":null},"source_text":"pub fn host_registry_dispatch(reg: &HostRegistry, x: i64) -> i64 {\n (reg.slot)(x)\n}","attr_info":{"attributes":[{"DocComment":" Call through the registered callback. `front::mir` lowers this to"},{"DocComment":" `OpKind::IndirectCall { graphs: None }` — `indirect_call` with an"},{"DocComment":" unknown PBC family, which `guess_call_kind` answers `residual` for"},{"DocComment":" (`call.py:105`/`137`, `jtransform.py:410-412`). The `__dyn_call`"},{"DocComment":" placeholder it used to reach is an unregistered synthetic path with no"},{"DocComment":" continuation."}],"inline":"Never","rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"HashConsedValue":[2018,{"Ref":[{"Var":{"Bound":[0,0]}},{"HashConsedValue":[2017,{"Adt":{"id":{"Adt":4},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}}]},"Shared"]}]},{"Deduplicated":231}],"output":{"Deduplicated":231}},"src":"TopLevel","is_global_initializer":null,"body":{"Unstructured":{"span":{"data":{"file_id":0,"beg":{"line":171,"col":0},"end":{"line":173,"col":1}},"generated_from_span":null},"bound_body_regions":2,"locals":{"arg_count":2,"locals":[{"index":0,"name":null,"span":{"data":{"file_id":0,"beg":{"line":171,"col":61},"end":{"line":171,"col":64}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":1,"name":"reg","span":{"data":{"file_id":0,"beg":{"line":171,"col":30},"end":{"line":171,"col":33}},"generated_from_span":null},"ty":{"HashConsedValue":[2021,{"Ref":[{"Body":1},{"Deduplicated":2017},"Shared"]}]}},{"index":2,"name":"x","span":{"data":{"file_id":0,"beg":{"line":171,"col":50},"end":{"line":171,"col":51}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":3,"name":null,"span":{"data":{"file_id":0,"beg":{"line":172,"col":4},"end":{"line":172,"col":14}},"generated_from_span":null},"ty":{"Deduplicated":2011}},{"index":4,"name":null,"span":{"data":{"file_id":0,"beg":{"line":172,"col":15},"end":{"line":172,"col":16}},"generated_from_span":null},"ty":{"Deduplicated":231}}]},"body":[{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":172,"col":4},"end":{"line":172,"col":14}},"generated_from_span":null},"kind":{"StorageLive":3},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":172,"col":4},"end":{"line":172,"col":14}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":3},"ty":{"Deduplicated":2011}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Projection":[{"kind":{"Local":1},"ty":{"Deduplicated":2021}},"Deref"]},"ty":{"Deduplicated":2017}},{"Field":[{"Adt":[4,null]},0]}]},"ty":{"Deduplicated":2011}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":172,"col":15},"end":{"line":172,"col":16}},"generated_from_span":null},"kind":{"StorageLive":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":172,"col":15},"end":{"line":172,"col":16}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":4},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Local":2},"ty":{"Deduplicated":231}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":172,"col":4},"end":{"line":172,"col":17}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Dynamic":{"Move":{"kind":{"Local":3},"ty":{"Deduplicated":2011}}}},"args":[{"Move":{"kind":{"Local":4},"ty":{"Deduplicated":231}}}],"dest":{"kind":{"Local":0},"ty":{"Deduplicated":231}}},"target":2,"on_unwind":1}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":171,"col":0},"end":{"line":173,"col":1}},"generated_from_span":null},"kind":"UnwindResume","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":172,"col":16},"end":{"line":172,"col":17}},"generated_from_span":null},"kind":{"StorageDead":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":172,"col":16},"end":{"line":172,"col":17}},"generated_from_span":null},"kind":{"StorageDead":3},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":173,"col":1},"end":{"line":173,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}}],"comments":[]}}},{"def_id":13,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["host_registry_dispatch_optional",0]}],"span":{"data":{"file_id":0,"beg":{"line":177,"col":0},"end":{"line":182,"col":1}},"generated_from_span":null},"source_text":"pub fn host_registry_dispatch_optional(reg: &HostRegistry, x: i64) -> i64 {\n match reg.maybe_slot {\n Some(f) => f(x),\n None => 0,\n }\n}","attr_info":{"attributes":[{"DocComment":" The one-hop `Option` spelling of the same shape."}],"inline":"Never","rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":2018},{"Deduplicated":231}],"output":{"Deduplicated":231}},"src":"TopLevel","is_global_initializer":null,"body":{"Unstructured":{"span":{"data":{"file_id":0,"beg":{"line":177,"col":0},"end":{"line":182,"col":1}},"generated_from_span":null},"bound_body_regions":2,"locals":{"arg_count":2,"locals":[{"index":0,"name":null,"span":{"data":{"file_id":0,"beg":{"line":177,"col":70},"end":{"line":177,"col":73}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":1,"name":"reg","span":{"data":{"file_id":0,"beg":{"line":177,"col":39},"end":{"line":177,"col":42}},"generated_from_span":null},"ty":{"Deduplicated":2021}},{"index":2,"name":"x","span":{"data":{"file_id":0,"beg":{"line":177,"col":59},"end":{"line":177,"col":60}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":3,"name":null,"span":{"data":{"file_id":0,"beg":{"line":179,"col":8},"end":{"line":179,"col":15}},"generated_from_span":null},"ty":{"Deduplicated":411}},{"index":4,"name":"f","span":{"data":{"file_id":0,"beg":{"line":179,"col":13},"end":{"line":179,"col":14}},"generated_from_span":null},"ty":{"Deduplicated":2011}},{"index":5,"name":null,"span":{"data":{"file_id":0,"beg":{"line":179,"col":19},"end":{"line":179,"col":20}},"generated_from_span":null},"ty":{"Deduplicated":2011}},{"index":6,"name":null,"span":{"data":{"file_id":0,"beg":{"line":179,"col":21},"end":{"line":179,"col":22}},"generated_from_span":null},"ty":{"Deduplicated":231}}]},"body":[{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":178,"col":10},"end":{"line":178,"col":24}},"generated_from_span":null},"kind":{"StorageLive":3},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":178,"col":10},"end":{"line":178,"col":24}},"generated_from_span":null},"kind":{"PlaceMention":{"kind":{"Projection":[{"kind":{"Projection":[{"kind":{"Local":1},"ty":{"Deduplicated":2021}},"Deref"]},"ty":{"Deduplicated":2017}},{"Field":[{"Adt":[4,null]},1]}]},"ty":{"Deduplicated":2015}}},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":178,"col":10},"end":{"line":178,"col":24}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":3},"ty":{"Deduplicated":411}},{"Discriminant":{"kind":{"Projection":[{"kind":{"Projection":[{"kind":{"Local":1},"ty":{"Deduplicated":2021}},"Deref"]},"ty":{"Deduplicated":2017}},{"Field":[{"Adt":[4,null]},1]}]},"ty":{"Deduplicated":2015}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":178,"col":4},"end":{"line":178,"col":24}},"generated_from_span":null},"kind":{"Switch":{"discr":{"Move":{"kind":{"Local":3},"ty":{"Deduplicated":411}}},"targets":{"SwitchInt":[{"Int":"Isize"},[[{"Scalar":{"Signed":["Isize","0"]}},1],[{"Scalar":{"Signed":["Isize","1"]}},2]],3]}}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":180,"col":16},"end":{"line":180,"col":17}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":231}},{"Use":{"Const":{"kind":{"Literal":{"Scalar":{"Signed":["I64","0"]}}},"ty":{"Deduplicated":231}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":182,"col":1},"end":{"line":182,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":179,"col":13},"end":{"line":179,"col":14}},"generated_from_span":null},"kind":{"StorageLive":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":179,"col":13},"end":{"line":179,"col":14}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":4},"ty":{"Deduplicated":2011}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Projection":[{"kind":{"Projection":[{"kind":{"Local":1},"ty":{"Deduplicated":2021}},"Deref"]},"ty":{"Deduplicated":2017}},{"Field":[{"Adt":[4,null]},1]}]},"ty":{"Deduplicated":2015}},{"Field":[{"Adt":[7,1]},0]}]},"ty":{"Deduplicated":2011}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":179,"col":19},"end":{"line":179,"col":20}},"generated_from_span":null},"kind":{"StorageLive":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":179,"col":19},"end":{"line":179,"col":20}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":5},"ty":{"Deduplicated":2011}},{"Use":{"Copy":{"kind":{"Local":4},"ty":{"Deduplicated":2011}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":179,"col":21},"end":{"line":179,"col":22}},"generated_from_span":null},"kind":{"StorageLive":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":179,"col":21},"end":{"line":179,"col":22}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":6},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Local":2},"ty":{"Deduplicated":231}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":179,"col":19},"end":{"line":179,"col":23}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Dynamic":{"Move":{"kind":{"Local":5},"ty":{"Deduplicated":2011}}}},"args":[{"Move":{"kind":{"Local":6},"ty":{"Deduplicated":231}}}],"dest":{"kind":{"Local":0},"ty":{"Deduplicated":231}}},"target":5,"on_unwind":4}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":178,"col":10},"end":{"line":178,"col":24}},"generated_from_span":null},"kind":{"Abort":"UndefinedBehavior"},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":177,"col":0},"end":{"line":182,"col":1}},"generated_from_span":null},"kind":"UnwindResume","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":179,"col":22},"end":{"line":179,"col":23}},"generated_from_span":null},"kind":{"StorageDead":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":179,"col":22},"end":{"line":179,"col":23}},"generated_from_span":null},"kind":{"StorageDead":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":179,"col":22},"end":{"line":179,"col":23}},"generated_from_span":null},"kind":{"StorageDead":4},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":182,"col":1},"end":{"line":182,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}}],"comments":[]}}},{"def_id":14,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":0}},{"Ident":["into_iter",0]}],"span":{"data":{"file_id":4,"beg":{"line":25,"col":4},"end":{"line":25,"col":37}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[{"index":0,"name":"'a","mutability":"Unknown"}],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":4,"beg":{"line":21,"col":9},"end":{"line":21,"col":10}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"HashConsedValue":[2040,{"Ref":[{"Var":{"Bound":[0,0]}},{"Deduplicated":1511},"Shared"]}]}],"output":{"HashConsedValue":[2063,{"Adt":{"id":{"Adt":6},"generics":{"regions":[{"Var":{"Bound":[0,0]}}],"types":[{"Deduplicated":220}],"const_generics":[],"trait_refs":[{"Deduplicated":223}]}}}]}},"src":{"TraitImpl":{"impl_ref":{"id":0,"generics":{"regions":[{"Var":{"Bound":[0,0]}}],"types":[{"Deduplicated":220}],"const_generics":[],"trait_refs":[{"Deduplicated":223}]}},"trait_ref":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":2040}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"reuses_default":true}},"is_global_initializer":null,"body":"Opaque"},{"def_id":15,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["next",0]}],"span":{"data":{"file_id":7,"beg":{"line":157,"col":12},"end":{"line":157,"col":47}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":"Hint","rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[{"index":0,"name":"'a","mutability":"Unknown"},{"index":1,"name":null,"mutability":"Unknown"}],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":7,"beg":{"line":153,"col":17},"end":{"line":153,"col":18}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"HashConsedValue":[7152,{"Ref":[{"Var":{"Bound":[0,1]}},{"Deduplicated":2063},"Mut"]}]}],"output":{"HashConsedValue":[7154,{"Adt":{"id":{"Adt":7},"generics":{"regions":[],"types":[{"HashConsedValue":[4926,{"Ref":[{"Var":{"Bound":[0,0]}},{"Deduplicated":220},"Shared"]}]}],"const_generics":[],"trait_refs":[{"HashConsedValue":[7153,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6233,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"HashConsedValue":[6232,{"Ref":["Erased",{"Deduplicated":188},"Shared"]}]}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[2048,{"Ref":[{"Var":{"Bound":[1,0]}},{"Deduplicated":188},"Shared"]}]}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},"src":{"TraitImpl":{"impl_ref":{"id":1,"generics":{"regions":[{"Var":{"Bound":[0,0]}}],"types":[{"Deduplicated":220}],"const_generics":[],"trait_refs":[{"Deduplicated":223}]}},"trait_ref":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":2063}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"reuses_default":true}},"is_global_initializer":null,"body":"Opaque"},{"def_id":16,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":2}},{"Ident":["into_iter",0]}],"span":{"data":{"file_id":8,"beg":{"line":54,"col":4},"end":{"line":54,"col":40}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Creates a consuming iterator, that is, one that moves each value out of"},{"DocComment":" the array (from start to end)."},{"DocComment":""},{"DocComment":" The array cannot be used after calling this unless `T` implements"},{"DocComment":" `Copy`, so the whole array is copied."},{"DocComment":""},{"DocComment":" Arrays have special behavior when calling `.into_iter()` prior to the"},{"DocComment":" 2021 edition -- see the [array] Editions section for more information."},{"DocComment":""},{"DocComment":" [array]: prim@array"}],"inline":"Hint","rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[{"index":0,"name":"N","ty":{"Deduplicated":775}}],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":8,"beg":{"line":39,"col":5},"end":{"line":39,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"HashConsedValue":[4931,{"Array":[{"Deduplicated":220},{"kind":{"Var":{"Bound":[0,0]}},"ty":{"Deduplicated":775}}]}]}],"output":{"HashConsedValue":[4944,{"Adt":{"id":{"Adt":8},"generics":{"regions":[],"types":[{"Deduplicated":220}],"const_generics":[{"kind":{"Var":{"Bound":[0,0]}},"ty":{"Deduplicated":775}}],"trait_refs":[{"Deduplicated":223}]}}}]}},"src":{"TraitImpl":{"impl_ref":{"id":2,"generics":{"regions":[],"types":[{"Deduplicated":220}],"const_generics":[{"kind":{"Var":{"Bound":[0,0]}},"ty":{"Deduplicated":775}}],"trait_refs":[{"Deduplicated":223}]}},"trait_ref":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":4931}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"reuses_default":true}},"is_global_initializer":null,"body":"Opaque"},{"def_id":17,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["next",0]}],"span":{"data":{"file_id":8,"beg":{"line":239,"col":4},"end":{"line":239,"col":44}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":"Hint","rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[{"index":0,"name":"T"}],"const_generics":[{"index":0,"name":"N","ty":{"Deduplicated":775}}],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":8,"beg":{"line":235,"col":5},"end":{"line":235,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"HashConsedValue":[7155,{"Ref":[{"Var":{"Bound":[0,0]}},{"Deduplicated":4944},"Mut"]}]}],"output":{"HashConsedValue":[3736,{"Adt":{"id":{"Adt":7},"generics":{"regions":[],"types":[{"Deduplicated":220}],"const_generics":[],"trait_refs":[{"Deduplicated":223}]}}}]}},"src":{"TraitImpl":{"impl_ref":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":220}],"const_generics":[{"kind":{"Var":{"Bound":[0,0]}},"ty":{"Deduplicated":775}}],"trait_refs":[{"Deduplicated":223}]}},"trait_ref":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":4944}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"reuses_default":true}},"is_global_initializer":null,"body":"Opaque"},{"def_id":18,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["Destruct",0]},{"Ident":["drop_in_place",0]}],"span":{"data":{"file_id":1,"beg":{"line":1063,"col":0},"end":{"line":1063,"col":38}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":true,"inputs":[{"HashConsedValue":[7156,{"RawPtr":[{"Deduplicated":220},"Mut"]}]}],"output":{"Deduplicated":245}},"src":{"TraitDecl":{"trait_ref":{"id":2,"generics":{"regions":[],"types":[{"Deduplicated":220}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"has_default":false}},"is_global_initializer":null,"body":"Opaque"},{"def_id":19,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Impl":{"Ty":{"params":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":5,"beg":{"line":101,"col":5},"end":{"line":101,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"Deduplicated":1511},"kind":"InherentImplBlock"}}},{"Ident":["iter",0]}],"span":{"data":{"file_id":5,"beg":{"line":1040,"col":4},"end":{"line":1040,"col":43}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Returns an iterator over the slice."},{"DocComment":""},{"DocComment":" The iterator yields all items from start to end."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let x = &[1, 2, 4];"},{"DocComment":" let mut iterator = x.iter();"},{"DocComment":""},{"DocComment":" assert_eq!(iterator.next(), Some(&1));"},{"DocComment":" assert_eq!(iterator.next(), Some(&2));"},{"DocComment":" assert_eq!(iterator.next(), Some(&4));"},{"DocComment":" assert_eq!(iterator.next(), None);"},{"DocComment":" ```"}],"inline":"Hint","rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"slice_iter"},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":5,"beg":{"line":101,"col":5},"end":{"line":101,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":2040}],"output":{"Deduplicated":2063}},"src":"TopLevel","is_global_initializer":null,"body":"Opaque"},{"def_id":20,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["collect",0]},{"Impl":{"Trait":5}},{"Ident":["into_iter",0]}],"span":{"data":{"file_id":13,"beg":{"line":322,"col":4},"end":{"line":322,"col":27}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":"Hint","rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":13,"beg":{"line":317,"col":5},"end":{"line":317,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":13,"beg":{"line":317,"col":8},"end":{"line":317,"col":24}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":220}],"output":{"Deduplicated":220}},"src":{"TraitImpl":{"impl_ref":{"id":5,"generics":{"regions":[],"types":[{"Deduplicated":220}],"const_generics":[],"trait_refs":[{"Deduplicated":223},{"HashConsedValue":[5166,{"kind":{"Clause":{"Bound":[0,1]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}]}]}},"trait_ref":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":220}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"reuses_default":true}},"is_global_initializer":null,"body":"Opaque"},{"def_id":21,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["result",0]},{"Impl":{"Trait":6}},{"Ident":["branch",0]}],"span":{"data":{"file_id":3,"beg":{"line":2172,"col":4},"end":{"line":2172,"col":64}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":"Hint","rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"T"},{"index":1,"name":"E"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":3,"beg":{"line":2162,"col":5},"end":{"line":2162,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":3,"beg":{"line":2162,"col":8},"end":{"line":2162,"col":9}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"HashConsedValue":[5178,{"Adt":{"id":{"Adt":5},"generics":{"regions":[],"types":[{"Deduplicated":220},{"Deduplicated":2027}],"const_generics":[],"trait_refs":[{"Deduplicated":223},{"HashConsedValue":[2650,{"kind":{"Clause":{"Bound":[0,1]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}],"output":{"HashConsedValue":[7157,{"Adt":{"id":{"Adt":9},"generics":{"regions":[],"types":[{"HashConsedValue":[5198,{"Adt":{"id":{"Adt":5},"generics":{"regions":[],"types":[{"Deduplicated":1283},{"Deduplicated":2027}],"const_generics":[],"trait_refs":[{"Deduplicated":1285},{"Deduplicated":2650}]}}}]},{"Deduplicated":220}],"const_generics":[],"trait_refs":[{"HashConsedValue":[5200,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[5199,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"HashConsedValue":[5184,{"Adt":{"id":{"Adt":5},"generics":{"regions":[],"types":[{"Deduplicated":1283},{"Deduplicated":2023}],"const_generics":[],"trait_refs":[{"Deduplicated":1285},{"HashConsedValue":[3039,{"kind":{"Clause":{"Bound":[1,1]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[2621,{"TypeVar":{"Bound":[2,1]}}]}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":5184}],"const_generics":[],"trait_refs":[]}}}}]},{"Deduplicated":223}]}}}]}},"src":{"TraitImpl":{"impl_ref":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":220},{"Deduplicated":2027}],"const_generics":[],"trait_refs":[{"Deduplicated":223},{"Deduplicated":2650}]}},"trait_ref":{"id":11,"generics":{"regions":[],"types":[{"Deduplicated":5178}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":1},"reuses_default":true}},"is_global_initializer":null,"body":"Opaque"},{"def_id":22,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["result",0]},{"Impl":{"Trait":7}},{"Ident":["from_residual",0]}],"span":{"data":{"file_id":3,"beg":{"line":2187,"col":4},"end":{"line":2187,"col":70}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":"Hint","rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"T"},{"index":1,"name":"E"},{"index":2,"name":"F"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":3,"beg":{"line":2182,"col":5},"end":{"line":2182,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":3,"beg":{"line":2182,"col":8},"end":{"line":2182,"col":9}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":2,"span":{"data":{"file_id":3,"beg":{"line":2182,"col":11},"end":{"line":2182,"col":12}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":3001}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":3,"span":{"data":{"file_id":3,"beg":{"line":2182,"col":14},"end":{"line":2182,"col":29}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":4,"generics":{"regions":[],"types":[{"Deduplicated":3001},{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":5198}],"output":{"HashConsedValue":[5202,{"Adt":{"id":{"Adt":5},"generics":{"regions":[],"types":[{"Deduplicated":220},{"HashConsedValue":[3014,{"TypeVar":{"Bound":[0,2]}}]}],"const_generics":[],"trait_refs":[{"Deduplicated":223},{"HashConsedValue":[3042,{"kind":{"Clause":{"Bound":[0,2]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":3001}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},"src":{"TraitImpl":{"impl_ref":{"id":7,"generics":{"regions":[],"types":[{"Deduplicated":220},{"Deduplicated":2027},{"Deduplicated":3014}],"const_generics":[],"trait_refs":[{"Deduplicated":223},{"Deduplicated":2650},{"Deduplicated":3042},{"HashConsedValue":[5203,{"kind":{"Clause":{"Bound":[0,3]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":4,"generics":{"regions":[],"types":[{"Deduplicated":3001},{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}]}]}},"trait_ref":{"id":24,"generics":{"regions":[],"types":[{"Deduplicated":5202},{"Deduplicated":5198}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"reuses_default":true}},"is_global_initializer":null,"body":"Opaque"},{"def_id":23,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["bool",0]},{"Impl":{"Ty":{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"Deduplicated":235},"kind":"InherentImplBlock"}}},{"Ident":["then",0]}],"span":{"data":{"file_id":17,"beg":{"line":65,"col":4},"end":{"line":65,"col":94}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Returns `Some(f())` if the `bool` is [`true`](../std/keyword.true.html),"},{"DocComment":" or `None` otherwise."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" assert_eq!(false.then(|| 0), None);"},{"DocComment":" assert_eq!(true.then(|| 0), Some(0));"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let mut a = 0;"},{"DocComment":""},{"DocComment":" true.then(|| { a += 1; });"},{"DocComment":" false.then(|| { a += 1; });"},{"DocComment":""},{"DocComment":" // `a` is incremented once because the closure is evaluated lazily by"},{"DocComment":" // `then`."},{"DocComment":" assert_eq!(a, 1);"},{"DocComment":" ```"}],"inline":"Hint","rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"bool_then"},"generics":{"regions":[],"types":[{"index":0,"name":"T"},{"index":1,"name":"F"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":17,"beg":{"line":65,"col":22},"end":{"line":65,"col":23}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":17,"beg":{"line":65,"col":25},"end":{"line":65,"col":26}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":2,"span":{"data":{"file_id":17,"beg":{"line":65,"col":28},"end":{"line":65,"col":49}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":5,"generics":{"regions":[],"types":[{"Deduplicated":2023},{"Deduplicated":245}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":3,"span":{"data":{"file_id":17,"beg":{"line":65,"col":52},"end":{"line":65,"col":68}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":2,"generics":{"regions":[],"types":[{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[{"regions":[],"skip_binder":{"trait_ref":{"HashConsedValue":[6958,{"kind":{"Clause":{"Bound":[1,2]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":5,"generics":{"regions":[],"types":[{"Deduplicated":2621},{"Deduplicated":245}],"const_generics":[],"trait_refs":[]}}}}]},"type_id":0,"ty":{"Deduplicated":188}}}]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":235},{"Deduplicated":2027}],"output":{"Deduplicated":3736}},"src":"TopLevel","is_global_initializer":null,"body":"Opaque"},{"def_id":24,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["bool",0]},{"Impl":{"Ty":{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"Deduplicated":235},"kind":"InherentImplBlock"}}},{"Ident":["then_some",0]}],"span":{"data":{"file_id":17,"beg":{"line":36,"col":4},"end":{"line":36,"col":72}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Returns `Some(t)` if the `bool` is [`true`](../std/keyword.true.html),"},{"DocComment":" or `None` otherwise."},{"DocComment":""},{"DocComment":" Arguments passed to `then_some` are eagerly evaluated; if you are"},{"DocComment":" passing the result of a function call, it is recommended to use"},{"DocComment":" [`then`], which is lazily evaluated."},{"DocComment":""},{"DocComment":" [`then`]: bool::then"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" assert_eq!(false.then_some(0), None);"},{"DocComment":" assert_eq!(true.then_some(0), Some(0));"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let mut a = 0;"},{"DocComment":" let mut function_with_side_effects = || { a += 1; };"},{"DocComment":""},{"DocComment":" true.then_some(function_with_side_effects());"},{"DocComment":" false.then_some(function_with_side_effects());"},{"DocComment":""},{"DocComment":" // `a` is incremented twice because the value passed to `then_some` is"},{"DocComment":" // evaluated eagerly."},{"DocComment":" assert_eq!(a, 2);"},{"DocComment":" ```"}],"inline":"Hint","rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":17,"beg":{"line":36,"col":27},"end":{"line":36,"col":28}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":17,"beg":{"line":36,"col":30},"end":{"line":36,"col":46}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":2,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":235},{"Deduplicated":220}],"output":{"Deduplicated":3736}},"src":"TopLevel","is_global_initializer":null,"body":"Opaque"},{"def_id":25,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["option",0]},{"Impl":{"Trait":11}},{"Ident":["branch",0]}],"span":{"data":{"file_id":6,"beg":{"line":2765,"col":4},"end":{"line":2765,"col":64}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":"Hint","rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":6,"beg":{"line":2755,"col":5},"end":{"line":2755,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":3736}],"output":{"HashConsedValue":[7158,{"Adt":{"id":{"Adt":9},"generics":{"regions":[],"types":[{"Deduplicated":1971},{"Deduplicated":220}],"const_generics":[],"trait_refs":[{"Deduplicated":1973},{"Deduplicated":223}]}}}]}},"src":{"TraitImpl":{"impl_ref":{"id":11,"generics":{"regions":[],"types":[{"Deduplicated":220}],"const_generics":[],"trait_refs":[{"Deduplicated":223}]}},"trait_ref":{"id":11,"generics":{"regions":[],"types":[{"Deduplicated":3736}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":1},"reuses_default":true}},"is_global_initializer":null,"body":"Opaque"},{"def_id":26,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["option",0]},{"Impl":{"Trait":12}},{"Ident":["from_residual",0]}],"span":{"data":{"file_id":6,"beg":{"line":2779,"col":4},"end":{"line":2779,"col":67}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":"Hint","rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":6,"beg":{"line":2777,"col":5},"end":{"line":2777,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":1971}],"output":{"Deduplicated":3736}},"src":{"TraitImpl":{"impl_ref":{"id":12,"generics":{"regions":[],"types":[{"Deduplicated":220}],"const_generics":[],"trait_refs":[{"Deduplicated":223}]}},"trait_ref":{"id":24,"generics":{"regions":[],"types":[{"Deduplicated":3736},{"Deduplicated":1971}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"reuses_default":true}},"is_global_initializer":null,"body":"Opaque"},null,null,null,null,null,null,null,{"def_id":34,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["next",0]}],"span":{"data":{"file_id":16,"beg":{"line":77,"col":4},"end":{"line":77,"col":45}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Advances the iterator and returns the next value."},{"DocComment":""},{"DocComment":" Returns [`None`] when iteration is finished. Individual iterator"},{"DocComment":" implementations may choose to resume iteration, and so calling `next()`"},{"DocComment":" again may or may not eventually start returning [`Some(Item)`] again at some"},{"DocComment":" point."},{"DocComment":""},{"DocComment":" [`Some(Item)`]: Some"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let a = [1, 2, 3];"},{"DocComment":""},{"DocComment":" let mut iter = a.into_iter();"},{"DocComment":""},{"DocComment":" // A call to next() returns the next value..."},{"DocComment":" assert_eq!(Some(1), iter.next());"},{"DocComment":" assert_eq!(Some(2), iter.next());"},{"DocComment":" assert_eq!(Some(3), iter.next());"},{"DocComment":""},{"DocComment":" // ... and then None once it's over."},{"DocComment":" assert_eq!(None, iter.next());"},{"DocComment":""},{"DocComment":" // More calls may or may not return `None`. Here, they always will."},{"DocComment":" assert_eq!(None, iter.next());"},{"DocComment":" assert_eq!(None, iter.next());"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"next"},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"HashConsedValue":[3354,{"Ref":[{"Var":{"Bound":[0,0]}},{"Deduplicated":220},"Mut"]}]}],"output":{"HashConsedValue":[7162,{"Adt":{"id":{"Adt":7},"generics":{"regions":[],"types":[{"HashConsedValue":[7159,{"TraitType":[{"HashConsedValue":[5267,{"kind":{"Clause":{"Bound":[0,0]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}]},0]}]}],"const_generics":[],"trait_refs":[{"HashConsedValue":[7161,{"kind":{"ParentClause":[{"Deduplicated":5267},1]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[7160,{"TraitType":[{"HashConsedValue":[6388,{"kind":{"Clause":{"Bound":[1,0]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":2049}],"const_generics":[],"trait_refs":[]}}}}]},0]}]}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},"src":{"TraitDecl":{"trait_ref":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":220}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"has_default":false}},"is_global_initializer":null,"body":"Opaque"},null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,{"def_id":256,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Ident":["IntoIter",0]},{"Impl":{"Trait":4}},{"Ident":["drop_in_place",0]}],"span":{"data":{"file_id":8,"beg":{"line":20,"col":0},"end":{"line":20,"col":38}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[{"index":0,"name":"N","ty":{"Deduplicated":775}}],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":8,"beg":{"line":20,"col":20},"end":{"line":20,"col":21}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":true,"inputs":[{"HashConsedValue":[7163,{"RawPtr":[{"Deduplicated":4944},"Mut"]}]}],"output":{"Deduplicated":245}},"src":{"TraitImpl":{"impl_ref":{"id":4,"generics":{"regions":[],"types":[{"Deduplicated":220}],"const_generics":[{"kind":{"Var":{"Bound":[0,0]}},"ty":{"Deduplicated":775}}],"trait_refs":[{"Deduplicated":223}]}},"trait_ref":{"id":2,"generics":{"regions":[],"types":[{"Deduplicated":4944}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"reuses_default":false}},"is_global_initializer":null,"body":"Opaque"},{"def_id":257,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["result",0]},{"Impl":{"Trait":6}},{"Ident":["from_output",0]}],"span":{"data":{"file_id":3,"beg":{"line":2167,"col":4},"end":{"line":2167,"col":48}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":"Hint","rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"T"},{"index":1,"name":"E"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":3,"beg":{"line":2162,"col":5},"end":{"line":2162,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":3,"beg":{"line":2162,"col":8},"end":{"line":2162,"col":9}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":220}],"output":{"Deduplicated":5178}},"src":{"TraitImpl":{"impl_ref":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":220},{"Deduplicated":2027}],"const_generics":[],"trait_refs":[{"Deduplicated":223},{"Deduplicated":2650}]}},"trait_ref":{"id":11,"generics":{"regions":[],"types":[{"Deduplicated":5178}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"reuses_default":true}},"is_global_initializer":null,"body":"Opaque"},{"def_id":258,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["convert",0]},{"Ident":["From",0]},{"Ident":["from",0]}],"span":{"data":{"file_id":12,"beg":{"line":592,"col":4},"end":{"line":592,"col":30}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Converts to this type from the input type."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"from_fn"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"},{"index":1,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":4,"generics":{"regions":[],"types":[{"Deduplicated":188},{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":2027}],"output":{"Deduplicated":220}},"src":{"TraitDecl":{"trait_ref":{"id":4,"generics":{"regions":[],"types":[{"Deduplicated":220},{"Deduplicated":2027}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"has_default":false}},"is_global_initializer":null,"body":"Opaque"},{"def_id":259,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["convert",0]},{"Impl":{"Trait":8}},{"Ident":["from",0]}],"span":{"data":{"file_id":12,"beg":{"line":788,"col":4},"end":{"line":788,"col":22}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Returns the argument unchanged."}],"inline":"Always","rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":12,"beg":{"line":785,"col":5},"end":{"line":785,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":220}],"output":{"Deduplicated":220}},"src":{"TraitImpl":{"impl_ref":{"id":8,"generics":{"regions":[],"types":[{"Deduplicated":220}],"const_generics":[],"trait_refs":[{"Deduplicated":223}]}},"trait_ref":{"id":4,"generics":{"regions":[],"types":[{"Deduplicated":220},{"Deduplicated":220}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"reuses_default":true}},"is_global_initializer":null,"body":"Opaque"},{"def_id":260,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["bool_then_closure",0]},{"Impl":{"Trait":9}},{"Ident":["call_once",0]}],"span":{"data":{"file_id":0,"beg":{"line":126,"col":11},"end":{"line":126,"col":19}},"generated_from_span":null},"source_text":"|| x + 1","attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"HashConsedValue":[5218,{"Adt":{"id":{"Adt":11},"generics":{"regions":[{"Var":{"Bound":[0,0]}}],"types":[],"const_generics":[],"trait_refs":[]}}}]},{"Deduplicated":245}],"output":{"Deduplicated":231}},"src":{"TraitImpl":{"impl_ref":{"id":9,"generics":{"regions":[{"Var":{"Bound":[0,0]}}],"types":[],"const_generics":[],"trait_refs":[]}},"trait_ref":{"id":5,"generics":{"regions":[],"types":[{"Deduplicated":5218},{"Deduplicated":245}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"reuses_default":false}},"is_global_initializer":null,"body":{"Unstructured":{"span":{"data":{"file_id":0,"beg":{"line":126,"col":11},"end":{"line":126,"col":19}},"generated_from_span":null},"bound_body_regions":1,"locals":{"arg_count":2,"locals":[{"index":0,"name":null,"span":{"data":{"file_id":0,"beg":{"line":126,"col":13},"end":{"line":126,"col":13}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":1,"name":null,"span":{"data":{"file_id":0,"beg":{"line":126,"col":11},"end":{"line":126,"col":19}},"generated_from_span":null},"ty":{"Deduplicated":5218}},{"index":2,"name":"tupled_args","span":{"data":{"file_id":0,"beg":{"line":0,"col":0},"end":{"line":0,"col":0}},"generated_from_span":null},"ty":{"Deduplicated":245}},{"index":3,"name":null,"span":{"data":{"file_id":0,"beg":{"line":126,"col":14},"end":{"line":126,"col":15}},"generated_from_span":null},"ty":{"Deduplicated":231}},{"index":4,"name":null,"span":{"data":{"file_id":0,"beg":{"line":126,"col":14},"end":{"line":126,"col":19}},"generated_from_span":null},"ty":{"Deduplicated":236}}]},"body":[{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":126,"col":14},"end":{"line":126,"col":15}},"generated_from_span":null},"kind":{"StorageLive":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":126,"col":14},"end":{"line":126,"col":15}},"generated_from_span":null},"kind":{"StorageLive":3},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":126,"col":14},"end":{"line":126,"col":15}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":3},"ty":{"Deduplicated":231}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Projection":[{"kind":{"Local":1},"ty":{"Deduplicated":5218}},{"Field":[{"Adt":[11,null]},0]}]},"ty":{"HashConsedValue":[7164,{"Ref":[{"Body":0},{"Deduplicated":231},"Shared"]}]}},"Deref"]},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":126,"col":14},"end":{"line":126,"col":19}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":4},"ty":{"Deduplicated":236}},{"BinaryOp":["AddChecked",{"Copy":{"kind":{"Local":3},"ty":{"Deduplicated":231}}},{"Const":{"kind":{"Literal":{"Scalar":{"Signed":["I64","1"]}}},"ty":{"Deduplicated":231}}}]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":126,"col":14},"end":{"line":126,"col":19}},"generated_from_span":null},"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":4},"ty":{"Deduplicated":236}},{"Field":[{"Tuple":2},1]}]},"ty":{"Deduplicated":235}}},"expected":false,"check_kind":{"Overflow":[{"Add":"Wrap"},{"Move":{"kind":{"Local":3},"ty":{"Deduplicated":231}}},{"Const":{"kind":{"Literal":{"Scalar":{"Signed":["I64","1"]}}},"ty":{"Deduplicated":231}}}]}},"target":2,"on_unwind":1}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":126,"col":11},"end":{"line":126,"col":19}},"generated_from_span":null},"kind":"UnwindResume","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":126,"col":14},"end":{"line":126,"col":19}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":231}},{"Use":{"Move":{"kind":{"Projection":[{"kind":{"Local":4},"ty":{"Deduplicated":236}},{"Field":[{"Tuple":2},0]}]},"ty":{"Deduplicated":231}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":126,"col":18},"end":{"line":126,"col":19}},"generated_from_span":null},"kind":{"StorageDead":3},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":126,"col":19},"end":{"line":126,"col":19}},"generated_from_span":null},"kind":"Return","comments_before":[]}}],"comments":[]}}},{"def_id":261,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["function",0]},{"Ident":["FnOnce",0]},{"Ident":["call_once",0]}],"span":{"data":{"file_id":18,"beg":{"line":250,"col":4},"end":{"line":250,"col":70}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Performs the call operation."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"Self"},{"index":1,"name":"Args"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":5,"generics":{"regions":[],"types":[{"Deduplicated":188},{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":220},{"Deduplicated":2027}],"output":{"HashConsedValue":[7166,{"TraitType":[{"HashConsedValue":[7165,{"kind":{"Clause":{"Bound":[0,0]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":5,"generics":{"regions":[],"types":[{"Deduplicated":188},{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}]},0]}]}},"src":{"TraitDecl":{"trait_ref":{"id":5,"generics":{"regions":[],"types":[{"Deduplicated":220},{"Deduplicated":2027}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"has_default":false}},"is_global_initializer":null,"body":"Opaque"},{"def_id":262,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["bool_then_closure",0]},{"Ident":["closure",0]},{"Impl":{"Trait":10}},{"Ident":["drop_in_place",0]}],"span":{"data":{"file_id":0,"beg":{"line":126,"col":11},"end":{"line":126,"col":19}},"generated_from_span":null},"source_text":"|| x + 1","attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":true,"inputs":[{"HashConsedValue":[7167,{"RawPtr":[{"Deduplicated":5218},"Mut"]}]}],"output":{"Deduplicated":245}},"src":{"TraitImpl":{"impl_ref":{"id":10,"generics":{"regions":[{"Var":{"Bound":[0,0]}}],"types":[],"const_generics":[],"trait_refs":[]}},"trait_ref":{"id":2,"generics":{"regions":[],"types":[{"Deduplicated":5218}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"reuses_default":false}},"is_global_initializer":null,"body":"Missing"},{"def_id":263,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["option",0]},{"Impl":{"Trait":11}},{"Ident":["from_output",0]}],"span":{"data":{"file_id":6,"beg":{"line":2760,"col":4},"end":{"line":2760,"col":48}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":"Hint","rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":6,"beg":{"line":2755,"col":5},"end":{"line":2755,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":220}],"output":{"Deduplicated":3736}},"src":{"TraitImpl":{"impl_ref":{"id":11,"generics":{"regions":[],"types":[{"Deduplicated":220}],"const_generics":[],"trait_refs":[{"Deduplicated":223}]}},"trait_ref":{"id":11,"generics":{"regions":[],"types":[{"Deduplicated":3736}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"reuses_default":true}},"is_global_initializer":null,"body":"Opaque"},{"def_id":264,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["collect",0]},{"Ident":["IntoIterator",0]},{"Ident":["into_iter",0]}],"span":{"data":{"file_id":13,"beg":{"line":312,"col":4},"end":{"line":312,"col":41}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Creates an iterator from a value."},{"DocComment":""},{"DocComment":" See the [module-level documentation] for more."},{"DocComment":""},{"DocComment":" [module-level documentation]: crate::iter"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let v = [1, 2, 3];"},{"DocComment":" let mut iter = v.into_iter();"},{"DocComment":""},{"DocComment":" assert_eq!(Some(1), iter.next());"},{"DocComment":" assert_eq!(Some(2), iter.next());"},{"DocComment":" assert_eq!(Some(3), iter.next());"},{"DocComment":" assert_eq!(None, iter.next());"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"into_iter"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":220}],"output":{"HashConsedValue":[7168,{"TraitType":[{"HashConsedValue":[6397,{"kind":{"Clause":{"Bound":[0,0]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}]},1]}]}},"src":{"TraitDecl":{"trait_ref":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":220}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"has_default":false}},"is_global_initializer":null,"body":"Opaque"},{"def_id":265,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["clone",0]},{"Ident":["Clone",0]},{"Ident":["clone",0]}],"span":{"data":{"file_id":25,"beg":{"line":236,"col":4},"end":{"line":236,"col":28}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Returns a duplicate of the value."},{"DocComment":""},{"DocComment":" Note that what \"duplicate\" means varies by type:"},{"DocComment":" - For most types, this creates a deep, independent copy"},{"DocComment":" - For reference types like `&T`, this creates another reference to the same value"},{"DocComment":" - For smart pointers like [`Arc`] or [`Rc`], this increments the reference count"},{"DocComment":" but still points to the same underlying data"},{"DocComment":""},{"DocComment":" [`Arc`]: ../../std/sync/struct.Arc.html"},{"DocComment":" [`Rc`]: ../../std/rc/struct.Rc.html"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" # #![allow(noop_method_call)]"},{"DocComment":" let hello = \"Hello\"; // &str implements Clone"},{"DocComment":""},{"DocComment":" assert_eq!(\"Hello\", hello.clone());"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" Example with a reference-counted type:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" use std::sync::{Arc, Mutex};"},{"DocComment":""},{"DocComment":" let data = Arc::new(Mutex::new(vec![1, 2, 3]));"},{"DocComment":" let data_clone = data.clone(); // Creates another Arc pointing to the same Mutex"},{"DocComment":""},{"DocComment":" {"},{"DocComment":" let mut lock = data.lock().unwrap();"},{"DocComment":" lock.push(4);"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" // Changes are visible through the clone because they share the same underlying data"},{"DocComment":" assert_eq!(*data_clone.lock().unwrap(), vec![1, 2, 3, 4]);"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"clone_fn"},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":8,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":4926}],"output":{"Deduplicated":220}},"src":{"TraitDecl":{"trait_ref":{"id":8,"generics":{"regions":[],"types":[{"Deduplicated":220}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"has_default":false}},"is_global_initializer":null,"body":"Opaque"},null,{"def_id":267,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["function",0]},{"Ident":["FnMut",0]},{"Ident":["call_mut",0]}],"span":{"data":{"file_id":18,"beg":{"line":166,"col":4},"end":{"line":166,"col":74}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Performs the call operation."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[{"index":0,"name":"Self"},{"index":1,"name":"Args"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":9,"generics":{"regions":[],"types":[{"Deduplicated":188},{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":3354},{"Deduplicated":2027}],"output":{"HashConsedValue":[7171,{"TraitType":[{"HashConsedValue":[7170,{"kind":{"ParentClause":[{"HashConsedValue":[7169,{"kind":{"Clause":{"Bound":[0,0]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":9,"generics":{"regions":[],"types":[{"Deduplicated":188},{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}]},1]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":5,"generics":{"regions":[],"types":[{"Deduplicated":188},{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}]},0]}]}},"src":{"TraitDecl":{"trait_ref":{"id":9,"generics":{"regions":[],"types":[{"Deduplicated":220},{"Deduplicated":2027}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"has_default":false}},"is_global_initializer":null,"body":"Opaque"},{"def_id":268,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["collect",0]},{"Ident":["FromIterator",0]},{"Ident":["from_iter",0]}],"span":{"data":{"file_id":13,"beg":{"line":152,"col":4},"end":{"line":152,"col":61}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Creates a value from an iterator."},{"DocComment":""},{"DocComment":" See the [module-level documentation] for more."},{"DocComment":""},{"DocComment":" [module-level documentation]: crate::iter"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let five_fives = std::iter::repeat(5).take(5);"},{"DocComment":""},{"DocComment":" let v = Vec::from_iter(five_fives);"},{"DocComment":""},{"DocComment":" assert_eq!(v, vec![5, 5, 5, 5, 5]);"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"from_iter_fn"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"},{"index":1,"name":"A"},{"index":2,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":10,"generics":{"regions":[],"types":[{"Deduplicated":188},{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":13,"beg":{"line":152,"col":17},"end":{"line":152,"col":18}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":3001}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":2,"span":{"data":{"file_id":13,"beg":{"line":152,"col":20},"end":{"line":152,"col":42}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":3001}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[{"regions":[],"skip_binder":{"trait_ref":{"HashConsedValue":[5865,{"kind":{"Clause":{"Bound":[1,2]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":6,"generics":{"regions":[],"types":[{"HashConsedValue":[3005,{"TypeVar":{"Bound":[2,2]}}]}],"const_generics":[],"trait_refs":[]}}}}]},"type_id":0,"ty":{"Deduplicated":2023}}}]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":3014}],"output":{"Deduplicated":220}},"src":{"TraitDecl":{"trait_ref":{"id":10,"generics":{"regions":[],"types":[{"Deduplicated":220},{"Deduplicated":2027}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"has_default":false}},"is_global_initializer":null,"body":"Opaque"},{"def_id":269,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["try_trait",0]},{"Ident":["Try",0]},{"Ident":["from_output",0]}],"span":{"data":{"file_id":42,"beg":{"line":192,"col":4},"end":{"line":192,"col":49}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Constructs the type from its `Output` type."},{"DocComment":""},{"DocComment":" This should be implemented consistently with the `branch` method"},{"DocComment":" such that applying the `?` operator will get back the original value:"},{"DocComment":" `Try::from_output(x).branch() --> ControlFlow::Continue(x)`."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" #![feature(try_trait_v2)]"},{"DocComment":" use std::ops::Try;"},{"DocComment":""},{"DocComment":" assert_eq!( as Try>::from_output(3), Ok(3));"},{"DocComment":" assert_eq!( as Try>::from_output(4), Some(4));"},{"DocComment":" assert_eq!("},{"DocComment":" as Try>::from_output(5),"},{"DocComment":" std::ops::ControlFlow::Continue(5),"},{"DocComment":" );"},{"DocComment":""},{"DocComment":" # fn make_question_mark_work() -> Option<()> {"},{"DocComment":" assert_eq!(Option::from_output(4)?, 4);"},{"DocComment":" # None }"},{"DocComment":" # make_question_mark_work();"},{"DocComment":""},{"DocComment":" // This is used, for example, on the accumulator in `try_fold`:"},{"DocComment":" let r = std::iter::empty().try_fold(4, |_, ()| -> Option<_> { unreachable!() });"},{"DocComment":" assert_eq!(r, Some(4));"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"from_output"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":11,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"HashConsedValue":[5867,{"TraitType":[{"HashConsedValue":[5866,{"kind":{"Clause":{"Bound":[0,0]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":11,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}]},0]}]}],"output":{"Deduplicated":220}},"src":{"TraitDecl":{"trait_ref":{"id":11,"generics":{"regions":[],"types":[{"Deduplicated":220}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"has_default":false}},"is_global_initializer":null,"body":"Opaque"},{"def_id":270,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["try_trait",0]},{"Ident":["Try",0]},{"Ident":["branch",0]}],"span":{"data":{"file_id":42,"beg":{"line":219,"col":4},"end":{"line":219,"col":65}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Used in `?` to decide whether the operator should produce a value"},{"DocComment":" (because this returned [`ControlFlow::Continue`])"},{"DocComment":" or propagate a value back to the caller"},{"DocComment":" (because this returned [`ControlFlow::Break`])."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" #![feature(try_trait_v2)]"},{"DocComment":" use std::ops::{ControlFlow, Try};"},{"DocComment":""},{"DocComment":" assert_eq!(Ok::<_, String>(3).branch(), ControlFlow::Continue(3));"},{"DocComment":" assert_eq!(Err::(3).branch(), ControlFlow::Break(Err(3)));"},{"DocComment":""},{"DocComment":" assert_eq!(Some(3).branch(), ControlFlow::Continue(3));"},{"DocComment":" assert_eq!(None::.branch(), ControlFlow::Break(None));"},{"DocComment":""},{"DocComment":" assert_eq!(ControlFlow::::Continue(3).branch(), ControlFlow::Continue(3));"},{"DocComment":" assert_eq!("},{"DocComment":" ControlFlow::<_, String>::Break(3).branch(),"},{"DocComment":" ControlFlow::Break(ControlFlow::Break(3)),"},{"DocComment":" );"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"branch"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":11,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":220}],"output":{"HashConsedValue":[7177,{"Adt":{"id":{"Adt":9},"generics":{"regions":[],"types":[{"HashConsedValue":[7172,{"TraitType":[{"Deduplicated":5866},1]}]},{"Deduplicated":5867}],"const_generics":[],"trait_refs":[{"HashConsedValue":[7174,{"kind":{"ParentClause":[{"HashConsedValue":[7173,{"kind":{"ParentClause":[{"Deduplicated":5866},1]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":24,"generics":{"regions":[],"types":[{"Deduplicated":188},{"HashConsedValue":[5870,{"TraitType":[{"HashConsedValue":[5869,{"kind":{"Clause":{"Bound":[1,0]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":11,"generics":{"regions":[],"types":[{"Deduplicated":2049}],"const_generics":[],"trait_refs":[]}}}}]},1]}]}],"const_generics":[],"trait_refs":[]}}}}]},1]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":5870}],"const_generics":[],"trait_refs":[]}}}}]},{"HashConsedValue":[7176,{"kind":{"ParentClause":[{"Deduplicated":5866},2]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[7175,{"TraitType":[{"Deduplicated":5869},0]}]}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},"src":{"TraitDecl":{"trait_ref":{"id":11,"generics":{"regions":[],"types":[{"Deduplicated":220}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":1},"has_default":false}},"is_global_initializer":null,"body":"Opaque"},{"def_id":271,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["collect",0]},{"Ident":["Extend",0]},{"Ident":["extend",0]}],"span":{"data":{"file_id":13,"beg":{"line":416,"col":4},"end":{"line":416,"col":61}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Extends a collection with the contents of an iterator."},{"DocComment":""},{"DocComment":" As this is the only required method for this trait, the [trait-level] docs"},{"DocComment":" contain more details."},{"DocComment":""},{"DocComment":" [trait-level]: Extend"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" // You can extend a String with some chars:"},{"DocComment":" let mut message = String::from(\"abc\");"},{"DocComment":""},{"DocComment":" message.extend(['d', 'e', 'f'].iter());"},{"DocComment":""},{"DocComment":" assert_eq!(\"abcdef\", &message);"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[{"index":0,"name":"Self"},{"index":1,"name":"A"},{"index":2,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":13,"generics":{"regions":[],"types":[{"Deduplicated":188},{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":13,"beg":{"line":416,"col":14},"end":{"line":416,"col":15}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":3001}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":2,"span":{"data":{"file_id":13,"beg":{"line":416,"col":17},"end":{"line":416,"col":39}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":3001}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[{"regions":[],"skip_binder":{"trait_ref":{"Deduplicated":5865},"type_id":0,"ty":{"Deduplicated":2023}}}]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":3354},{"Deduplicated":3014}],"output":{"Deduplicated":245}},"src":{"TraitDecl":{"trait_ref":{"id":13,"generics":{"regions":[],"types":[{"Deduplicated":220},{"Deduplicated":2027}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"has_default":false}},"is_global_initializer":null,"body":"Opaque"},null,null,null,{"def_id":275,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["default",0]},{"Ident":["Default",0]},{"Ident":["default",0]}],"span":{"data":{"file_id":43,"beg":{"line":139,"col":4},"end":{"line":139,"col":25}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Returns the \"default value\" for a type."},{"DocComment":""},{"DocComment":" Default values are often some kind of initial value, identity value, or anything else that"},{"DocComment":" may make sense as a default."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" Using built-in default values:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let i: i8 = Default::default();"},{"DocComment":" let (x, y): (Option, f64) = Default::default();"},{"DocComment":" let (a, b, (c, d)): (i32, u32, (bool, bool)) = Default::default();"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" Making your own:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" # #[allow(dead_code)]"},{"DocComment":" enum Kind {"},{"DocComment":" A,"},{"DocComment":" B,"},{"DocComment":" C,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl Default for Kind {"},{"DocComment":" fn default() -> Self { Kind::A }"},{"DocComment":" }"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"default_fn"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":14,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[],"output":{"Deduplicated":220}},"src":{"TraitDecl":{"trait_ref":{"id":14,"generics":{"regions":[],"types":[{"Deduplicated":220}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"has_default":false}},"is_global_initializer":null,"body":"Opaque"},{"def_id":276,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["double_ended",0]},{"Ident":["DoubleEndedIterator",0]},{"Ident":["next_back",0]}],"span":{"data":{"file_id":44,"beg":{"line":94,"col":4},"end":{"line":94,"col":50}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Removes and returns an element from the end of the iterator."},{"DocComment":""},{"DocComment":" Returns `None` when there are no more elements."},{"DocComment":""},{"DocComment":" The [trait-level] docs contain more details."},{"DocComment":""},{"DocComment":" [trait-level]: DoubleEndedIterator"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" Basic usage:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let numbers = vec![1, 2, 3, 4, 5, 6];"},{"DocComment":""},{"DocComment":" let mut iter = numbers.iter();"},{"DocComment":""},{"DocComment":" assert_eq!(Some(&1), iter.next());"},{"DocComment":" assert_eq!(Some(&6), iter.next_back());"},{"DocComment":" assert_eq!(Some(&5), iter.next_back());"},{"DocComment":" assert_eq!(Some(&2), iter.next());"},{"DocComment":" assert_eq!(Some(&3), iter.next());"},{"DocComment":" assert_eq!(Some(&4), iter.next());"},{"DocComment":" assert_eq!(None, iter.next());"},{"DocComment":" assert_eq!(None, iter.next_back());"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" # Remarks"},{"DocComment":""},{"DocComment":" The elements yielded by `DoubleEndedIterator`'s methods may differ from"},{"DocComment":" the ones yielded by [`Iterator`]'s methods:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let vec = vec![(1, 'a'), (1, 'b'), (1, 'c'), (2, 'a'), (2, 'b')];"},{"DocComment":" let uniq_by_fst_comp = || {"},{"DocComment":" let mut seen = std::collections::HashSet::new();"},{"DocComment":" vec.iter().copied().filter(move |x| seen.insert(x.0))"},{"DocComment":" };"},{"DocComment":""},{"DocComment":" assert_eq!(uniq_by_fst_comp().last(), Some((2, 'a')));"},{"DocComment":" assert_eq!(uniq_by_fst_comp().next_back(), Some((2, 'b')));"},{"DocComment":""},{"DocComment":" assert_eq!("},{"DocComment":" uniq_by_fst_comp().fold(vec![], |mut v, x| {v.push(x); v}),"},{"DocComment":" vec![(1, 'a'), (2, 'a')]"},{"DocComment":" );"},{"DocComment":" assert_eq!("},{"DocComment":" uniq_by_fst_comp().rfold(vec![], |mut v, x| {v.push(x); v}),"},{"DocComment":" vec![(2, 'b'), (1, 'c')]"},{"DocComment":" );"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":15,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":3354}],"output":{"HashConsedValue":[7181,{"Adt":{"id":{"Adt":7},"generics":{"regions":[],"types":[{"HashConsedValue":[7178,{"TraitType":[{"HashConsedValue":[5877,{"kind":{"ParentClause":[{"HashConsedValue":[5876,{"kind":{"Clause":{"Bound":[0,0]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":15,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}]},1]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}]},0]}]}],"const_generics":[],"trait_refs":[{"HashConsedValue":[7180,{"kind":{"ParentClause":[{"Deduplicated":5877},1]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[7179,{"TraitType":[{"HashConsedValue":[6410,{"kind":{"ParentClause":[{"HashConsedValue":[6409,{"kind":{"Clause":{"Bound":[1,0]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":15,"generics":{"regions":[],"types":[{"Deduplicated":2049}],"const_generics":[],"trait_refs":[]}}}}]},1]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":2049}],"const_generics":[],"trait_refs":[]}}}}]},0]}]}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},"src":{"TraitDecl":{"trait_ref":{"id":15,"generics":{"regions":[],"types":[{"Deduplicated":220}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"has_default":false}},"is_global_initializer":null,"body":"Opaque"},null,null,null,null,null,null,null,{"def_id":284,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["Ord",0]},{"Ident":["cmp",0]}],"span":{"data":{"file_id":46,"beg":{"line":991,"col":4},"end":{"line":991,"col":44}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" This method returns an [`Ordering`] between `self` and `other`."},{"DocComment":""},{"DocComment":" By convention, `self.cmp(&other)` returns the ordering matching the expression"},{"DocComment":" `self other` if true."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" use std::cmp::Ordering;"},{"DocComment":""},{"DocComment":" assert_eq!(5.cmp(&10), Ordering::Less);"},{"DocComment":" assert_eq!(10.cmp(&5), Ordering::Greater);"},{"DocComment":" assert_eq!(5.cmp(&5), Ordering::Equal);"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"ord_cmp_method"},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"},{"index":1,"name":null,"mutability":"Unknown"}],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":17,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":4926},{"HashConsedValue":[7182,{"Ref":[{"Var":{"Bound":[0,1]}},{"Deduplicated":220},"Shared"]}]}],"output":{"HashConsedValue":[3978,{"Adt":{"id":{"Adt":36},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}}]}},"src":{"TraitDecl":{"trait_ref":{"id":17,"generics":{"regions":[],"types":[{"Deduplicated":220}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"has_default":false}},"is_global_initializer":null,"body":"Opaque"},null,null,null,{"def_id":288,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["accum",0]},{"Ident":["Sum",0]},{"Ident":["sum",0]}],"span":{"data":{"file_id":52,"beg":{"line":21,"col":4},"end":{"line":21,"col":51}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Takes an iterator and generates `Self` from the elements by \"summing up\""},{"DocComment":" the items."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"Self"},{"index":1,"name":"A"},{"index":2,"name":"I"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":19,"generics":{"regions":[],"types":[{"Deduplicated":188},{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":52,"beg":{"line":21,"col":11},"end":{"line":21,"col":12}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":3001}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":2,"span":{"data":{"file_id":52,"beg":{"line":21,"col":14},"end":{"line":21,"col":32}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":3001}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[{"regions":[],"skip_binder":{"trait_ref":{"HashConsedValue":[5892,{"kind":{"Clause":{"Bound":[1,2]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":3005}],"const_generics":[],"trait_refs":[]}}}}]},"type_id":0,"ty":{"Deduplicated":2023}}}]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":3014}],"output":{"Deduplicated":220}},"src":{"TraitDecl":{"trait_ref":{"id":19,"generics":{"regions":[],"types":[{"Deduplicated":220},{"Deduplicated":2027}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"has_default":false}},"is_global_initializer":null,"body":"Opaque"},{"def_id":289,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["accum",0]},{"Ident":["Product",0]},{"Ident":["product",0]}],"span":{"data":{"file_id":52,"beg":{"line":42,"col":4},"end":{"line":42,"col":55}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Takes an iterator and generates `Self` from the elements by multiplying"},{"DocComment":" the items."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"Self"},{"index":1,"name":"A"},{"index":2,"name":"I"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":20,"generics":{"regions":[],"types":[{"Deduplicated":188},{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":52,"beg":{"line":42,"col":15},"end":{"line":42,"col":16}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":3001}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":2,"span":{"data":{"file_id":52,"beg":{"line":42,"col":18},"end":{"line":42,"col":36}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":3001}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[{"regions":[],"skip_binder":{"trait_ref":{"Deduplicated":5892},"type_id":0,"ty":{"Deduplicated":2023}}}]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":3014}],"output":{"Deduplicated":220}},"src":{"TraitDecl":{"trait_ref":{"id":20,"generics":{"regions":[],"types":[{"Deduplicated":220},{"Deduplicated":2027}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"has_default":false}},"is_global_initializer":null,"body":"Opaque"},{"def_id":290,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["PartialOrd",0]},{"Ident":["partial_cmp",0]}],"span":{"data":{"file_id":46,"beg":{"line":1387,"col":4},"end":{"line":1387,"col":59}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" This method returns an ordering between `self` and `other` values if one exists."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" use std::cmp::Ordering;"},{"DocComment":""},{"DocComment":" let result = 1.0.partial_cmp(&2.0);"},{"DocComment":" assert_eq!(result, Some(Ordering::Less));"},{"DocComment":""},{"DocComment":" let result = 1.0.partial_cmp(&1.0);"},{"DocComment":" assert_eq!(result, Some(Ordering::Equal));"},{"DocComment":""},{"DocComment":" let result = 2.0.partial_cmp(&1.0);"},{"DocComment":" assert_eq!(result, Some(Ordering::Greater));"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" When comparison is impossible:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let result = f64::NAN.partial_cmp(&1.0);"},{"DocComment":" assert_eq!(result, None);"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"cmp_partialord_cmp"},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"},{"index":1,"name":null,"mutability":"Unknown"}],"types":[{"index":0,"name":"Self"},{"index":1,"name":"Rhs"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":21,"generics":{"regions":[],"types":[{"Deduplicated":188},{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":4926},{"HashConsedValue":[5893,{"Ref":[{"Var":{"Bound":[0,1]}},{"Deduplicated":2027},"Shared"]}]}],"output":{"HashConsedValue":[4347,{"Adt":{"id":{"Adt":7},"generics":{"regions":[],"types":[{"Deduplicated":3978}],"const_generics":[],"trait_refs":[{"HashConsedValue":[4346,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[4345,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":3978}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":3978}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},"src":{"TraitDecl":{"trait_ref":{"id":21,"generics":{"regions":[],"types":[{"Deduplicated":220},{"Deduplicated":2027}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"has_default":false}},"is_global_initializer":null,"body":"Opaque"},null,null,null,null,null,null,null,null,{"def_id":299,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["PartialEq",0]},{"Ident":["eq",0]}],"span":{"data":{"file_id":46,"beg":{"line":256,"col":4},"end":{"line":256,"col":38}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Tests for `self` and `other` values to be equal, and is used by `==`."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"cmp_partialeq_eq"},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"},{"index":1,"name":null,"mutability":"Unknown"}],"types":[{"index":0,"name":"Self"},{"index":1,"name":"Rhs"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":22,"generics":{"regions":[],"types":[{"Deduplicated":188},{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":4926},{"Deduplicated":5893}],"output":{"Deduplicated":235}},"src":{"TraitDecl":{"trait_ref":{"id":22,"generics":{"regions":[],"types":[{"Deduplicated":220},{"Deduplicated":2027}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"has_default":false}},"is_global_initializer":null,"body":"Opaque"},null,null,{"def_id":302,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["try_trait",0]},{"Ident":["FromResidual",0]},{"Ident":["from_residual",0]}],"span":{"data":{"file_id":42,"beg":{"line":333,"col":4},"end":{"line":333,"col":42}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Constructs the type from a compatible `Residual` type."},{"DocComment":""},{"DocComment":" This should be implemented consistently with the `branch` method such"},{"DocComment":" that applying the `?` operator will get back an equivalent residual:"},{"DocComment":" `FromResidual::from_residual(r).branch() --> ControlFlow::Break(r)`."},{"DocComment":" (The residual is not mandated to be *identical* when interconversion is involved.)"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" #![feature(try_trait_v2)]"},{"DocComment":" use std::ops::{ControlFlow, FromResidual};"},{"DocComment":""},{"DocComment":" assert_eq!(Result::::from_residual(Err(3_u8)), Err(3));"},{"DocComment":" assert_eq!(Option::::from_residual(None), None);"},{"DocComment":" assert_eq!("},{"DocComment":" ControlFlow::<_, String>::from_residual(ControlFlow::Break(5)),"},{"DocComment":" ControlFlow::Break(5),"},{"DocComment":" );"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"from_residual"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"},{"index":1,"name":"R"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":24,"generics":{"regions":[],"types":[{"Deduplicated":188},{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":2027}],"output":{"Deduplicated":220}},"src":{"TraitDecl":{"trait_ref":{"id":24,"generics":{"regions":[],"types":[{"Deduplicated":220},{"Deduplicated":2027}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"has_default":false}},"is_global_initializer":null,"body":"Opaque"},null,{"def_id":304,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["clone",0]},{"Ident":["impls",0]},{"Impl":{"Trait":17}},{"Ident":["clone",0]}],"span":{"data":{"file_id":25,"beg":{"line":614,"col":20},"end":{"line":614,"col":43}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":"Always","rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"HashConsedValue":[7183,{"Ref":[{"Var":{"Bound":[0,0]}},{"Deduplicated":775},"Shared"]}]}],"output":{"Deduplicated":775}},"src":{"TraitImpl":{"impl_ref":{"id":17,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}},"trait_ref":{"id":8,"generics":{"regions":[],"types":[{"Deduplicated":775}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"reuses_default":true}},"is_global_initializer":null,"body":"Opaque"},null,{"def_id":306,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["num",0]},{"Ident":["niche_types",0]},{"Impl":{"Trait":18}},{"Ident":["clone",0]}],"span":{"data":{"file_id":53,"beg":{"line":17,"col":17},"end":{"line":17,"col":22}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":"Hint","rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"HashConsedValue":[7184,{"Ref":[{"Var":{"Bound":[0,0]}},{"HashConsedValue":[5342,{"Adt":{"id":{"Adt":44},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}}]},"Shared"]}]}],"output":{"Deduplicated":5342}},"src":{"TraitImpl":{"impl_ref":{"id":18,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}},"trait_ref":{"id":8,"generics":{"regions":[],"types":[{"Deduplicated":5342}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"reuses_default":true}},"is_global_initializer":null,"body":"Opaque"},null],"global_decls":[null,null,null,null,null,null],"trait_decls":[{"def_id":0,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["Sized",0]}],"span":{"data":{"file_id":1,"beg":{"line":161,"col":0},"end":{"line":161,"col":26}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Types with a constant size known at compile time."},{"DocComment":""},{"DocComment":" All type parameters have an implicit bound of `Sized`. The special syntax"},{"DocComment":" `?Sized` can be used to remove this bound if it's not appropriate."},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" # #![allow(dead_code)]"},{"DocComment":" struct Foo(T);"},{"DocComment":" struct Bar(T);"},{"DocComment":""},{"DocComment":" // struct FooUse(Foo<[i32]>); // error: Sized is not implemented for [i32]"},{"DocComment":" struct BarUse(Bar<[i32]>); // OK"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" The one exception is the implicit `Self` type of a trait. A trait does not"},{"DocComment":" have an implicit `Sized` bound as this is incompatible with [trait object]s"},{"DocComment":" where, by definition, the trait needs to work with all possible implementors,"},{"DocComment":" and thus could be any size."},{"DocComment":""},{"DocComment":" Although Rust will let you bind `Sized` to a trait, you won't"},{"DocComment":" be able to use it to form a trait object later:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" # #![allow(unused_variables)]"},{"DocComment":" trait Foo { }"},{"DocComment":" trait Bar: Sized { }"},{"DocComment":""},{"DocComment":" struct Impl;"},{"DocComment":" impl Foo for Impl { }"},{"DocComment":" impl Bar for Impl { }"},{"DocComment":""},{"DocComment":" let x: &dyn Foo = &Impl; // OK"},{"DocComment":" // let y: &dyn Bar = &Impl; // error: the trait `Bar` cannot be made into an object"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" [trait object]: ../../book/ch17-02-trait-objects.html"},{"Unknown":{"path":"diagnostic::on_unimplemented","args":"message =\n\"the size for values of type `{Self}` cannot be known at compilation time\",\nlabel = \"doesn't have a size known at compile-time\""}}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"sized"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":1,"beg":{"line":161,"col":17},"end":{"line":161,"col":26}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[],"methods":[],"vtable":null},{"def_id":1,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["MetaSized",0]}],"span":{"data":{"file_id":1,"beg":{"line":178,"col":0},"end":{"line":178,"col":33}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Types with a size that can be determined from pointer metadata."},{"Unknown":{"path":"diagnostic::on_unimplemented","args":"message = \"the size for values of type `{Self}` cannot be known\", label =\n\"doesn't have a known size\""}}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"meta_sized"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[],"consts":[],"types":[],"methods":[],"vtable":{"id":{"Adt":12},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}},{"def_id":2,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["Destruct",0]}],"span":{"data":{"file_id":1,"beg":{"line":1063,"col":0},"end":{"line":1063,"col":38}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" A marker for types that can be dropped."},{"DocComment":""},{"DocComment":" This should be used for `[const]` bounds,"},{"DocComment":" as non-const bounds will always hold for every type."},{"Unknown":{"path":"rustc_on_unimplemented","args":"message = \"can't drop `{Self}`\", append_const_msg"}}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"destruct"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[],"consts":[],"types":[],"methods":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"drop_in_place","attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"signature":{"is_unsafe":true,"inputs":[{"HashConsedValue":[6987,{"RawPtr":[{"Deduplicated":188},"Mut"]}]}],"output":{"Deduplicated":245}},"item":{"id":18,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}},"kind":{"TraitMethod":[2,0]}}],"vtable":null},{"def_id":3,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]}],"span":{"data":{"file_id":16,"beg":{"line":41,"col":0},"end":{"line":41,"col":24}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" A trait for dealing with iterators."},{"DocComment":""},{"DocComment":" This is the main iterator trait. For more about the concept of iterators"},{"DocComment":" generally, please see the [module-level documentation]. In particular, you"},{"DocComment":" may want to know how to [implement `Iterator`][impl]."},{"DocComment":""},{"DocComment":" [module-level documentation]: crate::iter"},{"DocComment":" [impl]: crate::iter#implementing-iterator"},{"Unknown":{"path":"rustc_on_unimplemented","args":"on(Self = \"core::ops::range::RangeTo\", note =\n\"you might have meant to use a bounded `Range`\"),\non(Self = \"core::ops::range::RangeToInclusive\", note =\n\"you might have meant to use a bounded `RangeInclusive`\"), label =\n\"`{Self}` is not an iterator\", message = \"`{Self}` is not an iterator\""}}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"iterator"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":16,"beg":{"line":41,"col":0},"end":{"line":4130,"col":1}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":16,"beg":{"line":45,"col":4},"end":{"line":45,"col":14}},"generated_from_span":null},"origin":{"TraitItem":0},"trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[2166,{"TraitType":[{"HashConsedValue":[2165,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":2049}],"const_generics":[],"trait_refs":[]}}}}]},0]}]}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"Item","attr_info":{"attributes":[{"DocComment":" The type of the elements being iterated over."}],"inline":null,"rename":null,"public":false},"default":null,"implied_clauses":[]},"kind":{"TraitType":[3,0]}}],"methods":[{"params":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"next","attr_info":{"attributes":[{"DocComment":" Advances the iterator and returns the next value."},{"DocComment":""},{"DocComment":" Returns [`None`] when iteration is finished. Individual iterator"},{"DocComment":" implementations may choose to resume iteration, and so calling `next()`"},{"DocComment":" again may or may not eventually start returning [`Some(Item)`] again at some"},{"DocComment":" point."},{"DocComment":""},{"DocComment":" [`Some(Item)`]: Some"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let a = [1, 2, 3];"},{"DocComment":""},{"DocComment":" let mut iter = a.into_iter();"},{"DocComment":""},{"DocComment":" // A call to next() returns the next value..."},{"DocComment":" assert_eq!(Some(1), iter.next());"},{"DocComment":" assert_eq!(Some(2), iter.next());"},{"DocComment":" assert_eq!(Some(3), iter.next());"},{"DocComment":""},{"DocComment":" // ... and then None once it's over."},{"DocComment":" assert_eq!(None, iter.next());"},{"DocComment":""},{"DocComment":" // More calls may or may not return `None`. Here, they always will."},{"DocComment":" assert_eq!(None, iter.next());"},{"DocComment":" assert_eq!(None, iter.next());"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"signature":{"is_unsafe":false,"inputs":[{"HashConsedValue":[2164,{"Ref":[{"Var":{"Bound":[0,0]}},{"Deduplicated":188},"Mut"]}]}],"output":{"HashConsedValue":[6989,{"Adt":{"id":{"Adt":7},"generics":{"regions":[],"types":[{"Deduplicated":2166}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6988,{"kind":{"ParentClause":[{"Deduplicated":2165},1]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[2144,{"TraitType":[{"HashConsedValue":[2143,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"HashConsedValue":[2057,{"TypeVar":{"Bound":[3,0]}}]}],"const_generics":[],"trait_refs":[]}}}}]},0]}]}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},"item":{"id":34,"generics":{"regions":[{"Var":{"Bound":[0,0]}}],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[{"Deduplicated":2165}]}}},"kind":{"TraitMethod":[3,0]}},null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"vtable":{"id":{"Adt":13},"generics":{"regions":[],"types":[{"HashConsedValue":[6991,{"TraitType":[{"HashConsedValue":[6990,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}]},0]}]}],"const_generics":[],"trait_refs":[]}}},{"def_id":4,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["convert",0]},{"Ident":["From",0]}],"span":{"data":{"file_id":12,"beg":{"line":587,"col":0},"end":{"line":587,"col":30}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Used to do value-to-value conversions while consuming the input value. It is the reciprocal of"},{"DocComment":" [`Into`]."},{"DocComment":""},{"DocComment":" One should always prefer implementing `From` over [`Into`]"},{"DocComment":" because implementing `From` automatically provides one with an implementation of [`Into`]"},{"DocComment":" thanks to the blanket implementation in the standard library."},{"DocComment":""},{"DocComment":" Only implement [`Into`] when targeting a version prior to Rust 1.41 and converting to a type"},{"DocComment":" outside the current crate."},{"DocComment":" `From` was not able to do these types of conversions in earlier versions because of Rust's"},{"DocComment":" orphaning rules."},{"DocComment":" See [`Into`] for more details."},{"DocComment":""},{"DocComment":" Prefer using [`Into`] over [`From`] when specifying trait bounds on a generic function"},{"DocComment":" to ensure that types that only implement [`Into`] can be used as well."},{"DocComment":""},{"DocComment":" The `From` trait is also very useful when performing error handling. When constructing a function"},{"DocComment":" that is capable of failing, the return type will generally be of the form `Result`."},{"DocComment":" `From` simplifies error handling by allowing a function to return a single error type"},{"DocComment":" that encapsulates multiple error types. See the \"Examples\" section and [the book][book] for more"},{"DocComment":" details."},{"DocComment":""},{"DocComment":" **Note: This trait must not fail**. The `From` trait is intended for perfect conversions."},{"DocComment":" If the conversion can fail or is not perfect, use [`TryFrom`]."},{"DocComment":""},{"DocComment":" # Generic Implementations"},{"DocComment":""},{"DocComment":" - `From for U` implies [`Into`]` for T`"},{"DocComment":" - `From` is reflexive, which means that `From for T` is implemented"},{"DocComment":""},{"DocComment":" # When to implement `From`"},{"DocComment":""},{"DocComment":" While there's no technical restrictions on which conversions can be done using"},{"DocComment":" a `From` implementation, the general expectation is that the conversions"},{"DocComment":" should typically be restricted as follows:"},{"DocComment":""},{"DocComment":" * The conversion is *infallible*: if the conversion can fail, use [`TryFrom`]"},{"DocComment":" instead; don't provide a `From` impl that panics."},{"DocComment":""},{"DocComment":" * The conversion is *lossless*: semantically, it should not lose or discard"},{"DocComment":" information. For example, `i32: From` exists, where the original"},{"DocComment":" value can be recovered using `u16: TryFrom`. And `String: From<&str>`"},{"DocComment":" exists, where you can get something equivalent to the original value via"},{"DocComment":" `Deref`. But `From` cannot be used to convert from `u32` to `u16`, since"},{"DocComment":" that cannot succeed in a lossless way. (There's some wiggle room here for"},{"DocComment":" information not considered semantically relevant. For example,"},{"DocComment":" `Box<[T]>: From>` exists even though it might not preserve capacity,"},{"DocComment":" like how two vectors can be equal despite differing capacities.)"},{"DocComment":""},{"DocComment":" * The conversion is *value-preserving*: the conceptual kind and meaning of"},{"DocComment":" the resulting value is the same, even though the Rust type and technical"},{"DocComment":" representation might be different. For example `-1_i8 as u8` is *lossless*,"},{"DocComment":" since `as` casting back can recover the original value, but that conversion"},{"DocComment":" is *not* available via `From` because `-1` and `255` are different conceptual"},{"DocComment":" values (despite being identical bit patterns technically). But"},{"DocComment":" `f32: From` *is* available because `1_i16` and `1.0_f32` are conceptually"},{"DocComment":" the same real number (despite having very different bit patterns technically)."},{"DocComment":" `String: From` is available because they're both *text*, but"},{"DocComment":" `String: From` is *not* available, since `1` (a number) and `\"1\"`"},{"DocComment":" (text) are too different. (Converting values to text is instead covered"},{"DocComment":" by the [`Display`](crate::fmt::Display) trait.)"},{"DocComment":""},{"DocComment":" * The conversion is *obvious*: it's the only reasonable conversion between"},{"DocComment":" the two types. Otherwise it's better to have it be a named method or"},{"DocComment":" constructor, like how [`str::as_bytes`] is a method and how integers have"},{"DocComment":" methods like [`u32::from_ne_bytes`], [`u32::from_le_bytes`], and"},{"DocComment":" [`u32::from_be_bytes`], none of which are `From` implementations. Whereas"},{"DocComment":" there's only one reasonable way to wrap an [`Ipv6Addr`](crate::net::Ipv6Addr)"},{"DocComment":" into an [`IpAddr`](crate::net::IpAddr), thus `IpAddr: From` exists."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" [`String`] implements `From<&str>`:"},{"DocComment":""},{"DocComment":" An explicit conversion from a `&str` to a String is done as follows:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let string = \"hello\".to_string();"},{"DocComment":" let other_string = String::from(\"hello\");"},{"DocComment":""},{"DocComment":" assert_eq!(string, other_string);"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" While performing error handling it is often useful to implement `From` for your own error type."},{"DocComment":" By converting underlying error types to our own custom error type that encapsulates the"},{"DocComment":" underlying error type, we can return a single error type without losing information on the"},{"DocComment":" underlying cause. The '?' operator automatically converts the underlying error type to our"},{"DocComment":" custom error type with `From::from`."},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" use std::fs;"},{"DocComment":" use std::io;"},{"DocComment":" use std::num;"},{"DocComment":""},{"DocComment":" enum CliError {"},{"DocComment":" IoError(io::Error),"},{"DocComment":" ParseError(num::ParseIntError),"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl From for CliError {"},{"DocComment":" fn from(error: io::Error) -> Self {"},{"DocComment":" CliError::IoError(error)"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl From for CliError {"},{"DocComment":" fn from(error: num::ParseIntError) -> Self {"},{"DocComment":" CliError::ParseError(error)"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" fn open_and_parse_file(file_name: &str) -> Result {"},{"DocComment":" let mut contents = fs::read_to_string(&file_name)?;"},{"DocComment":" let num: i32 = contents.trim().parse()?;"},{"DocComment":" Ok(num)"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" [`String`]: ../../std/string/struct.String.html"},{"DocComment":" [`from`]: From::from"},{"DocComment":" [book]: ../../book/ch09-00-error-handling.html"},{"Unknown":{"path":"rustc_on_unimplemented","args":"on(all(Self = \"&str\", T = \"alloc::string::String\"), note =\n\"to coerce a `{T}` into a `{Self}`, use `&*` as a prefix\",)"}}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"From"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"},{"index":1,"name":"T"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":12,"beg":{"line":587,"col":25},"end":{"line":587,"col":30}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":12,"beg":{"line":587,"col":21},"end":{"line":587,"col":22}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[],"methods":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"from","attr_info":{"attributes":[{"DocComment":" Converts to this type from the input type."}],"inline":null,"rename":null,"public":true},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":2023}],"output":{"Deduplicated":188}},"item":{"id":258,"generics":{"regions":[],"types":[{"Deduplicated":188},{"Deduplicated":2023}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6422,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":4,"generics":{"regions":[],"types":[{"Deduplicated":2049},{"Deduplicated":2621}],"const_generics":[],"trait_refs":[]}}}}]}]}}},"kind":{"TraitMethod":[4,0]}}],"vtable":null},{"def_id":5,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["function",0]},{"Ident":["FnOnce",0]}],"span":{"data":{"file_id":18,"beg":{"line":242,"col":0},"end":{"line":242,"col":35}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" The version of the call operator that takes a by-value receiver."},{"DocComment":""},{"DocComment":" Instances of `FnOnce` can be called, but might not be callable multiple"},{"DocComment":" times. Because of this, if the only thing known about a type is that it"},{"DocComment":" implements `FnOnce`, it can only be called once."},{"DocComment":""},{"DocComment":" `FnOnce` is implemented automatically by closures that might consume captured"},{"DocComment":" variables, as well as all types that implement [`FnMut`], e.g., (safe)"},{"DocComment":" [function pointers] (since `FnOnce` is a supertrait of [`FnMut`])."},{"DocComment":""},{"DocComment":" Since both [`Fn`] and [`FnMut`] are subtraits of `FnOnce`, any instance of"},{"DocComment":" [`Fn`] or [`FnMut`] can be used where a `FnOnce` is expected."},{"DocComment":""},{"DocComment":" Use `FnOnce` as a bound when you want to accept a parameter of function-like"},{"DocComment":" type and only need to call it once. If you need to call the parameter"},{"DocComment":" repeatedly, use [`FnMut`] as a bound; if you also need it to not mutate"},{"DocComment":" state, use [`Fn`]."},{"DocComment":""},{"DocComment":" See the [chapter on closures in *The Rust Programming Language*][book] for"},{"DocComment":" some more information on this topic."},{"DocComment":""},{"DocComment":" Also of note is the special syntax for `Fn` traits (e.g."},{"DocComment":" `Fn(usize, bool) -> usize`). Those interested in the technical details of"},{"DocComment":" this can refer to [the relevant section in the *Rustonomicon*][nomicon]."},{"DocComment":""},{"DocComment":" [book]: ../../book/ch13-01-closures.html"},{"DocComment":" [function pointers]: fn"},{"DocComment":" [nomicon]: ../../nomicon/hrtb.html"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ## Using a `FnOnce` parameter"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" fn consume_with_relish(func: F)"},{"DocComment":" where F: FnOnce() -> String"},{"DocComment":" {"},{"DocComment":" // `func` consumes its captured variables, so it cannot be run more"},{"DocComment":" // than once."},{"DocComment":" println!(\"Consumed: {}\", func());"},{"DocComment":""},{"DocComment":" println!(\"Delicious!\");"},{"DocComment":""},{"DocComment":" // Attempting to invoke `func()` again will throw a `use of moved"},{"DocComment":" // value` error for `func`."},{"DocComment":" }"},{"DocComment":""},{"DocComment":" let x = String::from(\"x\");"},{"DocComment":" let consume_and_return_x = move || x;"},{"DocComment":" consume_with_relish(consume_and_return_x);"},{"DocComment":""},{"DocComment":" // `consume_and_return_x` can no longer be invoked at this point"},{"DocComment":" ```"},{"Unknown":{"path":"rustc_on_unimplemented","args":"on(Args = \"()\", note =\n\"wrap the `{Self}` in a closure with no arguments: `|| {{ /* code */ }}`\"),\non(Self = \"unsafe fn\", note =\n\"unsafe function cannot be called generically without an unsafe block\", label\n= \"call the function in a closure: `|| unsafe {{ /* code */ }}`\"), message =\n\"expected a `{Trait}` closure, found `{Self}`\", label =\n\"expected an `{Trait}` closure, found `{Self}`\""}}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"fn_once"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"},{"index":1,"name":"Args"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":18,"beg":{"line":242,"col":0},"end":{"line":251,"col":1}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":18,"beg":{"line":242,"col":23},"end":{"line":242,"col":27}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":2,"span":{"data":{"file_id":18,"beg":{"line":242,"col":29},"end":{"line":242,"col":34}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":25,"generics":{"regions":[],"types":[{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":3,"span":{"data":{"file_id":18,"beg":{"line":246,"col":4},"end":{"line":246,"col":16}},"generated_from_span":null},"origin":{"TraitItem":0},"trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[5918,{"TraitType":[{"HashConsedValue":[5233,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":5,"generics":{"regions":[],"types":[{"Deduplicated":2049},{"Deduplicated":2621}],"const_generics":[],"trait_refs":[]}}}}]},0]}]}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"Output","attr_info":{"attributes":[{"DocComment":" The returned type after the call operator is used."}],"inline":null,"rename":null,"public":false},"default":null,"implied_clauses":[]},"kind":{"TraitType":[5,0]}}],"methods":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"call_once","attr_info":{"attributes":[{"DocComment":" Performs the call operation."}],"inline":null,"rename":null,"public":true},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":188},{"Deduplicated":2023}],"output":{"Deduplicated":5918}},"item":{"id":261,"generics":{"regions":[],"types":[{"Deduplicated":188},{"Deduplicated":2023}],"const_generics":[],"trait_refs":[{"Deduplicated":5233}]}}},"kind":{"TraitMethod":[5,0]}}],"vtable":{"id":{"Adt":42},"generics":{"regions":[],"types":[{"Deduplicated":2027},{"HashConsedValue":[6993,{"TraitType":[{"HashConsedValue":[6992,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":5,"generics":{"regions":[],"types":[{"Deduplicated":188},{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}]},0]}]}],"const_generics":[],"trait_refs":[]}}},{"def_id":6,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["collect",0]},{"Ident":["IntoIterator",0]}],"span":{"data":{"file_id":13,"beg":{"line":283,"col":0},"end":{"line":283,"col":28}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Conversion into an [`Iterator`]."},{"DocComment":""},{"DocComment":" By implementing `IntoIterator` for a type, you define how it will be"},{"DocComment":" converted to an iterator. This is common for types which describe a"},{"DocComment":" collection of some kind."},{"DocComment":""},{"DocComment":" One benefit of implementing `IntoIterator` is that your type will [work"},{"DocComment":" with Rust's `for` loop syntax](crate::iter#for-loops-and-intoiterator)."},{"DocComment":""},{"DocComment":" See also: [`FromIterator`]."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" Basic usage:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let v = [1, 2, 3];"},{"DocComment":" let mut iter = v.into_iter();"},{"DocComment":""},{"DocComment":" assert_eq!(Some(1), iter.next());"},{"DocComment":" assert_eq!(Some(2), iter.next());"},{"DocComment":" assert_eq!(Some(3), iter.next());"},{"DocComment":" assert_eq!(None, iter.next());"},{"DocComment":" ```"},{"DocComment":" Implementing `IntoIterator` for your type:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" // A sample collection, that's just a wrapper over Vec"},{"DocComment":" #[derive(Debug)]"},{"DocComment":" struct MyCollection(Vec);"},{"DocComment":""},{"DocComment":" // Let's give it some methods so we can create one and add things"},{"DocComment":" // to it."},{"DocComment":" impl MyCollection {"},{"DocComment":" fn new() -> MyCollection {"},{"DocComment":" MyCollection(Vec::new())"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" fn add(&mut self, elem: i32) {"},{"DocComment":" self.0.push(elem);"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" // and we'll implement IntoIterator"},{"DocComment":" impl IntoIterator for MyCollection {"},{"DocComment":" type Item = i32;"},{"DocComment":" type IntoIter = std::vec::IntoIter;"},{"DocComment":""},{"DocComment":" fn into_iter(self) -> Self::IntoIter {"},{"DocComment":" self.0.into_iter()"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" // Now we can make a new collection..."},{"DocComment":" let mut c = MyCollection::new();"},{"DocComment":""},{"DocComment":" // ... add some stuff to it ..."},{"DocComment":" c.add(0);"},{"DocComment":" c.add(1);"},{"DocComment":" c.add(2);"},{"DocComment":""},{"DocComment":" // ... and then turn it into an Iterator:"},{"DocComment":" for (i, n) in c.into_iter().enumerate() {"},{"DocComment":" assert_eq!(i as i32, n);"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" It is common to use `IntoIterator` as a trait bound. This allows"},{"DocComment":" the input collection type to change, so long as it is still an"},{"DocComment":" iterator. Additional bounds can be specified by restricting on"},{"DocComment":" `Item`:"},{"DocComment":""},{"DocComment":" ```rust"},{"DocComment":" fn collect_as_strings(collection: T) -> Vec"},{"DocComment":" where"},{"DocComment":" T: IntoIterator,"},{"DocComment":" T::Item: std::fmt::Debug,"},{"DocComment":" {"},{"DocComment":" collection"},{"DocComment":" .into_iter()"},{"DocComment":" .map(|item| format!(\"{item:?}\"))"},{"DocComment":" .collect()"},{"DocComment":" }"},{"DocComment":" ```"},{"Unknown":{"path":"rustc_on_unimplemented","args":"on(Self = \"core::ops::range::RangeTo\", label =\n\"if you meant to iterate until a value, add a starting value\", note =\n\"`..end` is a `RangeTo`, which cannot be iterated on; you might have meant to have a \\\n bounded `Range`: `0..end`\"),\non(Self = \"core::ops::range::RangeToInclusive\", label =\n\"if you meant to iterate until a value (including it), add a starting value\",\nnote =\n\"`..=end` is a `RangeToInclusive`, which cannot be iterated on; you might have meant \\\n to have a bounded `RangeInclusive`: `0..=end`\"),\non(Self = \"[]\", label =\n\"`{Self}` is not an iterator; try calling `.into_iter()` or `.iter()`\"),\non(Self = \"&[]\", label =\n\"`{Self}` is not an iterator; try calling `.iter()`\"),\non(Self = \"alloc::vec::Vec\", label =\n\"`{Self}` is not an iterator; try calling `.into_iter()` or `.iter()`\"),\non(Self = \"&str\", label =\n\"`{Self}` is not an iterator; try calling `.chars()` or `.bytes()`\"),\non(Self = \"alloc::string::String\", label =\n\"`{Self}` is not an iterator; try calling `.chars()` or `.bytes()`\"),\non(Self = \"{integral}\", note =\n\"if you want to iterate between `start` until a value `end`, use the exclusive range \\\n syntax `start..end` or the inclusive range syntax `start..=end`\"),\non(Self = \"{float}\", note =\n\"if you want to iterate between `start` until a value `end`, use the exclusive range \\\n syntax `start..end` or the inclusive range syntax `start..=end`\"),\nlabel = \"`{Self}` is not an iterator\", message = \"`{Self}` is not an iterator\""}}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"IntoIterator"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[{"regions":[],"skip_binder":{"trait_ref":{"HashConsedValue":[6834,{"kind":{"ParentClause":[{"HashConsedValue":[5265,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":2049}],"const_generics":[],"trait_refs":[]}}}}]},3]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"HashConsedValue":[6426,{"TraitType":[{"HashConsedValue":[6425,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":2057}],"const_generics":[],"trait_refs":[]}}}}]},1]}]}],"const_generics":[],"trait_refs":[]}}}}]},"type_id":0,"ty":{"HashConsedValue":[6270,{"TraitType":[{"Deduplicated":5265},0]}]}}}]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":13,"beg":{"line":283,"col":0},"end":{"line":313,"col":1}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":13,"beg":{"line":287,"col":4},"end":{"line":287,"col":14}},"generated_from_span":null},"origin":{"TraitItem":0},"trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":6270}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":2,"span":{"data":{"file_id":13,"beg":{"line":291,"col":4},"end":{"line":291,"col":47}},"generated_from_span":null},"origin":{"TraitItem":1},"trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[5921,{"TraitType":[{"Deduplicated":5265},1]}]}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":3,"span":{"data":{"file_id":13,"beg":{"line":291,"col":19},"end":{"line":291,"col":46}},"generated_from_span":null},"origin":{"TraitItem":1},"trait_":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":5921}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"Item","attr_info":{"attributes":[{"DocComment":" The type of the elements being iterated over."}],"inline":null,"rename":null,"public":false},"default":null,"implied_clauses":[]},"kind":{"TraitType":[6,0]}},{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"IntoIter","attr_info":{"attributes":[{"DocComment":" Which kind of iterator are we turning this into?"}],"inline":null,"rename":null,"public":false},"default":null,"implied_clauses":[]},"kind":{"TraitType":[6,1]}}],"methods":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"into_iter","attr_info":{"attributes":[{"DocComment":" Creates an iterator from a value."},{"DocComment":""},{"DocComment":" See the [module-level documentation] for more."},{"DocComment":""},{"DocComment":" [module-level documentation]: crate::iter"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let v = [1, 2, 3];"},{"DocComment":" let mut iter = v.into_iter();"},{"DocComment":""},{"DocComment":" assert_eq!(Some(1), iter.next());"},{"DocComment":" assert_eq!(Some(2), iter.next());"},{"DocComment":" assert_eq!(Some(3), iter.next());"},{"DocComment":" assert_eq!(None, iter.next());"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":188}],"output":{"Deduplicated":5921}},"item":{"id":264,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[{"Deduplicated":5265}]}}},"kind":{"TraitMethod":[6,0]}}],"vtable":{"id":{"Adt":43},"generics":{"regions":[],"types":[{"HashConsedValue":[6994,{"TraitType":[{"HashConsedValue":[5245,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}]},0]}]},{"HashConsedValue":[6995,{"TraitType":[{"Deduplicated":5245},1]}]}],"const_generics":[],"trait_refs":[]}}},{"def_id":7,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["num",0]},{"Ident":["nonzero",0]},{"Ident":["ZeroablePrimitive",0]}],"span":{"data":{"file_id":19,"beg":{"line":33,"col":0},"end":{"line":33,"col":66}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" A marker trait for primitive types which can be zero."},{"DocComment":""},{"DocComment":" This is an implementation detail for [NonZero]\\ which may disappear or be replaced at any time."},{"DocComment":""},{"DocComment":" # Safety"},{"DocComment":""},{"DocComment":" Types implementing this trait must be primitives that are valid when zeroed."},{"DocComment":""},{"DocComment":" The associated `Self::NonZeroInner` type must have the same size+align as `Self`,"},{"DocComment":" but with a niche and bit validity making it so the following `transmutes` are sound:"},{"DocComment":""},{"DocComment":" - `Self::NonZeroInner` to `Option`"},{"DocComment":" - `Option` to `Self`"},{"DocComment":""},{"DocComment":" (And, consequently, `Self::NonZeroInner` to `Self`.)"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":19,"beg":{"line":33,"col":36},"end":{"line":33,"col":41}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":19,"beg":{"line":33,"col":44},"end":{"line":33,"col":48}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":18,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":2,"span":{"data":{"file_id":19,"beg":{"line":33,"col":51},"end":{"line":33,"col":66}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":26,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":3,"span":{"data":{"file_id":19,"beg":{"line":35,"col":23},"end":{"line":35,"col":28}},"generated_from_span":null},"origin":{"TraitItem":0},"trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[6274,{"TraitType":[{"HashConsedValue":[6273,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":7,"generics":{"regions":[],"types":[{"Deduplicated":2049}],"const_generics":[],"trait_refs":[]}}}}]},0]}]}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":4,"span":{"data":{"file_id":19,"beg":{"line":35,"col":31},"end":{"line":35,"col":35}},"generated_from_span":null},"origin":{"TraitItem":0},"trait_":{"regions":[],"skip_binder":{"id":18,"generics":{"regions":[],"types":[{"Deduplicated":6274}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"NonZeroInner","attr_info":{"attributes":[{"DocComment":" A type like `Self` but with a niche that includes zero."}],"inline":null,"rename":null,"public":false},"default":null,"implied_clauses":[]},"kind":{"TraitType":[7,0]}}],"methods":[],"vtable":null},{"def_id":8,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["clone",0]},{"Ident":["Clone",0]}],"span":{"data":{"file_id":25,"beg":{"line":194,"col":0},"end":{"line":194,"col":28}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" A common trait that allows explicit creation of a duplicate value."},{"DocComment":""},{"DocComment":" Calling [`clone`] always produces a new value."},{"DocComment":" However, for types that are references to other data (such as smart pointers or references),"},{"DocComment":" the new value may still point to the same underlying data, rather than duplicating it."},{"DocComment":" See [`Clone::clone`] for more details."},{"DocComment":""},{"DocComment":" This distinction is especially important when using `#[derive(Clone)]` on structs containing"},{"DocComment":" smart pointers like `Arc>` - the cloned struct will share mutable state with the"},{"DocComment":" original."},{"DocComment":""},{"DocComment":" Differs from [`Copy`] in that [`Copy`] is implicit and an inexpensive bit-wise copy, while"},{"DocComment":" `Clone` is always explicit and may or may not be expensive. [`Copy`] has no methods, so you"},{"DocComment":" cannot change its behavior, but when implementing `Clone`, the `clone` method you provide"},{"DocComment":" may run arbitrary code."},{"DocComment":""},{"DocComment":" Since `Clone` is a supertrait of [`Copy`], any type that implements `Copy` must also implement"},{"DocComment":" `Clone`."},{"DocComment":""},{"DocComment":" ## Derivable"},{"DocComment":""},{"DocComment":" This trait can be used with `#[derive]` if all fields are `Clone`. The `derive`d"},{"DocComment":" implementation of [`Clone`] calls [`clone`] on each field."},{"DocComment":""},{"DocComment":" [`clone`]: Clone::clone"},{"DocComment":""},{"DocComment":" For a generic struct, `#[derive]` implements `Clone` conditionally by adding bound `Clone` on"},{"DocComment":" generic parameters."},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" // `derive` implements Clone for Reading when T is Clone."},{"DocComment":" #[derive(Clone)]"},{"DocComment":" struct Reading {"},{"DocComment":" frequency: T,"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" ## How can I implement `Clone`?"},{"DocComment":""},{"DocComment":" Types that are [`Copy`] should have a trivial implementation of `Clone`. More formally:"},{"DocComment":" if `T: Copy`, `x: T`, and `y: &T`, then `let x = y.clone();` is equivalent to `let x = *y;`."},{"DocComment":" Manual implementations should be careful to uphold this invariant; however, unsafe code"},{"DocComment":" must not rely on it to ensure memory safety."},{"DocComment":""},{"DocComment":" An example is a generic struct holding a function pointer. In this case, the"},{"DocComment":" implementation of `Clone` cannot be `derive`d, but can be implemented as:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" struct Generate(fn() -> T);"},{"DocComment":""},{"DocComment":" impl Copy for Generate {}"},{"DocComment":""},{"DocComment":" impl Clone for Generate {"},{"DocComment":" fn clone(&self) -> Self {"},{"DocComment":" *self"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" If we `derive`:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" #[derive(Copy, Clone)]"},{"DocComment":" struct Generate(fn() -> T);"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" the auto-derived implementations will have unnecessary `T: Copy` and `T: Clone` bounds:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" # struct Generate(fn() -> T);"},{"DocComment":""},{"DocComment":" // Automatically derived"},{"DocComment":" impl Copy for Generate { }"},{"DocComment":""},{"DocComment":" // Automatically derived"},{"DocComment":" impl Clone for Generate {"},{"DocComment":" fn clone(&self) -> Generate {"},{"DocComment":" Generate(Clone::clone(&self.0))"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" The bounds are unnecessary because clearly the function itself should be"},{"DocComment":" copy- and cloneable even if its return type is not:"},{"DocComment":""},{"DocComment":" ```compile_fail,E0599"},{"DocComment":" #[derive(Copy, Clone)]"},{"DocComment":" struct Generate(fn() -> T);"},{"DocComment":""},{"DocComment":" struct NotCloneable;"},{"DocComment":""},{"DocComment":" fn generate_not_cloneable() -> NotCloneable {"},{"DocComment":" NotCloneable"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" Generate(generate_not_cloneable).clone(); // error: trait bounds were not satisfied"},{"DocComment":" // Note: With the manual implementations the above line will compile."},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" ## `Clone` and `PartialEq`/`Eq`"},{"DocComment":" `Clone` is intended for the duplication of objects. Consequently, when implementing"},{"DocComment":" both `Clone` and [`PartialEq`], the following property is expected to hold:"},{"DocComment":" ```text"},{"DocComment":" x == x -> x.clone() == x"},{"DocComment":" ```"},{"DocComment":" In other words, if an object compares equal to itself,"},{"DocComment":" its clone must also compare equal to the original."},{"DocComment":""},{"DocComment":" For types that also implement [`Eq`] – for which `x == x` always holds –"},{"DocComment":" this implies that `x.clone() == x` must always be true."},{"DocComment":" Standard library collections such as"},{"DocComment":" [`HashMap`], [`HashSet`], [`BTreeMap`], [`BTreeSet`] and [`BinaryHeap`]"},{"DocComment":" rely on their keys respecting this property for correct behavior."},{"DocComment":" Furthermore, these collections require that cloning a key preserves the outcome of the"},{"DocComment":" [`Hash`] and [`Ord`] methods. Thankfully, this follows automatically from `x.clone() == x`"},{"DocComment":" if `Hash` and `Ord` are correctly implemented according to their own requirements."},{"DocComment":""},{"DocComment":" When deriving both `Clone` and [`PartialEq`] using `#[derive(Clone, PartialEq)]`"},{"DocComment":" or when additionally deriving [`Eq`] using `#[derive(Clone, PartialEq, Eq)]`,"},{"DocComment":" then this property is automatically upheld – provided that it is satisfied by"},{"DocComment":" the underlying types."},{"DocComment":""},{"DocComment":" Violating this property is a logic error. The behavior resulting from a logic error is not"},{"DocComment":" specified, but users of the trait must ensure that such logic errors do *not* result in"},{"DocComment":" undefined behavior. This means that `unsafe` code **must not** rely on this property"},{"DocComment":" being satisfied."},{"DocComment":""},{"DocComment":" ## Additional implementors"},{"DocComment":""},{"DocComment":" In addition to the [implementors listed below][impls],"},{"DocComment":" the following types also implement `Clone`:"},{"DocComment":""},{"DocComment":" * Function item types (i.e., the distinct types defined for each function)"},{"DocComment":" * Function pointer types (e.g., `fn() -> i32`)"},{"DocComment":" * Closure types, if they capture no value from the environment"},{"DocComment":" or if all such captured values implement `Clone` themselves."},{"DocComment":" Note that variables captured by shared reference always implement `Clone`"},{"DocComment":" (even if the referent doesn't),"},{"DocComment":" while variables captured by mutable reference never implement `Clone`."},{"DocComment":""},{"DocComment":" [`HashMap`]: ../../std/collections/struct.HashMap.html"},{"DocComment":" [`HashSet`]: ../../std/collections/struct.HashSet.html"},{"DocComment":" [`BTreeMap`]: ../../std/collections/struct.BTreeMap.html"},{"DocComment":" [`BTreeSet`]: ../../std/collections/struct.BTreeSet.html"},{"DocComment":" [`BinaryHeap`]: ../../std/collections/struct.BinaryHeap.html"},{"DocComment":" [impls]: #implementors"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"clone"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":25,"beg":{"line":194,"col":23},"end":{"line":194,"col":28}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[],"methods":[{"params":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"clone","attr_info":{"attributes":[{"DocComment":" Returns a duplicate of the value."},{"DocComment":""},{"DocComment":" Note that what \"duplicate\" means varies by type:"},{"DocComment":" - For most types, this creates a deep, independent copy"},{"DocComment":" - For reference types like `&T`, this creates another reference to the same value"},{"DocComment":" - For smart pointers like [`Arc`] or [`Rc`], this increments the reference count"},{"DocComment":" but still points to the same underlying data"},{"DocComment":""},{"DocComment":" [`Arc`]: ../../std/sync/struct.Arc.html"},{"DocComment":" [`Rc`]: ../../std/rc/struct.Rc.html"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" # #![allow(noop_method_call)]"},{"DocComment":" let hello = \"Hello\"; // &str implements Clone"},{"DocComment":""},{"DocComment":" assert_eq!(\"Hello\", hello.clone());"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" Example with a reference-counted type:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" use std::sync::{Arc, Mutex};"},{"DocComment":""},{"DocComment":" let data = Arc::new(Mutex::new(vec![1, 2, 3]));"},{"DocComment":" let data_clone = data.clone(); // Creates another Arc pointing to the same Mutex"},{"DocComment":""},{"DocComment":" {"},{"DocComment":" let mut lock = data.lock().unwrap();"},{"DocComment":" lock.push(4);"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" // Changes are visible through the clone because they share the same underlying data"},{"DocComment":" assert_eq!(*data_clone.lock().unwrap(), vec![1, 2, 3, 4]);"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"signature":{"is_unsafe":false,"inputs":[{"HashConsedValue":[2229,{"Ref":[{"Var":{"Bound":[0,0]}},{"Deduplicated":188},"Shared"]}]}],"output":{"Deduplicated":188}},"item":{"id":265,"generics":{"regions":[{"Var":{"Bound":[0,0]}}],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6430,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":8,"generics":{"regions":[],"types":[{"Deduplicated":2049}],"const_generics":[],"trait_refs":[]}}}}]}]}}},"kind":{"TraitMethod":[8,0]}},null],"vtable":null},{"def_id":9,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["function",0]},{"Ident":["FnMut",0]}],"span":{"data":{"file_id":18,"beg":{"line":163,"col":0},"end":{"line":163,"col":48}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" The version of the call operator that takes a mutable receiver."},{"DocComment":""},{"DocComment":" Instances of `FnMut` can be called repeatedly and may mutate state."},{"DocComment":""},{"DocComment":" `FnMut` is implemented automatically by closures which take mutable"},{"DocComment":" references to captured variables, as well as all types that implement"},{"DocComment":" [`Fn`], e.g., (safe) [function pointers] (since `FnMut` is a supertrait of"},{"DocComment":" [`Fn`]). Additionally, for any type `F` that implements `FnMut`, `&mut F`"},{"DocComment":" implements `FnMut`, too."},{"DocComment":""},{"DocComment":" Since [`FnOnce`] is a supertrait of `FnMut`, any instance of `FnMut` can be"},{"DocComment":" used where a [`FnOnce`] is expected, and since [`Fn`] is a subtrait of"},{"DocComment":" `FnMut`, any instance of [`Fn`] can be used where `FnMut` is expected."},{"DocComment":""},{"DocComment":" Use `FnMut` as a bound when you want to accept a parameter of function-like"},{"DocComment":" type and need to call it repeatedly, while allowing it to mutate state."},{"DocComment":" If you don't want the parameter to mutate state, use [`Fn`] as a"},{"DocComment":" bound; if you don't need to call it repeatedly, use [`FnOnce`]."},{"DocComment":""},{"DocComment":" See the [chapter on closures in *The Rust Programming Language*][book] for"},{"DocComment":" some more information on this topic."},{"DocComment":""},{"DocComment":" Also of note is the special syntax for `Fn` traits (e.g."},{"DocComment":" `Fn(usize, bool) -> usize`). Those interested in the technical details of"},{"DocComment":" this can refer to [the relevant section in the *Rustonomicon*][nomicon]."},{"DocComment":""},{"DocComment":" [book]: ../../book/ch13-01-closures.html"},{"DocComment":" [function pointers]: fn"},{"DocComment":" [nomicon]: ../../nomicon/hrtb.html"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ## Calling a mutably capturing closure"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let mut x = 5;"},{"DocComment":" {"},{"DocComment":" let mut square_x = || x *= x;"},{"DocComment":" square_x();"},{"DocComment":" }"},{"DocComment":" assert_eq!(x, 25);"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" ## Using a `FnMut` parameter"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" fn do_twice(mut func: F)"},{"DocComment":" where F: FnMut()"},{"DocComment":" {"},{"DocComment":" func();"},{"DocComment":" func();"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" let mut x: usize = 1;"},{"DocComment":" {"},{"DocComment":" let add_two_to_x = || x += 2;"},{"DocComment":" do_twice(add_two_to_x);"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" assert_eq!(x, 5);"},{"DocComment":" ```"},{"Unknown":{"path":"rustc_on_unimplemented","args":"on(Args = \"()\", note =\n\"wrap the `{Self}` in a closure with no arguments: `|| {{ /* code */ }}`\"),\non(Self = \"unsafe fn\", note =\n\"unsafe function cannot be called generically without an unsafe block\", label\n= \"call the function in a closure: `|| unsafe {{ /* code */ }}`\"), message =\n\"expected a `{Trait}` closure, found `{Self}`\", label =\n\"expected an `{Trait}` closure, found `{Self}`\""}}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"fn_mut"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"},{"index":1,"name":"Args"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":18,"beg":{"line":163,"col":0},"end":{"line":167,"col":1}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":18,"beg":{"line":163,"col":36},"end":{"line":163,"col":48}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":5,"generics":{"regions":[],"types":[{"Deduplicated":188},{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":2,"span":{"data":{"file_id":18,"beg":{"line":163,"col":22},"end":{"line":163,"col":26}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":3,"span":{"data":{"file_id":18,"beg":{"line":163,"col":28},"end":{"line":163,"col":33}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":25,"generics":{"regions":[],"types":[{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[],"methods":[{"params":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"call_mut","attr_info":{"attributes":[{"DocComment":" Performs the call operation."}],"inline":null,"rename":null,"public":true},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":2164},{"Deduplicated":2023}],"output":{"HashConsedValue":[6997,{"TraitType":[{"HashConsedValue":[6996,{"kind":{"ParentClause":[{"HashConsedValue":[5383,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":9,"generics":{"regions":[],"types":[{"Deduplicated":2049},{"Deduplicated":2621}],"const_generics":[],"trait_refs":[]}}}}]},1]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":5,"generics":{"regions":[],"types":[{"Deduplicated":2049},{"Deduplicated":2621}],"const_generics":[],"trait_refs":[]}}}}]},0]}]}},"item":{"id":267,"generics":{"regions":[{"Var":{"Bound":[0,0]}}],"types":[{"Deduplicated":188},{"Deduplicated":2023}],"const_generics":[],"trait_refs":[{"Deduplicated":5383}]}}},"kind":{"TraitMethod":[9,0]}}],"vtable":{"id":{"Adt":45},"generics":{"regions":[],"types":[{"Deduplicated":2027},{"HashConsedValue":[7000,{"TraitType":[{"HashConsedValue":[6999,{"kind":{"ParentClause":[{"HashConsedValue":[6998,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":9,"generics":{"regions":[],"types":[{"Deduplicated":188},{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}]},1]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":5,"generics":{"regions":[],"types":[{"Deduplicated":188},{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}]},0]}]}],"const_generics":[],"trait_refs":[]}}},{"def_id":10,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["collect",0]},{"Ident":["FromIterator",0]}],"span":{"data":{"file_id":13,"beg":{"line":134,"col":0},"end":{"line":134,"col":32}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Conversion from an [`Iterator`]."},{"DocComment":""},{"DocComment":" By implementing `FromIterator` for a type, you define how it will be"},{"DocComment":" created from an iterator. This is common for types which describe a"},{"DocComment":" collection of some kind."},{"DocComment":""},{"DocComment":" If you want to create a collection from the contents of an iterator, the"},{"DocComment":" [`Iterator::collect()`] method is preferred. However, when you need to"},{"DocComment":" specify the container type, [`FromIterator::from_iter()`] can be more"},{"DocComment":" readable than using a turbofish (e.g. `::>()`). See the"},{"DocComment":" [`Iterator::collect()`] documentation for more examples of its use."},{"DocComment":""},{"DocComment":" See also: [`IntoIterator`]."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" Basic usage:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let five_fives = std::iter::repeat(5).take(5);"},{"DocComment":""},{"DocComment":" let v = Vec::from_iter(five_fives);"},{"DocComment":""},{"DocComment":" assert_eq!(v, vec![5, 5, 5, 5, 5]);"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" Using [`Iterator::collect()`] to implicitly use `FromIterator`:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let five_fives = std::iter::repeat(5).take(5);"},{"DocComment":""},{"DocComment":" let v: Vec = five_fives.collect();"},{"DocComment":""},{"DocComment":" assert_eq!(v, vec![5, 5, 5, 5, 5]);"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" Using [`FromIterator::from_iter()`] as a more readable alternative to"},{"DocComment":" [`Iterator::collect()`]:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" use std::collections::VecDeque;"},{"DocComment":" let first = (0..10).collect::>();"},{"DocComment":" let second = VecDeque::from_iter(0..10);"},{"DocComment":""},{"DocComment":" assert_eq!(first, second);"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" Implementing `FromIterator` for your type:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" // A sample collection, that's just a wrapper over Vec"},{"DocComment":" #[derive(Debug)]"},{"DocComment":" struct MyCollection(Vec);"},{"DocComment":""},{"DocComment":" // Let's give it some methods so we can create one and add things"},{"DocComment":" // to it."},{"DocComment":" impl MyCollection {"},{"DocComment":" fn new() -> MyCollection {"},{"DocComment":" MyCollection(Vec::new())"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" fn add(&mut self, elem: i32) {"},{"DocComment":" self.0.push(elem);"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" // and we'll implement FromIterator"},{"DocComment":" impl FromIterator for MyCollection {"},{"DocComment":" fn from_iter>(iter: I) -> Self {"},{"DocComment":" let mut c = MyCollection::new();"},{"DocComment":""},{"DocComment":" for i in iter {"},{"DocComment":" c.add(i);"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" c"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" // Now we can make a new iterator..."},{"DocComment":" let iter = (0..5).into_iter();"},{"DocComment":""},{"DocComment":" // ... and make a MyCollection out of it"},{"DocComment":" let c = MyCollection::from_iter(iter);"},{"DocComment":""},{"DocComment":" assert_eq!(c.0, vec![0, 1, 2, 3, 4]);"},{"DocComment":""},{"DocComment":" // collect works too!"},{"DocComment":""},{"DocComment":" let iter = (0..5).into_iter();"},{"DocComment":" let c: MyCollection = iter.collect();"},{"DocComment":""},{"DocComment":" assert_eq!(c.0, vec![0, 1, 2, 3, 4]);"},{"DocComment":" ```"},{"Unknown":{"path":"rustc_on_unimplemented","args":"on(Self = \"&[{A}]\", message =\n\"a slice of type `{Self}` cannot be built since we need to store the elements somewhere\",\nlabel = \"try explicitly collecting into a `Vec<{A}>`\",),\non(all(A = \"{integer}\", any(Self = \"&[{integral}]\",)), message =\n\"a slice of type `{Self}` cannot be built since we need to store the elements somewhere\",\nlabel = \"try explicitly collecting into a `Vec<{A}>`\",),\non(Self = \"[{A}]\", message =\n\"a slice of type `{Self}` cannot be built since `{Self}` has no definite size\",\nlabel = \"try explicitly collecting into a `Vec<{A}>`\",),\non(all(A = \"{integer}\", any(Self = \"[{integral}]\",)), message =\n\"a slice of type `{Self}` cannot be built since `{Self}` has no definite size\",\nlabel = \"try explicitly collecting into a `Vec<{A}>`\",),\non(Self = \"[{A}; _]\", message =\n\"an array of type `{Self}` cannot be built directly from an iterator\", label =\n\"try collecting into a `Vec<{A}>`, then using `.try_into()`\",),\non(all(A = \"{integer}\", any(Self = \"[{integral}; _]\",)), message =\n\"an array of type `{Self}` cannot be built directly from an iterator\", label =\n\"try collecting into a `Vec<{A}>`, then using `.try_into()`\",), message =\n\"a value of type `{Self}` cannot be built from an iterator \\\n over elements of type `{A}`\",\nlabel =\n\"value of type `{Self}` cannot be built from `std::iter::Iterator`\""}}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"FromIterator"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"},{"index":1,"name":"A"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":13,"beg":{"line":134,"col":27},"end":{"line":134,"col":32}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":13,"beg":{"line":134,"col":23},"end":{"line":134,"col":24}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[],"methods":[{"params":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":13,"beg":{"line":152,"col":17},"end":{"line":152,"col":18}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":13,"beg":{"line":152,"col":20},"end":{"line":152,"col":42}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[{"regions":[],"skip_binder":{"trait_ref":{"HashConsedValue":[4264,{"kind":{"Clause":{"Bound":[1,1]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":2049}],"const_generics":[],"trait_refs":[]}}}}]},"type_id":0,"ty":{"Deduplicated":2621}}}]},"skip_binder":{"name":"from_iter","attr_info":{"attributes":[{"DocComment":" Creates a value from an iterator."},{"DocComment":""},{"DocComment":" See the [module-level documentation] for more."},{"DocComment":""},{"DocComment":" [module-level documentation]: crate::iter"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let five_fives = std::iter::repeat(5).take(5);"},{"DocComment":""},{"DocComment":" let v = Vec::from_iter(five_fives);"},{"DocComment":""},{"DocComment":" assert_eq!(v, vec![5, 5, 5, 5, 5]);"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":220}],"output":{"Deduplicated":188}},"item":{"id":268,"generics":{"regions":[],"types":[{"Deduplicated":188},{"Deduplicated":2023},{"Deduplicated":220}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6436,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":10,"generics":{"regions":[],"types":[{"Deduplicated":2049},{"Deduplicated":2621}],"const_generics":[],"trait_refs":[]}}}}]},{"Deduplicated":223},{"HashConsedValue":[4265,{"kind":{"Clause":{"Bound":[0,1]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}]}]}}},"kind":{"TraitMethod":[10,0]}}],"vtable":null},{"def_id":11,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["try_trait",0]},{"Ident":["Try",0]}],"span":{"data":{"file_id":42,"beg":{"line":133,"col":0},"end":{"line":133,"col":41}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" The `?` operator and `try {}` blocks."},{"DocComment":""},{"DocComment":" `try_*` methods typically involve a type implementing this trait. For"},{"DocComment":" example, the closures passed to [`Iterator::try_fold`] and"},{"DocComment":" [`Iterator::try_for_each`] must return such a type."},{"DocComment":""},{"DocComment":" `Try` types are typically those containing two or more categories of values,"},{"DocComment":" some subset of which are so commonly handled via early returns that it's"},{"DocComment":" worth providing a terse (but still visible) syntax to make that easy."},{"DocComment":""},{"DocComment":" This is most often seen for error handling with [`Result`] and [`Option`]."},{"DocComment":" The quintessential implementation of this trait is on [`ControlFlow`]."},{"DocComment":""},{"DocComment":" # Using `Try` in Generic Code"},{"DocComment":""},{"DocComment":" `Iterator::try_fold` was stabilized to call back in Rust 1.27, but"},{"DocComment":" this trait is much newer. To illustrate the various associated types and"},{"DocComment":" methods, let's implement our own version."},{"DocComment":""},{"DocComment":" As a reminder, an infallible version of a fold looks something like this:"},{"DocComment":" ```"},{"DocComment":" fn simple_fold("},{"DocComment":" iter: impl Iterator,"},{"DocComment":" mut accum: A,"},{"DocComment":" mut f: impl FnMut(A, T) -> A,"},{"DocComment":" ) -> A {"},{"DocComment":" for x in iter {"},{"DocComment":" accum = f(accum, x);"},{"DocComment":" }"},{"DocComment":" accum"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" So instead of `f` returning just an `A`, we'll need it to return some other"},{"DocComment":" type that produces an `A` in the \"don't short circuit\" path. Conveniently,"},{"DocComment":" that's also the type we need to return from the function."},{"DocComment":""},{"DocComment":" Let's add a new generic parameter `R` for that type, and bound it to the"},{"DocComment":" output type that we want:"},{"DocComment":" ```"},{"DocComment":" # #![feature(try_trait_v2)]"},{"DocComment":" # use std::ops::Try;"},{"DocComment":" fn simple_try_fold_1>("},{"DocComment":" iter: impl Iterator,"},{"DocComment":" mut accum: A,"},{"DocComment":" mut f: impl FnMut(A, T) -> R,"},{"DocComment":" ) -> R {"},{"DocComment":" todo!()"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" If we get through the entire iterator, we need to wrap up the accumulator"},{"DocComment":" into the return type using [`Try::from_output`]:"},{"DocComment":" ```"},{"DocComment":" # #![feature(try_trait_v2)]"},{"DocComment":" # use std::ops::{ControlFlow, Try};"},{"DocComment":" fn simple_try_fold_2>("},{"DocComment":" iter: impl Iterator,"},{"DocComment":" mut accum: A,"},{"DocComment":" mut f: impl FnMut(A, T) -> R,"},{"DocComment":" ) -> R {"},{"DocComment":" for x in iter {"},{"DocComment":" let cf = f(accum, x).branch();"},{"DocComment":" match cf {"},{"DocComment":" ControlFlow::Continue(a) => accum = a,"},{"DocComment":" ControlFlow::Break(_) => todo!(),"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":" R::from_output(accum)"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" We'll also need [`FromResidual::from_residual`] to turn the residual back"},{"DocComment":" into the original type. But because it's a supertrait of `Try`, we don't"},{"DocComment":" need to mention it in the bounds. All types which implement `Try` can be"},{"DocComment":" recreated from their corresponding residual, so we'll just call it:"},{"DocComment":" ```"},{"DocComment":" # #![feature(try_trait_v2)]"},{"DocComment":" # use std::ops::{ControlFlow, Try};"},{"DocComment":" pub fn simple_try_fold_3>("},{"DocComment":" iter: impl Iterator,"},{"DocComment":" mut accum: A,"},{"DocComment":" mut f: impl FnMut(A, T) -> R,"},{"DocComment":" ) -> R {"},{"DocComment":" for x in iter {"},{"DocComment":" let cf = f(accum, x).branch();"},{"DocComment":" match cf {"},{"DocComment":" ControlFlow::Continue(a) => accum = a,"},{"DocComment":" ControlFlow::Break(r) => return R::from_residual(r),"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":" R::from_output(accum)"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" But this \"call `branch`, then `match` on it, and `return` if it was a"},{"DocComment":" `Break`\" is exactly what happens inside the `?` operator. So rather than"},{"DocComment":" do all this manually, we can just use `?` instead:"},{"DocComment":" ```"},{"DocComment":" # #![feature(try_trait_v2)]"},{"DocComment":" # use std::ops::Try;"},{"DocComment":" fn simple_try_fold>("},{"DocComment":" iter: impl Iterator,"},{"DocComment":" mut accum: A,"},{"DocComment":" mut f: impl FnMut(A, T) -> R,"},{"DocComment":" ) -> R {"},{"DocComment":" for x in iter {"},{"DocComment":" accum = f(accum, x)?;"},{"DocComment":" }"},{"DocComment":" R::from_output(accum)"},{"DocComment":" }"},{"DocComment":" ```"},{"Unknown":{"path":"rustc_on_unimplemented","args":"on(all(from_desugaring = \"TryBlock\"), message =\n\"a `try` block must return `Result` or `Option` \\\n (or another type that implements `{This}`)\",\nlabel =\n\"could not wrap the final value of the block as `{Self}` doesn't implement `Try`\",),\non(all(from_desugaring = \"QuestionMark\"), message =\n\"the `?` operator can only be applied to values that implement `{This}`\",\nlabel = \"the `?` operator cannot be applied to type `{Self}`\")"}}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"Try"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":42,"beg":{"line":133,"col":0},"end":{"line":220,"col":1}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":42,"beg":{"line":133,"col":21},"end":{"line":133,"col":41}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":24,"generics":{"regions":[],"types":[{"Deduplicated":188},{"HashConsedValue":[5415,{"TraitType":[{"HashConsedValue":[5414,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":11,"generics":{"regions":[],"types":[{"Deduplicated":2049}],"const_generics":[],"trait_refs":[]}}}}]},1]}]}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":2,"span":{"data":{"file_id":42,"beg":{"line":136,"col":4},"end":{"line":136,"col":16}},"generated_from_span":null},"origin":{"TraitItem":0},"trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[5428,{"TraitType":[{"Deduplicated":5414},0]}]}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":3,"span":{"data":{"file_id":42,"beg":{"line":160,"col":4},"end":{"line":160,"col":18}},"generated_from_span":null},"origin":{"TraitItem":1},"trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":5415}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"Output","attr_info":{"attributes":[{"DocComment":" The type of the value produced by `?` when *not* short-circuiting."}],"inline":null,"rename":null,"public":false},"default":null,"implied_clauses":[]},"kind":{"TraitType":[11,0]}},{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"Residual","attr_info":{"attributes":[{"DocComment":" The type of the value passed to [`FromResidual::from_residual`]"},{"DocComment":" as part of `?` when short-circuiting."},{"DocComment":""},{"DocComment":" This represents the possible values of the `Self` type which are *not*"},{"DocComment":" represented by the `Output` type."},{"DocComment":""},{"DocComment":" # Note to Implementors"},{"DocComment":""},{"DocComment":" The choice of this type is critical to interconversion."},{"DocComment":" Unlike the `Output` type, which will often be a raw generic type,"},{"DocComment":" this type is typically a newtype of some sort to \"color\" the type"},{"DocComment":" so that it's distinguishable from the residuals of other types."},{"DocComment":""},{"DocComment":" This is why `Result::Residual` is not `E`, but `Result`."},{"DocComment":" That way it's distinct from `ControlFlow::Residual`, for example,"},{"DocComment":" and thus `?` on `ControlFlow` cannot be used in a method returning `Result`."},{"DocComment":""},{"DocComment":" If you're making a generic type `Foo` that implements `Try`,"},{"DocComment":" then typically you can use `Foo` as its `Residual`"},{"DocComment":" type: that type will have a \"hole\" in the correct place, and will maintain the"},{"DocComment":" \"foo-ness\" of the residual so other types need to opt-in to interconversion."}],"inline":null,"rename":null,"public":false},"default":null,"implied_clauses":[]},"kind":{"TraitType":[11,1]}}],"methods":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"from_output","attr_info":{"attributes":[{"DocComment":" Constructs the type from its `Output` type."},{"DocComment":""},{"DocComment":" This should be implemented consistently with the `branch` method"},{"DocComment":" such that applying the `?` operator will get back the original value:"},{"DocComment":" `Try::from_output(x).branch() --> ControlFlow::Continue(x)`."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" #![feature(try_trait_v2)]"},{"DocComment":" use std::ops::Try;"},{"DocComment":""},{"DocComment":" assert_eq!( as Try>::from_output(3), Ok(3));"},{"DocComment":" assert_eq!( as Try>::from_output(4), Some(4));"},{"DocComment":" assert_eq!("},{"DocComment":" as Try>::from_output(5),"},{"DocComment":" std::ops::ControlFlow::Continue(5),"},{"DocComment":" );"},{"DocComment":""},{"DocComment":" # fn make_question_mark_work() -> Option<()> {"},{"DocComment":" assert_eq!(Option::from_output(4)?, 4);"},{"DocComment":" # None }"},{"DocComment":" # make_question_mark_work();"},{"DocComment":""},{"DocComment":" // This is used, for example, on the accumulator in `try_fold`:"},{"DocComment":" let r = std::iter::empty().try_fold(4, |_, ()| -> Option<_> { unreachable!() });"},{"DocComment":" assert_eq!(r, Some(4));"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":5428}],"output":{"Deduplicated":188}},"item":{"id":269,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[{"Deduplicated":5414}]}}},"kind":{"TraitMethod":[11,0]}},{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"branch","attr_info":{"attributes":[{"DocComment":" Used in `?` to decide whether the operator should produce a value"},{"DocComment":" (because this returned [`ControlFlow::Continue`])"},{"DocComment":" or propagate a value back to the caller"},{"DocComment":" (because this returned [`ControlFlow::Break`])."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" #![feature(try_trait_v2)]"},{"DocComment":" use std::ops::{ControlFlow, Try};"},{"DocComment":""},{"DocComment":" assert_eq!(Ok::<_, String>(3).branch(), ControlFlow::Continue(3));"},{"DocComment":" assert_eq!(Err::(3).branch(), ControlFlow::Break(Err(3)));"},{"DocComment":""},{"DocComment":" assert_eq!(Some(3).branch(), ControlFlow::Continue(3));"},{"DocComment":" assert_eq!(None::.branch(), ControlFlow::Break(None));"},{"DocComment":""},{"DocComment":" assert_eq!(ControlFlow::::Continue(3).branch(), ControlFlow::Continue(3));"},{"DocComment":" assert_eq!("},{"DocComment":" ControlFlow::<_, String>::Break(3).branch(),"},{"DocComment":" ControlFlow::Break(ControlFlow::Break(3)),"},{"DocComment":" );"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":188}],"output":{"HashConsedValue":[7005,{"Adt":{"id":{"Adt":9},"generics":{"regions":[],"types":[{"Deduplicated":5415},{"Deduplicated":5428}],"const_generics":[],"trait_refs":[{"HashConsedValue":[7002,{"kind":{"ParentClause":[{"HashConsedValue":[7001,{"kind":{"ParentClause":[{"Deduplicated":5414},1]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":24,"generics":{"regions":[],"types":[{"Deduplicated":2049},{"HashConsedValue":[5422,{"TraitType":[{"HashConsedValue":[5420,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":11,"generics":{"regions":[],"types":[{"Deduplicated":2057}],"const_generics":[],"trait_refs":[]}}}}]},1]}]}],"const_generics":[],"trait_refs":[]}}}}]},1]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":5422}],"const_generics":[],"trait_refs":[]}}}}]},{"HashConsedValue":[7004,{"kind":{"ParentClause":[{"Deduplicated":5414},2]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[7003,{"TraitType":[{"Deduplicated":5420},0]}]}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},"item":{"id":270,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[{"Deduplicated":5414}]}}},"kind":{"TraitMethod":[11,1]}}],"vtable":null},{"def_id":12,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["try_trait",0]},{"Ident":["Residual",0]}],"span":{"data":{"file_id":42,"beg":{"line":364,"col":0},"end":{"line":364,"col":34}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Allows retrieving the canonical type implementing [`Try`] that has this type"},{"DocComment":" as its residual and allows it to hold an `O` as its output."},{"DocComment":""},{"DocComment":" If you think of the `Try` trait as splitting a type into its [`Try::Output`]"},{"DocComment":" and [`Try::Residual`] components, this allows putting them back together."},{"DocComment":""},{"DocComment":" For example,"},{"DocComment":" `Result: Try>`,"},{"DocComment":" and in the other direction,"},{"DocComment":" ` as Residual>::TryType = Result`."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"Self"},{"index":1,"name":"O"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[{"regions":[],"skip_binder":{"trait_ref":{"HashConsedValue":[6442,{"kind":{"ParentClause":[{"HashConsedValue":[6275,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":12,"generics":{"regions":[],"types":[{"Deduplicated":2049},{"Deduplicated":2621}],"const_generics":[],"trait_refs":[]}}}}]},3]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":11,"generics":{"regions":[],"types":[{"HashConsedValue":[6277,{"TraitType":[{"HashConsedValue":[5454,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":12,"generics":{"regions":[],"types":[{"Deduplicated":2057},{"HashConsedValue":[5191,{"TypeVar":{"Bound":[3,1]}}]}],"const_generics":[],"trait_refs":[]}}}}]},0]}]}],"const_generics":[],"trait_refs":[]}}}}]},"type_id":0,"ty":{"Deduplicated":2023}}},{"regions":[],"skip_binder":{"trait_ref":{"Deduplicated":6442},"type_id":1,"ty":{"Deduplicated":188}}}]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":42,"beg":{"line":364,"col":29},"end":{"line":364,"col":34}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":42,"beg":{"line":364,"col":25},"end":{"line":364,"col":26}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":2,"span":{"data":{"file_id":42,"beg":{"line":368,"col":4},"end":{"line":368,"col":59}},"generated_from_span":null},"origin":{"TraitItem":0},"trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[6276,{"TraitType":[{"Deduplicated":6275},0]}]}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":3,"span":{"data":{"file_id":42,"beg":{"line":368,"col":18},"end":{"line":368,"col":58}},"generated_from_span":null},"origin":{"TraitItem":0},"trait_":{"regions":[],"skip_binder":{"id":11,"generics":{"regions":[],"types":[{"Deduplicated":6276}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"TryType","attr_info":{"attributes":[{"DocComment":" The \"return\" type of this meta-function."}],"inline":null,"rename":null,"public":false},"default":null,"implied_clauses":[]},"kind":{"TraitType":[12,0]}}],"methods":[],"vtable":null},{"def_id":13,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["collect",0]},{"Ident":["Extend",0]}],"span":{"data":{"file_id":13,"beg":{"line":397,"col":0},"end":{"line":397,"col":19}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Extend a collection with the contents of an iterator."},{"DocComment":""},{"DocComment":" Iterators produce a series of values, and collections can also be thought"},{"DocComment":" of as a series of values. The `Extend` trait bridges this gap, allowing you"},{"DocComment":" to extend a collection by including the contents of that iterator. When"},{"DocComment":" extending a collection with an already existing key, that entry is updated"},{"DocComment":" or, in the case of collections that permit multiple entries with equal"},{"DocComment":" keys, that entry is inserted."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" Basic usage:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" // You can extend a String with some chars:"},{"DocComment":" let mut message = String::from(\"The first three letters are: \");"},{"DocComment":""},{"DocComment":" message.extend(&['a', 'b', 'c']);"},{"DocComment":""},{"DocComment":" assert_eq!(\"abc\", &message[29..32]);"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" Implementing `Extend`:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" // A sample collection, that's just a wrapper over Vec"},{"DocComment":" #[derive(Debug)]"},{"DocComment":" struct MyCollection(Vec);"},{"DocComment":""},{"DocComment":" // Let's give it some methods so we can create one and add things"},{"DocComment":" // to it."},{"DocComment":" impl MyCollection {"},{"DocComment":" fn new() -> MyCollection {"},{"DocComment":" MyCollection(Vec::new())"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" fn add(&mut self, elem: i32) {"},{"DocComment":" self.0.push(elem);"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" // since MyCollection has a list of i32s, we implement Extend for i32"},{"DocComment":" impl Extend for MyCollection {"},{"DocComment":""},{"DocComment":" // This is a bit simpler with the concrete type signature: we can call"},{"DocComment":" // extend on anything which can be turned into an Iterator which gives"},{"DocComment":" // us i32s. Because we need i32s to put into MyCollection."},{"DocComment":" fn extend>(&mut self, iter: T) {"},{"DocComment":""},{"DocComment":" // The implementation is very straightforward: loop through the"},{"DocComment":" // iterator, and add() each element to ourselves."},{"DocComment":" for elem in iter {"},{"DocComment":" self.add(elem);"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" let mut c = MyCollection::new();"},{"DocComment":""},{"DocComment":" c.add(5);"},{"DocComment":" c.add(6);"},{"DocComment":" c.add(7);"},{"DocComment":""},{"DocComment":" // let's extend our collection with three more numbers"},{"DocComment":" c.extend(vec![1, 2, 3]);"},{"DocComment":""},{"DocComment":" // we've added these elements onto the end"},{"DocComment":" assert_eq!(\"MyCollection([5, 6, 7, 1, 2, 3])\", format!(\"{c:?}\"));"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"Self"},{"index":1,"name":"A"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":13,"beg":{"line":397,"col":0},"end":{"line":451,"col":1}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":13,"beg":{"line":397,"col":17},"end":{"line":397,"col":18}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[],"methods":[{"params":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":13,"beg":{"line":416,"col":14},"end":{"line":416,"col":15}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":13,"beg":{"line":416,"col":17},"end":{"line":416,"col":39}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[{"regions":[],"skip_binder":{"trait_ref":{"Deduplicated":4264},"type_id":0,"ty":{"Deduplicated":2621}}}]},"skip_binder":{"name":"extend","attr_info":{"attributes":[{"DocComment":" Extends a collection with the contents of an iterator."},{"DocComment":""},{"DocComment":" As this is the only required method for this trait, the [trait-level] docs"},{"DocComment":" contain more details."},{"DocComment":""},{"DocComment":" [trait-level]: Extend"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" // You can extend a String with some chars:"},{"DocComment":" let mut message = String::from(\"abc\");"},{"DocComment":""},{"DocComment":" message.extend(['d', 'e', 'f'].iter());"},{"DocComment":""},{"DocComment":" assert_eq!(\"abcdef\", &message);"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":2164},{"Deduplicated":220}],"output":{"Deduplicated":245}},"item":{"id":271,"generics":{"regions":[{"Var":{"Bound":[0,0]}}],"types":[{"Deduplicated":188},{"Deduplicated":2023},{"Deduplicated":220}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6443,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":13,"generics":{"regions":[],"types":[{"Deduplicated":2049},{"Deduplicated":2621}],"const_generics":[],"trait_refs":[]}}}}]},{"Deduplicated":223},{"Deduplicated":4265}]}}},"kind":{"TraitMethod":[13,0]}},null,null,null],"vtable":null},{"def_id":14,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["default",0]},{"Ident":["Default",0]}],"span":{"data":{"file_id":43,"beg":{"line":107,"col":0},"end":{"line":107,"col":30}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" A trait for giving a type a useful default value."},{"DocComment":""},{"DocComment":" Sometimes, you want to fall back to some kind of default value, and"},{"DocComment":" don't particularly care what it is. This comes up often with `struct`s"},{"DocComment":" that define a set of options:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" # #[allow(dead_code)]"},{"DocComment":" struct SomeOptions {"},{"DocComment":" foo: i32,"},{"DocComment":" bar: f32,"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" How can we define some default values? You can use `Default`:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" # #[allow(dead_code)]"},{"DocComment":" #[derive(Default)]"},{"DocComment":" struct SomeOptions {"},{"DocComment":" foo: i32,"},{"DocComment":" bar: f32,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" fn main() {"},{"DocComment":" let options: SomeOptions = Default::default();"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" Now, you get all of the default values. Rust implements `Default` for various primitive types."},{"DocComment":""},{"DocComment":" If you want to override a particular option, but still retain the other defaults:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" # #[allow(dead_code)]"},{"DocComment":" # #[derive(Default)]"},{"DocComment":" # struct SomeOptions {"},{"DocComment":" # foo: i32,"},{"DocComment":" # bar: f32,"},{"DocComment":" # }"},{"DocComment":" fn main() {"},{"DocComment":" let options = SomeOptions { foo: 42, ..Default::default() };"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" ## Derivable"},{"DocComment":""},{"DocComment":" This trait can be used with `#[derive]` if all of the type's fields implement"},{"DocComment":" `Default`. When `derive`d, it will use the default value for each field's type."},{"DocComment":""},{"DocComment":" ### `enum`s"},{"DocComment":""},{"DocComment":" When using `#[derive(Default)]` on an `enum`, you need to choose which unit variant will be"},{"DocComment":" default. You do this by placing the `#[default]` attribute on the variant."},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" #[derive(Default)]"},{"DocComment":" enum Kind {"},{"DocComment":" #[default]"},{"DocComment":" A,"},{"DocComment":" B,"},{"DocComment":" C,"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" You cannot use the `#[default]` attribute on non-unit or non-exhaustive variants."},{"DocComment":""},{"DocComment":" The `#[default]` attribute was stabilized in Rust 1.62.0."},{"DocComment":""},{"DocComment":" ## How can I implement `Default`?"},{"DocComment":""},{"DocComment":" Provide an implementation for the `default()` method that returns the value of"},{"DocComment":" your type that should be the default:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" # #![allow(dead_code)]"},{"DocComment":" enum Kind {"},{"DocComment":" A,"},{"DocComment":" B,"},{"DocComment":" C,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl Default for Kind {"},{"DocComment":" fn default() -> Self { Kind::A }"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" # #[allow(dead_code)]"},{"DocComment":" #[derive(Default)]"},{"DocComment":" struct SomeOptions {"},{"DocComment":" foo: i32,"},{"DocComment":" bar: f32,"},{"DocComment":" }"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"Default"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":43,"beg":{"line":107,"col":25},"end":{"line":107,"col":30}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[],"methods":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"default","attr_info":{"attributes":[{"DocComment":" Returns the \"default value\" for a type."},{"DocComment":""},{"DocComment":" Default values are often some kind of initial value, identity value, or anything else that"},{"DocComment":" may make sense as a default."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" Using built-in default values:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let i: i8 = Default::default();"},{"DocComment":" let (x, y): (Option, f64) = Default::default();"},{"DocComment":" let (a, b, (c, d)): (i32, u32, (bool, bool)) = Default::default();"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" Making your own:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" # #[allow(dead_code)]"},{"DocComment":" enum Kind {"},{"DocComment":" A,"},{"DocComment":" B,"},{"DocComment":" C,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl Default for Kind {"},{"DocComment":" fn default() -> Self { Kind::A }"},{"DocComment":" }"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"signature":{"is_unsafe":false,"inputs":[],"output":{"Deduplicated":188}},"item":{"id":275,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6444,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":14,"generics":{"regions":[],"types":[{"Deduplicated":2049}],"const_generics":[],"trait_refs":[]}}}}]}]}}},"kind":{"TraitMethod":[14,0]}}],"vtable":null},{"def_id":15,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["double_ended",0]},{"Ident":["DoubleEndedIterator",0]}],"span":{"data":{"file_id":44,"beg":{"line":41,"col":0},"end":{"line":41,"col":39}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator able to yield elements from both ends."},{"DocComment":""},{"DocComment":" Something that implements `DoubleEndedIterator` has one extra capability"},{"DocComment":" over something that implements [`Iterator`]: the ability to also take"},{"DocComment":" `Item`s from the back, as well as the front."},{"DocComment":""},{"DocComment":" It is important to note that both back and forth work on the same range,"},{"DocComment":" and do not cross: iteration is over when they meet in the middle."},{"DocComment":""},{"DocComment":" In a similar fashion to the [`Iterator`] protocol, once a"},{"DocComment":" `DoubleEndedIterator` returns [`None`] from a [`next_back()`], calling it"},{"DocComment":" again may or may not ever return [`Some`] again. [`next()`] and"},{"DocComment":" [`next_back()`] are interchangeable for this purpose."},{"DocComment":""},{"DocComment":" [`next_back()`]: DoubleEndedIterator::next_back"},{"DocComment":" [`next()`]: Iterator::next"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" Basic usage:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let numbers = vec![1, 2, 3, 4, 5, 6];"},{"DocComment":""},{"DocComment":" let mut iter = numbers.iter();"},{"DocComment":""},{"DocComment":" assert_eq!(Some(&1), iter.next());"},{"DocComment":" assert_eq!(Some(&6), iter.next_back());"},{"DocComment":" assert_eq!(Some(&5), iter.next_back());"},{"DocComment":" assert_eq!(Some(&2), iter.next());"},{"DocComment":" assert_eq!(Some(&3), iter.next());"},{"DocComment":" assert_eq!(Some(&4), iter.next());"},{"DocComment":" assert_eq!(None, iter.next());"},{"DocComment":" assert_eq!(None, iter.next_back());"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"DoubleEndedIterator"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":44,"beg":{"line":41,"col":0},"end":{"line":380,"col":1}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":44,"beg":{"line":41,"col":31},"end":{"line":41,"col":39}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[],"methods":[{"params":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"next_back","attr_info":{"attributes":[{"DocComment":" Removes and returns an element from the end of the iterator."},{"DocComment":""},{"DocComment":" Returns `None` when there are no more elements."},{"DocComment":""},{"DocComment":" The [trait-level] docs contain more details."},{"DocComment":""},{"DocComment":" [trait-level]: DoubleEndedIterator"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" Basic usage:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let numbers = vec![1, 2, 3, 4, 5, 6];"},{"DocComment":""},{"DocComment":" let mut iter = numbers.iter();"},{"DocComment":""},{"DocComment":" assert_eq!(Some(&1), iter.next());"},{"DocComment":" assert_eq!(Some(&6), iter.next_back());"},{"DocComment":" assert_eq!(Some(&5), iter.next_back());"},{"DocComment":" assert_eq!(Some(&2), iter.next());"},{"DocComment":" assert_eq!(Some(&3), iter.next());"},{"DocComment":" assert_eq!(Some(&4), iter.next());"},{"DocComment":" assert_eq!(None, iter.next());"},{"DocComment":" assert_eq!(None, iter.next_back());"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" # Remarks"},{"DocComment":""},{"DocComment":" The elements yielded by `DoubleEndedIterator`'s methods may differ from"},{"DocComment":" the ones yielded by [`Iterator`]'s methods:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let vec = vec![(1, 'a'), (1, 'b'), (1, 'c'), (2, 'a'), (2, 'b')];"},{"DocComment":" let uniq_by_fst_comp = || {"},{"DocComment":" let mut seen = std::collections::HashSet::new();"},{"DocComment":" vec.iter().copied().filter(move |x| seen.insert(x.0))"},{"DocComment":" };"},{"DocComment":""},{"DocComment":" assert_eq!(uniq_by_fst_comp().last(), Some((2, 'a')));"},{"DocComment":" assert_eq!(uniq_by_fst_comp().next_back(), Some((2, 'b')));"},{"DocComment":""},{"DocComment":" assert_eq!("},{"DocComment":" uniq_by_fst_comp().fold(vec![], |mut v, x| {v.push(x); v}),"},{"DocComment":" vec![(1, 'a'), (2, 'a')]"},{"DocComment":" );"},{"DocComment":" assert_eq!("},{"DocComment":" uniq_by_fst_comp().rfold(vec![], |mut v, x| {v.push(x); v}),"},{"DocComment":" vec![(2, 'b'), (1, 'c')]"},{"DocComment":" );"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":2164}],"output":{"HashConsedValue":[7008,{"Adt":{"id":{"Adt":7},"generics":{"regions":[],"types":[{"HashConsedValue":[7006,{"TraitType":[{"HashConsedValue":[5518,{"kind":{"ParentClause":[{"HashConsedValue":[5517,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":15,"generics":{"regions":[],"types":[{"Deduplicated":2049}],"const_generics":[],"trait_refs":[]}}}}]},1]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":2049}],"const_generics":[],"trait_refs":[]}}}}]},0]}]}],"const_generics":[],"trait_refs":[{"HashConsedValue":[7007,{"kind":{"ParentClause":[{"Deduplicated":5518},1]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[5522,{"TraitType":[{"HashConsedValue":[5521,{"kind":{"ParentClause":[{"HashConsedValue":[5520,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":15,"generics":{"regions":[],"types":[{"Deduplicated":2057}],"const_generics":[],"trait_refs":[]}}}}]},1]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":2057}],"const_generics":[],"trait_refs":[]}}}}]},0]}]}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},"item":{"id":276,"generics":{"regions":[{"Var":{"Bound":[0,0]}}],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[{"Deduplicated":5517}]}}},"kind":{"TraitMethod":[15,0]}},null,null,null,null,null],"vtable":{"id":{"Adt":46},"generics":{"regions":[],"types":[{"HashConsedValue":[7011,{"TraitType":[{"HashConsedValue":[7010,{"kind":{"ParentClause":[{"HashConsedValue":[7009,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":15,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}]},1]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}]},0]}]}],"const_generics":[],"trait_refs":[]}}},{"def_id":16,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["exact_size",0]},{"Ident":["ExactSizeIterator",0]}],"span":{"data":{"file_id":45,"beg":{"line":86,"col":0},"end":{"line":86,"col":37}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator that knows its exact length."},{"DocComment":""},{"DocComment":" Many [`Iterator`]s don't know how many times they will iterate, but some do."},{"DocComment":" If an iterator knows how many times it can iterate, providing access to"},{"DocComment":" that information can be useful. For example, if you want to iterate"},{"DocComment":" backwards, a good start is to know where the end is."},{"DocComment":""},{"DocComment":" When implementing an `ExactSizeIterator`, you must also implement"},{"DocComment":" [`Iterator`]. When doing so, the implementation of [`Iterator::size_hint`]"},{"DocComment":" *must* return the exact size of the iterator."},{"DocComment":""},{"DocComment":" The [`len`] method has a default implementation, so you usually shouldn't"},{"DocComment":" implement it. However, you may be able to provide a more performant"},{"DocComment":" implementation than the default, so overriding it in this case makes sense."},{"DocComment":""},{"DocComment":" Note that this trait is a safe trait and as such does *not* and *cannot*"},{"DocComment":" guarantee that the returned length is correct. This means that `unsafe`"},{"DocComment":" code **must not** rely on the correctness of [`Iterator::size_hint`]. The"},{"DocComment":" unstable and unsafe [`TrustedLen`](super::marker::TrustedLen) trait gives"},{"DocComment":" this additional guarantee."},{"DocComment":""},{"DocComment":" [`len`]: ExactSizeIterator::len"},{"DocComment":""},{"DocComment":" # When *shouldn't* an adapter be `ExactSizeIterator`?"},{"DocComment":""},{"DocComment":" If an adapter makes an iterator *longer*, then it's usually incorrect for"},{"DocComment":" that adapter to implement `ExactSizeIterator`. The inner exact-sized"},{"DocComment":" iterator might already be `usize::MAX`-long, and thus the length of the"},{"DocComment":" longer adapted iterator would no longer be exactly representable in `usize`."},{"DocComment":""},{"DocComment":" This is why [`Chain`](crate::iter::Chain) isn't `ExactSizeIterator`,"},{"DocComment":" even when `A` and `B` are both `ExactSizeIterator`."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" Basic usage:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" // a finite range knows exactly how many times it will iterate"},{"DocComment":" let five = 0..5;"},{"DocComment":""},{"DocComment":" assert_eq!(5, five.len());"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" In the [module-level docs], we implemented an [`Iterator`], `Counter`."},{"DocComment":" Let's implement `ExactSizeIterator` for it as well:"},{"DocComment":""},{"DocComment":" [module-level docs]: crate::iter"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" # struct Counter {"},{"DocComment":" # count: usize,"},{"DocComment":" # }"},{"DocComment":" # impl Counter {"},{"DocComment":" # fn new() -> Counter {"},{"DocComment":" # Counter { count: 0 }"},{"DocComment":" # }"},{"DocComment":" # }"},{"DocComment":" # impl Iterator for Counter {"},{"DocComment":" # type Item = usize;"},{"DocComment":" # fn next(&mut self) -> Option {"},{"DocComment":" # self.count += 1;"},{"DocComment":" # if self.count < 6 {"},{"DocComment":" # Some(self.count)"},{"DocComment":" # } else {"},{"DocComment":" # None"},{"DocComment":" # }"},{"DocComment":" # }"},{"DocComment":" # }"},{"DocComment":" impl ExactSizeIterator for Counter {"},{"DocComment":" // We can easily calculate the remaining number of iterations."},{"DocComment":" fn len(&self) -> usize {"},{"DocComment":" 5 - self.count"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" // And now we can use it!"},{"DocComment":""},{"DocComment":" let mut counter = Counter::new();"},{"DocComment":""},{"DocComment":" assert_eq!(5, counter.len());"},{"DocComment":" let _ = counter.next();"},{"DocComment":" assert_eq!(4, counter.len());"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":45,"beg":{"line":86,"col":0},"end":{"line":151,"col":1}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":45,"beg":{"line":86,"col":29},"end":{"line":86,"col":37}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[],"methods":[null,null],"vtable":{"id":{"Adt":47},"generics":{"regions":[],"types":[{"HashConsedValue":[7014,{"TraitType":[{"HashConsedValue":[7013,{"kind":{"ParentClause":[{"HashConsedValue":[7012,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":16,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}]},1]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}]},0]}]}],"const_generics":[],"trait_refs":[]}}},{"def_id":17,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["Ord",0]}],"span":{"data":{"file_id":46,"beg":{"line":973,"col":0},"end":{"line":973,"col":73}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Trait for types that form a [total order](https://en.wikipedia.org/wiki/Total_order)."},{"DocComment":""},{"DocComment":" Implementations must be consistent with the [`PartialOrd`] implementation, and ensure `max`,"},{"DocComment":" `min`, and `clamp` are consistent with `cmp`:"},{"DocComment":""},{"DocComment":" - `partial_cmp(a, b) == Some(cmp(a, b))`."},{"DocComment":" - `max(a, b) == max_by(a, b, cmp)` (ensured by the default implementation)."},{"DocComment":" - `min(a, b) == min_by(a, b, cmp)` (ensured by the default implementation)."},{"DocComment":" - For `a.clamp(min, max)`, see the [method docs](#method.clamp) (ensured by the default"},{"DocComment":" implementation)."},{"DocComment":""},{"DocComment":" Violating these requirements is a logic error. The behavior resulting from a logic error is not"},{"DocComment":" specified, but users of the trait must ensure that such logic errors do *not* result in"},{"DocComment":" undefined behavior. This means that `unsafe` code **must not** rely on the correctness of these"},{"DocComment":" methods."},{"DocComment":""},{"DocComment":" ## Corollaries"},{"DocComment":""},{"DocComment":" From the above and the requirements of `PartialOrd`, it follows that for all `a`, `b` and `c`:"},{"DocComment":""},{"DocComment":" - exactly one of `a < b`, `a == b` or `a > b` is true; and"},{"DocComment":" - `<` is transitive: `a < b` and `b < c` implies `a < c`. The same must hold for both `==` and"},{"DocComment":" `>`."},{"DocComment":""},{"DocComment":" Mathematically speaking, the `<` operator defines a strict [weak order]. In cases where `==`"},{"DocComment":" conforms to mathematical equality, it also defines a strict [total order]."},{"DocComment":""},{"DocComment":" [weak order]: https://en.wikipedia.org/wiki/Weak_ordering"},{"DocComment":" [total order]: https://en.wikipedia.org/wiki/Total_order"},{"DocComment":""},{"DocComment":" ## Derivable"},{"DocComment":""},{"DocComment":" This trait can be used with `#[derive]`."},{"DocComment":""},{"DocComment":" When `derive`d on structs, it will produce a"},{"DocComment":" [lexicographic](https://en.wikipedia.org/wiki/Lexicographic_order) ordering based on the"},{"DocComment":" top-to-bottom declaration order of the struct's members."},{"DocComment":""},{"DocComment":" When `derive`d on enums, variants are ordered primarily by their discriminants. Secondarily,"},{"DocComment":" they are ordered by their fields. By default, the discriminant is smallest for variants at the"},{"DocComment":" top, and largest for variants at the bottom. Here's an example:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" #[derive(PartialEq, Eq, PartialOrd, Ord)]"},{"DocComment":" enum E {"},{"DocComment":" Top,"},{"DocComment":" Bottom,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" assert!(E::Top < E::Bottom);"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" However, manually setting the discriminants can override this default behavior:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" #[derive(PartialEq, Eq, PartialOrd, Ord)]"},{"DocComment":" enum E {"},{"DocComment":" Top = 2,"},{"DocComment":" Bottom = 1,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" assert!(E::Bottom < E::Top);"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" ## Lexicographical comparison"},{"DocComment":""},{"DocComment":" Lexicographical comparison is an operation with the following properties:"},{"DocComment":" - Two sequences are compared element by element."},{"DocComment":" - The first mismatching element defines which sequence is lexicographically less or greater"},{"DocComment":" than the other."},{"DocComment":" - If one sequence is a prefix of another, the shorter sequence is lexicographically less than"},{"DocComment":" the other."},{"DocComment":" - If two sequences have equivalent elements and are of the same length, then the sequences are"},{"DocComment":" lexicographically equal."},{"DocComment":" - An empty sequence is lexicographically less than any non-empty sequence."},{"DocComment":" - Two empty sequences are lexicographically equal."},{"DocComment":""},{"DocComment":" ## How can I implement `Ord`?"},{"DocComment":""},{"DocComment":" `Ord` requires that the type also be [`PartialOrd`], [`PartialEq`], and [`Eq`]."},{"DocComment":""},{"DocComment":" Because `Ord` implies a stronger ordering relationship than [`PartialOrd`], and both `Ord` and"},{"DocComment":" [`PartialOrd`] must agree, you must choose how to implement `Ord` **first**. You can choose to"},{"DocComment":" derive it, or implement it manually. If you derive it, you should derive all four traits. If you"},{"DocComment":" implement it manually, you should manually implement all four traits, based on the"},{"DocComment":" implementation of `Ord`."},{"DocComment":""},{"DocComment":" Here's an example where you want to define the `Character` comparison by `health` and"},{"DocComment":" `experience` only, disregarding the field `mana`:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" use std::cmp::Ordering;"},{"DocComment":""},{"DocComment":" struct Character {"},{"DocComment":" health: u32,"},{"DocComment":" experience: u32,"},{"DocComment":" mana: f32,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl Ord for Character {"},{"DocComment":" fn cmp(&self, other: &Self) -> Ordering {"},{"DocComment":" self.experience"},{"DocComment":" .cmp(&other.experience)"},{"DocComment":" .then(self.health.cmp(&other.health))"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl PartialOrd for Character {"},{"DocComment":" fn partial_cmp(&self, other: &Self) -> Option {"},{"DocComment":" Some(self.cmp(other))"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl PartialEq for Character {"},{"DocComment":" fn eq(&self, other: &Self) -> bool {"},{"DocComment":" self.health == other.health && self.experience == other.experience"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl Eq for Character {}"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" If all you need is to `slice::sort` a type by a field value, it can be simpler to use"},{"DocComment":" `slice::sort_by_key`."},{"DocComment":""},{"DocComment":" ## Examples of incorrect `Ord` implementations"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" use std::cmp::Ordering;"},{"DocComment":""},{"DocComment":" #[derive(Debug)]"},{"DocComment":" struct Character {"},{"DocComment":" health: f32,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl Ord for Character {"},{"DocComment":" fn cmp(&self, other: &Self) -> std::cmp::Ordering {"},{"DocComment":" if self.health < other.health {"},{"DocComment":" Ordering::Less"},{"DocComment":" } else if self.health > other.health {"},{"DocComment":" Ordering::Greater"},{"DocComment":" } else {"},{"DocComment":" Ordering::Equal"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl PartialOrd for Character {"},{"DocComment":" fn partial_cmp(&self, other: &Self) -> Option {"},{"DocComment":" Some(self.cmp(other))"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl PartialEq for Character {"},{"DocComment":" fn eq(&self, other: &Self) -> bool {"},{"DocComment":" self.health == other.health"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl Eq for Character {}"},{"DocComment":""},{"DocComment":" let a = Character { health: 4.5 };"},{"DocComment":" let b = Character { health: f32::NAN };"},{"DocComment":""},{"DocComment":" // Mistake: floating-point values do not form a total order and using the built-in comparison"},{"DocComment":" // operands to implement `Ord` irregardless of that reality does not change it. Use"},{"DocComment":" // `f32::total_cmp` if you need a total order for floating-point values."},{"DocComment":""},{"DocComment":" // Reflexivity requirement of `Ord` is not given."},{"DocComment":" assert!(a == a);"},{"DocComment":" assert!(b != b);"},{"DocComment":""},{"DocComment":" // Antisymmetry requirement of `Ord` is not given. Only one of a < c and c < a is allowed to be"},{"DocComment":" // true, not both or neither."},{"DocComment":" assert_eq!((a < b) as u8 + (b < a) as u8, 0);"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" use std::cmp::Ordering;"},{"DocComment":""},{"DocComment":" #[derive(Debug)]"},{"DocComment":" struct Character {"},{"DocComment":" health: u32,"},{"DocComment":" experience: u32,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl PartialOrd for Character {"},{"DocComment":" fn partial_cmp(&self, other: &Self) -> Option {"},{"DocComment":" Some(self.cmp(other))"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl Ord for Character {"},{"DocComment":" fn cmp(&self, other: &Self) -> std::cmp::Ordering {"},{"DocComment":" if self.health < 50 {"},{"DocComment":" self.health.cmp(&other.health)"},{"DocComment":" } else {"},{"DocComment":" self.experience.cmp(&other.experience)"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" // For performance reasons implementing `PartialEq` this way is not the idiomatic way, but it"},{"DocComment":" // ensures consistent behavior between `PartialEq`, `PartialOrd` and `Ord` in this example."},{"DocComment":" impl PartialEq for Character {"},{"DocComment":" fn eq(&self, other: &Self) -> bool {"},{"DocComment":" self.cmp(other) == Ordering::Equal"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl Eq for Character {}"},{"DocComment":""},{"DocComment":" let a = Character {"},{"DocComment":" health: 3,"},{"DocComment":" experience: 5,"},{"DocComment":" };"},{"DocComment":" let b = Character {"},{"DocComment":" health: 10,"},{"DocComment":" experience: 77,"},{"DocComment":" };"},{"DocComment":" let c = Character {"},{"DocComment":" health: 143,"},{"DocComment":" experience: 2,"},{"DocComment":" };"},{"DocComment":""},{"DocComment":" // Mistake: The implementation of `Ord` compares different fields depending on the value of"},{"DocComment":" // `self.health`, the resulting order is not total."},{"DocComment":""},{"DocComment":" // Transitivity requirement of `Ord` is not given. If a is smaller than b and b is smaller than"},{"DocComment":" // c, by transitive property a must also be smaller than c."},{"DocComment":" assert!(a < b && b < c && c < a);"},{"DocComment":""},{"DocComment":" // Antisymmetry requirement of `Ord` is not given. Only one of a < c and c < a is allowed to be"},{"DocComment":" // true, not both or neither."},{"DocComment":" assert_eq!((a < c) as u8 + (c < a) as u8, 2);"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" The documentation of [`PartialOrd`] contains further examples, for example it's wrong for"},{"DocComment":" [`PartialOrd`] and [`PartialEq`] to disagree."},{"DocComment":""},{"DocComment":" [`cmp`]: Ord::cmp"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"Ord"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":46,"beg":{"line":973,"col":21},"end":{"line":973,"col":31}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":27,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":46,"beg":{"line":973,"col":34},"end":{"line":973,"col":58}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":21,"generics":{"regions":[],"types":[{"Deduplicated":188},{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[],"methods":[{"params":{"regions":[{"index":0,"name":null,"mutability":"Unknown"},{"index":1,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"cmp","attr_info":{"attributes":[{"DocComment":" This method returns an [`Ordering`] between `self` and `other`."},{"DocComment":""},{"DocComment":" By convention, `self.cmp(&other)` returns the ordering matching the expression"},{"DocComment":" `self other` if true."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" use std::cmp::Ordering;"},{"DocComment":""},{"DocComment":" assert_eq!(5.cmp(&10), Ordering::Less);"},{"DocComment":" assert_eq!(10.cmp(&5), Ordering::Greater);"},{"DocComment":" assert_eq!(5.cmp(&5), Ordering::Equal);"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":2229},{"HashConsedValue":[7015,{"Ref":[{"Var":{"Bound":[0,1]}},{"Deduplicated":188},"Shared"]}]}],"output":{"Deduplicated":3978}},"item":{"id":284,"generics":{"regions":[{"Var":{"Bound":[0,0]}},{"Var":{"Bound":[0,1]}}],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6455,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":17,"generics":{"regions":[],"types":[{"Deduplicated":2049}],"const_generics":[],"trait_refs":[]}}}}]}]}}},"kind":{"TraitMethod":[17,0]}},null,null,null],"vtable":null},{"def_id":18,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["Copy",0]}],"span":{"data":{"file_id":1,"beg":{"line":457,"col":0},"end":{"line":457,"col":21}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Types whose values can be duplicated simply by copying bits."},{"DocComment":""},{"DocComment":" By default, variable bindings have 'move semantics.' In other"},{"DocComment":" words:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" #[derive(Debug)]"},{"DocComment":" struct Foo;"},{"DocComment":""},{"DocComment":" let x = Foo;"},{"DocComment":""},{"DocComment":" let y = x;"},{"DocComment":""},{"DocComment":" // `x` has moved into `y`, and so cannot be used"},{"DocComment":""},{"DocComment":" // println!(\"{x:?}\"); // error: use of moved value"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" However, if a type implements `Copy`, it instead has 'copy semantics':"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" // We can derive a `Copy` implementation. `Clone` is also required, as it's"},{"DocComment":" // a supertrait of `Copy`."},{"DocComment":" #[derive(Debug, Copy, Clone)]"},{"DocComment":" struct Foo;"},{"DocComment":""},{"DocComment":" let x = Foo;"},{"DocComment":""},{"DocComment":" let y = x;"},{"DocComment":""},{"DocComment":" // `y` is a copy of `x`"},{"DocComment":""},{"DocComment":" println!(\"{x:?}\"); // A-OK!"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" It's important to note that in these two examples, the only difference is whether you"},{"DocComment":" are allowed to access `x` after the assignment. Under the hood, both a copy and a move"},{"DocComment":" can result in bits being copied in memory, although this is sometimes optimized away."},{"DocComment":""},{"DocComment":" ## How can I implement `Copy`?"},{"DocComment":""},{"DocComment":" There are two ways to implement `Copy` on your type. The simplest is to use `derive`:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" #[derive(Copy, Clone)]"},{"DocComment":" struct MyStruct;"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" You can also implement `Copy` and `Clone` manually:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" struct MyStruct;"},{"DocComment":""},{"DocComment":" impl Copy for MyStruct { }"},{"DocComment":""},{"DocComment":" impl Clone for MyStruct {"},{"DocComment":" fn clone(&self) -> MyStruct {"},{"DocComment":" *self"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" There is a small difference between the two. The `derive` strategy will also place a `Copy`"},{"DocComment":" bound on type parameters:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" #[derive(Clone)]"},{"DocComment":" struct MyStruct(T);"},{"DocComment":""},{"DocComment":" impl Copy for MyStruct { }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" This isn't always desired. For example, shared references (`&T`) can be copied regardless of"},{"DocComment":" whether `T` is `Copy`. Likewise, a generic struct containing markers such as [`PhantomData`]"},{"DocComment":" could potentially be duplicated with a bit-wise copy."},{"DocComment":""},{"DocComment":" ## What's the difference between `Copy` and `Clone`?"},{"DocComment":""},{"DocComment":" Copies happen implicitly, for example as part of an assignment `y = x`. The behavior of"},{"DocComment":" `Copy` is not overloadable; it is always a simple bit-wise copy."},{"DocComment":""},{"DocComment":" Cloning is an explicit action, `x.clone()`. The implementation of [`Clone`] can"},{"DocComment":" provide any type-specific behavior necessary to duplicate values safely. For example,"},{"DocComment":" the implementation of [`Clone`] for [`String`] needs to copy the pointed-to string"},{"DocComment":" buffer in the heap. A simple bitwise copy of [`String`] values would merely copy the"},{"DocComment":" pointer, leading to a double free down the line. For this reason, [`String`] is [`Clone`]"},{"DocComment":" but not `Copy`."},{"DocComment":""},{"DocComment":" [`Clone`] is a supertrait of `Copy`, so everything which is `Copy` must also implement"},{"DocComment":" [`Clone`]. If a type is `Copy` then its [`Clone`] implementation only needs to return `*self`"},{"DocComment":" (see the example above)."},{"DocComment":""},{"DocComment":" ## When can my type be `Copy`?"},{"DocComment":""},{"DocComment":" A type can implement `Copy` if all of its components implement `Copy`. For example, this"},{"DocComment":" struct can be `Copy`:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" # #[allow(dead_code)]"},{"DocComment":" #[derive(Copy, Clone)]"},{"DocComment":" struct Point {"},{"DocComment":" x: i32,"},{"DocComment":" y: i32,"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" A struct can be `Copy`, and [`i32`] is `Copy`, therefore `Point` is eligible to be `Copy`."},{"DocComment":" By contrast, consider"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" # #![allow(dead_code)]"},{"DocComment":" # struct Point;"},{"DocComment":" struct PointList {"},{"DocComment":" points: Vec,"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" The struct `PointList` cannot implement `Copy`, because [`Vec`] is not `Copy`. If we"},{"DocComment":" attempt to derive a `Copy` implementation, we'll get an error:"},{"DocComment":""},{"DocComment":" ```text"},{"DocComment":" the trait `Copy` cannot be implemented for this type; field `points` does not implement `Copy`"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" Shared references (`&T`) are also `Copy`, so a type can be `Copy`, even when it holds"},{"DocComment":" shared references of types `T` that are *not* `Copy`. Consider the following struct,"},{"DocComment":" which can implement `Copy`, because it only holds a *shared reference* to our non-`Copy`"},{"DocComment":" type `PointList` from above:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" # #![allow(dead_code)]"},{"DocComment":" # struct PointList;"},{"DocComment":" #[derive(Copy, Clone)]"},{"DocComment":" struct PointListWrapper<'a> {"},{"DocComment":" point_list_ref: &'a PointList,"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" ## When *can't* my type be `Copy`?"},{"DocComment":""},{"DocComment":" Some types can't be copied safely. For example, copying `&mut T` would create an aliased"},{"DocComment":" mutable reference. Copying [`String`] would duplicate responsibility for managing the"},{"DocComment":" [`String`]'s buffer, leading to a double free."},{"DocComment":""},{"DocComment":" Generalizing the latter case, any type implementing [`Drop`] can't be `Copy`, because it's"},{"DocComment":" managing some resource besides its own [`size_of::`] bytes."},{"DocComment":""},{"DocComment":" If you try to implement `Copy` on a struct or enum containing non-`Copy` data, you will get"},{"DocComment":" the error [E0204]."},{"DocComment":""},{"DocComment":" [E0204]: ../../error_codes/E0204.html"},{"DocComment":""},{"DocComment":" ## When *should* my type be `Copy`?"},{"DocComment":""},{"DocComment":" Generally speaking, if your type _can_ implement `Copy`, it should. Keep in mind, though,"},{"DocComment":" that implementing `Copy` is part of the public API of your type. If the type might become"},{"DocComment":" non-`Copy` in the future, it could be prudent to omit the `Copy` implementation now, to"},{"DocComment":" avoid a breaking API change."},{"DocComment":""},{"DocComment":" ## Additional implementors"},{"DocComment":""},{"DocComment":" In addition to the [implementors listed below][impls],"},{"DocComment":" the following types also implement `Copy`:"},{"DocComment":""},{"DocComment":" * Function item types (i.e., the distinct types defined for each function)"},{"DocComment":" * Function pointer types (e.g., `fn() -> i32`)"},{"DocComment":" * Closure types, if they capture no value from the environment"},{"DocComment":" or if all such captured values implement `Copy` themselves."},{"DocComment":" Note that variables captured by shared reference always implement `Copy`"},{"DocComment":" (even if the referent doesn't),"},{"DocComment":" while variables captured by mutable reference never implement `Copy`."},{"DocComment":""},{"DocComment":" [`Vec`]: ../../std/vec/struct.Vec.html"},{"DocComment":" [`String`]: ../../std/string/struct.String.html"},{"DocComment":" [`size_of::`]: size_of"},{"DocComment":" [impls]: #implementors"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"copy"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":1,"beg":{"line":457,"col":0},"end":{"line":459,"col":1}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":1,"beg":{"line":457,"col":16},"end":{"line":457,"col":21}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":8,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[],"methods":[],"vtable":null},{"def_id":19,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["accum",0]},{"Ident":["Sum",0]}],"span":{"data":{"file_id":52,"beg":{"line":17,"col":0},"end":{"line":17,"col":30}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Trait to represent types that can be created by summing up an iterator."},{"DocComment":""},{"DocComment":" This trait is used to implement [`Iterator::sum()`]. Types which implement"},{"DocComment":" this trait can be generated by using the [`sum()`] method on an iterator."},{"DocComment":" Like [`FromIterator`], this trait should rarely be called directly."},{"DocComment":""},{"DocComment":" [`sum()`]: Iterator::sum"},{"DocComment":" [`FromIterator`]: iter::FromIterator"},{"Unknown":{"path":"diagnostic::on_unimplemented","args":"message =\n\"a value of type `{Self}` cannot be made by summing an iterator over elements of type `{A}`\",\nlabel =\n\"value of type `{Self}` cannot be made by summing a `std::iter::Iterator`\""}}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"Self"},{"index":1,"name":"A"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":52,"beg":{"line":17,"col":25},"end":{"line":17,"col":30}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":52,"beg":{"line":17,"col":14},"end":{"line":17,"col":22}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[],"methods":[{"params":{"regions":[],"types":[{"index":0,"name":"I"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":52,"beg":{"line":21,"col":11},"end":{"line":21,"col":12}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":52,"beg":{"line":21,"col":14},"end":{"line":21,"col":32}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[{"regions":[],"skip_binder":{"trait_ref":{"Deduplicated":5171},"type_id":0,"ty":{"Deduplicated":2621}}}]},"skip_binder":{"name":"sum","attr_info":{"attributes":[{"DocComment":" Takes an iterator and generates `Self` from the elements by \"summing up\""},{"DocComment":" the items."}],"inline":null,"rename":null,"public":true},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":220}],"output":{"Deduplicated":188}},"item":{"id":288,"generics":{"regions":[],"types":[{"Deduplicated":188},{"Deduplicated":2023},{"Deduplicated":220}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6456,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":19,"generics":{"regions":[],"types":[{"Deduplicated":2049},{"Deduplicated":2621}],"const_generics":[],"trait_refs":[]}}}}]},{"Deduplicated":223},{"Deduplicated":5166}]}}},"kind":{"TraitMethod":[19,0]}}],"vtable":null},{"def_id":20,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["accum",0]},{"Ident":["Product",0]}],"span":{"data":{"file_id":52,"beg":{"line":38,"col":0},"end":{"line":38,"col":34}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Trait to represent types that can be created by multiplying elements of an"},{"DocComment":" iterator."},{"DocComment":""},{"DocComment":" This trait is used to implement [`Iterator::product()`]. Types which implement"},{"DocComment":" this trait can be generated by using the [`product()`] method on an iterator."},{"DocComment":" Like [`FromIterator`], this trait should rarely be called directly."},{"DocComment":""},{"DocComment":" [`product()`]: Iterator::product"},{"DocComment":" [`FromIterator`]: iter::FromIterator"},{"Unknown":{"path":"diagnostic::on_unimplemented","args":"message =\n\"a value of type `{Self}` cannot be made by multiplying all elements of type `{A}` from an iterator\",\nlabel =\n\"value of type `{Self}` cannot be made by multiplying all elements from a `std::iter::Iterator`\""}}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"Self"},{"index":1,"name":"A"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":52,"beg":{"line":38,"col":29},"end":{"line":38,"col":34}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":52,"beg":{"line":38,"col":18},"end":{"line":38,"col":26}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[],"methods":[{"params":{"regions":[],"types":[{"index":0,"name":"I"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":52,"beg":{"line":42,"col":15},"end":{"line":42,"col":16}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":52,"beg":{"line":42,"col":18},"end":{"line":42,"col":36}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[{"regions":[],"skip_binder":{"trait_ref":{"Deduplicated":5171},"type_id":0,"ty":{"Deduplicated":2621}}}]},"skip_binder":{"name":"product","attr_info":{"attributes":[{"DocComment":" Takes an iterator and generates `Self` from the elements by multiplying"},{"DocComment":" the items."}],"inline":null,"rename":null,"public":true},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":220}],"output":{"Deduplicated":188}},"item":{"id":289,"generics":{"regions":[],"types":[{"Deduplicated":188},{"Deduplicated":2023},{"Deduplicated":220}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6457,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":20,"generics":{"regions":[],"types":[{"Deduplicated":2049},{"Deduplicated":2621}],"const_generics":[],"trait_refs":[]}}}}]},{"Deduplicated":223},{"Deduplicated":5166}]}}},"kind":{"TraitMethod":[20,0]}}],"vtable":null},{"def_id":21,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["PartialOrd",0]}],"span":{"data":{"file_id":46,"beg":{"line":1358,"col":0},"end":{"line":1359,"col":41}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Trait for types that form a [partial order](https://en.wikipedia.org/wiki/Partial_order)."},{"DocComment":""},{"DocComment":" The `lt`, `le`, `gt`, and `ge` methods of this trait can be called using the `<`, `<=`, `>`, and"},{"DocComment":" `>=` operators, respectively."},{"DocComment":""},{"DocComment":" This trait should **only** contain the comparison logic for a type **if one plans on only"},{"DocComment":" implementing `PartialOrd` but not [`Ord`]**. Otherwise the comparison logic should be in [`Ord`]"},{"DocComment":" and this trait implemented with `Some(self.cmp(other))`."},{"DocComment":""},{"DocComment":" The methods of this trait must be consistent with each other and with those of [`PartialEq`]."},{"DocComment":" The following conditions must hold:"},{"DocComment":""},{"DocComment":" 1. `a == b` if and only if `partial_cmp(a, b) == Some(Equal)`."},{"DocComment":" 2. `a < b` if and only if `partial_cmp(a, b) == Some(Less)`"},{"DocComment":" 3. `a > b` if and only if `partial_cmp(a, b) == Some(Greater)`"},{"DocComment":" 4. `a <= b` if and only if `a < b || a == b`"},{"DocComment":" 5. `a >= b` if and only if `a > b || a == b`"},{"DocComment":" 6. `a != b` if and only if `!(a == b)`."},{"DocComment":""},{"DocComment":" Conditions 2–5 above are ensured by the default implementation. Condition 6 is already ensured"},{"DocComment":" by [`PartialEq`]."},{"DocComment":""},{"DocComment":" If [`Ord`] is also implemented for `Self` and `Rhs`, it must also be consistent with"},{"DocComment":" `partial_cmp` (see the documentation of that trait for the exact requirements). It's easy to"},{"DocComment":" accidentally make them disagree by deriving some of the traits and manually implementing others."},{"DocComment":""},{"DocComment":" The comparison relations must satisfy the following conditions (for all `a`, `b`, `c` of type"},{"DocComment":" `A`, `B`, `C`):"},{"DocComment":""},{"DocComment":" - **Transitivity**: if `A: PartialOrd` and `B: PartialOrd` and `A: PartialOrd`, then `a"},{"DocComment":" < b` and `b < c` implies `a < c`. The same must hold for both `==` and `>`. This must also"},{"DocComment":" work for longer chains, such as when `A: PartialOrd`, `B: PartialOrd`, `C:"},{"DocComment":" PartialOrd`, and `A: PartialOrd` all exist."},{"DocComment":" - **Duality**: if `A: PartialOrd` and `B: PartialOrd`, then `a < b` if and only if `b >"},{"DocComment":" a`."},{"DocComment":""},{"DocComment":" Note that the `B: PartialOrd` (dual) and `A: PartialOrd` (transitive) impls are not forced"},{"DocComment":" to exist, but these requirements apply whenever they do exist."},{"DocComment":""},{"DocComment":" Violating these requirements is a logic error. The behavior resulting from a logic error is not"},{"DocComment":" specified, but users of the trait must ensure that such logic errors do *not* result in"},{"DocComment":" undefined behavior. This means that `unsafe` code **must not** rely on the correctness of these"},{"DocComment":" methods."},{"DocComment":""},{"DocComment":" ## Cross-crate considerations"},{"DocComment":""},{"DocComment":" Upholding the requirements stated above can become tricky when one crate implements `PartialOrd`"},{"DocComment":" for a type of another crate (i.e., to allow comparing one of its own types with a type from the"},{"DocComment":" standard library). The recommendation is to never implement this trait for a foreign type. In"},{"DocComment":" other words, such a crate should do `impl PartialOrd for LocalType`, but it should"},{"DocComment":" *not* do `impl PartialOrd for ForeignType`."},{"DocComment":""},{"DocComment":" This avoids the problem of transitive chains that criss-cross crate boundaries: for all local"},{"DocComment":" types `T`, you may assume that no other crate will add `impl`s that allow comparing `T < U`. In"},{"DocComment":" other words, if other crates add `impl`s that allow building longer transitive chains `U1 < ..."},{"DocComment":" < T < V1 < ...`, then all the types that appear to the right of `T` must be types that the crate"},{"DocComment":" defining `T` already knows about. This rules out transitive chains where downstream crates can"},{"DocComment":" add new `impl`s that \"stitch together\" comparisons of foreign types in ways that violate"},{"DocComment":" transitivity."},{"DocComment":""},{"DocComment":" Not having such foreign `impl`s also avoids forward compatibility issues where one crate adding"},{"DocComment":" more `PartialOrd` implementations can cause build failures in downstream crates."},{"DocComment":""},{"DocComment":" ## Corollaries"},{"DocComment":""},{"DocComment":" The following corollaries follow from the above requirements:"},{"DocComment":""},{"DocComment":" - irreflexivity of `<` and `>`: `!(a < a)`, `!(a > a)`"},{"DocComment":" - transitivity of `>`: if `a > b` and `b > c` then `a > c`"},{"DocComment":" - duality of `partial_cmp`: `partial_cmp(a, b) == partial_cmp(b, a).map(Ordering::reverse)`"},{"DocComment":""},{"DocComment":" ## Strict and non-strict partial orders"},{"DocComment":""},{"DocComment":" The `<` and `>` operators behave according to a *strict* partial order. However, `<=` and `>=`"},{"DocComment":" do **not** behave according to a *non-strict* partial order. That is because mathematically, a"},{"DocComment":" non-strict partial order would require reflexivity, i.e. `a <= a` would need to be true for"},{"DocComment":" every `a`. This isn't always the case for types that implement `PartialOrd`, for example:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let a = f64::NAN;"},{"DocComment":" assert_eq!(a <= a, false);"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" ## Derivable"},{"DocComment":""},{"DocComment":" This trait can be used with `#[derive]`."},{"DocComment":""},{"DocComment":" When `derive`d on structs, it will produce a"},{"DocComment":" [lexicographic](https://en.wikipedia.org/wiki/Lexicographic_order) ordering based on the"},{"DocComment":" top-to-bottom declaration order of the struct's members."},{"DocComment":""},{"DocComment":" When `derive`d on enums, variants are primarily ordered by their discriminants. Secondarily,"},{"DocComment":" they are ordered by their fields. By default, the discriminant is smallest for variants at the"},{"DocComment":" top, and largest for variants at the bottom. Here's an example:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" #[derive(PartialEq, PartialOrd)]"},{"DocComment":" enum E {"},{"DocComment":" Top,"},{"DocComment":" Bottom,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" assert!(E::Top < E::Bottom);"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" However, manually setting the discriminants can override this default behavior:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" #[derive(PartialEq, PartialOrd)]"},{"DocComment":" enum E {"},{"DocComment":" Top = 2,"},{"DocComment":" Bottom = 1,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" assert!(E::Bottom < E::Top);"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" ## How can I implement `PartialOrd`?"},{"DocComment":""},{"DocComment":" `PartialOrd` only requires implementation of the [`partial_cmp`] method, with the others"},{"DocComment":" generated from default implementations."},{"DocComment":""},{"DocComment":" However it remains possible to implement the others separately for types which do not have a"},{"DocComment":" total order. For example, for floating point numbers, `NaN < 0 == false` and `NaN >= 0 == false`"},{"DocComment":" (cf. IEEE 754-2008 section 5.11)."},{"DocComment":""},{"DocComment":" `PartialOrd` requires your type to be [`PartialEq`]."},{"DocComment":""},{"DocComment":" If your type is [`Ord`], you can implement [`partial_cmp`] by using [`cmp`]:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" use std::cmp::Ordering;"},{"DocComment":""},{"DocComment":" struct Person {"},{"DocComment":" id: u32,"},{"DocComment":" name: String,"},{"DocComment":" height: u32,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl PartialOrd for Person {"},{"DocComment":" fn partial_cmp(&self, other: &Self) -> Option {"},{"DocComment":" Some(self.cmp(other))"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl Ord for Person {"},{"DocComment":" fn cmp(&self, other: &Self) -> Ordering {"},{"DocComment":" self.height.cmp(&other.height)"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl PartialEq for Person {"},{"DocComment":" fn eq(&self, other: &Self) -> bool {"},{"DocComment":" self.height == other.height"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl Eq for Person {}"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" You may also find it useful to use [`partial_cmp`] on your type's fields. Here is an example of"},{"DocComment":" `Person` types who have a floating-point `height` field that is the only field to be used for"},{"DocComment":" sorting:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" use std::cmp::Ordering;"},{"DocComment":""},{"DocComment":" struct Person {"},{"DocComment":" id: u32,"},{"DocComment":" name: String,"},{"DocComment":" height: f64,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl PartialOrd for Person {"},{"DocComment":" fn partial_cmp(&self, other: &Self) -> Option {"},{"DocComment":" self.height.partial_cmp(&other.height)"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl PartialEq for Person {"},{"DocComment":" fn eq(&self, other: &Self) -> bool {"},{"DocComment":" self.height == other.height"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" ## Examples of incorrect `PartialOrd` implementations"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" use std::cmp::Ordering;"},{"DocComment":""},{"DocComment":" #[derive(PartialEq, Debug)]"},{"DocComment":" struct Character {"},{"DocComment":" health: u32,"},{"DocComment":" experience: u32,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl PartialOrd for Character {"},{"DocComment":" fn partial_cmp(&self, other: &Self) -> Option {"},{"DocComment":" Some(self.health.cmp(&other.health))"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" let a = Character {"},{"DocComment":" health: 10,"},{"DocComment":" experience: 5,"},{"DocComment":" };"},{"DocComment":" let b = Character {"},{"DocComment":" health: 10,"},{"DocComment":" experience: 77,"},{"DocComment":" };"},{"DocComment":""},{"DocComment":" // Mistake: `PartialEq` and `PartialOrd` disagree with each other."},{"DocComment":""},{"DocComment":" assert_eq!(a.partial_cmp(&b).unwrap(), Ordering::Equal); // a == b according to `PartialOrd`."},{"DocComment":" assert_ne!(a, b); // a != b according to `PartialEq`."},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let x: u32 = 0;"},{"DocComment":" let y: u32 = 1;"},{"DocComment":""},{"DocComment":" assert_eq!(x < y, true);"},{"DocComment":" assert_eq!(x.lt(&y), true);"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" [`partial_cmp`]: PartialOrd::partial_cmp"},{"DocComment":" [`cmp`]: Ord::cmp"},{"Unknown":{"path":"rustc_on_unimplemented","args":"message = \"can't compare `{Self}` with `{Rhs}`\", label =\n\"no implementation for `{Self} < {Rhs}` and `{Self} > {Rhs}`\",\nappend_const_msg"}}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"partial_ord"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"},{"index":1,"name":"Rhs"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":46,"beg":{"line":1359,"col":4},"end":{"line":1359,"col":26}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":22,"generics":{"regions":[],"types":[{"Deduplicated":188},{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[],"methods":[{"params":{"regions":[{"index":0,"name":null,"mutability":"Unknown"},{"index":1,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"partial_cmp","attr_info":{"attributes":[{"DocComment":" This method returns an ordering between `self` and `other` values if one exists."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" use std::cmp::Ordering;"},{"DocComment":""},{"DocComment":" let result = 1.0.partial_cmp(&2.0);"},{"DocComment":" assert_eq!(result, Some(Ordering::Less));"},{"DocComment":""},{"DocComment":" let result = 1.0.partial_cmp(&1.0);"},{"DocComment":" assert_eq!(result, Some(Ordering::Equal));"},{"DocComment":""},{"DocComment":" let result = 2.0.partial_cmp(&1.0);"},{"DocComment":" assert_eq!(result, Some(Ordering::Greater));"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" When comparison is impossible:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let result = f64::NAN.partial_cmp(&1.0);"},{"DocComment":" assert_eq!(result, None);"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":2229},{"HashConsedValue":[5742,{"Ref":[{"Var":{"Bound":[0,1]}},{"Deduplicated":2023},"Shared"]}]}],"output":{"Deduplicated":4347}},"item":{"id":290,"generics":{"regions":[{"Var":{"Bound":[0,0]}},{"Var":{"Bound":[0,1]}}],"types":[{"Deduplicated":188},{"Deduplicated":2023}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6458,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":21,"generics":{"regions":[],"types":[{"Deduplicated":2049},{"Deduplicated":2621}],"const_generics":[],"trait_refs":[]}}}}]}]}}},"kind":{"TraitMethod":[21,0]}},null,null,null,null,null,null,null,null],"vtable":{"id":{"Adt":48},"generics":{"regions":[],"types":[{"Deduplicated":2027}],"const_generics":[],"trait_refs":[]}}},{"def_id":22,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["PartialEq",0]}],"span":{"data":{"file_id":46,"beg":{"line":251,"col":0},"end":{"line":251,"col":65}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Trait for comparisons using the equality operator."},{"DocComment":""},{"DocComment":" Implementing this trait for types provides the `==` and `!=` operators for"},{"DocComment":" those types."},{"DocComment":""},{"DocComment":" `x.eq(y)` can also be written `x == y`, and `x.ne(y)` can be written `x != y`."},{"DocComment":" We use the easier-to-read infix notation in the remainder of this documentation."},{"DocComment":""},{"DocComment":" This trait allows for comparisons using the equality operator, for types"},{"DocComment":" that do not have a full equivalence relation. For example, in floating point"},{"DocComment":" numbers `NaN != NaN`, so floating point types implement `PartialEq` but not"},{"DocComment":" [`trait@Eq`]. Formally speaking, when `Rhs == Self`, this trait corresponds"},{"DocComment":" to a [partial equivalence relation]."},{"DocComment":""},{"DocComment":" [partial equivalence relation]: https://en.wikipedia.org/wiki/Partial_equivalence_relation"},{"DocComment":""},{"DocComment":" Implementations must ensure that `eq` and `ne` are consistent with each other:"},{"DocComment":""},{"DocComment":" - `a != b` if and only if `!(a == b)`."},{"DocComment":""},{"DocComment":" The default implementation of `ne` provides this consistency and is almost"},{"DocComment":" always sufficient. It should not be overridden without very good reason."},{"DocComment":""},{"DocComment":" If [`PartialOrd`] or [`Ord`] are also implemented for `Self` and `Rhs`, their methods must also"},{"DocComment":" be consistent with `PartialEq` (see the documentation of those traits for the exact"},{"DocComment":" requirements). It's easy to accidentally make them disagree by deriving some of the traits and"},{"DocComment":" manually implementing others."},{"DocComment":""},{"DocComment":" The equality relation `==` must satisfy the following conditions"},{"DocComment":" (for all `a`, `b`, `c` of type `A`, `B`, `C`):"},{"DocComment":""},{"DocComment":" - **Symmetry**: if `A: PartialEq` and `B: PartialEq`, then **`a == b`"},{"DocComment":" implies `b == a`**; and"},{"DocComment":""},{"DocComment":" - **Transitivity**: if `A: PartialEq` and `B: PartialEq` and `A:"},{"DocComment":" PartialEq`, then **`a == b` and `b == c` implies `a == c`**."},{"DocComment":" This must also work for longer chains, such as when `A: PartialEq`, `B: PartialEq`,"},{"DocComment":" `C: PartialEq`, and `A: PartialEq` all exist."},{"DocComment":""},{"DocComment":" Note that the `B: PartialEq` (symmetric) and `A: PartialEq`"},{"DocComment":" (transitive) impls are not forced to exist, but these requirements apply"},{"DocComment":" whenever they do exist."},{"DocComment":""},{"DocComment":" Violating these requirements is a logic error. The behavior resulting from a logic error is not"},{"DocComment":" specified, but users of the trait must ensure that such logic errors do *not* result in"},{"DocComment":" undefined behavior. This means that `unsafe` code **must not** rely on the correctness of these"},{"DocComment":" methods."},{"DocComment":""},{"DocComment":" ## Cross-crate considerations"},{"DocComment":""},{"DocComment":" Upholding the requirements stated above can become tricky when one crate implements `PartialEq`"},{"DocComment":" for a type of another crate (i.e., to allow comparing one of its own types with a type from the"},{"DocComment":" standard library). The recommendation is to never implement this trait for a foreign type. In"},{"DocComment":" other words, such a crate should do `impl PartialEq for LocalType`, but it should"},{"DocComment":" *not* do `impl PartialEq for ForeignType`."},{"DocComment":""},{"DocComment":" This avoids the problem of transitive chains that criss-cross crate boundaries: for all local"},{"DocComment":" types `T`, you may assume that no other crate will add `impl`s that allow comparing `T == U`. In"},{"DocComment":" other words, if other crates add `impl`s that allow building longer transitive chains `U1 == ..."},{"DocComment":" == T == V1 == ...`, then all the types that appear to the right of `T` must be types that the"},{"DocComment":" crate defining `T` already knows about. This rules out transitive chains where downstream crates"},{"DocComment":" can add new `impl`s that \"stitch together\" comparisons of foreign types in ways that violate"},{"DocComment":" transitivity."},{"DocComment":""},{"DocComment":" Not having such foreign `impl`s also avoids forward compatibility issues where one crate adding"},{"DocComment":" more `PartialEq` implementations can cause build failures in downstream crates."},{"DocComment":""},{"DocComment":" ## Derivable"},{"DocComment":""},{"DocComment":" This trait can be used with `#[derive]`. When `derive`d on structs, two"},{"DocComment":" instances are equal if all fields are equal, and not equal if any fields"},{"DocComment":" are not equal. When `derive`d on enums, two instances are equal if they"},{"DocComment":" are the same variant and all fields are equal."},{"DocComment":""},{"DocComment":" ## How can I implement `PartialEq`?"},{"DocComment":""},{"DocComment":" An example implementation for a domain in which two books are considered"},{"DocComment":" the same book if their ISBN matches, even if the formats differ:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" enum BookFormat {"},{"DocComment":" Paperback,"},{"DocComment":" Hardback,"},{"DocComment":" Ebook,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" struct Book {"},{"DocComment":" isbn: i32,"},{"DocComment":" format: BookFormat,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl PartialEq for Book {"},{"DocComment":" fn eq(&self, other: &Self) -> bool {"},{"DocComment":" self.isbn == other.isbn"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" let b1 = Book { isbn: 3, format: BookFormat::Paperback };"},{"DocComment":" let b2 = Book { isbn: 3, format: BookFormat::Ebook };"},{"DocComment":" let b3 = Book { isbn: 10, format: BookFormat::Paperback };"},{"DocComment":""},{"DocComment":" assert!(b1 == b2);"},{"DocComment":" assert!(b1 != b3);"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" ## How can I compare two different types?"},{"DocComment":""},{"DocComment":" The type you can compare with is controlled by `PartialEq`'s type parameter."},{"DocComment":" For example, let's tweak our previous code a bit:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" // The derive implements == comparisons"},{"DocComment":" #[derive(PartialEq)]"},{"DocComment":" enum BookFormat {"},{"DocComment":" Paperback,"},{"DocComment":" Hardback,"},{"DocComment":" Ebook,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" struct Book {"},{"DocComment":" isbn: i32,"},{"DocComment":" format: BookFormat,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" // Implement == comparisons"},{"DocComment":" impl PartialEq for Book {"},{"DocComment":" fn eq(&self, other: &BookFormat) -> bool {"},{"DocComment":" self.format == *other"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" // Implement == comparisons"},{"DocComment":" impl PartialEq for BookFormat {"},{"DocComment":" fn eq(&self, other: &Book) -> bool {"},{"DocComment":" *self == other.format"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" let b1 = Book { isbn: 3, format: BookFormat::Paperback };"},{"DocComment":""},{"DocComment":" assert!(b1 == BookFormat::Paperback);"},{"DocComment":" assert!(BookFormat::Ebook != b1);"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" By changing `impl PartialEq for Book` to `impl PartialEq for Book`,"},{"DocComment":" we allow `BookFormat`s to be compared with `Book`s."},{"DocComment":""},{"DocComment":" A comparison like the one above, which ignores some fields of the struct,"},{"DocComment":" can be dangerous. It can easily lead to an unintended violation of the"},{"DocComment":" requirements for a partial equivalence relation. For example, if we kept"},{"DocComment":" the above implementation of `PartialEq` for `BookFormat` and added an"},{"DocComment":" implementation of `PartialEq` for `Book` (either via a `#[derive]` or"},{"DocComment":" via the manual implementation from the first example) then the result would"},{"DocComment":" violate transitivity:"},{"DocComment":""},{"DocComment":" ```should_panic"},{"DocComment":" #[derive(PartialEq)]"},{"DocComment":" enum BookFormat {"},{"DocComment":" Paperback,"},{"DocComment":" Hardback,"},{"DocComment":" Ebook,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" #[derive(PartialEq)]"},{"DocComment":" struct Book {"},{"DocComment":" isbn: i32,"},{"DocComment":" format: BookFormat,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl PartialEq for Book {"},{"DocComment":" fn eq(&self, other: &BookFormat) -> bool {"},{"DocComment":" self.format == *other"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl PartialEq for BookFormat {"},{"DocComment":" fn eq(&self, other: &Book) -> bool {"},{"DocComment":" *self == other.format"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" fn main() {"},{"DocComment":" let b1 = Book { isbn: 1, format: BookFormat::Paperback };"},{"DocComment":" let b2 = Book { isbn: 2, format: BookFormat::Paperback };"},{"DocComment":""},{"DocComment":" assert!(b1 == BookFormat::Paperback);"},{"DocComment":" assert!(BookFormat::Paperback == b2);"},{"DocComment":""},{"DocComment":" // The following should hold by transitivity but doesn't."},{"DocComment":" assert!(b1 == b2); // <-- PANICS"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let x: u32 = 0;"},{"DocComment":" let y: u32 = 1;"},{"DocComment":""},{"DocComment":" assert_eq!(x == y, false);"},{"DocComment":" assert_eq!(x.eq(&y), false);"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" [`eq`]: PartialEq::eq"},{"DocComment":" [`ne`]: PartialEq::ne"},{"Unknown":{"path":"rustc_on_unimplemented","args":"message = \"can't compare `{Self}` with `{Rhs}`\", label =\n\"no implementation for `{Self} == {Rhs}`\", append_const_msg"}}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"eq"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"},{"index":1,"name":"Rhs"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[],"consts":[],"types":[],"methods":[{"params":{"regions":[{"index":0,"name":null,"mutability":"Unknown"},{"index":1,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"eq","attr_info":{"attributes":[{"DocComment":" Tests for `self` and `other` values to be equal, and is used by `==`."}],"inline":null,"rename":null,"public":true},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":2229},{"Deduplicated":5742}],"output":{"Deduplicated":235}},"item":{"id":299,"generics":{"regions":[{"Var":{"Bound":[0,0]}},{"Var":{"Bound":[0,1]}}],"types":[{"Deduplicated":188},{"Deduplicated":2023}],"const_generics":[],"trait_refs":[{"HashConsedValue":[7016,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":22,"generics":{"regions":[],"types":[{"Deduplicated":2049},{"Deduplicated":2621}],"const_generics":[],"trait_refs":[]}}}}]}]}}},"kind":{"TraitMethod":[22,0]}},null],"vtable":{"id":{"Adt":49},"generics":{"regions":[],"types":[{"Deduplicated":2027}],"const_generics":[],"trait_refs":[]}}},{"def_id":23,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["zip",0]},{"Ident":["TrustedRandomAccessNoCoerce",0]}],"span":{"data":{"file_id":24,"beg":{"line":585,"col":0},"end":{"line":585,"col":51}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Like [`TrustedRandomAccess`] but without any of the requirements / guarantees around"},{"DocComment":" coercions to supertypes after `__iterator_get_unchecked` (they aren’t allowed here!), and"},{"DocComment":" without the requirement that subtypes / supertypes implement `TrustedRandomAccessNoCoerce`."},{"DocComment":""},{"DocComment":" This trait was created in PR #85874 to fix soundness issue #85873 without performance regressions."},{"DocComment":" It is subject to change as we might want to build a more generally useful (for performance"},{"DocComment":" optimizations) and more sophisticated trait or trait hierarchy that replaces or extends"},{"DocComment":" [`TrustedRandomAccess`] and `TrustedRandomAccessNoCoerce`."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":24,"beg":{"line":585,"col":46},"end":{"line":585,"col":51}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"consts":[{"name":"MAY_HAVE_SIDE_EFFECT","attr_info":{"attributes":[{"DocComment":" `true` if getting an iterator element may have side effects."},{"DocComment":" Remember to take inner iterators into account."}],"inline":null,"rename":null,"public":true},"ty":{"Deduplicated":235},"default":null}],"types":[],"methods":[null],"vtable":null},{"def_id":24,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["try_trait",0]},{"Ident":["FromResidual",0]}],"span":{"data":{"file_id":42,"beg":{"line":310,"col":0},"end":{"line":310,"col":57}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Used to specify which residuals can be converted into which [`crate::ops::Try`] types."},{"DocComment":""},{"DocComment":" Every `Try` type needs to be recreatable from its own associated"},{"DocComment":" `Residual` type, but can also have additional `FromResidual` implementations"},{"DocComment":" to support interconversion with other `Try` types."},{"Unknown":{"path":"rustc_on_unimplemented","args":"on(all(from_desugaring = \"QuestionMark\", Self = \"core::result::Result\",\nR = \"core::option::Option\",), message =\n\"the `?` operator can only be used on `Result`s, not `Option`s, \\\n in {ItemContext} that returns `Result`\",\nlabel = \"use `.ok_or(...)?` to provide an error compatible with `{Self}`\",\nparent_label = \"this function returns a `Result`\"),\non(all(from_desugaring = \"QuestionMark\", Self =\n\"core::result::Result\",), message =\n\"the `?` operator can only be used on `Result`s \\\n in {ItemContext} that returns `Result`\",\nlabel = \"this `?` produces `{R}`, which is incompatible with `{Self}`\",\nparent_label = \"this function returns a `Result`\"),\non(all(from_desugaring = \"QuestionMark\", Self = \"core::option::Option\", R =\n\"core::result::Result\",), message =\n\"the `?` operator can only be used on `Option`s, not `Result`s, \\\n in {ItemContext} that returns `Option`\",\nlabel = \"use `.ok()?` if you want to discard the `{R}` error information\",\nparent_label = \"this function returns an `Option`\"),\non(all(from_desugaring = \"QuestionMark\", Self = \"core::option::Option\",),\nmessage =\n\"the `?` operator can only be used on `Option`s \\\n in {ItemContext} that returns `Option`\",\nlabel = \"this `?` produces `{R}`, which is incompatible with `{Self}`\",\nparent_label = \"this function returns an `Option`\"),\non(all(from_desugaring = \"QuestionMark\", Self =\n\"core::ops::control_flow::ControlFlow\", R =\n\"core::ops::control_flow::ControlFlow\",), message =\n\"the `?` operator in {ItemContext} that returns `ControlFlow` \\\n can only be used on other `ControlFlow`s (with the same Break type)\",\nlabel = \"this `?` produces `{R}`, which is incompatible with `{Self}`\",\nparent_label = \"this function returns a `ControlFlow`\", note =\n\"unlike `Result`, there's no `From`-conversion performed for `ControlFlow`\"),\non(all(from_desugaring = \"QuestionMark\", Self =\n\"core::ops::control_flow::ControlFlow\",), message =\n\"the `?` operator can only be used on `ControlFlow`s \\\n in {ItemContext} that returns `ControlFlow`\",\nlabel = \"this `?` produces `{R}`, which is incompatible with `{Self}`\",\nparent_label = \"this function returns a `ControlFlow`\",),\non(all(from_desugaring = \"QuestionMark\"), message =\n\"the `?` operator can only be used in {ItemContext} \\\n that returns `Result` or `Option` \\\n (or another type that implements `{This}`)\",\nlabel = \"cannot use the `?` operator in {ItemContext} that returns `{Self}`\",\nparent_label =\n\"this function should return `Result` or `Option` to accept `?`\"),"}}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"FromResidual"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"},{"index":1,"name":"R"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":42,"beg":{"line":310,"col":0},"end":{"line":334,"col":1}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":42,"beg":{"line":310,"col":29},"end":{"line":310,"col":56}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[],"methods":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"from_residual","attr_info":{"attributes":[{"DocComment":" Constructs the type from a compatible `Residual` type."},{"DocComment":""},{"DocComment":" This should be implemented consistently with the `branch` method such"},{"DocComment":" that applying the `?` operator will get back an equivalent residual:"},{"DocComment":" `FromResidual::from_residual(r).branch() --> ControlFlow::Break(r)`."},{"DocComment":" (The residual is not mandated to be *identical* when interconversion is involved.)"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" #![feature(try_trait_v2)]"},{"DocComment":" use std::ops::{ControlFlow, FromResidual};"},{"DocComment":""},{"DocComment":" assert_eq!(Result::::from_residual(Err(3_u8)), Err(3));"},{"DocComment":" assert_eq!(Option::::from_residual(None), None);"},{"DocComment":" assert_eq!("},{"DocComment":" ControlFlow::<_, String>::from_residual(ControlFlow::Break(5)),"},{"DocComment":" ControlFlow::Break(5),"},{"DocComment":" );"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":2023}],"output":{"Deduplicated":188}},"item":{"id":302,"generics":{"regions":[],"types":[{"Deduplicated":188},{"Deduplicated":2023}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6460,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":24,"generics":{"regions":[],"types":[{"Deduplicated":2049},{"Deduplicated":2621}],"const_generics":[],"trait_refs":[]}}}}]}]}}},"kind":{"TraitMethod":[24,0]}}],"vtable":null},{"def_id":25,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["Tuple",0]}],"span":{"data":{"file_id":1,"beg":{"line":1074,"col":0},"end":{"line":1074,"col":15}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" A marker for tuple types."},{"DocComment":""},{"DocComment":" The implementation of this trait is built-in and cannot be implemented"},{"DocComment":" for any user type."},{"Unknown":{"path":"diagnostic::on_unimplemented","args":"message = \"`{Self}` is not a tuple\""}}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"tuple_trait"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":1,"beg":{"line":1074,"col":0},"end":{"line":1074,"col":18}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[],"methods":[],"vtable":null},{"def_id":26,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["num",0]},{"Ident":["nonzero",0]},{"Ident":["private",0]},{"Ident":["Sealed",0]}],"span":{"data":{"file_id":19,"beg":{"line":46,"col":12},"end":{"line":46,"col":28}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":19,"beg":{"line":46,"col":12},"end":{"line":46,"col":31}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[],"methods":[],"vtable":{"id":{"Adt":50},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}},{"def_id":27,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["Eq",0]}],"span":{"data":{"file_id":46,"beg":{"line":338,"col":0},"end":{"line":338,"col":58}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Trait for comparisons corresponding to [equivalence relations]("},{"DocComment":" https://en.wikipedia.org/wiki/Equivalence_relation)."},{"DocComment":""},{"DocComment":" The primary difference to [`PartialEq`] is the additional requirement for reflexivity. A type"},{"DocComment":" that implements [`PartialEq`] guarantees that for all `a`, `b` and `c`:"},{"DocComment":""},{"DocComment":" - symmetric: `a == b` implies `b == a` and `a != b` implies `!(a == b)`"},{"DocComment":" - transitive: `a == b` and `b == c` implies `a == c`"},{"DocComment":""},{"DocComment":" `Eq`, which builds on top of [`PartialEq`] also implies:"},{"DocComment":""},{"DocComment":" - reflexive: `a == a`"},{"DocComment":""},{"DocComment":" This property cannot be checked by the compiler, and therefore `Eq` is a trait without methods."},{"DocComment":""},{"DocComment":" Violating this property is a logic error. The behavior resulting from a logic error is not"},{"DocComment":" specified, but users of the trait must ensure that such logic errors do *not* result in"},{"DocComment":" undefined behavior. This means that `unsafe` code **must not** rely on the correctness of these"},{"DocComment":" methods."},{"DocComment":""},{"DocComment":" Floating point types such as [`f32`] and [`f64`] implement only [`PartialEq`] but *not* `Eq`"},{"DocComment":" because `NaN` != `NaN`."},{"DocComment":""},{"DocComment":" ## Derivable"},{"DocComment":""},{"DocComment":" This trait can be used with `#[derive]`. When `derive`d, because `Eq` has no extra methods, it"},{"DocComment":" is only informing the compiler that this is an equivalence relation rather than a partial"},{"DocComment":" equivalence relation. Note that the `derive` strategy requires all fields are `Eq`, which isn't"},{"DocComment":" always desired."},{"DocComment":""},{"DocComment":" ## How can I implement `Eq`?"},{"DocComment":""},{"DocComment":" If you cannot use the `derive` strategy, specify that your type implements `Eq`, which has no"},{"DocComment":" extra methods:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" enum BookFormat {"},{"DocComment":" Paperback,"},{"DocComment":" Hardback,"},{"DocComment":" Ebook,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" struct Book {"},{"DocComment":" isbn: i32,"},{"DocComment":" format: BookFormat,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl PartialEq for Book {"},{"DocComment":" fn eq(&self, other: &Self) -> bool {"},{"DocComment":" self.isbn == other.isbn"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl Eq for Book {}"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"Eq"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":46,"beg":{"line":338,"col":20},"end":{"line":338,"col":43}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":22,"generics":{"regions":[],"types":[{"Deduplicated":188},{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[],"methods":[null],"vtable":null}],"trait_impls":[{"def_id":0,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":0}}],"span":{"data":{"file_id":4,"beg":{"line":21,"col":0},"end":{"line":21,"col":36}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"opacity":"Foreign","lang_item":null},"impl_trait":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":2040}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[{"index":0,"name":"'a","mutability":"Unknown"}],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":4,"beg":{"line":21,"col":9},"end":{"line":21,"col":10}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[{"HashConsedValue":[7024,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"HashConsedValue":[7023,{"Ref":["Erased",{"HashConsedValue":[2041,{"Slice":{"Deduplicated":188}}]},"Shared"]}]}],"const_generics":[],"trait_refs":[]}}}}]},{"HashConsedValue":[6279,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"Deduplicated":6233}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":6232}],"const_generics":[],"trait_refs":[]}}}}]},{"HashConsedValue":[7025,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[5961,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"HashConsedValue":[5960,{"Adt":{"id":{"Adt":6},"generics":{"regions":["Erased"],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[{"HashConsedValue":[2055,{"kind":{"Clause":{"Bound":[1,0]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2049}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":5960}],"const_generics":[],"trait_refs":[]}}}}]},{"HashConsedValue":[7026,{"kind":{"TraitImpl":{"id":1,"generics":{"regions":["Erased"],"types":[{"Deduplicated":220}],"const_generics":[],"trait_refs":[{"Deduplicated":223}]}}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":5960}],"const_generics":[],"trait_refs":[]}}}}]}],"consts":[],"types":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"value":{"Deduplicated":2048},"implied_trait_refs":[]},"kind":{"TraitType":[6,0]}},{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"value":{"HashConsedValue":[2056,{"Adt":{"id":{"Adt":6},"generics":{"regions":[{"Var":{"Bound":[1,0]}}],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[{"Deduplicated":2055}]}}}]},"implied_trait_refs":[]},"kind":{"TraitType":[6,1]}}],"methods":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"id":14,"generics":{"regions":[{"Var":{"Bound":[1,0]}}],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[{"Deduplicated":2055}]}},"kind":{"TraitMethod":[6,0]}}],"vtable":{"id":0,"generics":{"regions":[{"Var":{"Bound":[0,0]}}],"types":[{"Deduplicated":220}],"const_generics":[],"trait_refs":[{"Deduplicated":223}]}}},{"def_id":1,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}}],"span":{"data":{"file_id":7,"beg":{"line":153,"col":8},"end":{"line":153,"col":45}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"opacity":"Foreign","lang_item":null},"impl_trait":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":2063}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[{"index":0,"name":"'a","mutability":"Unknown"}],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":7,"beg":{"line":153,"col":17},"end":{"line":153,"col":18}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[{"Deduplicated":5961},{"Deduplicated":6279}],"consts":[],"types":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"value":{"Deduplicated":2048},"implied_trait_refs":[]},"kind":{"TraitType":[3,0]}}],"methods":[{"params":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"id":15,"generics":{"regions":[{"Var":{"Bound":[1,0]}},{"Var":{"Bound":[0,0]}}],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[{"Deduplicated":2055}]}},"kind":{"TraitMethod":[3,0]}},null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"vtable":{"id":1,"generics":{"regions":[{"Var":{"Bound":[0,0]}}],"types":[{"Deduplicated":220}],"const_generics":[],"trait_refs":[{"Deduplicated":223}]}}},{"def_id":2,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":2}}],"span":{"data":{"file_id":8,"beg":{"line":39,"col":0},"end":{"line":39,"col":47}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"opacity":"Foreign","lang_item":null},"impl_trait":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":4931}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[{"index":0,"name":"N","ty":{"Deduplicated":775}}],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":8,"beg":{"line":39,"col":5},"end":{"line":39,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[{"HashConsedValue":[7033,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"HashConsedValue":[4932,{"Array":[{"Deduplicated":188},{"kind":{"Var":{"Bound":[1,0]}},"ty":{"Deduplicated":775}}]}]}],"const_generics":[],"trait_refs":[]}}}}]},{"Deduplicated":223},{"HashConsedValue":[7034,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[5965,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"HashConsedValue":[4939,{"Adt":{"id":{"Adt":8},"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[{"kind":{"Var":{"Bound":[1,0]}},"ty":{"Deduplicated":775}}],"trait_refs":[{"Deduplicated":2055}]}}}]}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":4939}],"const_generics":[],"trait_refs":[]}}}}]},{"HashConsedValue":[7035,{"kind":{"TraitImpl":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":220}],"const_generics":[{"kind":{"Var":{"Bound":[0,0]}},"ty":{"Deduplicated":775}}],"trait_refs":[{"Deduplicated":223}]}}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":4939}],"const_generics":[],"trait_refs":[]}}}}]}],"consts":[],"types":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"value":{"Deduplicated":188},"implied_trait_refs":[]},"kind":{"TraitType":[6,0]}},{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"value":{"Deduplicated":4939},"implied_trait_refs":[]},"kind":{"TraitType":[6,1]}}],"methods":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"id":16,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[{"kind":{"Var":{"Bound":[1,0]}},"ty":{"Deduplicated":775}}],"trait_refs":[{"Deduplicated":2055}]}},"kind":{"TraitMethod":[6,0]}}],"vtable":{"id":2,"generics":{"regions":[],"types":[{"Deduplicated":220}],"const_generics":[{"kind":{"Var":{"Bound":[0,0]}},"ty":{"Deduplicated":775}}],"trait_refs":[{"Deduplicated":223}]}}},{"def_id":3,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}}],"span":{"data":{"file_id":8,"beg":{"line":235,"col":0},"end":{"line":235,"col":51}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"opacity":"Foreign","lang_item":null},"impl_trait":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":4944}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[{"index":0,"name":"N","ty":{"Deduplicated":775}}],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":8,"beg":{"line":235,"col":5},"end":{"line":235,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[{"Deduplicated":5965},{"Deduplicated":223}],"consts":[],"types":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"value":{"Deduplicated":188},"implied_trait_refs":[]},"kind":{"TraitType":[3,0]}}],"methods":[{"params":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"id":17,"generics":{"regions":[{"Var":{"Bound":[0,0]}}],"types":[{"Deduplicated":188}],"const_generics":[{"kind":{"Var":{"Bound":[1,0]}},"ty":{"Deduplicated":775}}],"trait_refs":[{"Deduplicated":2055}]}},"kind":{"TraitMethod":[3,0]}},null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"vtable":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":220}],"const_generics":[{"kind":{"Var":{"Bound":[0,0]}},"ty":{"Deduplicated":775}}],"trait_refs":[{"Deduplicated":223}]}}},{"def_id":4,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Ident":["IntoIter",0]},{"Impl":{"Trait":4}}],"span":{"data":{"file_id":8,"beg":{"line":20,"col":0},"end":{"line":20,"col":38}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"opacity":"Foreign","lang_item":null},"impl_trait":{"id":2,"generics":{"regions":[],"types":[{"Deduplicated":4944}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[{"index":0,"name":"N","ty":{"Deduplicated":775}}],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":8,"beg":{"line":20,"col":20},"end":{"line":20,"col":21}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[],"consts":[],"types":[],"methods":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"id":256,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[{"kind":{"Var":{"Bound":[1,0]}},"ty":{"Deduplicated":775}}],"trait_refs":[{"Deduplicated":2055}]}},"kind":{"TraitMethod":[2,0]}}],"vtable":null},{"def_id":5,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["collect",0]},{"Impl":{"Trait":5}}],"span":{"data":{"file_id":13,"beg":{"line":317,"col":0},"end":{"line":317,"col":50}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"opacity":"Foreign","lang_item":null},"impl_trait":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":220}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[],"types":[{"index":0,"name":"I"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":13,"beg":{"line":317,"col":5},"end":{"line":317,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":13,"beg":{"line":317,"col":8},"end":{"line":317,"col":24}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[{"HashConsedValue":[7042,{"kind":{"ParentClause":[{"Deduplicated":223},0]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}]},{"HashConsedValue":[7043,{"kind":{"ParentClause":[{"Deduplicated":5166},1]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":5172}],"const_generics":[],"trait_refs":[]}}}}]},{"Deduplicated":223},{"Deduplicated":5166}],"consts":[],"types":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"value":{"Deduplicated":5172},"implied_trait_refs":[]},"kind":{"TraitType":[6,0]}},{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"value":{"Deduplicated":188},"implied_trait_refs":[]},"kind":{"TraitType":[6,1]}}],"methods":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"id":20,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[{"Deduplicated":2055},{"Deduplicated":5171}]}},"kind":{"TraitMethod":[6,0]}}],"vtable":{"id":4,"generics":{"regions":[],"types":[{"Deduplicated":220}],"const_generics":[],"trait_refs":[{"Deduplicated":223},{"Deduplicated":5166}]}}},{"def_id":6,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["result",0]},{"Impl":{"Trait":6}}],"span":{"data":{"file_id":3,"beg":{"line":2162,"col":0},"end":{"line":2162,"col":42}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"opacity":"Foreign","lang_item":null},"impl_trait":{"id":11,"generics":{"regions":[],"types":[{"Deduplicated":5178}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[],"types":[{"index":0,"name":"T"},{"index":1,"name":"E"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":3,"beg":{"line":2162,"col":5},"end":{"line":2162,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":3,"beg":{"line":2162,"col":8},"end":{"line":2162,"col":9}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[{"HashConsedValue":[7046,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"HashConsedValue":[5179,{"Adt":{"id":{"Adt":5},"generics":{"regions":[],"types":[{"Deduplicated":188},{"Deduplicated":2023}],"const_generics":[],"trait_refs":[{"Deduplicated":2055},{"Deduplicated":3039}]}}}]}],"const_generics":[],"trait_refs":[]}}}}]},{"HashConsedValue":[7048,{"kind":{"TraitImpl":{"id":7,"generics":{"regions":[],"types":[{"Deduplicated":220},{"Deduplicated":2027},{"Deduplicated":2027}],"const_generics":[],"trait_refs":[{"Deduplicated":223},{"Deduplicated":2650},{"Deduplicated":2650},{"HashConsedValue":[7047,{"kind":{"TraitImpl":{"id":8,"generics":{"regions":[],"types":[{"Deduplicated":2027}],"const_generics":[],"trait_refs":[{"Deduplicated":2650}]}}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":4,"generics":{"regions":[],"types":[{"Deduplicated":2023},{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}]}]}}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":24,"generics":{"regions":[],"types":[{"Deduplicated":5179},{"Deduplicated":5184}],"const_generics":[],"trait_refs":[]}}}}]},{"Deduplicated":223},{"Deduplicated":5200}],"consts":[],"types":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"value":{"Deduplicated":188},"implied_trait_refs":[]},"kind":{"TraitType":[11,0]}},{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"value":{"Deduplicated":5184},"implied_trait_refs":[]},"kind":{"TraitType":[11,1]}}],"methods":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"id":257,"generics":{"regions":[],"types":[{"Deduplicated":188},{"Deduplicated":2023}],"const_generics":[],"trait_refs":[{"Deduplicated":2055},{"Deduplicated":3039}]}},"kind":{"TraitMethod":[11,0]}},{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"id":21,"generics":{"regions":[],"types":[{"Deduplicated":188},{"Deduplicated":2023}],"const_generics":[],"trait_refs":[{"Deduplicated":2055},{"Deduplicated":3039}]}},"kind":{"TraitMethod":[11,1]}}],"vtable":null},{"def_id":7,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["result",0]},{"Impl":{"Trait":7}}],"span":{"data":{"file_id":3,"beg":{"line":2182,"col":0},"end":{"line":2183,"col":20}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"opacity":"Foreign","lang_item":null},"impl_trait":{"id":24,"generics":{"regions":[],"types":[{"Deduplicated":5202},{"Deduplicated":5198}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[],"types":[{"index":0,"name":"T"},{"index":1,"name":"E"},{"index":2,"name":"F"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":3,"beg":{"line":2182,"col":5},"end":{"line":2182,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":3,"beg":{"line":2182,"col":8},"end":{"line":2182,"col":9}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":2,"span":{"data":{"file_id":3,"beg":{"line":2182,"col":11},"end":{"line":2182,"col":12}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":3001}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":3,"span":{"data":{"file_id":3,"beg":{"line":2182,"col":14},"end":{"line":2182,"col":29}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":4,"generics":{"regions":[],"types":[{"Deduplicated":3001},{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[{"HashConsedValue":[7049,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"HashConsedValue":[5205,{"Adt":{"id":{"Adt":5},"generics":{"regions":[],"types":[{"Deduplicated":188},{"Deduplicated":3001}],"const_generics":[],"trait_refs":[{"Deduplicated":2055},{"HashConsedValue":[5204,{"kind":{"Clause":{"Bound":[1,2]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":3005}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}],"const_generics":[],"trait_refs":[]}}}}]},{"Deduplicated":5200}],"consts":[],"types":[],"methods":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"id":22,"generics":{"regions":[],"types":[{"Deduplicated":188},{"Deduplicated":2023},{"Deduplicated":3001}],"const_generics":[],"trait_refs":[{"Deduplicated":2055},{"Deduplicated":3039},{"Deduplicated":5204},{"HashConsedValue":[7050,{"kind":{"Clause":{"Bound":[1,3]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":4,"generics":{"regions":[],"types":[{"Deduplicated":3005},{"Deduplicated":2621}],"const_generics":[],"trait_refs":[]}}}}]}]}},"kind":{"TraitMethod":[24,0]}}],"vtable":null},{"def_id":8,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["convert",0]},{"Impl":{"Trait":8}}],"span":{"data":{"file_id":12,"beg":{"line":785,"col":0},"end":{"line":785,"col":27}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"opacity":"Foreign","lang_item":null},"impl_trait":{"id":4,"generics":{"regions":[],"types":[{"Deduplicated":220},{"Deduplicated":220}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":12,"beg":{"line":785,"col":5},"end":{"line":785,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[{"Deduplicated":223},{"Deduplicated":223}],"consts":[],"types":[],"methods":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"id":259,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[{"Deduplicated":2055}]}},"kind":{"TraitMethod":[4,0]}}],"vtable":null},{"def_id":9,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["bool_then_closure",0]},{"Impl":{"Trait":9}}],"span":{"data":{"file_id":0,"beg":{"line":126,"col":11},"end":{"line":126,"col":19}},"generated_from_span":null},"source_text":"|| x + 1","attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":true,"opacity":"Transparent","lang_item":null},"impl_trait":{"id":5,"generics":{"regions":[],"types":[{"Deduplicated":5218},{"Deduplicated":245}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[{"HashConsedValue":[7054,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"HashConsedValue":[6475,{"Adt":{"id":{"Adt":11},"generics":{"regions":[{"Var":{"Bound":[1,0]}}],"types":[],"const_generics":[],"trait_refs":[]}}}]}],"const_generics":[],"trait_refs":[]}}}}]},{"HashConsedValue":[2347,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[2346,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":245}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":245}],"const_generics":[],"trait_refs":[]}}}}]},{"HashConsedValue":[7055,{"kind":{"BuiltinOrAuto":{"builtin_data":"Tuple","parent_trait_refs":[{"Deduplicated":2346}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":25,"generics":{"regions":[],"types":[{"Deduplicated":245}],"const_generics":[],"trait_refs":[]}}}}]},{"Deduplicated":356}],"consts":[],"types":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"value":{"Deduplicated":231},"implied_trait_refs":[]},"kind":{"TraitType":[5,0]}}],"methods":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"id":260,"generics":{"regions":[{"Var":{"Bound":[1,0]}}],"types":[],"const_generics":[],"trait_refs":[]}},"kind":{"TraitMethod":[5,0]}}],"vtable":null},{"def_id":10,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["bool_then_closure",0]},{"Ident":["closure",0]},{"Impl":{"Trait":10}}],"span":{"data":{"file_id":0,"beg":{"line":126,"col":11},"end":{"line":126,"col":19}},"generated_from_span":null},"source_text":"|| x + 1","attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":true,"opacity":"Transparent","lang_item":null},"impl_trait":{"id":2,"generics":{"regions":[],"types":[{"Deduplicated":5218}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[],"consts":[],"types":[],"methods":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"id":262,"generics":{"regions":[{"Var":{"Bound":[1,0]}}],"types":[],"const_generics":[],"trait_refs":[]}},"kind":{"TraitMethod":[2,0]}}],"vtable":null},{"def_id":11,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["option",0]},{"Impl":{"Trait":11}}],"span":{"data":{"file_id":6,"beg":{"line":2755,"col":0},"end":{"line":2755,"col":36}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"opacity":"Foreign","lang_item":null},"impl_trait":{"id":11,"generics":{"regions":[],"types":[{"Deduplicated":3736}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":6,"beg":{"line":2755,"col":5},"end":{"line":2755,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[{"HashConsedValue":[5236,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"HashConsedValue":[2770,{"Adt":{"id":{"Adt":7},"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[{"Deduplicated":2055}]}}}]}],"const_generics":[],"trait_refs":[]}}}}]},{"HashConsedValue":[7058,{"kind":{"TraitImpl":{"id":12,"generics":{"regions":[],"types":[{"Deduplicated":220}],"const_generics":[],"trait_refs":[{"Deduplicated":223}]}}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":24,"generics":{"regions":[],"types":[{"Deduplicated":2770},{"Deduplicated":1971}],"const_generics":[],"trait_refs":[]}}}}]},{"Deduplicated":223},{"Deduplicated":1973}],"consts":[],"types":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"value":{"Deduplicated":188},"implied_trait_refs":[]},"kind":{"TraitType":[11,0]}},{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"value":{"Deduplicated":1971},"implied_trait_refs":[]},"kind":{"TraitType":[11,1]}}],"methods":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"id":263,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[{"Deduplicated":2055}]}},"kind":{"TraitMethod":[11,0]}},{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"id":25,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[{"Deduplicated":2055}]}},"kind":{"TraitMethod":[11,1]}}],"vtable":null},{"def_id":12,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["option",0]},{"Impl":{"Trait":12}}],"span":{"data":{"file_id":6,"beg":{"line":2777,"col":0},"end":{"line":2777,"col":74}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"opacity":"Foreign","lang_item":null},"impl_trait":{"id":24,"generics":{"regions":[],"types":[{"Deduplicated":3736},{"Deduplicated":1971}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":6,"beg":{"line":2777,"col":5},"end":{"line":2777,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[{"Deduplicated":5236},{"Deduplicated":1973}],"consts":[],"types":[],"methods":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"id":26,"generics":{"regions":[],"types":[{"Deduplicated":188}],"const_generics":[],"trait_refs":[{"Deduplicated":2055}]}},"kind":{"TraitMethod":[24,0]}}],"vtable":null},{"def_id":13,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["num",0]},{"Ident":["nonzero",0]},{"Impl":{"Trait":13}}],"span":{"data":{"file_id":19,"beg":{"line":62,"col":12},"end":{"line":62,"col":56}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"opacity":"Foreign","lang_item":null},"impl_trait":{"id":7,"generics":{"regions":[],"types":[{"Deduplicated":775}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[{"HashConsedValue":[2231,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[2230,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":775}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":775}],"const_generics":[],"trait_refs":[]}}}}]},{"HashConsedValue":[7060,{"kind":{"TraitImpl":{"id":14,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":18,"generics":{"regions":[],"types":[{"Deduplicated":775}],"const_generics":[],"trait_refs":[]}}}}]},{"HashConsedValue":[7061,{"kind":{"TraitImpl":{"id":15,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":26,"generics":{"regions":[],"types":[{"Deduplicated":775}],"const_generics":[],"trait_refs":[]}}}}]},{"HashConsedValue":[5344,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[5343,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":5342}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":5342}],"const_generics":[],"trait_refs":[]}}}}]},{"HashConsedValue":[7062,{"kind":{"TraitImpl":{"id":16,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":18,"generics":{"regions":[],"types":[{"Deduplicated":5342}],"const_generics":[],"trait_refs":[]}}}}]}],"consts":[],"types":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"value":{"Deduplicated":5342},"implied_trait_refs":[]},"kind":{"TraitType":[7,0]}}],"methods":[],"vtable":null},{"def_id":14,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Impl":{"Trait":14}}],"span":{"data":{"file_id":1,"beg":{"line":60,"col":25},"end":{"line":60,"col":62}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"opacity":"Foreign","lang_item":null},"impl_trait":{"id":18,"generics":{"regions":[],"types":[{"Deduplicated":775}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[{"Deduplicated":2230},{"HashConsedValue":[7063,{"kind":{"TraitImpl":{"id":17,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":8,"generics":{"regions":[],"types":[{"Deduplicated":775}],"const_generics":[],"trait_refs":[]}}}}]}],"consts":[],"types":[],"methods":[],"vtable":null},{"def_id":15,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["num",0]},{"Ident":["nonzero",0]},{"Impl":{"Trait":15}}],"span":{"data":{"file_id":19,"beg":{"line":55,"col":12},"end":{"line":55,"col":47}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"opacity":"Foreign","lang_item":null},"impl_trait":{"id":26,"generics":{"regions":[],"types":[{"Deduplicated":775}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[{"Deduplicated":2230}],"consts":[],"types":[],"methods":[],"vtable":{"id":5,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}},{"def_id":16,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["num",0]},{"Ident":["niche_types",0]},{"Impl":{"Trait":16}}],"span":{"data":{"file_id":53,"beg":{"line":17,"col":24},"end":{"line":17,"col":28}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"opacity":"Foreign","lang_item":null},"impl_trait":{"id":18,"generics":{"regions":[],"types":[{"Deduplicated":5342}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[{"Deduplicated":5343},{"HashConsedValue":[7064,{"kind":{"TraitImpl":{"id":18,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":8,"generics":{"regions":[],"types":[{"Deduplicated":5342}],"const_generics":[],"trait_refs":[]}}}}]}],"consts":[],"types":[],"methods":[],"vtable":null},{"def_id":17,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["clone",0]},{"Ident":["impls",0]},{"Impl":{"Trait":17}}],"span":{"data":{"file_id":25,"beg":{"line":612,"col":16},"end":{"line":612,"col":39}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"opacity":"Foreign","lang_item":null},"impl_trait":{"id":8,"generics":{"regions":[],"types":[{"Deduplicated":775}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[{"Deduplicated":2231}],"consts":[],"types":[],"methods":[{"params":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"id":304,"generics":{"regions":[{"Var":{"Bound":[0,0]}}],"types":[],"const_generics":[],"trait_refs":[]}},"kind":{"TraitMethod":[8,0]}},null],"vtable":null},{"def_id":18,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["num",0]},{"Ident":["niche_types",0]},{"Impl":{"Trait":18}}],"span":{"data":{"file_id":53,"beg":{"line":17,"col":17},"end":{"line":17,"col":22}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"opacity":"Foreign","lang_item":null},"impl_trait":{"id":8,"generics":{"regions":[],"types":[{"Deduplicated":5342}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[{"Deduplicated":5344}],"consts":[],"types":[],"methods":[{"params":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"id":306,"generics":{"regions":[{"Var":{"Bound":[0,0]}}],"types":[],"const_generics":[],"trait_refs":[]}},"kind":{"TraitMethod":[8,0]}},null],"vtable":null}],"ordered_decls":[{"TraitDecl":{"NonRec":1}},{"TraitDecl":{"NonRec":0}},{"Type":{"NonRec":8}},{"Fun":{"NonRec":256}},{"Fun":{"NonRec":16}},{"Type":{"NonRec":7}},{"Fun":{"NonRec":17}},{"TraitDecl":{"NonRec":2}},{"Fun":{"NonRec":24}},{"TraitDecl":{"NonRec":25}},{"TraitDecl":{"NonRec":5}},{"Fun":{"NonRec":23}},{"TraitDecl":{"NonRec":4}},{"Fun":{"NonRec":258}},{"Fun":{"NonRec":259}},{"TraitImpl":{"NonRec":8}},{"Type":{"NonRec":10}},{"TraitDecl":{"NonRec":3}},{"Fun":{"NonRec":20}},{"Fun":{"NonRec":34}},{"Fun":{"NonRec":18}},{"Type":{"NonRec":9}},{"Fun":{"NonRec":261}},{"Fun":{"NonRec":25}},{"Fun":{"NonRec":26}},{"Type":{"NonRec":5}},{"Fun":{"NonRec":21}},{"Fun":{"NonRec":22}},{"Type":{"NonRec":6}},{"Fun":{"NonRec":15}},{"TraitImpl":{"NonRec":1}},{"Fun":{"NonRec":14}},{"Fun":{"NonRec":19}},{"Type":{"NonRec":0}},{"Fun":{"NonRec":0}},{"Fun":{"NonRec":1}},{"Fun":{"NonRec":2}},{"Fun":{"NonRec":3}},{"Type":{"NonRec":1}},{"Fun":{"NonRec":4}},{"Type":{"NonRec":2}},{"Fun":{"NonRec":5}},{"Fun":{"NonRec":6}},{"Fun":{"NonRec":7}},{"Type":{"NonRec":11}},{"Fun":{"NonRec":262}},{"TraitImpl":{"NonRec":10}},{"Fun":{"NonRec":260}},{"TraitImpl":{"NonRec":9}},{"Fun":{"NonRec":8}},{"Fun":{"NonRec":9}},{"Fun":{"NonRec":10}},{"Fun":{"NonRec":11}},{"Type":{"NonRec":3}},{"Type":{"NonRec":4}},{"Fun":{"NonRec":12}},{"Fun":{"NonRec":13}}]},"has_errors":false} \ No newline at end of file +{"charon_version":"0.1.201","translated":{"crate_name":"charon_corpus","options":{"ullbc":true,"precise_drops":false,"skip_borrowck":false,"mir":null,"rustc_args":[],"targets":[],"monomorphize":false,"monomorphize_mut":null,"start_from":[],"start_from_if_exists":[],"start_from_attribute":null,"start_from_pub":false,"include":[],"opaque":[],"exclude":[],"extract_opaque_bodies":false,"translate_all_methods":false,"lift_associated_types":[],"hide_marker_traits":false,"remove_adt_clauses":false,"hide_allocator":false,"remove_unused_self_clauses":false,"desugar_drops":false,"ops_to_function_calls":false,"index_to_function_calls":false,"treat_box_as_builtin":false,"raw_consts":false,"unsized_strings":false,"reconstruct_fallible_operations":false,"reconstruct_asserts":false,"unbind_item_vars":false,"print_original_ullbc":false,"print_ullbc":false,"print_built_llbc":false,"print_llbc":false,"dest_dir":null,"dest_file":"/Users/youknowone/Projects/pyre-majit-general/majit/charon-corpus/corpus.ullbc","no_dedup_serialized_ast":false,"format":null,"no_serialize":false,"no_typecheck":false,"no_normalize":false,"abort_on_error":false,"error_on_warnings":false,"preset":null},"target_information":[{"key":"aarch64-apple-darwin","value":{"target_pointer_size":8,"is_little_endian":true}}],"files":[{"id":0,"name":{"Local":"src/lib.rs"},"crate_name":"charon_corpus","contents":"//! Charon fixture corpus: representative shapes from issue #97.\n//!\n//! 1. `straight_line_add` — straight-line interpreter-shaped function.\n//! 2. `branch_loop_sum` — branch + loop, like opcode dispatch fragments.\n//! 3. `strategy_dispatch` — enum-as-strategy (dict-strategy stand-in).\n//! 4. `desugar_mix` — `?`, `match`, and iterator desugaring together.\n\n#![allow(dead_code)]\n\npub type PyResult = Result;\n\n// 1. Straight-line\n#[inline(never)]\npub fn straight_line_add(a: i64, b: i64, c: i64) -> i64 {\n let s = a + b;\n let t = s * 2;\n t + c\n}\n\n// 2. Branch and loop\n#[inline(never)]\npub fn branch_loop_sum(slice: &[i64], threshold: i64) -> i64 {\n let mut acc: i64 = 0;\n for &v in slice {\n if v > threshold {\n acc += v;\n } else {\n acc -= v;\n }\n }\n acc\n}\n\n// 2b. Iterator element kinds. `next()`'s payload carries one reference for\n// a slice iterator (`core::slice::iter::Iter` yields `Option<&T>`) and none\n// for a by-value one (`core::array::iter::IntoIter` yields `Option`), so\n// the two spell the same `Option<&i64>` payload for different reasons: here\n// the element is `&i64` both times, and only the first has a reference the\n// iterator added. A frontend that peels unconditionally, or never, types one\n// of the two into the wrong register bank.\n#[inline(never)]\npub fn slice_of_refs_sum(slice: &[&i64]) -> i64 {\n let mut acc: i64 = 0;\n for r in slice {\n acc += **r;\n }\n acc\n}\n\n#[inline(never)]\npub fn array_of_refs_sum(refs: [&i64; 3]) -> i64 {\n let mut acc: i64 = 0;\n for r in refs {\n acc += *r;\n }\n acc\n}\n\n// 3. Strategy dispatch (dict-strategy stand-in)\npub enum Strategy {\n Empty,\n IntKeyed { len: usize },\n StrKeyed { len: usize, capacity: usize },\n}\n\n#[inline(never)]\npub fn strategy_len(s: &Strategy) -> usize {\n match s {\n Strategy::Empty => 0,\n Strategy::IntKeyed { len } => *len,\n Strategy::StrKeyed { len, capacity: _ } => *len,\n }\n}\n\n// 4. Desugaring mix: `?`, `match`, and iteration\npub enum Token {\n Add(i64),\n Sub(i64),\n Halt,\n}\n\nfn parse_one(raw: i64) -> PyResult {\n match raw {\n i64::MIN => Ok(Token::Halt),\n 0 => Err(\"halt-zero forbidden\"),\n v if v > 0 => Ok(Token::Add(v)),\n v => Ok(Token::Sub(-v)),\n }\n}\n\n#[inline(never)]\npub fn desugar_mix(input: &[i64]) -> PyResult {\n let mut acc: i64 = 0;\n for &raw in input.iter() {\n let tok = parse_one(raw)?;\n match tok {\n Token::Add(v) => acc += v,\n Token::Sub(v) => acc -= v,\n Token::Halt => break,\n }\n }\n Ok(acc)\n}\n\n// 5. Tuple round-trip: construct a tuple and read both fields\n//\n// Exercises `Rvalue::Aggregate` for a *non-Adt* (tuple) value paired\n// with `Field` projection reads of that same local. The lowering must\n// emit a `__pos_` `FieldRead` symmetric to the construction-side\n// `FieldWrite` chain rather than collapsing every `.N` to the base.\n\n#[inline(never)]\npub fn tuple_roundtrip(a: i64, b: i64) -> i64 {\n let pair = (a + b, a - b);\n pair.0 * pair.1\n}\n\n// 6. Closures\n// `bool_then_closure` is the exact `core::bool::::then` census shape:\n// an opaque combinator taking a `FnOnce` closure that captures a value from\n// the enclosing scope. Charon extracts the closure's `call_once` body as a\n// transparent inherent method of the closure type.\n\n#[inline(never)]\npub fn bool_then_closure(c: bool, x: i64) -> Option {\n c.then(|| x + 1)\n}\n\n// `then_some` is the eager sibling of `then`: it takes an already-evaluated\n// value rather than a closure, so the diamond's `then` arm wraps it in `Some`\n// directly (no `call_once`). Same Opaque-core-combinator residual shape.\n#[inline(never)]\npub fn bool_then_some(c: bool, x: i64) -> Option {\n c.then_some(x + 1)\n}\n\n// 7. Option question mark\n// Exercises `Try::branch` on `Option`: `Some(v)` continues with `v`, while\n// `None` returns `None` normally from the enclosing Option-returning function.\n\n#[inline(never)]\nfn option_source(keep: bool, value: i64) -> Option {\n if keep { Some(value) } else { None }\n}\n\n#[inline(never)]\npub fn option_question_mark(keep: bool, value: i64, addend: i64) -> Option {\n let v = option_source(keep, value)?;\n Some(v + addend)\n}\n\n// 8. Header-first object model\n//\n// 1. `(*w).ob_type` off a `*mut ObjectHeader` — a `FieldRead` preceded by\n// a `__pyre_cast_instance/` narrow, not a classdef-less read.\n// 2. `lltype::malloc_typed(Leaf { ob_header: .., payload })` — one\n// by-value argument, header written before the call, so\n// `fuse_boxing_alloc` mints `NewWithVtable` with a real vtable.\n// 3. `if ta == &CLS { concrete(..) }` — the arm body a `FunctionPath`\n// call, i.e. inlinable, rather than an indirect one.\n// 4. an `_immutable_fields_` marker const, so the payload read\n// can fold to a pure getfield.\n//\n// `TypeOnlyHeader` matches RPython's root `OBJECT`, whose only data field is\n// `typeptr`. `ObjectHeader` additionally represents an object model with a\n// per-instance class word. Both allocation shapes must fuse.\n\n#[repr(C)]\npub struct ClassObject {\n pub name: &'static str,\n pub kind: u8,\n}\n\n#[repr(C)]\npub struct ObjectHeader {\n pub ob_type: *const ClassObject,\n pub w_class: *const ClassObject,\n}\n\n/// The one-word header: `ob_type` and nothing else.\n///\n/// `fuse_boxing_alloc`'s substitution asks whether the per-instance class\n/// word agrees with `ob_type`; where the header declares no such word the\n/// question has no subject, and `model.rs`'s `header_declares_no_class_word`\n/// arm admits the cluster on the layout alone. That arm is unreachable from\n/// any fixture whose header declares the field, so it gets its own.\n#[repr(C)]\npub struct TypeOnlyHeader {\n pub ob_type: *const ClassObject,\n}\n\n#[repr(C)]\n#[allow(non_camel_case_types)]\npub struct W_IntObject {\n pub ob_header: ObjectHeader,\n pub intval: i64,\n}\n\n#[repr(C)]\n#[allow(non_camel_case_types)]\npub struct W_TypeOnlyIntObject {\n pub ob_header: TypeOnlyHeader,\n pub intval: i64,\n}\n\npub static INT_CLASS: ClassObject = ClassObject {\n name: \"int\",\n kind: 1,\n};\npub static DOUBLE_CLASS: ClassObject = ClassObject {\n name: \"double\",\n kind: 2,\n};\n\n/// The allocation entry point. `is_malloc_typed` keys on the trailing path\n/// segments `lltype::malloc_typed`, and `fuse_boxing_alloc` requires the\n/// single by-value argument — an alloc-then-init spelling matches nothing\n/// and degrades in silence.\npub mod lltype {\n #[inline(never)]\n pub fn malloc_typed(value: T) -> *mut T {\n Box::into_raw(Box::new(value))\n }\n}\n\n/// Minimal stand-in for the class-instantiation lookup whose result the\n/// class word is stored from.\n///\n/// `model.rs`'s `get_instantiate_arg_addr` matches the three-segment path\n/// suffix `[\"pyre_object\", \"pyobject\", \"get_instantiate\"]` literally, so any\n/// other spelling would not exercise that recognizer.\npub mod pyre_object {\n pub mod pyobject {\n use crate::ClassObject;\n\n #[inline(never)]\n pub fn get_instantiate(tp: &ClassObject) -> *const ClassObject {\n tp\n }\n }\n}\n\n/// Premise 1: the header read.\n#[inline(never)]\npub fn w_object_type(w: *mut ObjectHeader) -> *const ClassObject {\n unsafe { (*w).ob_type }\n}\n\n/// Premise 2: the boxing cluster — header store, payload store, then one\n/// by-value `malloc_typed`.\n#[inline(never)]\npub fn w_new_int(x: i64) -> *mut W_IntObject {\n lltype::malloc_typed(W_IntObject {\n ob_header: ObjectHeader {\n ob_type: &INT_CLASS,\n w_class: pyre_object::pyobject::get_instantiate(&INT_CLASS),\n },\n intval: x,\n })\n}\n\n/// Premise 2, second header shape: the same cluster over a header that\n/// declares no class word, so the fuse has to admit it on the layout alone.\n/// The `get_instantiate` call has no subject here and is absent.\n#[inline(never)]\npub fn w_new_type_only_int(x: i64) -> *mut W_TypeOnlyIntObject {\n lltype::malloc_typed(W_TypeOnlyIntObject {\n ob_header: TypeOnlyHeader {\n ob_type: &INT_CLASS,\n },\n intval: x,\n })\n}\n\n#[inline(never)]\nfn w_int_add(a: *mut W_IntObject, b: *mut W_IntObject) -> i64 {\n unsafe { (*a).intval + (*b).intval }\n}\n\n/// Premise 3: the narrowing chain. `descroperation.py` `binop_impl`\n/// (`type(w_obj1) is type(w_obj2)`, then the per-class shortcut)\n/// transliterated — the shape that lowers each arm to a direct call.\n#[inline(never)]\npub fn w_number_add(a: *mut ObjectHeader, b: *mut ObjectHeader) -> i64 {\n let ta = unsafe { (*a).ob_type };\n let tb = unsafe { (*b).ob_type };\n if ta == tb && ta == (&INT_CLASS as *const ClassObject) {\n return w_int_add(a as *mut W_IntObject, b as *mut W_IntObject);\n }\n 0\n}\n\n/// Premise 4: the immutability marker `harvest_immutable_fields_from_llbcs`\n/// reads (`front/llbc_hints.rs:148` `_immutable_fields_` prefix). Written by\n/// hand rather than through `#[jit_immutable_fields]` so the corpus keeps\n/// its zero-dependency manifest.\n#[allow(non_upper_case_globals)]\npub const _immutable_fields_W_IntObject: &str = \"intval\";\n\n\n// A host-registered callback table.\n\n/// The callback a host installs at run time. A bare `fn` pointer, so the set\n/// of addresses that can reach a call through it is not recoverable from this\n/// artifact — the shape used by host-settable callback hooks.\npub type HostCallback = fn(i64) -> i64;\n\npub struct HostRegistry {\n pub slot: HostCallback,\n pub maybe_slot: Option,\n}\n\n/// Call through the registered callback. `front::mir` lowers this to\n/// `OpKind::IndirectCall { graphs: None }` — `indirect_call` with an\n/// unknown PBC family, which `guess_call_kind` answers `residual` for\n/// (`call.py:105`/`137`, `jtransform.py:410-412`). The `__dyn_call`\n/// placeholder it used to reach is an unregistered synthetic path with no\n/// continuation.\n#[inline(never)]\npub fn host_registry_dispatch(reg: &HostRegistry, x: i64) -> i64 {\n (reg.slot)(x)\n}\n\n/// The one-hop `Option` spelling of the same shape.\n#[inline(never)]\npub fn host_registry_dispatch_optional(reg: &HostRegistry, x: i64) -> i64 {\n match reg.maybe_slot {\n Some(f) => f(x),\n None => 0,\n }\n}\n"},{"id":1,"name":{"Local":"/rustc/library/core/src/marker.rs"},"crate_name":"core","contents":null},{"id":2,"name":{"Local":"/rustc/library/core/src/lib.rs"},"crate_name":"core","contents":null},{"id":3,"name":{"Local":"/rustc/library/core/src/result.rs"},"crate_name":"core","contents":null},{"id":4,"name":{"Local":"/rustc/library/core/src/slice/iter.rs"},"crate_name":"core","contents":null},{"id":5,"name":{"Local":"/rustc/library/core/src/slice/mod.rs"},"crate_name":"core","contents":null},{"id":6,"name":{"Local":"/rustc/library/core/src/option.rs"},"crate_name":"core","contents":null},{"id":7,"name":{"Local":"/rustc/library/core/src/slice/iter/macros.rs"},"crate_name":"core","contents":null},{"id":8,"name":{"Local":"/rustc/library/core/src/array/iter.rs"},"crate_name":"core","contents":null},{"id":9,"name":{"Local":"/rustc/library/core/src/array/mod.rs"},"crate_name":"core","contents":null},{"id":10,"name":{"Local":"/rustc/library/core/src/ops/control_flow.rs"},"crate_name":"core","contents":null},{"id":11,"name":{"Local":"/rustc/library/core/src/ops/mod.rs"},"crate_name":"core","contents":null},{"id":12,"name":{"Local":"/rustc/library/core/src/convert/mod.rs"},"crate_name":"core","contents":null},{"id":13,"name":{"Local":"/rustc/library/core/src/iter/traits/collect.rs"},"crate_name":"core","contents":null},{"id":14,"name":{"Local":"/rustc/library/core/src/iter/traits/mod.rs"},"crate_name":"core","contents":null},{"id":15,"name":{"Local":"/rustc/library/core/src/iter/mod.rs"},"crate_name":"core","contents":null},{"id":16,"name":{"Local":"/rustc/library/core/src/iter/traits/iterator.rs"},"crate_name":"core","contents":null},{"id":17,"name":{"Local":"/rustc/library/core/src/bool.rs"},"crate_name":"core","contents":null},{"id":18,"name":{"Local":"/rustc/library/core/src/ops/function.rs"},"crate_name":"core","contents":null},{"id":19,"name":{"Local":"/rustc/library/core/src/num/nonzero.rs"},"crate_name":"core","contents":null},{"id":20,"name":{"Local":"/rustc/library/core/src/num/mod.rs"},"crate_name":"core","contents":null},{"id":21,"name":{"Local":"/rustc/library/core/src/iter/adapters/step_by.rs"},"crate_name":"core","contents":null},{"id":22,"name":{"Local":"/rustc/library/core/src/iter/adapters/mod.rs"},"crate_name":"core","contents":null},{"id":23,"name":{"Local":"/rustc/library/core/src/iter/adapters/chain.rs"},"crate_name":"core","contents":null},{"id":24,"name":{"Local":"/rustc/library/core/src/iter/adapters/zip.rs"},"crate_name":"core","contents":null},{"id":25,"name":{"Local":"/rustc/library/core/src/clone.rs"},"crate_name":"core","contents":null},{"id":26,"name":{"Local":"/rustc/library/core/src/iter/adapters/intersperse.rs"},"crate_name":"core","contents":null},{"id":27,"name":{"Local":"/rustc/library/core/src/iter/adapters/map.rs"},"crate_name":"core","contents":null},{"id":28,"name":{"Local":"/rustc/library/core/src/iter/adapters/filter.rs"},"crate_name":"core","contents":null},{"id":29,"name":{"Local":"/rustc/library/core/src/iter/adapters/filter_map.rs"},"crate_name":"core","contents":null},{"id":30,"name":{"Local":"/rustc/library/core/src/iter/adapters/enumerate.rs"},"crate_name":"core","contents":null},{"id":31,"name":{"Local":"/rustc/library/core/src/iter/adapters/peekable.rs"},"crate_name":"core","contents":null},{"id":32,"name":{"Local":"/rustc/library/core/src/iter/adapters/skip_while.rs"},"crate_name":"core","contents":null},{"id":33,"name":{"Local":"/rustc/library/core/src/iter/adapters/take_while.rs"},"crate_name":"core","contents":null},{"id":34,"name":{"Local":"/rustc/library/core/src/iter/adapters/map_while.rs"},"crate_name":"core","contents":null},{"id":35,"name":{"Local":"/rustc/library/core/src/iter/adapters/skip.rs"},"crate_name":"core","contents":null},{"id":36,"name":{"Local":"/rustc/library/core/src/iter/adapters/take.rs"},"crate_name":"core","contents":null},{"id":37,"name":{"Local":"/rustc/library/core/src/iter/adapters/scan.rs"},"crate_name":"core","contents":null},{"id":38,"name":{"Local":"/rustc/library/core/src/iter/adapters/flatten.rs"},"crate_name":"core","contents":null},{"id":39,"name":{"Local":"/rustc/library/core/src/iter/adapters/map_windows.rs"},"crate_name":"core","contents":null},{"id":40,"name":{"Local":"/rustc/library/core/src/iter/adapters/fuse.rs"},"crate_name":"core","contents":null},{"id":41,"name":{"Local":"/rustc/library/core/src/iter/adapters/inspect.rs"},"crate_name":"core","contents":null},{"id":42,"name":{"Local":"/rustc/library/core/src/ops/try_trait.rs"},"crate_name":"core","contents":null},{"id":43,"name":{"Local":"/rustc/library/core/src/default.rs"},"crate_name":"core","contents":null},{"id":44,"name":{"Local":"/rustc/library/core/src/iter/traits/double_ended.rs"},"crate_name":"core","contents":null},{"id":45,"name":{"Local":"/rustc/library/core/src/iter/traits/exact_size.rs"},"crate_name":"core","contents":null},{"id":46,"name":{"Local":"/rustc/library/core/src/cmp.rs"},"crate_name":"core","contents":null},{"id":47,"name":{"Local":"/rustc/library/core/src/iter/adapters/rev.rs"},"crate_name":"core","contents":null},{"id":48,"name":{"Local":"/rustc/library/core/src/iter/adapters/copied.rs"},"crate_name":"core","contents":null},{"id":49,"name":{"Local":"/rustc/library/core/src/iter/adapters/cloned.rs"},"crate_name":"core","contents":null},{"id":50,"name":{"Local":"/rustc/library/core/src/iter/adapters/cycle.rs"},"crate_name":"core","contents":null},{"id":51,"name":{"Local":"/rustc/library/core/src/iter/adapters/array_chunks.rs"},"crate_name":"core","contents":null},{"id":52,"name":{"Local":"/rustc/library/core/src/iter/traits/accum.rs"},"crate_name":"core","contents":null},{"id":53,"name":{"Local":"/rustc/library/alloc/src/boxed.rs"},"crate_name":"alloc","contents":null},{"id":54,"name":{"Local":"/rustc/library/alloc/src/lib.rs"},"crate_name":"alloc","contents":null},{"id":55,"name":{"Local":"/rustc/library/alloc/src/alloc.rs"},"crate_name":"alloc","contents":null},{"id":56,"name":{"Local":"/rustc/library/core/src/alloc/mod.rs"},"crate_name":"core","contents":null},{"id":57,"name":{"Local":"/rustc/library/core/src/num/niche_types.rs"},"crate_name":"core","contents":null},{"id":58,"name":{"Local":"/rustc/library/core/src/alloc/layout.rs"},"crate_name":"core","contents":null},{"id":59,"name":{"Local":"/rustc/library/core/src/ptr/non_null.rs"},"crate_name":"core","contents":null},{"id":60,"name":{"Local":"/rustc/library/core/src/ptr/mod.rs"},"crate_name":"core","contents":null}],"item_names":[{"key":{"Type":0},"value":[{"Ident":["charon_corpus",0]},{"Ident":["PyResult",0]}]},{"key":{"Fun":0},"value":[{"Ident":["charon_corpus",0]},{"Ident":["straight_line_add",0]}]},{"key":{"Fun":1},"value":[{"Ident":["charon_corpus",0]},{"Ident":["branch_loop_sum",0]}]},{"key":{"Fun":2},"value":[{"Ident":["charon_corpus",0]},{"Ident":["slice_of_refs_sum",0]}]},{"key":{"Fun":3},"value":[{"Ident":["charon_corpus",0]},{"Ident":["array_of_refs_sum",0]}]},{"key":{"Type":1},"value":[{"Ident":["charon_corpus",0]},{"Ident":["Strategy",0]}]},{"key":{"Fun":4},"value":[{"Ident":["charon_corpus",0]},{"Ident":["strategy_len",0]}]},{"key":{"Type":2},"value":[{"Ident":["charon_corpus",0]},{"Ident":["Token",0]}]},{"key":{"Fun":5},"value":[{"Ident":["charon_corpus",0]},{"Ident":["parse_one",0]}]},{"key":{"Fun":6},"value":[{"Ident":["charon_corpus",0]},{"Ident":["desugar_mix",0]}]},{"key":{"Fun":7},"value":[{"Ident":["charon_corpus",0]},{"Ident":["tuple_roundtrip",0]}]},{"key":{"Fun":8},"value":[{"Ident":["charon_corpus",0]},{"Ident":["bool_then_closure",0]}]},{"key":{"Fun":9},"value":[{"Ident":["charon_corpus",0]},{"Ident":["bool_then_some",0]}]},{"key":{"Fun":10},"value":[{"Ident":["charon_corpus",0]},{"Ident":["option_source",0]}]},{"key":{"Fun":11},"value":[{"Ident":["charon_corpus",0]},{"Ident":["option_question_mark",0]}]},{"key":{"Type":3},"value":[{"Ident":["charon_corpus",0]},{"Ident":["ClassObject",0]}]},{"key":{"Type":4},"value":[{"Ident":["charon_corpus",0]},{"Ident":["ObjectHeader",0]}]},{"key":{"Type":5},"value":[{"Ident":["charon_corpus",0]},{"Ident":["TypeOnlyHeader",0]}]},{"key":{"Type":6},"value":[{"Ident":["charon_corpus",0]},{"Ident":["W_IntObject",0]}]},{"key":{"Type":7},"value":[{"Ident":["charon_corpus",0]},{"Ident":["W_TypeOnlyIntObject",0]}]},{"key":{"Global":0},"value":[{"Ident":["charon_corpus",0]},{"Ident":["INT_CLASS",0]}]},{"key":{"Global":1},"value":[{"Ident":["charon_corpus",0]},{"Ident":["DOUBLE_CLASS",0]}]},{"key":{"Fun":12},"value":[{"Ident":["charon_corpus",0]},{"Ident":["w_object_type",0]}]},{"key":{"Fun":13},"value":[{"Ident":["charon_corpus",0]},{"Ident":["w_new_int",0]}]},{"key":{"Fun":14},"value":[{"Ident":["charon_corpus",0]},{"Ident":["w_new_type_only_int",0]}]},{"key":{"Fun":15},"value":[{"Ident":["charon_corpus",0]},{"Ident":["w_int_add",0]}]},{"key":{"Fun":16},"value":[{"Ident":["charon_corpus",0]},{"Ident":["w_number_add",0]}]},{"key":{"Global":2},"value":[{"Ident":["charon_corpus",0]},{"Ident":["_immutable_fields_W_IntObject",0]}]},{"key":{"Type":8},"value":[{"Ident":["charon_corpus",0]},{"Ident":["HostCallback",0]}]},{"key":{"Type":9},"value":[{"Ident":["charon_corpus",0]},{"Ident":["HostRegistry",0]}]},{"key":{"Fun":17},"value":[{"Ident":["charon_corpus",0]},{"Ident":["host_registry_dispatch",0]}]},{"key":{"Fun":18},"value":[{"Ident":["charon_corpus",0]},{"Ident":["host_registry_dispatch_optional",0]}]},{"key":{"TraitDecl":0},"value":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["Sized",0]}]},{"key":{"Type":10},"value":[{"Ident":["core",0]},{"Ident":["result",0]},{"Ident":["Result",0]}]},{"key":{"TraitDecl":1},"value":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["MetaSized",0]}]},{"key":{"Type":11},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Ident":["Iter",0]}]},{"key":{"Type":12},"value":[{"Ident":["core",0]},{"Ident":["option",0]},{"Ident":["Option",0]}]},{"key":{"TraitImpl":0},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":0}}]},{"key":{"Fun":19},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":0}},{"Ident":["into_iter",0]}]},{"key":{"TraitImpl":1},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}}]},{"key":{"Fun":20},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["next",0]}]},{"key":{"Type":13},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Ident":["IntoIter",0]}]},{"key":{"TraitImpl":2},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":2}}]},{"key":{"Fun":21},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":2}},{"Ident":["into_iter",0]}]},{"key":{"TraitImpl":3},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}}]},{"key":{"Fun":22},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["next",0]}]},{"key":{"TraitDecl":2},"value":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["Destruct",0]}]},{"key":{"TraitImpl":4},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Ident":["IntoIter",0]},{"Impl":{"Trait":4}}]},{"key":{"Fun":23},"value":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["Destruct",0]},{"Ident":["drop_in_place",0]}]},{"key":{"Type":14},"value":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["control_flow",0]},{"Ident":["ControlFlow",0]}]},{"key":{"Type":15},"value":[{"Ident":["core",0]},{"Ident":["convert",0]},{"Ident":["Infallible",0]}]},{"key":{"Fun":24},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Impl":{"Ty":{"params":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":5,"beg":{"line":101,"col":5},"end":{"line":101,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[240,{"TypeVar":{"Bound":[1,0]}}]}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"HashConsedValue":[1563,{"Slice":{"HashConsedValue":[272,{"TypeVar":{"Bound":[0,0]}}]}}]},"kind":"InherentImplBlock"}}},{"Ident":["iter",0]}]},{"key":{"TraitImpl":5},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["collect",0]},{"Impl":{"Trait":5}}]},{"key":{"Fun":25},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["collect",0]},{"Impl":{"Trait":5}},{"Ident":["into_iter",0]}]},{"key":{"TraitDecl":3},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]}]},{"key":{"TraitImpl":6},"value":[{"Ident":["core",0]},{"Ident":["result",0]},{"Impl":{"Trait":6}}]},{"key":{"Fun":26},"value":[{"Ident":["core",0]},{"Ident":["result",0]},{"Impl":{"Trait":6}},{"Ident":["branch",0]}]},{"key":{"TraitImpl":7},"value":[{"Ident":["core",0]},{"Ident":["result",0]},{"Impl":{"Trait":7}}]},{"key":{"Fun":27},"value":[{"Ident":["core",0]},{"Ident":["result",0]},{"Impl":{"Trait":7}},{"Ident":["from_residual",0]}]},{"key":{"TraitDecl":4},"value":[{"Ident":["core",0]},{"Ident":["convert",0]},{"Ident":["From",0]}]},{"key":{"TraitImpl":8},"value":[{"Ident":["core",0]},{"Ident":["convert",0]},{"Impl":{"Trait":8}}]},{"key":{"Type":16},"value":[{"Ident":["charon_corpus",0]},{"Ident":["bool_then_closure",0]},{"Ident":["closure",0]}]},{"key":{"TraitImpl":9},"value":[{"Ident":["charon_corpus",0]},{"Ident":["bool_then_closure",0]},{"Impl":{"Trait":9}}]},{"key":{"Fun":28},"value":[{"Ident":["core",0]},{"Ident":["bool",0]},{"Impl":{"Ty":{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"HashConsedValue":[287,{"Literal":"Bool"}]},"kind":"InherentImplBlock"}}},{"Ident":["then",0]}]},{"key":{"TraitDecl":5},"value":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["function",0]},{"Ident":["FnOnce",0]}]},{"key":{"TraitImpl":10},"value":[{"Ident":["charon_corpus",0]},{"Ident":["bool_then_closure",0]},{"Ident":["closure",0]},{"Impl":{"Trait":10}}]},{"key":{"Fun":29},"value":[{"Ident":["core",0]},{"Ident":["bool",0]},{"Impl":{"Ty":{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"Deduplicated":287},"kind":"InherentImplBlock"}}},{"Ident":["then_some",0]}]},{"key":{"TraitImpl":11},"value":[{"Ident":["core",0]},{"Ident":["option",0]},{"Impl":{"Trait":11}}]},{"key":{"Fun":30},"value":[{"Ident":["core",0]},{"Ident":["option",0]},{"Impl":{"Trait":11}},{"Ident":["branch",0]}]},{"key":{"TraitImpl":12},"value":[{"Ident":["core",0]},{"Ident":["option",0]},{"Impl":{"Trait":12}}]},{"key":{"Fun":31},"value":[{"Ident":["core",0]},{"Ident":["option",0]},{"Impl":{"Trait":12}},{"Ident":["from_residual",0]}]},{"key":{"Fun":32},"value":[{"Ident":["charon_corpus",0]},{"Ident":["INT_CLASS",0]}]},{"key":{"Fun":33},"value":[{"Ident":["charon_corpus",0]},{"Ident":["DOUBLE_CLASS",0]}]},{"key":{"Fun":34},"value":[{"Ident":["charon_corpus",0]},{"Ident":["lltype",0]},{"Ident":["malloc_typed",0]}]},{"key":{"Fun":35},"value":[{"Ident":["charon_corpus",0]},{"Ident":["pyre_object",0]},{"Ident":["pyobject",0]},{"Ident":["get_instantiate",0]}]},{"key":{"Fun":36},"value":[{"Ident":["charon_corpus",0]},{"Ident":["_immutable_fields_W_IntObject",0]}]},{"key":{"Type":17},"value":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["MetaSized",0]},{"Ident":["{vtable}",0]}]},{"key":{"TraitDecl":6},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["collect",0]},{"Ident":["IntoIterator",0]}]},{"key":{"Global":3},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":0}},{"Ident":["{vtable}",0]}]},{"key":{"Global":4},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["{vtable}",0]}]},{"key":{"Fun":37},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["next_chunk",0]}]},{"key":{"Fun":38},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["size_hint",0]}]},{"key":{"Fun":39},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["count",0]}]},{"key":{"Fun":40},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["last",0]}]},{"key":{"Fun":41},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["advance_by",0]}]},{"key":{"Fun":42},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["nth",0]}]},{"key":{"Fun":43},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["step_by",0]}]},{"key":{"Type":18},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["{vtable}",0]}]},{"key":{"Fun":44},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["next",0]}]},{"key":{"Fun":45},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["next_chunk",0]}]},{"key":{"Fun":46},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["size_hint",0]}]},{"key":{"Fun":47},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["count",0]}]},{"key":{"Fun":48},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["last",0]}]},{"key":{"Fun":49},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["advance_by",0]}]},{"key":{"Type":19},"value":[{"Ident":["core",0]},{"Ident":["num",0]},{"Ident":["nonzero",0]},{"Ident":["NonZero",0]}]},{"key":{"TraitDecl":7},"value":[{"Ident":["core",0]},{"Ident":["num",0]},{"Ident":["nonzero",0]},{"Ident":["ZeroablePrimitive",0]}]},{"key":{"TraitImpl":13},"value":[{"Ident":["core",0]},{"Ident":["num",0]},{"Ident":["nonzero",0]},{"Impl":{"Trait":13}}]},{"key":{"Fun":50},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["nth",0]}]},{"key":{"Fun":51},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["step_by",0]}]},{"key":{"Type":20},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["step_by",0]},{"Ident":["StepBy",0]}]},{"key":{"Fun":52},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["chain",0]}]},{"key":{"Type":21},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["chain",0]},{"Ident":["Chain",0]}]},{"key":{"Fun":53},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["zip",0]}]},{"key":{"Type":22},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["zip",0]},{"Ident":["Zip",0]}]},{"key":{"Fun":54},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["intersperse",0]}]},{"key":{"TraitDecl":8},"value":[{"Ident":["core",0]},{"Ident":["clone",0]},{"Ident":["Clone",0]}]},{"key":{"Type":23},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["intersperse",0]},{"Ident":["Intersperse",0]}]},{"key":{"Fun":55},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["intersperse_with",0]}]},{"key":{"TraitDecl":9},"value":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["function",0]},{"Ident":["FnMut",0]}]},{"key":{"Type":24},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["intersperse",0]},{"Ident":["IntersperseWith",0]}]},{"key":{"Fun":56},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["map",0]}]},{"key":{"Type":25},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["map",0]},{"Ident":["Map",0]}]},{"key":{"Fun":57},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["for_each",0]}]},{"key":{"Fun":58},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["filter",0]}]},{"key":{"Type":26},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["filter",0]},{"Ident":["Filter",0]}]},{"key":{"Fun":59},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["filter_map",0]}]},{"key":{"Type":27},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["filter_map",0]},{"Ident":["FilterMap",0]}]},{"key":{"Fun":60},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["enumerate",0]}]},{"key":{"Type":28},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["enumerate",0]},{"Ident":["Enumerate",0]}]},{"key":{"Fun":61},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["peekable",0]}]},{"key":{"Type":29},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["peekable",0]},{"Ident":["Peekable",0]}]},{"key":{"Fun":62},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["skip_while",0]}]},{"key":{"Type":30},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["skip_while",0]},{"Ident":["SkipWhile",0]}]},{"key":{"Fun":63},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["take_while",0]}]},{"key":{"Type":31},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["take_while",0]},{"Ident":["TakeWhile",0]}]},{"key":{"Fun":64},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["map_while",0]}]},{"key":{"Type":32},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["map_while",0]},{"Ident":["MapWhile",0]}]},{"key":{"Fun":65},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["skip",0]}]},{"key":{"Type":33},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["skip",0]},{"Ident":["Skip",0]}]},{"key":{"Fun":66},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["take",0]}]},{"key":{"Type":34},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["take",0]},{"Ident":["Take",0]}]},{"key":{"Fun":67},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["scan",0]}]},{"key":{"Type":35},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["scan",0]},{"Ident":["Scan",0]}]},{"key":{"Fun":68},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["flat_map",0]}]},{"key":{"Type":36},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["flatten",0]},{"Ident":["FlatMap",0]}]},{"key":{"Fun":69},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["flatten",0]}]},{"key":{"Type":37},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["flatten",0]},{"Ident":["Flatten",0]}]},{"key":{"Fun":70},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["map_windows",0]}]},{"key":{"Type":38},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["map_windows",0]},{"Ident":["MapWindows",0]}]},{"key":{"Fun":71},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["fuse",0]}]},{"key":{"Type":39},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["fuse",0]},{"Ident":["Fuse",0]}]},{"key":{"Fun":72},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["inspect",0]}]},{"key":{"Type":40},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["inspect",0]},{"Ident":["Inspect",0]}]},{"key":{"Fun":73},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["by_ref",0]}]},{"key":{"Fun":74},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["collect",0]}]},{"key":{"TraitDecl":10},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["collect",0]},{"Ident":["FromIterator",0]}]},{"key":{"Fun":75},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["try_collect",0]}]},{"key":{"TraitDecl":11},"value":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["try_trait",0]},{"Ident":["Try",0]}]},{"key":{"TraitDecl":12},"value":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["try_trait",0]},{"Ident":["Residual",0]}]},{"key":{"Fun":76},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["collect_into",0]}]},{"key":{"TraitDecl":13},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["collect",0]},{"Ident":["Extend",0]}]},{"key":{"Fun":77},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["partition",0]}]},{"key":{"TraitDecl":14},"value":[{"Ident":["core",0]},{"Ident":["default",0]},{"Ident":["Default",0]}]},{"key":{"Fun":78},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["partition_in_place",0]}]},{"key":{"TraitDecl":15},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["double_ended",0]},{"Ident":["DoubleEndedIterator",0]}]},{"key":{"Fun":79},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["is_partitioned",0]}]},{"key":{"Fun":80},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["try_fold",0]}]},{"key":{"Fun":81},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["try_for_each",0]}]},{"key":{"Fun":82},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["fold",0]}]},{"key":{"Fun":83},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["reduce",0]}]},{"key":{"Fun":84},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["try_reduce",0]}]},{"key":{"Fun":85},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["all",0]}]},{"key":{"Fun":86},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["any",0]}]},{"key":{"Fun":87},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["find",0]}]},{"key":{"Fun":88},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["find_map",0]}]},{"key":{"Fun":89},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["try_find",0]}]},{"key":{"Fun":90},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["position",0]}]},{"key":{"Fun":91},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["rposition",0]}]},{"key":{"TraitDecl":16},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["exact_size",0]},{"Ident":["ExactSizeIterator",0]}]},{"key":{"Fun":92},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["max",0]}]},{"key":{"TraitDecl":17},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["Ord",0]}]},{"key":{"Fun":93},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["min",0]}]},{"key":{"Fun":94},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["max_by_key",0]}]},{"key":{"Fun":95},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["max_by",0]}]},{"key":{"Type":41},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["Ordering",0]}]},{"key":{"Fun":96},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["min_by_key",0]}]},{"key":{"Fun":97},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["min_by",0]}]},{"key":{"Fun":98},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["rev",0]}]},{"key":{"Type":42},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["rev",0]},{"Ident":["Rev",0]}]},{"key":{"Fun":99},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["unzip",0]}]},{"key":{"Fun":100},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["copied",0]}]},{"key":{"TraitDecl":18},"value":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["Copy",0]}]},{"key":{"Type":43},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["copied",0]},{"Ident":["Copied",0]}]},{"key":{"Fun":101},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["cloned",0]}]},{"key":{"Type":44},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["cloned",0]},{"Ident":["Cloned",0]}]},{"key":{"Fun":102},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["cycle",0]}]},{"key":{"Type":45},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["cycle",0]},{"Ident":["Cycle",0]}]},{"key":{"Fun":103},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["array_chunks",0]}]},{"key":{"Type":46},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["array_chunks",0]},{"Ident":["ArrayChunks",0]}]},{"key":{"Fun":104},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["sum",0]}]},{"key":{"TraitDecl":19},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["accum",0]},{"Ident":["Sum",0]}]},{"key":{"Fun":105},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["product",0]}]},{"key":{"TraitDecl":20},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["accum",0]},{"Ident":["Product",0]}]},{"key":{"Fun":106},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["cmp",0]}]},{"key":{"Fun":107},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["cmp_by",0]}]},{"key":{"Fun":108},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["partial_cmp",0]}]},{"key":{"TraitDecl":21},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["PartialOrd",0]}]},{"key":{"Fun":109},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["partial_cmp_by",0]}]},{"key":{"Fun":110},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["eq",0]}]},{"key":{"TraitDecl":22},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["PartialEq",0]}]},{"key":{"Fun":111},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["eq_by",0]}]},{"key":{"Fun":112},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["ne",0]}]},{"key":{"Fun":113},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["lt",0]}]},{"key":{"Fun":114},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["le",0]}]},{"key":{"Fun":115},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["gt",0]}]},{"key":{"Fun":116},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["ge",0]}]},{"key":{"Fun":117},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["is_sorted",0]}]},{"key":{"Fun":118},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["is_sorted_by",0]}]},{"key":{"Fun":119},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["is_sorted_by_key",0]}]},{"key":{"Fun":120},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["__iterator_get_unchecked",0]}]},{"key":{"TraitDecl":23},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["zip",0]},{"Ident":["TrustedRandomAccessNoCoerce",0]}]},{"key":{"Fun":121},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["chain",0]}]},{"key":{"Fun":122},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["zip",0]}]},{"key":{"Fun":123},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["intersperse",0]}]},{"key":{"Fun":124},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["intersperse_with",0]}]},{"key":{"Fun":125},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["map",0]}]},{"key":{"Fun":126},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["for_each",0]}]},{"key":{"Fun":127},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["filter",0]}]},{"key":{"Fun":128},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["filter_map",0]}]},{"key":{"Fun":129},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["enumerate",0]}]},{"key":{"Fun":130},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["peekable",0]}]},{"key":{"Fun":131},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["skip_while",0]}]},{"key":{"Fun":132},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["take_while",0]}]},{"key":{"Fun":133},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["map_while",0]}]},{"key":{"Fun":134},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["skip",0]}]},{"key":{"Fun":135},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["take",0]}]},{"key":{"Fun":136},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["scan",0]}]},{"key":{"Fun":137},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["flat_map",0]}]},{"key":{"Fun":138},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["flatten",0]}]},{"key":{"Fun":139},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["map_windows",0]}]},{"key":{"Fun":140},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["fuse",0]}]},{"key":{"Fun":141},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["inspect",0]}]},{"key":{"Fun":142},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["by_ref",0]}]},{"key":{"Fun":143},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["collect",0]}]},{"key":{"Fun":144},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["try_collect",0]}]},{"key":{"Fun":145},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["collect_into",0]}]},{"key":{"Fun":146},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["partition",0]}]},{"key":{"Fun":147},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["partition_in_place",0]}]},{"key":{"Fun":148},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["is_partitioned",0]}]},{"key":{"Fun":149},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["try_fold",0]}]},{"key":{"Fun":150},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["try_for_each",0]}]},{"key":{"Fun":151},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["fold",0]}]},{"key":{"Fun":152},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["reduce",0]}]},{"key":{"Fun":153},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["try_reduce",0]}]},{"key":{"Fun":154},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["all",0]}]},{"key":{"Fun":155},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["any",0]}]},{"key":{"Fun":156},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["find",0]}]},{"key":{"Fun":157},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["find_map",0]}]},{"key":{"Fun":158},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["try_find",0]}]},{"key":{"Fun":159},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["position",0]}]},{"key":{"Fun":160},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["rposition",0]}]},{"key":{"Fun":161},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["max",0]}]},{"key":{"Fun":162},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["min",0]}]},{"key":{"Fun":163},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["max_by_key",0]}]},{"key":{"Fun":164},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["max_by",0]}]},{"key":{"Fun":165},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["min_by_key",0]}]},{"key":{"Fun":166},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["min_by",0]}]},{"key":{"Fun":167},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["rev",0]}]},{"key":{"Fun":168},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["unzip",0]}]},{"key":{"Fun":169},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["copied",0]}]},{"key":{"Fun":170},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["cloned",0]}]},{"key":{"Fun":171},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["cycle",0]}]},{"key":{"Fun":172},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["array_chunks",0]}]},{"key":{"Fun":173},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["sum",0]}]},{"key":{"Fun":174},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["product",0]}]},{"key":{"Fun":175},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["cmp",0]}]},{"key":{"Fun":176},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["cmp_by",0]}]},{"key":{"Fun":177},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["partial_cmp",0]}]},{"key":{"Fun":178},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["partial_cmp_by",0]}]},{"key":{"Fun":179},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["eq",0]}]},{"key":{"Fun":180},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["eq_by",0]}]},{"key":{"Fun":181},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["ne",0]}]},{"key":{"Fun":182},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["lt",0]}]},{"key":{"Fun":183},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["le",0]}]},{"key":{"Fun":184},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["gt",0]}]},{"key":{"Fun":185},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["ge",0]}]},{"key":{"Fun":186},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["is_sorted",0]}]},{"key":{"Fun":187},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["is_sorted_by",0]}]},{"key":{"Fun":188},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["is_sorted_by_key",0]}]},{"key":{"Fun":189},"value":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["__iterator_get_unchecked",0]}]},{"key":{"Global":5},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":2}},{"Ident":["{vtable}",0]}]},{"key":{"Global":6},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["{vtable}",0]}]},{"key":{"Fun":190},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["next_chunk",0]}]},{"key":{"Fun":191},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["size_hint",0]}]},{"key":{"Fun":192},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["count",0]}]},{"key":{"Fun":193},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["last",0]}]},{"key":{"Fun":194},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["advance_by",0]}]},{"key":{"Fun":195},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["nth",0]}]},{"key":{"Fun":196},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["step_by",0]}]},{"key":{"Fun":197},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["chain",0]}]},{"key":{"Fun":198},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["zip",0]}]},{"key":{"Fun":199},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["intersperse",0]}]},{"key":{"Fun":200},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["intersperse_with",0]}]},{"key":{"Fun":201},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["map",0]}]},{"key":{"Fun":202},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["for_each",0]}]},{"key":{"Fun":203},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["filter",0]}]},{"key":{"Fun":204},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["filter_map",0]}]},{"key":{"Fun":205},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["enumerate",0]}]},{"key":{"Fun":206},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["peekable",0]}]},{"key":{"Fun":207},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["skip_while",0]}]},{"key":{"Fun":208},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["take_while",0]}]},{"key":{"Fun":209},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["map_while",0]}]},{"key":{"Fun":210},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["skip",0]}]},{"key":{"Fun":211},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["take",0]}]},{"key":{"Fun":212},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["scan",0]}]},{"key":{"Fun":213},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["flat_map",0]}]},{"key":{"Fun":214},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["flatten",0]}]},{"key":{"Fun":215},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["map_windows",0]}]},{"key":{"Fun":216},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["fuse",0]}]},{"key":{"Fun":217},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["inspect",0]}]},{"key":{"Fun":218},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["by_ref",0]}]},{"key":{"Fun":219},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["collect",0]}]},{"key":{"Fun":220},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["try_collect",0]}]},{"key":{"Fun":221},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["collect_into",0]}]},{"key":{"Fun":222},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["partition",0]}]},{"key":{"Fun":223},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["partition_in_place",0]}]},{"key":{"Fun":224},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["is_partitioned",0]}]},{"key":{"Fun":225},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["try_fold",0]}]},{"key":{"Fun":226},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["try_for_each",0]}]},{"key":{"Fun":227},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["fold",0]}]},{"key":{"Fun":228},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["reduce",0]}]},{"key":{"Fun":229},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["try_reduce",0]}]},{"key":{"Fun":230},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["all",0]}]},{"key":{"Fun":231},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["any",0]}]},{"key":{"Fun":232},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["find",0]}]},{"key":{"Fun":233},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["find_map",0]}]},{"key":{"Fun":234},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["try_find",0]}]},{"key":{"Fun":235},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["position",0]}]},{"key":{"Fun":236},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["rposition",0]}]},{"key":{"Fun":237},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["max",0]}]},{"key":{"Fun":238},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["min",0]}]},{"key":{"Fun":239},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["max_by_key",0]}]},{"key":{"Fun":240},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["max_by",0]}]},{"key":{"Fun":241},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["min_by_key",0]}]},{"key":{"Fun":242},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["min_by",0]}]},{"key":{"Fun":243},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["rev",0]}]},{"key":{"Fun":244},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["unzip",0]}]},{"key":{"Fun":245},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["copied",0]}]},{"key":{"Fun":246},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["cloned",0]}]},{"key":{"Fun":247},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["cycle",0]}]},{"key":{"Fun":248},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["array_chunks",0]}]},{"key":{"Fun":249},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["sum",0]}]},{"key":{"Fun":250},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["product",0]}]},{"key":{"Fun":251},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["cmp",0]}]},{"key":{"Fun":252},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["cmp_by",0]}]},{"key":{"Fun":253},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["partial_cmp",0]}]},{"key":{"Fun":254},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["partial_cmp_by",0]}]},{"key":{"Fun":255},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["eq",0]}]},{"key":{"Fun":256},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["eq_by",0]}]},{"key":{"Fun":257},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["ne",0]}]},{"key":{"Fun":258},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["lt",0]}]},{"key":{"Fun":259},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["le",0]}]},{"key":{"Fun":260},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["gt",0]}]},{"key":{"Fun":261},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["ge",0]}]},{"key":{"Fun":262},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["is_sorted",0]}]},{"key":{"Fun":263},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["is_sorted_by",0]}]},{"key":{"Fun":264},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["is_sorted_by_key",0]}]},{"key":{"Fun":265},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["__iterator_get_unchecked",0]}]},{"key":{"Fun":266},"value":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Ident":["IntoIter",0]},{"Impl":{"Trait":4}},{"Ident":["drop_in_place",0]}]},{"key":{"Global":7},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["collect",0]},{"Impl":{"Trait":5}},{"Ident":["{vtable}",0]}]},{"key":{"TraitDecl":24},"value":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["try_trait",0]},{"Ident":["FromResidual",0]}]},{"key":{"Fun":267},"value":[{"Ident":["core",0]},{"Ident":["result",0]},{"Impl":{"Trait":6}},{"Ident":["from_output",0]}]},{"key":{"Fun":268},"value":[{"Ident":["core",0]},{"Ident":["convert",0]},{"Ident":["From",0]},{"Ident":["from",0]}]},{"key":{"Fun":269},"value":[{"Ident":["core",0]},{"Ident":["convert",0]},{"Impl":{"Trait":8}},{"Ident":["from",0]}]},{"key":{"TraitDecl":25},"value":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["Tuple",0]}]},{"key":{"Fun":270},"value":[{"Ident":["charon_corpus",0]},{"Ident":["bool_then_closure",0]},{"Impl":{"Trait":9}},{"Ident":["call_once",0]}]},{"key":{"Type":47},"value":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["function",0]},{"Ident":["FnOnce",0]},{"Ident":["{vtable}",0]}]},{"key":{"Fun":271},"value":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["function",0]},{"Ident":["FnOnce",0]},{"Ident":["call_once",0]}]},{"key":{"Fun":272},"value":[{"Ident":["charon_corpus",0]},{"Ident":["bool_then_closure",0]},{"Ident":["closure",0]},{"Impl":{"Trait":10}},{"Ident":["drop_in_place",0]}]},{"key":{"Fun":273},"value":[{"Ident":["core",0]},{"Ident":["option",0]},{"Impl":{"Trait":11}},{"Ident":["from_output",0]}]},{"key":{"Type":48},"value":[{"Ident":["alloc",0]},{"Ident":["boxed",0]},{"Ident":["Box",0]}]},{"key":{"Type":49},"value":[{"Ident":["alloc",0]},{"Ident":["alloc",0]},{"Ident":["Global",0]}]},{"key":{"TraitDecl":26},"value":[{"Ident":["core",0]},{"Ident":["alloc",0]},{"Ident":["Allocator",0]}]},{"key":{"TraitImpl":14},"value":[{"Ident":["alloc",0]},{"Ident":["alloc",0]},{"Impl":{"Trait":14}}]},{"key":{"Fun":274},"value":[{"Ident":["alloc",0]},{"Ident":["boxed",0]},{"Impl":{"Ty":{"params":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":53,"beg":{"line":269,"col":5},"end":{"line":269,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"HashConsedValue":[5462,{"Adt":{"id":{"Adt":48},"generics":{"regions":[],"types":[{"Deduplicated":272},{"HashConsedValue":[5432,{"Adt":{"id":{"Adt":49},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}}]}],"const_generics":[],"trait_refs":[{"HashConsedValue":[5284,{"kind":{"ParentClause":[{"HashConsedValue":[275,{"kind":{"Clause":{"Bound":[0,0]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}]},0]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}]},{"HashConsedValue":[5434,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[5433,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":5432}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":5432}],"const_generics":[],"trait_refs":[]}}}}]},{"HashConsedValue":[5461,{"kind":{"TraitImpl":{"id":14,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":26,"generics":{"regions":[],"types":[{"Deduplicated":5432}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]},"kind":"InherentImplBlock"}}},{"Ident":["new",0]}]},{"key":{"Fun":275},"value":[{"Ident":["alloc",0]},{"Ident":["boxed",0]},{"Impl":{"Ty":{"params":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":53,"beg":{"line":1263,"col":5},"end":{"line":1263,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"HashConsedValue":[5496,{"Adt":{"id":{"Adt":48},"generics":{"regions":[],"types":[{"Deduplicated":272},{"Deduplicated":5432}],"const_generics":[],"trait_refs":[{"HashConsedValue":[5495,{"kind":{"Clause":{"Bound":[0,0]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}]},{"Deduplicated":5434},{"Deduplicated":5461}]}}}]},"kind":"InherentImplBlock"}}},{"Ident":["into_raw",0]}]},{"key":{"TraitImpl":15},"value":[{"Ident":["alloc",0]},{"Ident":["boxed",0]},{"Ident":["Box",0]},{"Impl":{"Trait":15}}]},{"key":{"Type":50},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["collect",0]},{"Ident":["IntoIterator",0]},{"Ident":["{vtable}",0]}]},{"key":{"Fun":276},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["collect",0]},{"Ident":["IntoIterator",0]},{"Ident":["into_iter",0]}]},{"key":{"TraitDecl":27},"value":[{"Ident":["core",0]},{"Ident":["num",0]},{"Ident":["nonzero",0]},{"Ident":["private",0]},{"Ident":["Sealed",0]}]},{"key":{"TraitImpl":16},"value":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Impl":{"Trait":16}}]},{"key":{"TraitImpl":17},"value":[{"Ident":["core",0]},{"Ident":["num",0]},{"Ident":["nonzero",0]},{"Impl":{"Trait":17}}]},{"key":{"Type":51},"value":[{"Ident":["core",0]},{"Ident":["num",0]},{"Ident":["niche_types",0]},{"Ident":["NonZeroUsizeInner",0]}]},{"key":{"TraitImpl":18},"value":[{"Ident":["core",0]},{"Ident":["num",0]},{"Ident":["niche_types",0]},{"Impl":{"Trait":18}}]},{"key":{"Fun":277},"value":[{"Ident":["core",0]},{"Ident":["clone",0]},{"Ident":["Clone",0]},{"Ident":["clone",0]}]},{"key":{"Fun":278},"value":[{"Ident":["core",0]},{"Ident":["clone",0]},{"Ident":["Clone",0]},{"Ident":["clone_from",0]}]},{"key":{"Type":52},"value":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["function",0]},{"Ident":["FnMut",0]},{"Ident":["{vtable}",0]}]},{"key":{"Fun":279},"value":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["function",0]},{"Ident":["FnMut",0]},{"Ident":["call_mut",0]}]},{"key":{"Fun":280},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["collect",0]},{"Ident":["FromIterator",0]},{"Ident":["from_iter",0]}]},{"key":{"Fun":281},"value":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["try_trait",0]},{"Ident":["Try",0]},{"Ident":["from_output",0]}]},{"key":{"Fun":282},"value":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["try_trait",0]},{"Ident":["Try",0]},{"Ident":["branch",0]}]},{"key":{"Fun":283},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["collect",0]},{"Ident":["Extend",0]},{"Ident":["extend",0]}]},{"key":{"Fun":284},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["collect",0]},{"Ident":["Extend",0]},{"Ident":["extend_one",0]}]},{"key":{"Fun":285},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["collect",0]},{"Ident":["Extend",0]},{"Ident":["extend_reserve",0]}]},{"key":{"Fun":286},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["collect",0]},{"Ident":["Extend",0]},{"Ident":["extend_one_unchecked",0]}]},{"key":{"Fun":287},"value":[{"Ident":["core",0]},{"Ident":["default",0]},{"Ident":["Default",0]},{"Ident":["default",0]}]},{"key":{"Type":53},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["double_ended",0]},{"Ident":["DoubleEndedIterator",0]},{"Ident":["{vtable}",0]}]},{"key":{"Fun":288},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["double_ended",0]},{"Ident":["DoubleEndedIterator",0]},{"Ident":["next_back",0]}]},{"key":{"Fun":289},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["double_ended",0]},{"Ident":["DoubleEndedIterator",0]},{"Ident":["advance_back_by",0]}]},{"key":{"Fun":290},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["double_ended",0]},{"Ident":["DoubleEndedIterator",0]},{"Ident":["nth_back",0]}]},{"key":{"Fun":291},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["double_ended",0]},{"Ident":["DoubleEndedIterator",0]},{"Ident":["try_rfold",0]}]},{"key":{"Fun":292},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["double_ended",0]},{"Ident":["DoubleEndedIterator",0]},{"Ident":["rfold",0]}]},{"key":{"Fun":293},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["double_ended",0]},{"Ident":["DoubleEndedIterator",0]},{"Ident":["rfind",0]}]},{"key":{"Type":54},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["exact_size",0]},{"Ident":["ExactSizeIterator",0]},{"Ident":["{vtable}",0]}]},{"key":{"Fun":294},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["exact_size",0]},{"Ident":["ExactSizeIterator",0]},{"Ident":["len",0]}]},{"key":{"Fun":295},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["exact_size",0]},{"Ident":["ExactSizeIterator",0]},{"Ident":["is_empty",0]}]},{"key":{"TraitDecl":28},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["Eq",0]}]},{"key":{"Fun":296},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["Ord",0]},{"Ident":["cmp",0]}]},{"key":{"Fun":297},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["Ord",0]},{"Ident":["max",0]}]},{"key":{"Fun":298},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["Ord",0]},{"Ident":["min",0]}]},{"key":{"Fun":299},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["Ord",0]},{"Ident":["clamp",0]}]},{"key":{"Fun":300},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["accum",0]},{"Ident":["Sum",0]},{"Ident":["sum",0]}]},{"key":{"Fun":301},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["accum",0]},{"Ident":["Product",0]},{"Ident":["product",0]}]},{"key":{"Type":55},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["PartialOrd",0]},{"Ident":["{vtable}",0]}]},{"key":{"Fun":302},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["PartialOrd",0]},{"Ident":["partial_cmp",0]}]},{"key":{"Fun":303},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["PartialOrd",0]},{"Ident":["lt",0]}]},{"key":{"Fun":304},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["PartialOrd",0]},{"Ident":["le",0]}]},{"key":{"Fun":305},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["PartialOrd",0]},{"Ident":["gt",0]}]},{"key":{"Fun":306},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["PartialOrd",0]},{"Ident":["ge",0]}]},{"key":{"Fun":307},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["PartialOrd",0]},{"Ident":["__chaining_lt",0]}]},{"key":{"Fun":308},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["PartialOrd",0]},{"Ident":["__chaining_le",0]}]},{"key":{"Fun":309},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["PartialOrd",0]},{"Ident":["__chaining_gt",0]}]},{"key":{"Fun":310},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["PartialOrd",0]},{"Ident":["__chaining_ge",0]}]},{"key":{"Type":56},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["PartialEq",0]},{"Ident":["{vtable}",0]}]},{"key":{"Fun":311},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["PartialEq",0]},{"Ident":["eq",0]}]},{"key":{"Fun":312},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["PartialEq",0]},{"Ident":["ne",0]}]},{"key":{"Fun":313},"value":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["zip",0]},{"Ident":["TrustedRandomAccessNoCoerce",0]},{"Ident":["size",0]}]},{"key":{"Fun":314},"value":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["try_trait",0]},{"Ident":["FromResidual",0]},{"Ident":["from_residual",0]}]},{"key":{"Type":57},"value":[{"Ident":["core",0]},{"Ident":["alloc",0]},{"Ident":["Allocator",0]},{"Ident":["{vtable}",0]}]},{"key":{"Fun":315},"value":[{"Ident":["core",0]},{"Ident":["alloc",0]},{"Ident":["Allocator",0]},{"Ident":["allocate",0]}]},{"key":{"Type":58},"value":[{"Ident":["core",0]},{"Ident":["alloc",0]},{"Ident":["layout",0]},{"Ident":["Layout",0]}]},{"key":{"Type":59},"value":[{"Ident":["core",0]},{"Ident":["ptr",0]},{"Ident":["non_null",0]},{"Ident":["NonNull",0]}]},{"key":{"Type":60},"value":[{"Ident":["core",0]},{"Ident":["alloc",0]},{"Ident":["AllocError",0]}]},{"key":{"Fun":316},"value":[{"Ident":["core",0]},{"Ident":["alloc",0]},{"Ident":["Allocator",0]},{"Ident":["allocate_zeroed",0]}]},{"key":{"Fun":317},"value":[{"Ident":["core",0]},{"Ident":["alloc",0]},{"Ident":["Allocator",0]},{"Ident":["deallocate",0]}]},{"key":{"Fun":318},"value":[{"Ident":["core",0]},{"Ident":["alloc",0]},{"Ident":["Allocator",0]},{"Ident":["grow",0]}]},{"key":{"Fun":319},"value":[{"Ident":["core",0]},{"Ident":["alloc",0]},{"Ident":["Allocator",0]},{"Ident":["grow_zeroed",0]}]},{"key":{"Fun":320},"value":[{"Ident":["core",0]},{"Ident":["alloc",0]},{"Ident":["Allocator",0]},{"Ident":["shrink",0]}]},{"key":{"Fun":321},"value":[{"Ident":["core",0]},{"Ident":["alloc",0]},{"Ident":["Allocator",0]},{"Ident":["by_ref",0]}]},{"key":{"Global":8},"value":[{"Ident":["alloc",0]},{"Ident":["alloc",0]},{"Impl":{"Trait":14}},{"Ident":["{vtable}",0]}]},{"key":{"Fun":322},"value":[{"Ident":["alloc",0]},{"Ident":["alloc",0]},{"Impl":{"Trait":14}},{"Ident":["allocate",0]}]},{"key":{"Fun":323},"value":[{"Ident":["alloc",0]},{"Ident":["alloc",0]},{"Impl":{"Trait":14}},{"Ident":["allocate_zeroed",0]}]},{"key":{"Fun":324},"value":[{"Ident":["alloc",0]},{"Ident":["alloc",0]},{"Impl":{"Trait":14}},{"Ident":["deallocate",0]}]},{"key":{"Fun":325},"value":[{"Ident":["alloc",0]},{"Ident":["alloc",0]},{"Impl":{"Trait":14}},{"Ident":["grow",0]}]},{"key":{"Fun":326},"value":[{"Ident":["alloc",0]},{"Ident":["alloc",0]},{"Impl":{"Trait":14}},{"Ident":["grow_zeroed",0]}]},{"key":{"Fun":327},"value":[{"Ident":["alloc",0]},{"Ident":["alloc",0]},{"Impl":{"Trait":14}},{"Ident":["shrink",0]}]},{"key":{"Fun":328},"value":[{"Ident":["alloc",0]},{"Ident":["alloc",0]},{"Impl":{"Trait":14}},{"Ident":["by_ref",0]}]},{"key":{"Fun":329},"value":[{"Ident":["alloc",0]},{"Ident":["boxed",0]},{"Ident":["Box",0]},{"Impl":{"Trait":15}},{"Ident":["drop_in_place",0]}]},{"key":{"Type":61},"value":[{"Ident":["core",0]},{"Ident":["num",0]},{"Ident":["nonzero",0]},{"Ident":["private",0]},{"Ident":["Sealed",0]},{"Ident":["{vtable}",0]}]},{"key":{"TraitImpl":19},"value":[{"Ident":["core",0]},{"Ident":["clone",0]},{"Ident":["impls",0]},{"Impl":{"Trait":19}}]},{"key":{"Global":9},"value":[{"Ident":["core",0]},{"Ident":["num",0]},{"Ident":["nonzero",0]},{"Impl":{"Trait":17}},{"Ident":["{vtable}",0]}]},{"key":{"TraitImpl":20},"value":[{"Ident":["core",0]},{"Ident":["num",0]},{"Ident":["niche_types",0]},{"Impl":{"Trait":20}}]},{"key":{"Fun":330},"value":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["Eq",0]},{"Ident":["assert_receiver_is_total_eq",0]}]},{"key":{"Fun":331},"value":[{"Ident":["core",0]},{"Ident":["clone",0]},{"Ident":["impls",0]},{"Impl":{"Trait":19}},{"Ident":["clone",0]}]},{"key":{"Fun":332},"value":[{"Ident":["core",0]},{"Ident":["clone",0]},{"Ident":["impls",0]},{"Impl":{"Trait":19}},{"Ident":["clone_from",0]}]},{"key":{"Fun":333},"value":[{"Ident":["core",0]},{"Ident":["num",0]},{"Ident":["niche_types",0]},{"Impl":{"Trait":20}},{"Ident":["clone",0]}]},{"key":{"Fun":334},"value":[{"Ident":["core",0]},{"Ident":["num",0]},{"Ident":["niche_types",0]},{"Impl":{"Trait":20}},{"Ident":["clone_from",0]}]}],"assoc_item_names":[{"types":[],"methods":[],"consts":[]},{"types":[],"methods":[],"consts":[]},{"types":[],"methods":["drop_in_place"],"consts":[]},{"types":["Item"],"methods":["next","next_chunk","size_hint","count","last","advance_by","nth","step_by","chain","zip","intersperse","intersperse_with","map","for_each","filter","filter_map","enumerate","peekable","skip_while","take_while","map_while","skip","take","scan","flat_map","flatten","map_windows","fuse","inspect","by_ref","collect","try_collect","collect_into","partition","partition_in_place","is_partitioned","try_fold","try_for_each","fold","reduce","try_reduce","all","any","find","find_map","try_find","position","rposition","max","min","max_by_key","max_by","min_by_key","min_by","rev","unzip","copied","cloned","cycle","array_chunks","sum","product","cmp","cmp_by","partial_cmp","partial_cmp_by","eq","eq_by","ne","lt","le","gt","ge","is_sorted","is_sorted_by","is_sorted_by_key","__iterator_get_unchecked"],"consts":[]},{"types":[],"methods":["from"],"consts":[]},{"types":["Output"],"methods":["call_once"],"consts":[]},{"types":["Item","IntoIter"],"methods":["into_iter"],"consts":[]},{"types":["NonZeroInner"],"methods":[],"consts":[]},{"types":[],"methods":["clone","clone_from"],"consts":[]},{"types":[],"methods":["call_mut"],"consts":[]},{"types":[],"methods":["from_iter"],"consts":[]},{"types":["Output","Residual"],"methods":["from_output","branch"],"consts":[]},{"types":["TryType"],"methods":[],"consts":[]},{"types":[],"methods":["extend","extend_one","extend_reserve","extend_one_unchecked"],"consts":[]},{"types":[],"methods":["default"],"consts":[]},{"types":[],"methods":["next_back","advance_back_by","nth_back","try_rfold","rfold","rfind"],"consts":[]},{"types":[],"methods":["len","is_empty"],"consts":[]},{"types":[],"methods":["cmp","max","min","clamp"],"consts":[]},{"types":[],"methods":[],"consts":[]},{"types":[],"methods":["sum"],"consts":[]},{"types":[],"methods":["product"],"consts":[]},{"types":[],"methods":["partial_cmp","lt","le","gt","ge","__chaining_lt","__chaining_le","__chaining_gt","__chaining_ge"],"consts":[]},{"types":[],"methods":["eq","ne"],"consts":[]},{"types":[],"methods":["size"],"consts":["MAY_HAVE_SIDE_EFFECT"]},{"types":[],"methods":["from_residual"],"consts":[]},{"types":[],"methods":[],"consts":[]},{"types":[],"methods":["allocate","allocate_zeroed","deallocate","grow","grow_zeroed","shrink","by_ref"],"consts":[]},{"types":[],"methods":[],"consts":[]},{"types":[],"methods":["assert_receiver_is_total_eq"],"consts":[]}],"short_names":[{"key":{"TraitImpl":0},"value":[{"Impl":{"Trait":0}}]},{"key":{"Fun":19},"value":[{"Impl":{"Trait":0}},{"Ident":["into_iter",0]}]},{"key":{"TraitImpl":1},"value":[{"Impl":{"Trait":1}}]},{"key":{"Fun":20},"value":[{"Impl":{"Trait":1}},{"Ident":["next",0]}]},{"key":{"TraitImpl":2},"value":[{"Impl":{"Trait":2}}]},{"key":{"Fun":21},"value":[{"Impl":{"Trait":2}},{"Ident":["into_iter",0]}]},{"key":{"TraitImpl":3},"value":[{"Impl":{"Trait":3}}]},{"key":{"Fun":22},"value":[{"Impl":{"Trait":3}},{"Ident":["next",0]}]},{"key":{"TraitImpl":4},"value":[{"Impl":{"Trait":4}}]},{"key":{"TraitImpl":5},"value":[{"Impl":{"Trait":5}}]},{"key":{"Fun":25},"value":[{"Impl":{"Trait":5}},{"Ident":["into_iter",0]}]},{"key":{"TraitImpl":6},"value":[{"Impl":{"Trait":6}}]},{"key":{"Fun":26},"value":[{"Impl":{"Trait":6}},{"Ident":["branch",0]}]},{"key":{"TraitImpl":7},"value":[{"Impl":{"Trait":7}}]},{"key":{"Fun":27},"value":[{"Impl":{"Trait":7}},{"Ident":["from_residual",0]}]},{"key":{"TraitImpl":8},"value":[{"Impl":{"Trait":8}}]},{"key":{"TraitImpl":9},"value":[{"Impl":{"Trait":9}}]},{"key":{"TraitImpl":10},"value":[{"Impl":{"Trait":10}}]},{"key":{"TraitImpl":11},"value":[{"Impl":{"Trait":11}}]},{"key":{"Fun":30},"value":[{"Impl":{"Trait":11}},{"Ident":["branch",0]}]},{"key":{"TraitImpl":12},"value":[{"Impl":{"Trait":12}}]},{"key":{"Fun":31},"value":[{"Impl":{"Trait":12}},{"Ident":["from_residual",0]}]},{"key":{"Global":3},"value":[{"Impl":{"Trait":0}},{"Ident":["{vtable}",0]}]},{"key":{"Global":4},"value":[{"Impl":{"Trait":1}},{"Ident":["{vtable}",0]}]},{"key":{"Fun":37},"value":[{"Impl":{"Trait":1}},{"Ident":["next_chunk",0]}]},{"key":{"Fun":38},"value":[{"Impl":{"Trait":1}},{"Ident":["size_hint",0]}]},{"key":{"Fun":39},"value":[{"Impl":{"Trait":1}},{"Ident":["count",0]}]},{"key":{"Fun":40},"value":[{"Impl":{"Trait":1}},{"Ident":["last",0]}]},{"key":{"Fun":41},"value":[{"Impl":{"Trait":1}},{"Ident":["advance_by",0]}]},{"key":{"Fun":42},"value":[{"Impl":{"Trait":1}},{"Ident":["nth",0]}]},{"key":{"Fun":43},"value":[{"Impl":{"Trait":1}},{"Ident":["step_by",0]}]},{"key":{"TraitImpl":13},"value":[{"Impl":{"Trait":13}}]},{"key":{"Fun":121},"value":[{"Impl":{"Trait":1}},{"Ident":["chain",0]}]},{"key":{"Fun":122},"value":[{"Impl":{"Trait":1}},{"Ident":["zip",0]}]},{"key":{"Fun":123},"value":[{"Impl":{"Trait":1}},{"Ident":["intersperse",0]}]},{"key":{"Fun":124},"value":[{"Impl":{"Trait":1}},{"Ident":["intersperse_with",0]}]},{"key":{"Fun":125},"value":[{"Impl":{"Trait":1}},{"Ident":["map",0]}]},{"key":{"Fun":126},"value":[{"Impl":{"Trait":1}},{"Ident":["for_each",0]}]},{"key":{"Fun":127},"value":[{"Impl":{"Trait":1}},{"Ident":["filter",0]}]},{"key":{"Fun":128},"value":[{"Impl":{"Trait":1}},{"Ident":["filter_map",0]}]},{"key":{"Fun":129},"value":[{"Impl":{"Trait":1}},{"Ident":["enumerate",0]}]},{"key":{"Fun":130},"value":[{"Impl":{"Trait":1}},{"Ident":["peekable",0]}]},{"key":{"Fun":131},"value":[{"Impl":{"Trait":1}},{"Ident":["skip_while",0]}]},{"key":{"Fun":132},"value":[{"Impl":{"Trait":1}},{"Ident":["take_while",0]}]},{"key":{"Fun":133},"value":[{"Impl":{"Trait":1}},{"Ident":["map_while",0]}]},{"key":{"Fun":134},"value":[{"Impl":{"Trait":1}},{"Ident":["skip",0]}]},{"key":{"Fun":135},"value":[{"Impl":{"Trait":1}},{"Ident":["take",0]}]},{"key":{"Fun":136},"value":[{"Impl":{"Trait":1}},{"Ident":["scan",0]}]},{"key":{"Fun":137},"value":[{"Impl":{"Trait":1}},{"Ident":["flat_map",0]}]},{"key":{"Fun":138},"value":[{"Impl":{"Trait":1}},{"Ident":["flatten",0]}]},{"key":{"Fun":139},"value":[{"Impl":{"Trait":1}},{"Ident":["map_windows",0]}]},{"key":{"Fun":140},"value":[{"Impl":{"Trait":1}},{"Ident":["fuse",0]}]},{"key":{"Fun":141},"value":[{"Impl":{"Trait":1}},{"Ident":["inspect",0]}]},{"key":{"Fun":142},"value":[{"Impl":{"Trait":1}},{"Ident":["by_ref",0]}]},{"key":{"Fun":143},"value":[{"Impl":{"Trait":1}},{"Ident":["collect",0]}]},{"key":{"Fun":144},"value":[{"Impl":{"Trait":1}},{"Ident":["try_collect",0]}]},{"key":{"Fun":145},"value":[{"Impl":{"Trait":1}},{"Ident":["collect_into",0]}]},{"key":{"Fun":146},"value":[{"Impl":{"Trait":1}},{"Ident":["partition",0]}]},{"key":{"Fun":147},"value":[{"Impl":{"Trait":1}},{"Ident":["partition_in_place",0]}]},{"key":{"Fun":148},"value":[{"Impl":{"Trait":1}},{"Ident":["is_partitioned",0]}]},{"key":{"Fun":149},"value":[{"Impl":{"Trait":1}},{"Ident":["try_fold",0]}]},{"key":{"Fun":150},"value":[{"Impl":{"Trait":1}},{"Ident":["try_for_each",0]}]},{"key":{"Fun":151},"value":[{"Impl":{"Trait":1}},{"Ident":["fold",0]}]},{"key":{"Fun":152},"value":[{"Impl":{"Trait":1}},{"Ident":["reduce",0]}]},{"key":{"Fun":153},"value":[{"Impl":{"Trait":1}},{"Ident":["try_reduce",0]}]},{"key":{"Fun":154},"value":[{"Impl":{"Trait":1}},{"Ident":["all",0]}]},{"key":{"Fun":155},"value":[{"Impl":{"Trait":1}},{"Ident":["any",0]}]},{"key":{"Fun":156},"value":[{"Impl":{"Trait":1}},{"Ident":["find",0]}]},{"key":{"Fun":157},"value":[{"Impl":{"Trait":1}},{"Ident":["find_map",0]}]},{"key":{"Fun":158},"value":[{"Impl":{"Trait":1}},{"Ident":["try_find",0]}]},{"key":{"Fun":159},"value":[{"Impl":{"Trait":1}},{"Ident":["position",0]}]},{"key":{"Fun":160},"value":[{"Impl":{"Trait":1}},{"Ident":["rposition",0]}]},{"key":{"Fun":161},"value":[{"Impl":{"Trait":1}},{"Ident":["max",0]}]},{"key":{"Fun":162},"value":[{"Impl":{"Trait":1}},{"Ident":["min",0]}]},{"key":{"Fun":163},"value":[{"Impl":{"Trait":1}},{"Ident":["max_by_key",0]}]},{"key":{"Fun":164},"value":[{"Impl":{"Trait":1}},{"Ident":["max_by",0]}]},{"key":{"Fun":165},"value":[{"Impl":{"Trait":1}},{"Ident":["min_by_key",0]}]},{"key":{"Fun":166},"value":[{"Impl":{"Trait":1}},{"Ident":["min_by",0]}]},{"key":{"Fun":167},"value":[{"Impl":{"Trait":1}},{"Ident":["rev",0]}]},{"key":{"Fun":168},"value":[{"Impl":{"Trait":1}},{"Ident":["unzip",0]}]},{"key":{"Fun":169},"value":[{"Impl":{"Trait":1}},{"Ident":["copied",0]}]},{"key":{"Fun":170},"value":[{"Impl":{"Trait":1}},{"Ident":["cloned",0]}]},{"key":{"Fun":171},"value":[{"Impl":{"Trait":1}},{"Ident":["cycle",0]}]},{"key":{"Fun":172},"value":[{"Impl":{"Trait":1}},{"Ident":["array_chunks",0]}]},{"key":{"Fun":173},"value":[{"Impl":{"Trait":1}},{"Ident":["sum",0]}]},{"key":{"Fun":174},"value":[{"Impl":{"Trait":1}},{"Ident":["product",0]}]},{"key":{"Fun":175},"value":[{"Impl":{"Trait":1}},{"Ident":["cmp",0]}]},{"key":{"Fun":176},"value":[{"Impl":{"Trait":1}},{"Ident":["cmp_by",0]}]},{"key":{"Fun":177},"value":[{"Impl":{"Trait":1}},{"Ident":["partial_cmp",0]}]},{"key":{"Fun":178},"value":[{"Impl":{"Trait":1}},{"Ident":["partial_cmp_by",0]}]},{"key":{"Fun":179},"value":[{"Impl":{"Trait":1}},{"Ident":["eq",0]}]},{"key":{"Fun":180},"value":[{"Impl":{"Trait":1}},{"Ident":["eq_by",0]}]},{"key":{"Fun":181},"value":[{"Impl":{"Trait":1}},{"Ident":["ne",0]}]},{"key":{"Fun":182},"value":[{"Impl":{"Trait":1}},{"Ident":["lt",0]}]},{"key":{"Fun":183},"value":[{"Impl":{"Trait":1}},{"Ident":["le",0]}]},{"key":{"Fun":184},"value":[{"Impl":{"Trait":1}},{"Ident":["gt",0]}]},{"key":{"Fun":185},"value":[{"Impl":{"Trait":1}},{"Ident":["ge",0]}]},{"key":{"Fun":186},"value":[{"Impl":{"Trait":1}},{"Ident":["is_sorted",0]}]},{"key":{"Fun":187},"value":[{"Impl":{"Trait":1}},{"Ident":["is_sorted_by",0]}]},{"key":{"Fun":188},"value":[{"Impl":{"Trait":1}},{"Ident":["is_sorted_by_key",0]}]},{"key":{"Fun":189},"value":[{"Impl":{"Trait":1}},{"Ident":["__iterator_get_unchecked",0]}]},{"key":{"Global":5},"value":[{"Impl":{"Trait":2}},{"Ident":["{vtable}",0]}]},{"key":{"Global":6},"value":[{"Impl":{"Trait":3}},{"Ident":["{vtable}",0]}]},{"key":{"Fun":190},"value":[{"Impl":{"Trait":3}},{"Ident":["next_chunk",0]}]},{"key":{"Fun":191},"value":[{"Impl":{"Trait":3}},{"Ident":["size_hint",0]}]},{"key":{"Fun":192},"value":[{"Impl":{"Trait":3}},{"Ident":["count",0]}]},{"key":{"Fun":193},"value":[{"Impl":{"Trait":3}},{"Ident":["last",0]}]},{"key":{"Fun":194},"value":[{"Impl":{"Trait":3}},{"Ident":["advance_by",0]}]},{"key":{"Fun":195},"value":[{"Impl":{"Trait":3}},{"Ident":["nth",0]}]},{"key":{"Fun":196},"value":[{"Impl":{"Trait":3}},{"Ident":["step_by",0]}]},{"key":{"Fun":197},"value":[{"Impl":{"Trait":3}},{"Ident":["chain",0]}]},{"key":{"Fun":198},"value":[{"Impl":{"Trait":3}},{"Ident":["zip",0]}]},{"key":{"Fun":199},"value":[{"Impl":{"Trait":3}},{"Ident":["intersperse",0]}]},{"key":{"Fun":200},"value":[{"Impl":{"Trait":3}},{"Ident":["intersperse_with",0]}]},{"key":{"Fun":201},"value":[{"Impl":{"Trait":3}},{"Ident":["map",0]}]},{"key":{"Fun":202},"value":[{"Impl":{"Trait":3}},{"Ident":["for_each",0]}]},{"key":{"Fun":203},"value":[{"Impl":{"Trait":3}},{"Ident":["filter",0]}]},{"key":{"Fun":204},"value":[{"Impl":{"Trait":3}},{"Ident":["filter_map",0]}]},{"key":{"Fun":205},"value":[{"Impl":{"Trait":3}},{"Ident":["enumerate",0]}]},{"key":{"Fun":206},"value":[{"Impl":{"Trait":3}},{"Ident":["peekable",0]}]},{"key":{"Fun":207},"value":[{"Impl":{"Trait":3}},{"Ident":["skip_while",0]}]},{"key":{"Fun":208},"value":[{"Impl":{"Trait":3}},{"Ident":["take_while",0]}]},{"key":{"Fun":209},"value":[{"Impl":{"Trait":3}},{"Ident":["map_while",0]}]},{"key":{"Fun":210},"value":[{"Impl":{"Trait":3}},{"Ident":["skip",0]}]},{"key":{"Fun":211},"value":[{"Impl":{"Trait":3}},{"Ident":["take",0]}]},{"key":{"Fun":212},"value":[{"Impl":{"Trait":3}},{"Ident":["scan",0]}]},{"key":{"Fun":213},"value":[{"Impl":{"Trait":3}},{"Ident":["flat_map",0]}]},{"key":{"Fun":214},"value":[{"Impl":{"Trait":3}},{"Ident":["flatten",0]}]},{"key":{"Fun":215},"value":[{"Impl":{"Trait":3}},{"Ident":["map_windows",0]}]},{"key":{"Fun":216},"value":[{"Impl":{"Trait":3}},{"Ident":["fuse",0]}]},{"key":{"Fun":217},"value":[{"Impl":{"Trait":3}},{"Ident":["inspect",0]}]},{"key":{"Fun":218},"value":[{"Impl":{"Trait":3}},{"Ident":["by_ref",0]}]},{"key":{"Fun":219},"value":[{"Impl":{"Trait":3}},{"Ident":["collect",0]}]},{"key":{"Fun":220},"value":[{"Impl":{"Trait":3}},{"Ident":["try_collect",0]}]},{"key":{"Fun":221},"value":[{"Impl":{"Trait":3}},{"Ident":["collect_into",0]}]},{"key":{"Fun":222},"value":[{"Impl":{"Trait":3}},{"Ident":["partition",0]}]},{"key":{"Fun":223},"value":[{"Impl":{"Trait":3}},{"Ident":["partition_in_place",0]}]},{"key":{"Fun":224},"value":[{"Impl":{"Trait":3}},{"Ident":["is_partitioned",0]}]},{"key":{"Fun":225},"value":[{"Impl":{"Trait":3}},{"Ident":["try_fold",0]}]},{"key":{"Fun":226},"value":[{"Impl":{"Trait":3}},{"Ident":["try_for_each",0]}]},{"key":{"Fun":227},"value":[{"Impl":{"Trait":3}},{"Ident":["fold",0]}]},{"key":{"Fun":228},"value":[{"Impl":{"Trait":3}},{"Ident":["reduce",0]}]},{"key":{"Fun":229},"value":[{"Impl":{"Trait":3}},{"Ident":["try_reduce",0]}]},{"key":{"Fun":230},"value":[{"Impl":{"Trait":3}},{"Ident":["all",0]}]},{"key":{"Fun":231},"value":[{"Impl":{"Trait":3}},{"Ident":["any",0]}]},{"key":{"Fun":232},"value":[{"Impl":{"Trait":3}},{"Ident":["find",0]}]},{"key":{"Fun":233},"value":[{"Impl":{"Trait":3}},{"Ident":["find_map",0]}]},{"key":{"Fun":234},"value":[{"Impl":{"Trait":3}},{"Ident":["try_find",0]}]},{"key":{"Fun":235},"value":[{"Impl":{"Trait":3}},{"Ident":["position",0]}]},{"key":{"Fun":236},"value":[{"Impl":{"Trait":3}},{"Ident":["rposition",0]}]},{"key":{"Fun":237},"value":[{"Impl":{"Trait":3}},{"Ident":["max",0]}]},{"key":{"Fun":238},"value":[{"Impl":{"Trait":3}},{"Ident":["min",0]}]},{"key":{"Fun":239},"value":[{"Impl":{"Trait":3}},{"Ident":["max_by_key",0]}]},{"key":{"Fun":240},"value":[{"Impl":{"Trait":3}},{"Ident":["max_by",0]}]},{"key":{"Fun":241},"value":[{"Impl":{"Trait":3}},{"Ident":["min_by_key",0]}]},{"key":{"Fun":242},"value":[{"Impl":{"Trait":3}},{"Ident":["min_by",0]}]},{"key":{"Fun":243},"value":[{"Impl":{"Trait":3}},{"Ident":["rev",0]}]},{"key":{"Fun":244},"value":[{"Impl":{"Trait":3}},{"Ident":["unzip",0]}]},{"key":{"Fun":245},"value":[{"Impl":{"Trait":3}},{"Ident":["copied",0]}]},{"key":{"Fun":246},"value":[{"Impl":{"Trait":3}},{"Ident":["cloned",0]}]},{"key":{"Fun":247},"value":[{"Impl":{"Trait":3}},{"Ident":["cycle",0]}]},{"key":{"Fun":248},"value":[{"Impl":{"Trait":3}},{"Ident":["array_chunks",0]}]},{"key":{"Fun":249},"value":[{"Impl":{"Trait":3}},{"Ident":["sum",0]}]},{"key":{"Fun":250},"value":[{"Impl":{"Trait":3}},{"Ident":["product",0]}]},{"key":{"Fun":251},"value":[{"Impl":{"Trait":3}},{"Ident":["cmp",0]}]},{"key":{"Fun":252},"value":[{"Impl":{"Trait":3}},{"Ident":["cmp_by",0]}]},{"key":{"Fun":253},"value":[{"Impl":{"Trait":3}},{"Ident":["partial_cmp",0]}]},{"key":{"Fun":254},"value":[{"Impl":{"Trait":3}},{"Ident":["partial_cmp_by",0]}]},{"key":{"Fun":255},"value":[{"Impl":{"Trait":3}},{"Ident":["eq",0]}]},{"key":{"Fun":256},"value":[{"Impl":{"Trait":3}},{"Ident":["eq_by",0]}]},{"key":{"Fun":257},"value":[{"Impl":{"Trait":3}},{"Ident":["ne",0]}]},{"key":{"Fun":258},"value":[{"Impl":{"Trait":3}},{"Ident":["lt",0]}]},{"key":{"Fun":259},"value":[{"Impl":{"Trait":3}},{"Ident":["le",0]}]},{"key":{"Fun":260},"value":[{"Impl":{"Trait":3}},{"Ident":["gt",0]}]},{"key":{"Fun":261},"value":[{"Impl":{"Trait":3}},{"Ident":["ge",0]}]},{"key":{"Fun":262},"value":[{"Impl":{"Trait":3}},{"Ident":["is_sorted",0]}]},{"key":{"Fun":263},"value":[{"Impl":{"Trait":3}},{"Ident":["is_sorted_by",0]}]},{"key":{"Fun":264},"value":[{"Impl":{"Trait":3}},{"Ident":["is_sorted_by_key",0]}]},{"key":{"Fun":265},"value":[{"Impl":{"Trait":3}},{"Ident":["__iterator_get_unchecked",0]}]},{"key":{"Fun":266},"value":[{"Impl":{"Trait":4}},{"Ident":["drop_in_place",0]}]},{"key":{"Global":7},"value":[{"Impl":{"Trait":5}},{"Ident":["{vtable}",0]}]},{"key":{"Fun":267},"value":[{"Impl":{"Trait":6}},{"Ident":["from_output",0]}]},{"key":{"Fun":269},"value":[{"Impl":{"Trait":8}},{"Ident":["from",0]}]},{"key":{"Fun":270},"value":[{"Impl":{"Trait":9}},{"Ident":["call_once",0]}]},{"key":{"Fun":272},"value":[{"Impl":{"Trait":10}},{"Ident":["drop_in_place",0]}]},{"key":{"Fun":273},"value":[{"Impl":{"Trait":11}},{"Ident":["from_output",0]}]},{"key":{"TraitImpl":14},"value":[{"Impl":{"Trait":14}}]},{"key":{"TraitImpl":15},"value":[{"Impl":{"Trait":15}}]},{"key":{"TraitImpl":16},"value":[{"Impl":{"Trait":16}}]},{"key":{"TraitImpl":17},"value":[{"Impl":{"Trait":17}}]},{"key":{"TraitImpl":18},"value":[{"Impl":{"Trait":18}}]},{"key":{"Global":8},"value":[{"Impl":{"Trait":14}},{"Ident":["{vtable}",0]}]},{"key":{"Fun":322},"value":[{"Impl":{"Trait":14}},{"Ident":["allocate",0]}]},{"key":{"Fun":323},"value":[{"Impl":{"Trait":14}},{"Ident":["allocate_zeroed",0]}]},{"key":{"Fun":324},"value":[{"Impl":{"Trait":14}},{"Ident":["deallocate",0]}]},{"key":{"Fun":325},"value":[{"Impl":{"Trait":14}},{"Ident":["grow",0]}]},{"key":{"Fun":326},"value":[{"Impl":{"Trait":14}},{"Ident":["grow_zeroed",0]}]},{"key":{"Fun":327},"value":[{"Impl":{"Trait":14}},{"Ident":["shrink",0]}]},{"key":{"Fun":328},"value":[{"Impl":{"Trait":14}},{"Ident":["by_ref",0]}]},{"key":{"Fun":329},"value":[{"Impl":{"Trait":15}},{"Ident":["drop_in_place",0]}]},{"key":{"TraitImpl":19},"value":[{"Impl":{"Trait":19}}]},{"key":{"Global":9},"value":[{"Impl":{"Trait":17}},{"Ident":["{vtable}",0]}]},{"key":{"TraitImpl":20},"value":[{"Impl":{"Trait":20}}]},{"key":{"Fun":331},"value":[{"Impl":{"Trait":19}},{"Ident":["clone",0]}]},{"key":{"Fun":332},"value":[{"Impl":{"Trait":19}},{"Ident":["clone_from",0]}]},{"key":{"Fun":333},"value":[{"Impl":{"Trait":20}},{"Ident":["clone",0]}]},{"key":{"Fun":334},"value":[{"Impl":{"Trait":20}},{"Ident":["clone_from",0]}]},{"key":{"TraitDecl":24},"value":[{"Ident":["FromResidual",0]}]},{"key":{"Fun":292},"value":[{"Ident":["rfold",0]}]},{"key":{"Fun":299},"value":[{"Ident":["clamp",0]}]},{"key":{"Fun":295},"value":[{"Ident":["is_empty",0]}]},{"key":{"TraitDecl":25},"value":[{"Ident":["Tuple",0]}]},{"key":{"Type":22},"value":[{"Ident":["Zip",0]}]},{"key":{"Fun":294},"value":[{"Ident":["len",0]}]},{"key":{"Fun":283},"value":[{"Ident":["extend",0]}]},{"key":{"Fun":310},"value":[{"Ident":["__chaining_ge",0]}]},{"key":{"Type":9},"value":[{"Ident":["HostRegistry",0]}]},{"key":{"Type":41},"value":[{"Ident":["Ordering",0]}]},{"key":{"Fun":35},"value":[{"Ident":["get_instantiate",0]}]},{"key":{"Type":60},"value":[{"Ident":["AllocError",0]}]},{"key":{"Type":4},"value":[{"Ident":["ObjectHeader",0]}]},{"key":{"Fun":17},"value":[{"Ident":["host_registry_dispatch",0]}]},{"key":{"Type":25},"value":[{"Ident":["Map",0]}]},{"key":{"Type":2},"value":[{"Ident":["Token",0]}]},{"key":{"TraitDecl":14},"value":[{"Ident":["Default",0]}]},{"key":{"Type":51},"value":[{"Ident":["NonZeroUsizeInner",0]}]},{"key":{"TraitDecl":11},"value":[{"Ident":["Try",0]}]},{"key":{"TraitDecl":23},"value":[{"Ident":["TrustedRandomAccessNoCoerce",0]}]},{"key":{"TraitDecl":22},"value":[{"Ident":["PartialEq",0]}]},{"key":{"Fun":307},"value":[{"Ident":["__chaining_lt",0]}]},{"key":{"Fun":15},"value":[{"Ident":["w_int_add",0]}]},{"key":{"Type":38},"value":[{"Ident":["MapWindows",0]}]},{"key":{"Fun":11},"value":[{"Ident":["option_question_mark",0]}]},{"key":{"Type":58},"value":[{"Ident":["Layout",0]}]},{"key":{"Fun":34},"value":[{"Ident":["malloc_typed",0]}]},{"key":{"Fun":280},"value":[{"Ident":["from_iter",0]}]},{"key":{"Fun":279},"value":[{"Ident":["call_mut",0]}]},{"key":{"Type":12},"value":[{"Ident":["Option",0]}]},{"key":{"Fun":24},"value":[{"Ident":["iter",0]}]},{"key":{"Type":45},"value":[{"Ident":["Cycle",0]}]},{"key":{"Type":59},"value":[{"Ident":["NonNull",0]}]},{"key":{"Fun":330},"value":[{"Ident":["assert_receiver_is_total_eq",0]}]},{"key":{"Fun":5},"value":[{"Ident":["parse_one",0]}]},{"key":{"Fun":286},"value":[{"Ident":["extend_one_unchecked",0]}]},{"key":{"Type":28},"value":[{"Ident":["Enumerate",0]}]},{"key":{"Type":43},"value":[{"Ident":["Copied",0]}]},{"key":{"TraitDecl":17},"value":[{"Ident":["Ord",0]}]},{"key":{"Fun":3},"value":[{"Ident":["array_of_refs_sum",0]}]},{"key":{"Fun":29},"value":[{"Ident":["then_some",0]}]},{"key":{"Type":34},"value":[{"Ident":["Take",0]}]},{"key":{"TraitDecl":13},"value":[{"Ident":["Extend",0]}]},{"key":{"TraitDecl":0},"value":[{"Ident":["Sized",0]}]},{"key":{"TraitDecl":27},"value":[{"Ident":["Sealed",0]}]},{"key":{"Global":0},"value":[{"Ident":["INT_CLASS",0]}]},{"key":{"Fun":32},"value":[{"Ident":["INT_CLASS",0]}]},{"key":{"Fun":275},"value":[{"Ident":["into_raw",0]}]},{"key":{"Fun":287},"value":[{"Ident":["default",0]}]},{"key":{"Fun":289},"value":[{"Ident":["advance_back_by",0]}]},{"key":{"Fun":290},"value":[{"Ident":["nth_back",0]}]},{"key":{"TraitDecl":1},"value":[{"Ident":["MetaSized",0]}]},{"key":{"Type":33},"value":[{"Ident":["Skip",0]}]},{"key":{"Type":31},"value":[{"Ident":["TakeWhile",0]}]},{"key":{"TraitDecl":10},"value":[{"Ident":["FromIterator",0]}]},{"key":{"Fun":18},"value":[{"Ident":["host_registry_dispatch_optional",0]}]},{"key":{"Type":46},"value":[{"Ident":["ArrayChunks",0]}]},{"key":{"Fun":285},"value":[{"Ident":["extend_reserve",0]}]},{"key":{"Type":20},"value":[{"Ident":["StepBy",0]}]},{"key":{"TraitDecl":16},"value":[{"Ident":["ExactSizeIterator",0]}]},{"key":{"TraitDecl":9},"value":[{"Ident":["FnMut",0]}]},{"key":{"Type":27},"value":[{"Ident":["FilterMap",0]}]},{"key":{"Type":1},"value":[{"Ident":["Strategy",0]}]},{"key":{"TraitDecl":2},"value":[{"Ident":["Destruct",0]}]},{"key":{"Global":2},"value":[{"Ident":["_immutable_fields_W_IntObject",0]}]},{"key":{"Fun":36},"value":[{"Ident":["_immutable_fields_W_IntObject",0]}]},{"key":{"TraitDecl":6},"value":[{"Ident":["IntoIterator",0]}]},{"key":{"Fun":1},"value":[{"Ident":["branch_loop_sum",0]}]},{"key":{"Fun":12},"value":[{"Ident":["w_object_type",0]}]},{"key":{"Type":6},"value":[{"Ident":["W_IntObject",0]}]},{"key":{"Fun":10},"value":[{"Ident":["option_source",0]}]},{"key":{"Type":15},"value":[{"Ident":["Infallible",0]}]},{"key":{"Fun":9},"value":[{"Ident":["bool_then_some",0]}]},{"key":{"Type":7},"value":[{"Ident":["W_TypeOnlyIntObject",0]}]},{"key":{"TraitDecl":7},"value":[{"Ident":["ZeroablePrimitive",0]}]},{"key":{"Type":39},"value":[{"Ident":["Fuse",0]}]},{"key":{"Type":37},"value":[{"Ident":["Flatten",0]}]},{"key":{"TraitDecl":5},"value":[{"Ident":["FnOnce",0]}]},{"key":{"Type":14},"value":[{"Ident":["ControlFlow",0]}]},{"key":{"Type":23},"value":[{"Ident":["Intersperse",0]}]},{"key":{"Type":5},"value":[{"Ident":["TypeOnlyHeader",0]}]},{"key":{"TraitDecl":4},"value":[{"Ident":["From",0]}]},{"key":{"Fun":0},"value":[{"Ident":["straight_line_add",0]}]},{"key":{"Type":24},"value":[{"Ident":["IntersperseWith",0]}]},{"key":{"TraitDecl":19},"value":[{"Ident":["Sum",0]}]},{"key":{"Fun":14},"value":[{"Ident":["w_new_type_only_int",0]}]},{"key":{"Fun":28},"value":[{"Ident":["then",0]}]},{"key":{"Fun":6},"value":[{"Ident":["desugar_mix",0]}]},{"key":{"Type":19},"value":[{"Ident":["NonZero",0]}]},{"key":{"Type":26},"value":[{"Ident":["Filter",0]}]},{"key":{"Type":30},"value":[{"Ident":["SkipWhile",0]}]},{"key":{"Type":35},"value":[{"Ident":["Scan",0]}]},{"key":{"Type":49},"value":[{"Ident":["Global",0]}]},{"key":{"Fun":284},"value":[{"Ident":["extend_one",0]}]},{"key":{"Fun":288},"value":[{"Ident":["next_back",0]}]},{"key":{"Type":29},"value":[{"Ident":["Peekable",0]}]},{"key":{"Type":42},"value":[{"Ident":["Rev",0]}]},{"key":{"Type":44},"value":[{"Ident":["Cloned",0]}]},{"key":{"Type":48},"value":[{"Ident":["Box",0]}]},{"key":{"TraitDecl":3},"value":[{"Ident":["Iterator",0]}]},{"key":{"TraitDecl":15},"value":[{"Ident":["DoubleEndedIterator",0]}]},{"key":{"TraitDecl":21},"value":[{"Ident":["PartialOrd",0]}]},{"key":{"Type":8},"value":[{"Ident":["HostCallback",0]}]},{"key":{"Fun":313},"value":[{"Ident":["size",0]}]},{"key":{"Fun":8},"value":[{"Ident":["bool_then_closure",0]}]},{"key":{"TraitDecl":18},"value":[{"Ident":["Copy",0]}]},{"key":{"Fun":274},"value":[{"Ident":["new",0]}]},{"key":{"Type":21},"value":[{"Ident":["Chain",0]}]},{"key":{"Type":36},"value":[{"Ident":["FlatMap",0]}]},{"key":{"Type":16},"value":[{"Ident":["closure",0]}]},{"key":{"Fun":4},"value":[{"Ident":["strategy_len",0]}]},{"key":{"TraitDecl":12},"value":[{"Ident":["Residual",0]}]},{"key":{"Fun":7},"value":[{"Ident":["tuple_roundtrip",0]}]},{"key":{"TraitDecl":20},"value":[{"Ident":["Product",0]}]},{"key":{"TraitDecl":26},"value":[{"Ident":["Allocator",0]}]},{"key":{"Type":11},"value":[{"Ident":["Iter",0]}]},{"key":{"Type":40},"value":[{"Ident":["Inspect",0]}]},{"key":{"Type":13},"value":[{"Ident":["IntoIter",0]}]},{"key":{"Fun":16},"value":[{"Ident":["w_number_add",0]}]},{"key":{"TraitDecl":8},"value":[{"Ident":["Clone",0]}]},{"key":{"Type":3},"value":[{"Ident":["ClassObject",0]}]},{"key":{"Type":0},"value":[{"Ident":["PyResult",0]}]},{"key":{"Fun":2},"value":[{"Ident":["slice_of_refs_sum",0]}]},{"key":{"Fun":13},"value":[{"Ident":["w_new_int",0]}]},{"key":{"Type":32},"value":[{"Ident":["MapWhile",0]}]},{"key":{"Type":10},"value":[{"Ident":["Result",0]}]},{"key":{"Global":1},"value":[{"Ident":["DOUBLE_CLASS",0]}]},{"key":{"Fun":33},"value":[{"Ident":["DOUBLE_CLASS",0]}]},{"key":{"Fun":291},"value":[{"Ident":["try_rfold",0]}]},{"key":{"TraitDecl":28},"value":[{"Ident":["Eq",0]}]},{"key":{"Fun":308},"value":[{"Ident":["__chaining_le",0]}]},{"key":{"Fun":293},"value":[{"Ident":["rfind",0]}]},{"key":{"Fun":309},"value":[{"Ident":["__chaining_gt",0]}]}],"type_decls":[{"def_id":0,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["PyResult",0]}],"span":{"data":{"file_id":0,"beg":{"line":10,"col":0},"end":{"line":10,"col":47}},"generated_from_span":null},"source_text":"pub type PyResult = Result;","attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":0,"beg":{"line":10,"col":18},"end":{"line":10,"col":19}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":{"Alias":{"HashConsedValue":[7476,{"Adt":{"id":{"Adt":10},"generics":{"regions":[],"types":[{"Deduplicated":272},{"HashConsedValue":[274,{"Ref":["Static",{"HashConsedValue":[273,{"Adt":{"id":{"Builtin":"Str"},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}}]},"Shared"]}]}],"const_generics":[],"trait_refs":[{"Deduplicated":275},{"HashConsedValue":[281,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[280,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"HashConsedValue":[279,{"Ref":["Erased",{"Deduplicated":273},"Shared"]}]}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":274}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},"layout":[],"ptr_metadata":"None"},{"def_id":1,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["Strategy",0]}],"span":{"data":{"file_id":0,"beg":{"line":60,"col":0},"end":{"line":64,"col":1}},"generated_from_span":null},"source_text":"pub enum Strategy {\n Empty,\n IntKeyed { len: usize },\n StrKeyed { len: usize, capacity: usize },\n}","attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":{"Enum":[{"id":0,"span":{"data":{"file_id":0,"beg":{"line":61,"col":4},"end":{"line":61,"col":9}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"Empty","fields":[],"discriminant":{"Scalar":{"Signed":["Isize","0"]}}},{"id":1,"span":{"data":{"file_id":0,"beg":{"line":62,"col":4},"end":{"line":62,"col":12}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"IntKeyed","fields":[{"span":{"data":{"file_id":0,"beg":{"line":62,"col":15},"end":{"line":62,"col":25}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"len","ty":{"HashConsedValue":[827,{"Literal":{"UInt":"Usize"}}]}}],"discriminant":{"Scalar":{"Signed":["Isize","1"]}}},{"id":2,"span":{"data":{"file_id":0,"beg":{"line":63,"col":4},"end":{"line":63,"col":12}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"StrKeyed","fields":[{"span":{"data":{"file_id":0,"beg":{"line":63,"col":15},"end":{"line":63,"col":25}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"len","ty":{"Deduplicated":827}},{"span":{"data":{"file_id":0,"beg":{"line":63,"col":27},"end":{"line":63,"col":42}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"capacity","ty":{"Deduplicated":827}}],"discriminant":{"Scalar":{"Signed":["Isize","2"]}}}]},"layout":[{"key":"aarch64-apple-darwin","value":{"size":24,"align":8,"discriminator":{"Branch":{"offset":0,"int_ty":{"Unsigned":"U64"},"children":[[{"start":{"Unsigned":["U64","0"]},"end":{"Unsigned":["U64","0"]}},{"Known":0}],[{"start":{"Unsigned":["U64","1"]},"end":{"Unsigned":["U64","1"]}},{"Known":1}],[{"start":{"Unsigned":["U64","2"]},"end":{"Unsigned":["U64","2"]}},{"Known":2}]],"fallback":"Invalid"}},"uninhabited":false,"variant_layouts":[{"field_offsets":[],"uninhabited":false,"tagger":[[0,{"Unsigned":["U64","0"]}]]},{"field_offsets":[8],"uninhabited":false,"tagger":[[0,{"Unsigned":["U64","1"]}]]},{"field_offsets":[8,16],"uninhabited":false,"tagger":[[0,{"Unsigned":["U64","2"]}]]}],"repr":{"repr_algo":"Rust","align_modif":null,"transparent":false,"explicit_discr_type":false}}}],"ptr_metadata":"None"},{"def_id":2,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["Token",0]}],"span":{"data":{"file_id":0,"beg":{"line":76,"col":0},"end":{"line":80,"col":1}},"generated_from_span":null},"source_text":"pub enum Token {\n Add(i64),\n Sub(i64),\n Halt,\n}","attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":{"Enum":[{"id":0,"span":{"data":{"file_id":0,"beg":{"line":77,"col":4},"end":{"line":77,"col":7}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"Add","fields":[{"span":{"data":{"file_id":0,"beg":{"line":77,"col":8},"end":{"line":77,"col":11}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":null,"ty":{"HashConsedValue":[283,{"Literal":{"Int":"I64"}}]}}],"discriminant":{"Scalar":{"Signed":["Isize","0"]}}},{"id":1,"span":{"data":{"file_id":0,"beg":{"line":78,"col":4},"end":{"line":78,"col":7}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"Sub","fields":[{"span":{"data":{"file_id":0,"beg":{"line":78,"col":8},"end":{"line":78,"col":11}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":null,"ty":{"Deduplicated":283}}],"discriminant":{"Scalar":{"Signed":["Isize","1"]}}},{"id":2,"span":{"data":{"file_id":0,"beg":{"line":79,"col":4},"end":{"line":79,"col":8}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"Halt","fields":[],"discriminant":{"Scalar":{"Signed":["Isize","2"]}}}]},"layout":[{"key":"aarch64-apple-darwin","value":{"size":16,"align":8,"discriminator":{"Branch":{"offset":0,"int_ty":{"Unsigned":"U64"},"children":[[{"start":{"Unsigned":["U64","0"]},"end":{"Unsigned":["U64","0"]}},{"Known":0}],[{"start":{"Unsigned":["U64","1"]},"end":{"Unsigned":["U64","1"]}},{"Known":1}],[{"start":{"Unsigned":["U64","2"]},"end":{"Unsigned":["U64","2"]}},{"Known":2}]],"fallback":"Invalid"}},"uninhabited":false,"variant_layouts":[{"field_offsets":[8],"uninhabited":false,"tagger":[[0,{"Unsigned":["U64","0"]}]]},{"field_offsets":[8],"uninhabited":false,"tagger":[[0,{"Unsigned":["U64","1"]}]]},{"field_offsets":[],"uninhabited":false,"tagger":[[0,{"Unsigned":["U64","2"]}]]}],"repr":{"repr_algo":"Rust","align_modif":null,"transparent":false,"explicit_discr_type":false}}}],"ptr_metadata":"None"},{"def_id":3,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["ClassObject",0]}],"span":{"data":{"file_id":0,"beg":{"line":169,"col":0},"end":{"line":172,"col":1}},"generated_from_span":null},"source_text":"pub struct ClassObject {\n pub name: &'static str,\n pub kind: u8,\n}","attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":{"Struct":[{"span":{"data":{"file_id":0,"beg":{"line":170,"col":4},"end":{"line":170,"col":26}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"name","ty":{"Deduplicated":274}},{"span":{"data":{"file_id":0,"beg":{"line":171,"col":4},"end":{"line":171,"col":16}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"kind","ty":{"HashConsedValue":[2064,{"Literal":{"UInt":"U8"}}]}}]},"layout":[{"key":"aarch64-apple-darwin","value":{"size":24,"align":8,"discriminator":{"Known":0},"uninhabited":false,"variant_layouts":[{"field_offsets":[0,16],"uninhabited":false,"tagger":[]}],"repr":{"repr_algo":"C","align_modif":null,"transparent":false,"explicit_discr_type":false}}}],"ptr_metadata":"None"},{"def_id":4,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["ObjectHeader",0]}],"span":{"data":{"file_id":0,"beg":{"line":175,"col":0},"end":{"line":178,"col":1}},"generated_from_span":null},"source_text":"pub struct ObjectHeader {\n pub ob_type: *const ClassObject,\n pub w_class: *const ClassObject,\n}","attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":{"Struct":[{"span":{"data":{"file_id":0,"beg":{"line":176,"col":4},"end":{"line":176,"col":35}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"ob_type","ty":{"HashConsedValue":[2067,{"RawPtr":[{"HashConsedValue":[2066,{"Adt":{"id":{"Adt":3},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}}]},"Shared"]}]}},{"span":{"data":{"file_id":0,"beg":{"line":177,"col":4},"end":{"line":177,"col":35}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"w_class","ty":{"Deduplicated":2067}}]},"layout":[{"key":"aarch64-apple-darwin","value":{"size":16,"align":8,"discriminator":{"Known":0},"uninhabited":false,"variant_layouts":[{"field_offsets":[0,8],"uninhabited":false,"tagger":[]}],"repr":{"repr_algo":"C","align_modif":null,"transparent":false,"explicit_discr_type":false}}}],"ptr_metadata":"None"},{"def_id":5,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["TypeOnlyHeader",0]}],"span":{"data":{"file_id":0,"beg":{"line":188,"col":0},"end":{"line":190,"col":1}},"generated_from_span":null},"source_text":"pub struct TypeOnlyHeader {\n pub ob_type: *const ClassObject,\n}","attr_info":{"attributes":[{"DocComment":" The one-word header: `ob_type` and nothing else."},{"DocComment":""},{"DocComment":" `fuse_boxing_alloc`'s substitution asks whether the per-instance class"},{"DocComment":" word agrees with `ob_type`; where the header declares no such word the"},{"DocComment":" question has no subject, and `model.rs`'s `header_declares_no_class_word`"},{"DocComment":" arm admits the cluster on the layout alone. That arm is unreachable from"},{"DocComment":" any fixture whose header declares the field, so it gets its own."}],"inline":null,"rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":{"Struct":[{"span":{"data":{"file_id":0,"beg":{"line":189,"col":4},"end":{"line":189,"col":35}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"ob_type","ty":{"Deduplicated":2067}}]},"layout":[{"key":"aarch64-apple-darwin","value":{"size":8,"align":8,"discriminator":{"Known":0},"uninhabited":false,"variant_layouts":[{"field_offsets":[0],"uninhabited":false,"tagger":[]}],"repr":{"repr_algo":"C","align_modif":null,"transparent":false,"explicit_discr_type":false}}}],"ptr_metadata":"None"},{"def_id":6,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["W_IntObject",0]}],"span":{"data":{"file_id":0,"beg":{"line":194,"col":0},"end":{"line":197,"col":1}},"generated_from_span":null},"source_text":"pub struct W_IntObject {\n pub ob_header: ObjectHeader,\n pub intval: i64,\n}","attr_info":{"attributes":[{"Unknown":{"path":"allow","args":"non_camel_case_types"}}],"inline":null,"rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":{"Struct":[{"span":{"data":{"file_id":0,"beg":{"line":195,"col":4},"end":{"line":195,"col":31}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"ob_header","ty":{"HashConsedValue":[2071,{"Adt":{"id":{"Adt":4},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}}]}},{"span":{"data":{"file_id":0,"beg":{"line":196,"col":4},"end":{"line":196,"col":19}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"intval","ty":{"Deduplicated":283}}]},"layout":[{"key":"aarch64-apple-darwin","value":{"size":24,"align":8,"discriminator":{"Known":0},"uninhabited":false,"variant_layouts":[{"field_offsets":[0,16],"uninhabited":false,"tagger":[]}],"repr":{"repr_algo":"C","align_modif":null,"transparent":false,"explicit_discr_type":false}}}],"ptr_metadata":"None"},{"def_id":7,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["W_TypeOnlyIntObject",0]}],"span":{"data":{"file_id":0,"beg":{"line":201,"col":0},"end":{"line":204,"col":1}},"generated_from_span":null},"source_text":"pub struct W_TypeOnlyIntObject {\n pub ob_header: TypeOnlyHeader,\n pub intval: i64,\n}","attr_info":{"attributes":[{"Unknown":{"path":"allow","args":"non_camel_case_types"}}],"inline":null,"rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":{"Struct":[{"span":{"data":{"file_id":0,"beg":{"line":202,"col":4},"end":{"line":202,"col":33}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"ob_header","ty":{"HashConsedValue":[2074,{"Adt":{"id":{"Adt":5},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}}]}},{"span":{"data":{"file_id":0,"beg":{"line":203,"col":4},"end":{"line":203,"col":19}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"intval","ty":{"Deduplicated":283}}]},"layout":[{"key":"aarch64-apple-darwin","value":{"size":16,"align":8,"discriminator":{"Known":0},"uninhabited":false,"variant_layouts":[{"field_offsets":[0,8],"uninhabited":false,"tagger":[]}],"repr":{"repr_algo":"C","align_modif":null,"transparent":false,"explicit_discr_type":false}}}],"ptr_metadata":"None"},{"def_id":8,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["HostCallback",0]}],"span":{"data":{"file_id":0,"beg":{"line":306,"col":0},"end":{"line":306,"col":39}},"generated_from_span":null},"source_text":"pub type HostCallback = fn(i64) -> i64;","attr_info":{"attributes":[{"DocComment":" The callback a host installs at run time. A bare `fn` pointer, so the set"},{"DocComment":" of addresses that can reach a call through it is not recoverable from this"},{"DocComment":" artifact — the shape used by host-settable callback hooks."}],"inline":null,"rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":{"Alias":{"HashConsedValue":[2127,{"FnPtr":{"regions":[],"skip_binder":{"is_unsafe":false,"inputs":[{"Deduplicated":283}],"output":{"Deduplicated":283}}}}]}},"layout":[{"key":"aarch64-apple-darwin","value":{"size":8,"align":8,"discriminator":{"Known":0},"uninhabited":false,"variant_layouts":[],"repr":{"repr_algo":"Rust","align_modif":null,"transparent":false,"explicit_discr_type":false}}}],"ptr_metadata":"None"},{"def_id":9,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["HostRegistry",0]}],"span":{"data":{"file_id":0,"beg":{"line":308,"col":0},"end":{"line":311,"col":1}},"generated_from_span":null},"source_text":"pub struct HostRegistry {\n pub slot: HostCallback,\n pub maybe_slot: Option,\n}","attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":{"Struct":[{"span":{"data":{"file_id":0,"beg":{"line":309,"col":4},"end":{"line":309,"col":26}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"slot","ty":{"Deduplicated":2127}},{"span":{"data":{"file_id":0,"beg":{"line":310,"col":4},"end":{"line":310,"col":40}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":"maybe_slot","ty":{"HashConsedValue":[2131,{"Adt":{"id":{"Adt":12},"generics":{"regions":[],"types":[{"Deduplicated":2127}],"const_generics":[],"trait_refs":[{"HashConsedValue":[2130,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[2129,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":2127}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2127}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}}]},"layout":[{"key":"aarch64-apple-darwin","value":{"size":16,"align":8,"discriminator":{"Known":0},"uninhabited":false,"variant_layouts":[{"field_offsets":[0,8],"uninhabited":false,"tagger":[]}],"repr":{"repr_algo":"Rust","align_modif":null,"transparent":false,"explicit_discr_type":false}}}],"ptr_metadata":"None"},{"def_id":10,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["result",0]},{"Ident":["Result",0]}],"span":{"data":{"file_id":3,"beg":{"line":557,"col":0},"end":{"line":557,"col":21}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" `Result` is a type that represents either success ([`Ok`]) or failure ([`Err`])."},{"DocComment":""},{"DocComment":" See the [module documentation](self) for details."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"Result"},"generics":{"regions":[],"types":[{"index":0,"name":"T"},{"index":1,"name":"E"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":3,"beg":{"line":557,"col":16},"end":{"line":557,"col":17}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":3,"beg":{"line":557,"col":19},"end":{"line":557,"col":20}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[2139,{"TypeVar":{"Bound":[1,1]}}]}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":{"Enum":[{"id":0,"span":{"data":{"file_id":3,"beg":{"line":561,"col":4},"end":{"line":561,"col":6}},"generated_from_span":null},"attr_info":{"attributes":[{"DocComment":" Contains the success value"}],"inline":null,"rename":null,"public":true},"name":"Ok","fields":[{"span":{"data":{"file_id":3,"beg":{"line":561,"col":53},"end":{"line":561,"col":54}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":null,"ty":{"Deduplicated":272}}],"discriminant":{"Scalar":{"Signed":["Isize","0"]}}},{"id":1,"span":{"data":{"file_id":3,"beg":{"line":566,"col":4},"end":{"line":566,"col":7}},"generated_from_span":null},"attr_info":{"attributes":[{"DocComment":" Contains the error value"}],"inline":null,"rename":null,"public":true},"name":"Err","fields":[{"span":{"data":{"file_id":3,"beg":{"line":566,"col":54},"end":{"line":566,"col":55}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":null,"ty":{"HashConsedValue":[2143,{"TypeVar":{"Bound":[0,1]}}]}}],"discriminant":{"Scalar":{"Signed":["Isize","1"]}}}]},"layout":[],"ptr_metadata":"None"},{"def_id":11,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Ident":["Iter",0]}],"span":{"data":{"file_id":4,"beg":{"line":69,"col":0},"end":{"line":69,"col":26}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Immutable slice iterator"},{"DocComment":""},{"DocComment":" This struct is created by the [`iter`] method on [slices]."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" Basic usage:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" // First, we need a slice to call the `iter` method on:"},{"DocComment":" let slice = &[1, 2, 3];"},{"DocComment":""},{"DocComment":" // Then we call `iter` on the slice to get the `Iter` iterator,"},{"DocComment":" // and iterate over it:"},{"DocComment":" for element in slice.iter() {"},{"DocComment":" println!(\"{element}\");"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" // This for loop actually already works without calling `iter`:"},{"DocComment":" for element in slice {"},{"DocComment":" println!(\"{element}\");"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" [`iter`]: slice::iter"},{"DocComment":" [slices]: slice"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"SliceIter"},"generics":{"regions":[{"index":0,"name":"'a","mutability":"Shared"}],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":4,"beg":{"line":69,"col":20},"end":{"line":69,"col":21}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[{"regions":[],"skip_binder":[{"Deduplicated":240},{"Var":{"Bound":[1,0]}}]},{"regions":[],"skip_binder":[{"Deduplicated":240},{"Var":{"Bound":[1,0]}}]}],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[{"key":"aarch64-apple-darwin","value":{"size":16,"align":8,"discriminator":{"Known":0},"uninhabited":false,"variant_layouts":[{"field_offsets":[0,8,16],"uninhabited":false,"tagger":[]}],"repr":{"repr_algo":"Rust","align_modif":null,"transparent":false,"explicit_discr_type":false}}}],"ptr_metadata":"None"},{"def_id":12,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["option",0]},{"Ident":["Option",0]}],"span":{"data":{"file_id":6,"beg":{"line":600,"col":0},"end":{"line":600,"col":18}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" The `Option` type. See [the module level documentation](self) for more."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"Option"},"generics":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":6,"beg":{"line":600,"col":16},"end":{"line":600,"col":17}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":{"Enum":[{"id":0,"span":{"data":{"file_id":6,"beg":{"line":604,"col":4},"end":{"line":604,"col":8}},"generated_from_span":null},"attr_info":{"attributes":[{"DocComment":" No value."}],"inline":null,"rename":null,"public":true},"name":"None","fields":[],"discriminant":{"Scalar":{"Signed":["Isize","0"]}}},{"id":1,"span":{"data":{"file_id":6,"beg":{"line":608,"col":4},"end":{"line":608,"col":8}},"generated_from_span":null},"attr_info":{"attributes":[{"DocComment":" Some value of type `T`."}],"inline":null,"rename":null,"public":true},"name":"Some","fields":[{"span":{"data":{"file_id":6,"beg":{"line":608,"col":55},"end":{"line":608,"col":56}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":null,"ty":{"Deduplicated":272}}],"discriminant":{"Scalar":{"Signed":["Isize","1"]}}}]},"layout":[],"ptr_metadata":"None"},{"def_id":13,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Ident":["IntoIter",0]}],"span":{"data":{"file_id":8,"beg":{"line":20,"col":0},"end":{"line":20,"col":38}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" A by-value [array] iterator."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"ArrayIntoIter"},"generics":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[{"index":0,"name":"N","ty":{"Deduplicated":827}}],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":8,"beg":{"line":20,"col":20},"end":{"line":20,"col":21}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":14,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["control_flow",0]},{"Ident":["ControlFlow",0]}],"span":{"data":{"file_id":10,"beg":{"line":89,"col":0},"end":{"line":89,"col":31}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Used to tell an operation whether it should exit early or go on as usual."},{"DocComment":""},{"DocComment":" This is used when exposing things (like graph traversals or visitors) where"},{"DocComment":" you want the user to be able to choose whether to exit early."},{"DocComment":" Having the enum makes it clearer -- no more wondering \"wait, what did `false`"},{"DocComment":" mean again?\" -- and allows including a value."},{"DocComment":""},{"DocComment":" Similar to [`Option`] and [`Result`], this enum can be used with the `?` operator"},{"DocComment":" to return immediately if the [`Break`] variant is present or otherwise continue normally"},{"DocComment":" with the value inside the [`Continue`] variant."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" Early-exiting from [`Iterator::try_for_each`]:"},{"DocComment":" ```"},{"DocComment":" use std::ops::ControlFlow;"},{"DocComment":""},{"DocComment":" let r = (2..100).try_for_each(|x| {"},{"DocComment":" if 403 % x == 0 {"},{"DocComment":" return ControlFlow::Break(x)"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" ControlFlow::Continue(())"},{"DocComment":" });"},{"DocComment":" assert_eq!(r, ControlFlow::Break(13));"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" A basic tree traversal:"},{"DocComment":" ```"},{"DocComment":" use std::ops::ControlFlow;"},{"DocComment":""},{"DocComment":" pub struct TreeNode {"},{"DocComment":" value: T,"},{"DocComment":" left: Option>>,"},{"DocComment":" right: Option>>,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl TreeNode {"},{"DocComment":" pub fn traverse_inorder(&self, f: &mut impl FnMut(&T) -> ControlFlow) -> ControlFlow {"},{"DocComment":" if let Some(left) = &self.left {"},{"DocComment":" left.traverse_inorder(f)?;"},{"DocComment":" }"},{"DocComment":" f(&self.value)?;"},{"DocComment":" if let Some(right) = &self.right {"},{"DocComment":" right.traverse_inorder(f)?;"},{"DocComment":" }"},{"DocComment":" ControlFlow::Continue(())"},{"DocComment":" }"},{"DocComment":" fn leaf(value: T) -> Option>> {"},{"DocComment":" Some(Box::new(Self { value, left: None, right: None }))"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" let node = TreeNode {"},{"DocComment":" value: 0,"},{"DocComment":" left: TreeNode::leaf(1),"},{"DocComment":" right: Some(Box::new(TreeNode {"},{"DocComment":" value: -1,"},{"DocComment":" left: TreeNode::leaf(5),"},{"DocComment":" right: TreeNode::leaf(2),"},{"DocComment":" }))"},{"DocComment":" };"},{"DocComment":" let mut sum = 0;"},{"DocComment":""},{"DocComment":" let res = node.traverse_inorder(&mut |val| {"},{"DocComment":" if *val < 0 {"},{"DocComment":" ControlFlow::Break(*val)"},{"DocComment":" } else {"},{"DocComment":" sum += *val;"},{"DocComment":" ControlFlow::Continue(())"},{"DocComment":" }"},{"DocComment":" });"},{"DocComment":" assert_eq!(res, ControlFlow::Break(-1));"},{"DocComment":" assert_eq!(sum, 6);"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" [`Break`]: ControlFlow::Break"},{"DocComment":" [`Continue`]: ControlFlow::Continue"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"ControlFlow"},"generics":{"regions":[],"types":[{"index":0,"name":"B"},{"index":1,"name":"C"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":10,"beg":{"line":89,"col":21},"end":{"line":89,"col":22}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":10,"beg":{"line":89,"col":24},"end":{"line":89,"col":30}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":{"Enum":[{"id":0,"span":{"data":{"file_id":10,"beg":{"line":93,"col":4},"end":{"line":93,"col":12}},"generated_from_span":null},"attr_info":{"attributes":[{"DocComment":" Move on to the next phase of the operation as normal."}],"inline":null,"rename":null,"public":true},"name":"Continue","fields":[{"span":{"data":{"file_id":10,"beg":{"line":93,"col":13},"end":{"line":93,"col":14}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":null,"ty":{"Deduplicated":2143}}],"discriminant":{"Scalar":{"Signed":["Isize","0"]}}},{"id":1,"span":{"data":{"file_id":10,"beg":{"line":97,"col":4},"end":{"line":97,"col":9}},"generated_from_span":null},"attr_info":{"attributes":[{"DocComment":" Exit the operation without running subsequent phases."}],"inline":null,"rename":null,"public":true},"name":"Break","fields":[{"span":{"data":{"file_id":10,"beg":{"line":97,"col":10},"end":{"line":97,"col":11}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"name":null,"ty":{"Deduplicated":272}}],"discriminant":{"Scalar":{"Signed":["Isize","1"]}}}]},"layout":[],"ptr_metadata":"None"},{"def_id":15,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["convert",0]},{"Ident":["Infallible",0]}],"span":{"data":{"file_id":12,"beg":{"line":930,"col":0},"end":{"line":930,"col":19}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" The error type for errors that can never happen."},{"DocComment":""},{"DocComment":" Since this enum has no variant, a value of this type can never actually exist."},{"DocComment":" This can be useful for generic APIs that use [`Result`] and parameterize the error type,"},{"DocComment":" to indicate that the result is always [`Ok`]."},{"DocComment":""},{"DocComment":" For example, the [`TryFrom`] trait (conversion that returns a [`Result`])"},{"DocComment":" has a blanket implementation for all types where a reverse [`Into`] implementation exists."},{"DocComment":""},{"DocComment":" ```ignore (illustrates std code, duplicating the impl in a doctest would be an error)"},{"DocComment":" impl TryFrom for T where U: Into {"},{"DocComment":" type Error = Infallible;"},{"DocComment":""},{"DocComment":" fn try_from(value: U) -> Result {"},{"DocComment":" Ok(U::into(value)) // Never returns `Err`"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" # Future compatibility"},{"DocComment":""},{"DocComment":" This enum has the same role as [the `!` “never” type][never],"},{"DocComment":" which is unstable in this version of Rust."},{"DocComment":" When `!` is stabilized, we plan to make `Infallible` a type alias to it:"},{"DocComment":""},{"DocComment":" ```ignore (illustrates future std change)"},{"DocComment":" pub type Infallible = !;"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" … and eventually deprecate `Infallible`."},{"DocComment":""},{"DocComment":" However there is one case where `!` syntax can be used"},{"DocComment":" before `!` is stabilized as a full-fledged type: in the position of a function’s return type."},{"DocComment":" Specifically, it is possible to have implementations for two different function pointer types:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" trait MyTrait {}"},{"DocComment":" impl MyTrait for fn() -> ! {}"},{"DocComment":" impl MyTrait for fn() -> std::convert::Infallible {}"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" With `Infallible` being an enum, this code is valid."},{"DocComment":" However when `Infallible` becomes an alias for the never type,"},{"DocComment":" the two `impl`s will start to overlap"},{"DocComment":" and therefore will be disallowed by the language’s trait coherence rules."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":{"Enum":[]},"layout":[{"key":"aarch64-apple-darwin","value":{"size":0,"align":1,"discriminator":null,"uninhabited":true,"variant_layouts":[],"repr":{"repr_algo":"Rust","align_modif":null,"transparent":false,"explicit_discr_type":false}}}],"ptr_metadata":"None"},{"def_id":16,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["bool_then_closure",0]},{"Ident":["closure",0]}],"span":{"data":{"file_id":0,"beg":{"line":126,"col":11},"end":{"line":126,"col":19}},"generated_from_span":null},"source_text":"|| x + 1","attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":{"Closure":{"info":{"kind":"FnOnce","fn_once_impl":{"regions":[],"skip_binder":{"id":9,"generics":{"regions":[{"Var":{"Bound":[1,0]}}],"types":[],"const_generics":[],"trait_refs":[]}}},"fn_mut_impl":null,"fn_impl":null,"signature":{"regions":[],"skip_binder":{"is_unsafe":false,"inputs":[],"output":{"Deduplicated":283}}}}}},"kind":{"Struct":[{"span":{"data":{"file_id":0,"beg":{"line":126,"col":11},"end":{"line":126,"col":19}},"generated_from_span":null},"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"name":null,"ty":{"HashConsedValue":[826,{"Ref":[{"Var":{"Bound":[0,0]}},{"Deduplicated":283},"Shared"]}]}}]},"layout":[{"key":"aarch64-apple-darwin","value":{"size":8,"align":8,"discriminator":{"Known":0},"uninhabited":false,"variant_layouts":[{"field_offsets":[0],"uninhabited":false,"tagger":[]}],"repr":{"repr_algo":"Rust","align_modif":null,"transparent":false,"explicit_discr_type":false}}}],"ptr_metadata":"None"},null,null,{"def_id":19,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["num",0]},{"Ident":["nonzero",0]},{"Ident":["NonZero",0]}],"span":{"data":{"file_id":19,"beg":{"line":127,"col":0},"end":{"line":127,"col":40}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" A value that is known not to equal zero."},{"DocComment":""},{"DocComment":" This enables some memory layout optimization."},{"DocComment":" For example, `Option>` is the same size as `u32`:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" use core::{num::NonZero};"},{"DocComment":""},{"DocComment":" assert_eq!(size_of::>>(), size_of::());"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" # Layout"},{"DocComment":""},{"DocComment":" `NonZero` is guaranteed to have the same layout and bit validity as `T`"},{"DocComment":" with the exception that the all-zero bit pattern is invalid."},{"DocComment":" `Option>` is guaranteed to be compatible with `T`, including in"},{"DocComment":" FFI."},{"DocComment":""},{"DocComment":" Thanks to the [null pointer optimization], `NonZero` and"},{"DocComment":" `Option>` are guaranteed to have the same size and alignment:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" use std::num::NonZero;"},{"DocComment":""},{"DocComment":" assert_eq!(size_of::>(), size_of::>>());"},{"DocComment":" assert_eq!(align_of::>(), align_of::>>());"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" [null pointer optimization]: crate::option#representation"},{"DocComment":""},{"DocComment":" # Note on generic usage"},{"DocComment":""},{"DocComment":" `NonZero` can only be used with some standard library primitive types"},{"DocComment":" (such as `u8`, `i32`, and etc.). The type parameter `T` must implement the"},{"DocComment":" internal trait [`ZeroablePrimitive`], which is currently permanently unstable"},{"DocComment":" and cannot be implemented by users. Therefore, you cannot use `NonZero`"},{"DocComment":" with your own types, nor can you implement traits for all `NonZero`,"},{"DocComment":" only for concrete types."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"NonZero"},"generics":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":19,"beg":{"line":127,"col":19},"end":{"line":127,"col":20}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":19,"beg":{"line":127,"col":22},"end":{"line":127,"col":39}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":7,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":20,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["step_by",0]},{"Ident":["StepBy",0]}],"span":{"data":{"file_id":21,"beg":{"line":16,"col":0},"end":{"line":16,"col":20}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator for stepping iterators by a custom amount."},{"DocComment":""},{"DocComment":" This `struct` is created by the [`step_by`] method on [`Iterator`]. See"},{"DocComment":" its documentation for more."},{"DocComment":""},{"DocComment":" [`step_by`]: Iterator::step_by"},{"DocComment":" [`Iterator`]: trait.Iterator.html"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":21,"beg":{"line":16,"col":18},"end":{"line":16,"col":19}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":21,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["chain",0]},{"Ident":["Chain",0]}],"span":{"data":{"file_id":23,"beg":{"line":23,"col":0},"end":{"line":23,"col":22}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator that links two iterators together, in a chain."},{"DocComment":""},{"DocComment":" This `struct` is created by [`chain`] or [`Iterator::chain`]. See their"},{"DocComment":" documentation for more."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" use std::iter::Chain;"},{"DocComment":" use std::slice::Iter;"},{"DocComment":""},{"DocComment":" let a1 = [1, 2, 3];"},{"DocComment":" let a2 = [4, 5, 6];"},{"DocComment":" let iter: Chain, Iter<'_, _>> = a1.iter().chain(a2.iter());"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"A"},{"index":1,"name":"B"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":23,"beg":{"line":23,"col":17},"end":{"line":23,"col":18}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":23,"beg":{"line":23,"col":20},"end":{"line":23,"col":21}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":22,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["zip",0]},{"Ident":["Zip",0]}],"span":{"data":{"file_id":24,"beg":{"line":15,"col":0},"end":{"line":15,"col":20}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator that iterates two other iterators simultaneously."},{"DocComment":""},{"DocComment":" This `struct` is created by [`zip`] or [`Iterator::zip`]."},{"DocComment":" See their documentation for more."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"A"},{"index":1,"name":"B"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":24,"beg":{"line":15,"col":15},"end":{"line":15,"col":16}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":24,"beg":{"line":15,"col":18},"end":{"line":15,"col":19}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":23,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["intersperse",0]},{"Ident":["Intersperse",0]}],"span":{"data":{"file_id":26,"beg":{"line":10,"col":0},"end":{"line":10,"col":35}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator adapter that places a separator between all elements."},{"DocComment":""},{"DocComment":" This `struct` is created by [`Iterator::intersperse`]. See its documentation"},{"DocComment":" for more information."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":26,"beg":{"line":10,"col":23},"end":{"line":10,"col":24}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":26,"beg":{"line":10,"col":26},"end":{"line":10,"col":34}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":2,"span":{"data":{"file_id":26,"beg":{"line":12,"col":13},"end":{"line":12,"col":18}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":8,"generics":{"regions":[],"types":[{"HashConsedValue":[5288,{"TraitType":[{"HashConsedValue":[5287,{"kind":{"Clause":{"Bound":[1,1]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"HashConsedValue":[2165,{"TypeVar":{"Bound":[2,0]}}]}],"const_generics":[],"trait_refs":[]}}}}]},0]}]}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":24,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["intersperse",0]},{"Ident":["IntersperseWith",0]}],"span":{"data":{"file_id":26,"beg":{"line":91,"col":0},"end":{"line":91,"col":32}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator adapter that places a separator between all elements."},{"DocComment":""},{"DocComment":" This `struct` is created by [`Iterator::intersperse_with`]. See its"},{"DocComment":" documentation for more information."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"},{"index":1,"name":"G"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":26,"beg":{"line":91,"col":27},"end":{"line":91,"col":28}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":26,"beg":{"line":91,"col":30},"end":{"line":91,"col":31}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":2,"span":{"data":{"file_id":26,"beg":{"line":93,"col":7},"end":{"line":93,"col":15}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":25,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["map",0]},{"Ident":["Map",0]}],"span":{"data":{"file_id":27,"beg":{"line":61,"col":0},"end":{"line":61,"col":20}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator that maps the values of `iter` with `f`."},{"DocComment":""},{"DocComment":" This `struct` is created by the [`map`] method on [`Iterator`]. See its"},{"DocComment":" documentation for more."},{"DocComment":""},{"DocComment":" [`map`]: Iterator::map"},{"DocComment":" [`Iterator`]: trait.Iterator.html"},{"DocComment":""},{"DocComment":" # Notes about side effects"},{"DocComment":""},{"DocComment":" The [`map`] iterator implements [`DoubleEndedIterator`], meaning that"},{"DocComment":" you can also [`map`] backwards:"},{"DocComment":""},{"DocComment":" ```rust"},{"DocComment":" let v: Vec = [1, 2, 3].into_iter().map(|x| x + 1).rev().collect();"},{"DocComment":""},{"DocComment":" assert_eq!(v, [4, 3, 2]);"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" [`DoubleEndedIterator`]: trait.DoubleEndedIterator.html"},{"DocComment":""},{"DocComment":" But if your closure has state, iterating backwards may act in a way you do"},{"DocComment":" not expect. Let's go through an example. First, in the forward direction:"},{"DocComment":""},{"DocComment":" ```rust"},{"DocComment":" let mut c = 0;"},{"DocComment":""},{"DocComment":" for pair in ['a', 'b', 'c'].into_iter()"},{"DocComment":" .map(|letter| { c += 1; (letter, c) }) {"},{"DocComment":" println!(\"{pair:?}\");"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" This will print `('a', 1), ('b', 2), ('c', 3)`."},{"DocComment":""},{"DocComment":" Now consider this twist where we add a call to `rev`. This version will"},{"DocComment":" print `('c', 1), ('b', 2), ('a', 3)`. Note that the letters are reversed,"},{"DocComment":" but the values of the counter still go in order. This is because `map()` is"},{"DocComment":" still being called lazily on each item, but we are popping items off the"},{"DocComment":" back of the vector now, instead of shifting them from the front."},{"DocComment":""},{"DocComment":" ```rust"},{"DocComment":" let mut c = 0;"},{"DocComment":""},{"DocComment":" for pair in ['a', 'b', 'c'].into_iter()"},{"DocComment":" .map(|letter| { c += 1; (letter, c) })"},{"DocComment":" .rev() {"},{"DocComment":" println!(\"{pair:?}\");"},{"DocComment":" }"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"},{"index":1,"name":"F"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":27,"beg":{"line":61,"col":15},"end":{"line":61,"col":16}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":27,"beg":{"line":61,"col":18},"end":{"line":61,"col":19}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":26,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["filter",0]},{"Ident":["Filter",0]}],"span":{"data":{"file_id":28,"beg":{"line":21,"col":0},"end":{"line":21,"col":23}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator that filters the elements of `iter` with `predicate`."},{"DocComment":""},{"DocComment":" This `struct` is created by the [`filter`] method on [`Iterator`]. See its"},{"DocComment":" documentation for more."},{"DocComment":""},{"DocComment":" [`filter`]: Iterator::filter"},{"DocComment":" [`Iterator`]: trait.Iterator.html"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"},{"index":1,"name":"P"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":28,"beg":{"line":21,"col":18},"end":{"line":21,"col":19}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":28,"beg":{"line":21,"col":21},"end":{"line":21,"col":22}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":27,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["filter_map",0]},{"Ident":["FilterMap",0]}],"span":{"data":{"file_id":29,"beg":{"line":18,"col":0},"end":{"line":18,"col":26}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator that uses `f` to both filter and map elements from `iter`."},{"DocComment":""},{"DocComment":" This `struct` is created by the [`filter_map`] method on [`Iterator`]. See its"},{"DocComment":" documentation for more."},{"DocComment":""},{"DocComment":" [`filter_map`]: Iterator::filter_map"},{"DocComment":" [`Iterator`]: trait.Iterator.html"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"},{"index":1,"name":"F"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":29,"beg":{"line":18,"col":21},"end":{"line":18,"col":22}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":29,"beg":{"line":18,"col":24},"end":{"line":18,"col":25}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":28,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["enumerate",0]},{"Ident":["Enumerate",0]}],"span":{"data":{"file_id":30,"beg":{"line":18,"col":0},"end":{"line":18,"col":23}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator that yields the current count and the element during iteration."},{"DocComment":""},{"DocComment":" This `struct` is created by the [`enumerate`] method on [`Iterator`]. See its"},{"DocComment":" documentation for more."},{"DocComment":""},{"DocComment":" [`enumerate`]: Iterator::enumerate"},{"DocComment":" [`Iterator`]: trait.Iterator.html"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"Enumerate"},"generics":{"regions":[],"types":[{"index":0,"name":"I"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":30,"beg":{"line":18,"col":21},"end":{"line":18,"col":22}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":29,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["peekable",0]},{"Ident":["Peekable",0]}],"span":{"data":{"file_id":31,"beg":{"line":17,"col":0},"end":{"line":17,"col":32}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator with a `peek()` that returns an optional reference to the next"},{"DocComment":" element."},{"DocComment":""},{"DocComment":" This `struct` is created by the [`peekable`] method on [`Iterator`]. See its"},{"DocComment":" documentation for more."},{"DocComment":""},{"DocComment":" [`peekable`]: Iterator::peekable"},{"DocComment":" [`Iterator`]: trait.Iterator.html"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"IterPeekable"},"generics":{"regions":[],"types":[{"index":0,"name":"I"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":31,"beg":{"line":17,"col":20},"end":{"line":17,"col":21}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":31,"beg":{"line":17,"col":23},"end":{"line":17,"col":31}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":30,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["skip_while",0]},{"Ident":["SkipWhile",0]}],"span":{"data":{"file_id":32,"beg":{"line":17,"col":0},"end":{"line":17,"col":26}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator that rejects elements while `predicate` returns `true`."},{"DocComment":""},{"DocComment":" This `struct` is created by the [`skip_while`] method on [`Iterator`]. See its"},{"DocComment":" documentation for more."},{"DocComment":""},{"DocComment":" [`skip_while`]: Iterator::skip_while"},{"DocComment":" [`Iterator`]: trait.Iterator.html"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"},{"index":1,"name":"P"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":32,"beg":{"line":17,"col":21},"end":{"line":17,"col":22}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":32,"beg":{"line":17,"col":24},"end":{"line":17,"col":25}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":31,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["take_while",0]},{"Ident":["TakeWhile",0]}],"span":{"data":{"file_id":33,"beg":{"line":17,"col":0},"end":{"line":17,"col":26}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator that only accepts elements while `predicate` returns `true`."},{"DocComment":""},{"DocComment":" This `struct` is created by the [`take_while`] method on [`Iterator`]. See its"},{"DocComment":" documentation for more."},{"DocComment":""},{"DocComment":" [`take_while`]: Iterator::take_while"},{"DocComment":" [`Iterator`]: trait.Iterator.html"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"},{"index":1,"name":"P"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":33,"beg":{"line":17,"col":21},"end":{"line":17,"col":22}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":33,"beg":{"line":17,"col":24},"end":{"line":17,"col":25}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":32,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["map_while",0]},{"Ident":["MapWhile",0]}],"span":{"data":{"file_id":34,"beg":{"line":17,"col":0},"end":{"line":17,"col":25}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator that only accepts elements while `predicate` returns `Some(_)`."},{"DocComment":""},{"DocComment":" This `struct` is created by the [`map_while`] method on [`Iterator`]. See its"},{"DocComment":" documentation for more."},{"DocComment":""},{"DocComment":" [`map_while`]: Iterator::map_while"},{"DocComment":" [`Iterator`]: trait.Iterator.html"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"},{"index":1,"name":"P"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":34,"beg":{"line":17,"col":20},"end":{"line":17,"col":21}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":34,"beg":{"line":17,"col":23},"end":{"line":17,"col":24}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":33,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["skip",0]},{"Ident":["Skip",0]}],"span":{"data":{"file_id":35,"beg":{"line":21,"col":0},"end":{"line":21,"col":18}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator that skips over `n` elements of `iter`."},{"DocComment":""},{"DocComment":" This `struct` is created by the [`skip`] method on [`Iterator`]. See its"},{"DocComment":" documentation for more."},{"DocComment":""},{"DocComment":" [`skip`]: Iterator::skip"},{"DocComment":" [`Iterator`]: trait.Iterator.html"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":35,"beg":{"line":21,"col":16},"end":{"line":21,"col":17}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":34,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["take",0]},{"Ident":["Take",0]}],"span":{"data":{"file_id":36,"beg":{"line":17,"col":0},"end":{"line":17,"col":18}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator that only iterates over the first `n` iterations of `iter`."},{"DocComment":""},{"DocComment":" This `struct` is created by the [`take`] method on [`Iterator`]. See its"},{"DocComment":" documentation for more."},{"DocComment":""},{"DocComment":" [`take`]: Iterator::take"},{"DocComment":" [`Iterator`]: trait.Iterator.html"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":36,"beg":{"line":17,"col":16},"end":{"line":17,"col":17}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":35,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["scan",0]},{"Ident":["Scan",0]}],"span":{"data":{"file_id":37,"beg":{"line":17,"col":0},"end":{"line":17,"col":25}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator to maintain state while iterating another iterator."},{"DocComment":""},{"DocComment":" This `struct` is created by the [`scan`] method on [`Iterator`]. See its"},{"DocComment":" documentation for more."},{"DocComment":""},{"DocComment":" [`scan`]: Iterator::scan"},{"DocComment":" [`Iterator`]: trait.Iterator.html"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"},{"index":1,"name":"St"},{"index":2,"name":"F"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":37,"beg":{"line":17,"col":16},"end":{"line":17,"col":17}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":37,"beg":{"line":17,"col":19},"end":{"line":17,"col":21}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":2,"span":{"data":{"file_id":37,"beg":{"line":17,"col":23},"end":{"line":17,"col":24}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[3117,{"TypeVar":{"Bound":[1,2]}}]}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":36,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["flatten",0]},{"Ident":["FlatMap",0]}],"span":{"data":{"file_id":38,"beg":{"line":17,"col":0},"end":{"line":17,"col":41}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator that maps each element to an iterator, and yields the elements"},{"DocComment":" of the produced iterators."},{"DocComment":""},{"DocComment":" This `struct` is created by [`Iterator::flat_map`]. See its documentation"},{"DocComment":" for more."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"},{"index":1,"name":"U"},{"index":2,"name":"F"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":38,"beg":{"line":17,"col":19},"end":{"line":17,"col":20}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":38,"beg":{"line":17,"col":22},"end":{"line":17,"col":23}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":2,"span":{"data":{"file_id":38,"beg":{"line":17,"col":39},"end":{"line":17,"col":40}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":3117}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":3,"span":{"data":{"file_id":38,"beg":{"line":17,"col":25},"end":{"line":17,"col":37}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":37,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["flatten",0]},{"Ident":["Flatten",0]}],"span":{"data":{"file_id":38,"beg":{"line":184,"col":0},"end":{"line":184,"col":51}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator that flattens one level of nesting in an iterator of things"},{"DocComment":" that can be turned into iterators."},{"DocComment":""},{"DocComment":" This `struct` is created by the [`flatten`] method on [`Iterator`]. See its"},{"DocComment":" documentation for more."},{"DocComment":""},{"DocComment":" [`flatten`]: Iterator::flatten()"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":38,"beg":{"line":184,"col":19},"end":{"line":184,"col":20}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":38,"beg":{"line":184,"col":22},"end":{"line":184,"col":50}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":2,"span":{"data":{"file_id":38,"beg":{"line":184,"col":37},"end":{"line":184,"col":49}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":5288}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":38,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["map_windows",0]},{"Ident":["MapWindows",0]}],"span":{"data":{"file_id":39,"beg":{"line":11,"col":0},"end":{"line":11,"col":53}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator over the mapped windows of another iterator."},{"DocComment":""},{"DocComment":" This `struct` is created by the [`Iterator::map_windows`]. See its"},{"DocComment":" documentation for more information."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"},{"index":1,"name":"F"}],"const_generics":[{"index":0,"name":"N","ty":{"Deduplicated":827}}],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":39,"beg":{"line":11,"col":22},"end":{"line":11,"col":23}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":39,"beg":{"line":11,"col":35},"end":{"line":11,"col":36}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":2,"span":{"data":{"file_id":39,"beg":{"line":11,"col":25},"end":{"line":11,"col":33}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":39,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["fuse",0]},{"Ident":["Fuse",0]}],"span":{"data":{"file_id":40,"beg":{"line":17,"col":0},"end":{"line":17,"col":18}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator that yields `None` forever after the underlying iterator"},{"DocComment":" yields `None` once."},{"DocComment":""},{"DocComment":" This `struct` is created by [`Iterator::fuse`]. See its documentation"},{"DocComment":" for more."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":40,"beg":{"line":17,"col":16},"end":{"line":17,"col":17}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":40,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["inspect",0]},{"Ident":["Inspect",0]}],"span":{"data":{"file_id":41,"beg":{"line":18,"col":0},"end":{"line":18,"col":24}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator that calls a function with a reference to each element before"},{"DocComment":" yielding it."},{"DocComment":""},{"DocComment":" This `struct` is created by the [`inspect`] method on [`Iterator`]. See its"},{"DocComment":" documentation for more."},{"DocComment":""},{"DocComment":" [`inspect`]: Iterator::inspect"},{"DocComment":" [`Iterator`]: trait.Iterator.html"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"},{"index":1,"name":"F"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":41,"beg":{"line":18,"col":19},"end":{"line":18,"col":20}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":41,"beg":{"line":18,"col":22},"end":{"line":18,"col":23}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":41,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["Ordering",0]}],"span":{"data":{"file_id":46,"beg":{"line":396,"col":0},"end":{"line":396,"col":17}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An `Ordering` is the result of a comparison between two values."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" use std::cmp::Ordering;"},{"DocComment":""},{"DocComment":" assert_eq!(1.cmp(&2), Ordering::Less);"},{"DocComment":""},{"DocComment":" assert_eq!(1.cmp(&1), Ordering::Equal);"},{"DocComment":""},{"DocComment":" assert_eq!(2.cmp(&1), Ordering::Greater);"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"Ordering"},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":{"Enum":[{"id":0,"span":{"data":{"file_id":46,"beg":{"line":399,"col":4},"end":{"line":399,"col":8}},"generated_from_span":null},"attr_info":{"attributes":[{"DocComment":" An ordering where a compared value is less than another."}],"inline":null,"rename":null,"public":true},"name":"Less","fields":[],"discriminant":{"Scalar":{"Signed":["I8","-1"]}}},{"id":1,"span":{"data":{"file_id":46,"beg":{"line":402,"col":4},"end":{"line":402,"col":9}},"generated_from_span":null},"attr_info":{"attributes":[{"DocComment":" An ordering where a compared value is equal to another."}],"inline":null,"rename":null,"public":true},"name":"Equal","fields":[],"discriminant":{"Scalar":{"Signed":["I8","0"]}}},{"id":2,"span":{"data":{"file_id":46,"beg":{"line":405,"col":4},"end":{"line":405,"col":11}},"generated_from_span":null},"attr_info":{"attributes":[{"DocComment":" An ordering where a compared value is greater than another."}],"inline":null,"rename":null,"public":true},"name":"Greater","fields":[],"discriminant":{"Scalar":{"Signed":["I8","1"]}}}]},"layout":[{"key":"aarch64-apple-darwin","value":{"size":1,"align":1,"discriminator":{"Branch":{"offset":0,"int_ty":{"Signed":"I8"},"children":[[{"start":{"Signed":["I8","-1"]},"end":{"Signed":["I8","-1"]}},{"Known":0}],[{"start":{"Signed":["I8","0"]},"end":{"Signed":["I8","0"]}},{"Known":1}],[{"start":{"Signed":["I8","1"]},"end":{"Signed":["I8","1"]}},{"Known":2}]],"fallback":"Invalid"}},"uninhabited":false,"variant_layouts":[{"field_offsets":[],"uninhabited":false,"tagger":[[0,{"Signed":["I8","-1"]}]]},{"field_offsets":[],"uninhabited":false,"tagger":[[0,{"Signed":["I8","0"]}]]},{"field_offsets":[],"uninhabited":false,"tagger":[[0,{"Signed":["I8","1"]}]]}],"repr":{"repr_algo":"Rust","align_modif":null,"transparent":false,"explicit_discr_type":true}}}],"ptr_metadata":"None"},{"def_id":42,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["rev",0]},{"Ident":["Rev",0]}],"span":{"data":{"file_id":47,"beg":{"line":15,"col":0},"end":{"line":15,"col":17}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" A double-ended iterator with the direction inverted."},{"DocComment":""},{"DocComment":" This `struct` is created by the [`rev`] method on [`Iterator`]. See its"},{"DocComment":" documentation for more."},{"DocComment":""},{"DocComment":" [`rev`]: Iterator::rev"},{"DocComment":" [`Iterator`]: trait.Iterator.html"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":47,"beg":{"line":15,"col":15},"end":{"line":15,"col":16}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":43,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["copied",0]},{"Ident":["Copied",0]}],"span":{"data":{"file_id":48,"beg":{"line":19,"col":0},"end":{"line":19,"col":20}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator that copies the elements of an underlying iterator."},{"DocComment":""},{"DocComment":" This `struct` is created by the [`copied`] method on [`Iterator`]. See its"},{"DocComment":" documentation for more."},{"DocComment":""},{"DocComment":" [`copied`]: Iterator::copied"},{"DocComment":" [`Iterator`]: trait.Iterator.html"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":48,"beg":{"line":19,"col":18},"end":{"line":19,"col":19}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":44,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["cloned",0]},{"Ident":["Cloned",0]}],"span":{"data":{"file_id":49,"beg":{"line":18,"col":0},"end":{"line":18,"col":20}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator that clones the elements of an underlying iterator."},{"DocComment":""},{"DocComment":" This `struct` is created by the [`cloned`] method on [`Iterator`]. See its"},{"DocComment":" documentation for more."},{"DocComment":""},{"DocComment":" [`cloned`]: Iterator::cloned"},{"DocComment":" [`Iterator`]: trait.Iterator.html"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":49,"beg":{"line":18,"col":18},"end":{"line":18,"col":19}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":45,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["cycle",0]},{"Ident":["Cycle",0]}],"span":{"data":{"file_id":50,"beg":{"line":15,"col":0},"end":{"line":15,"col":19}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator that repeats endlessly."},{"DocComment":""},{"DocComment":" This `struct` is created by the [`cycle`] method on [`Iterator`]. See its"},{"DocComment":" documentation for more."},{"DocComment":""},{"DocComment":" [`cycle`]: Iterator::cycle"},{"DocComment":" [`Iterator`]: trait.Iterator.html"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":50,"beg":{"line":15,"col":17},"end":{"line":15,"col":18}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":46,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["array_chunks",0]},{"Ident":["ArrayChunks",0]}],"span":{"data":{"file_id":51,"beg":{"line":19,"col":0},"end":{"line":19,"col":51}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator over `N` elements of the iterator at a time."},{"DocComment":""},{"DocComment":" The chunks do not overlap. If `N` does not divide the length of the"},{"DocComment":" iterator, then the last up to `N-1` elements will be omitted."},{"DocComment":""},{"DocComment":" This `struct` is created by the [`array_chunks`][Iterator::array_chunks]"},{"DocComment":" method on [`Iterator`]. See its documentation for more."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"}],"const_generics":[{"index":0,"name":"N","ty":{"Deduplicated":827}}],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":51,"beg":{"line":19,"col":23},"end":{"line":19,"col":24}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":51,"beg":{"line":19,"col":26},"end":{"line":19,"col":34}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},null,{"def_id":48,"item_meta":{"name":[{"Ident":["alloc",0]},{"Ident":["boxed",0]},{"Ident":["Box",0]}],"span":{"data":{"file_id":53,"beg":{"line":234,"col":0},"end":{"line":237,"col":1}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" A pointer type that uniquely owns a heap allocation of type `T`."},{"DocComment":""},{"DocComment":" See the [module-level documentation](../../std/boxed/index.html) for more."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"owned_box"},"generics":{"regions":[],"types":[{"index":0,"name":"T"},{"index":1,"name":"A"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":53,"beg":{"line":235,"col":4},"end":{"line":235,"col":5}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":53,"beg":{"line":236,"col":60},"end":{"line":236,"col":81}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":2,"span":{"data":{"file_id":53,"beg":{"line":236,"col":63},"end":{"line":236,"col":72}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":26,"generics":{"regions":[],"types":[{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":49,"item_meta":{"name":[{"Ident":["alloc",0]},{"Ident":["alloc",0]},{"Ident":["Global",0]}],"span":{"data":{"file_id":55,"beg":{"line":52,"col":0},"end":{"line":52,"col":17}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" The global memory allocator."},{"DocComment":""},{"DocComment":" This type implements the [`Allocator`] trait by forwarding calls"},{"DocComment":" to the allocator registered with the `#[global_allocator]` attribute"},{"DocComment":" if there is one, or the `std` crate’s default."},{"DocComment":""},{"DocComment":" Note: while this type is unstable, the functionality it provides can be"},{"DocComment":" accessed through the [free functions in `alloc`](self#functions)."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"global_alloc_ty"},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":{"Struct":[]},"layout":[{"key":"aarch64-apple-darwin","value":{"size":0,"align":1,"discriminator":{"Known":0},"uninhabited":false,"variant_layouts":[{"field_offsets":[],"uninhabited":false,"tagger":[]}],"repr":{"repr_algo":"Rust","align_modif":null,"transparent":false,"explicit_discr_type":false}}}],"ptr_metadata":"None"},null,{"def_id":51,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["num",0]},{"Ident":["niche_types",0]},{"Ident":["NonZeroUsizeInner",0]}],"span":{"data":{"file_id":57,"beg":{"line":20,"col":8},"end":{"line":20,"col":55}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[{"key":"aarch64-apple-darwin","value":{"size":8,"align":8,"discriminator":{"Known":0},"uninhabited":false,"variant_layouts":[{"field_offsets":[0],"uninhabited":false,"tagger":[]}],"repr":{"repr_algo":"Rust","align_modif":null,"transparent":true,"explicit_discr_type":false}}}],"ptr_metadata":"None"},null,null,null,null,null,null,{"def_id":58,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["alloc",0]},{"Ident":["layout",0]},{"Ident":["Layout",0]}],"span":{"data":{"file_id":58,"beg":{"line":30,"col":0},"end":{"line":30,"col":17}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Layout of a block of memory."},{"DocComment":""},{"DocComment":" An instance of `Layout` describes a particular layout of memory."},{"DocComment":" You build a `Layout` up as an input to give to an allocator."},{"DocComment":""},{"DocComment":" All layouts have an associated size and a power-of-two alignment. The size, when rounded up to"},{"DocComment":" the nearest multiple of `align`, does not overflow `isize` (i.e., the rounded value will always be"},{"DocComment":" less than or equal to `isize::MAX`)."},{"DocComment":""},{"DocComment":" (Note that layouts are *not* required to have non-zero size,"},{"DocComment":" even though `GlobalAlloc` requires that all memory requests"},{"DocComment":" be non-zero in size. A caller must either ensure that conditions"},{"DocComment":" like this are met, use specific allocators with looser"},{"DocComment":" requirements, or use the more lenient `Allocator` interface.)"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"alloc_layout"},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[{"key":"aarch64-apple-darwin","value":{"size":16,"align":8,"discriminator":{"Known":0},"uninhabited":false,"variant_layouts":[{"field_offsets":[8,0],"uninhabited":false,"tagger":[]}],"repr":{"repr_algo":"Rust","align_modif":null,"transparent":false,"explicit_discr_type":false}}}],"ptr_metadata":"None"},{"def_id":59,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["ptr",0]},{"Ident":["non_null",0]},{"Ident":["NonNull",0]}],"span":{"data":{"file_id":59,"beg":{"line":76,"col":0},"end":{"line":76,"col":35}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" `*mut T` but non-zero and [covariant]."},{"DocComment":""},{"DocComment":" This is often the correct thing to use when building data structures using"},{"DocComment":" raw pointers, but is ultimately more dangerous to use because of its additional"},{"DocComment":" properties. If you're not sure if you should use `NonNull`, just use `*mut T`!"},{"DocComment":""},{"DocComment":" Unlike `*mut T`, the pointer must always be non-null, even if the pointer"},{"DocComment":" is never dereferenced. This is so that enums may use this forbidden value"},{"DocComment":" as a discriminant -- `Option>` has the same size as `*mut T`."},{"DocComment":" However the pointer may still dangle if it isn't dereferenced."},{"DocComment":""},{"DocComment":" Unlike `*mut T`, `NonNull` is covariant over `T`. This is usually the correct"},{"DocComment":" choice for most data structures and safe abstractions, such as `Box`, `Rc`, `Arc`, `Vec`,"},{"DocComment":" and `LinkedList`."},{"DocComment":""},{"DocComment":" In rare cases, if your type exposes a way to mutate the value of `T` through a `NonNull`,"},{"DocComment":" and you need to prevent unsoundness from variance (for example, if `T` could be a reference"},{"DocComment":" with a shorter lifetime), you should add a field to make your type invariant, such as"},{"DocComment":" `PhantomData>` or `PhantomData<&'a mut T>`."},{"DocComment":""},{"DocComment":" Example of a type that must be invariant:"},{"DocComment":" ```rust"},{"DocComment":" use std::cell::Cell;"},{"DocComment":" use std::marker::PhantomData;"},{"DocComment":" struct Invariant {"},{"DocComment":" ptr: std::ptr::NonNull,"},{"DocComment":" _invariant: PhantomData>,"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" Notice that `NonNull` has a `From` instance for `&T`. However, this does"},{"DocComment":" not change the fact that mutating through a (pointer derived from a) shared"},{"DocComment":" reference is undefined behavior unless the mutation happens inside an"},{"DocComment":" [`UnsafeCell`]. The same goes for creating a mutable reference from a shared"},{"DocComment":" reference. When using this `From` instance without an `UnsafeCell`,"},{"DocComment":" it is your responsibility to ensure that `as_mut` is never called, and `as_ptr`"},{"DocComment":" is never used for mutation."},{"DocComment":""},{"DocComment":" # Representation"},{"DocComment":""},{"DocComment":" Thanks to the [null pointer optimization],"},{"DocComment":" `NonNull` and `Option>`"},{"DocComment":" are guaranteed to have the same size and alignment:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" use std::ptr::NonNull;"},{"DocComment":""},{"DocComment":" assert_eq!(size_of::>(), size_of::>>());"},{"DocComment":" assert_eq!(align_of::>(), align_of::>>());"},{"DocComment":""},{"DocComment":" assert_eq!(size_of::>(), size_of::>>());"},{"DocComment":" assert_eq!(align_of::>(), align_of::>>());"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" [covariant]: https://doc.rust-lang.org/reference/subtyping.html"},{"DocComment":" [`PhantomData`]: crate::marker::PhantomData"},{"DocComment":" [`UnsafeCell`]: crate::cell::UnsafeCell"},{"DocComment":" [null pointer optimization]: crate::option#representation"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"NonNull"},"generics":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":"Opaque","layout":[],"ptr_metadata":"None"},{"def_id":60,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["alloc",0]},{"Ident":["AllocError",0]}],"span":{"data":{"file_id":56,"beg":{"line":32,"col":0},"end":{"line":32,"col":21}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" The `AllocError` error indicates an allocation failure"},{"DocComment":" that may be due to resource exhaustion or to"},{"DocComment":" something wrong when combining the given input arguments with this"},{"DocComment":" allocator."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"src":"TopLevel","kind":{"Struct":[]},"layout":[{"key":"aarch64-apple-darwin","value":{"size":0,"align":1,"discriminator":{"Known":0},"uninhabited":false,"variant_layouts":[{"field_offsets":[],"uninhabited":false,"tagger":[]}],"repr":{"repr_algo":"Rust","align_modif":null,"transparent":false,"explicit_discr_type":false}}}],"ptr_metadata":"None"},null],"fun_decls":[{"def_id":0,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["straight_line_add",0]}],"span":{"data":{"file_id":0,"beg":{"line":14,"col":0},"end":{"line":18,"col":1}},"generated_from_span":null},"source_text":"pub fn straight_line_add(a: i64, b: i64, c: i64) -> i64 {\n let s = a + b;\n let t = s * 2;\n t + c\n}","attr_info":{"attributes":[],"inline":"Never","rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":283},{"Deduplicated":283},{"Deduplicated":283}],"output":{"Deduplicated":283}},"src":"TopLevel","is_global_initializer":null,"body":{"Unstructured":{"span":{"data":{"file_id":0,"beg":{"line":14,"col":0},"end":{"line":18,"col":1}},"generated_from_span":null},"bound_body_regions":0,"locals":{"arg_count":3,"locals":[{"index":0,"name":null,"span":{"data":{"file_id":0,"beg":{"line":14,"col":52},"end":{"line":14,"col":55}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":1,"name":"a","span":{"data":{"file_id":0,"beg":{"line":14,"col":25},"end":{"line":14,"col":26}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":2,"name":"b","span":{"data":{"file_id":0,"beg":{"line":14,"col":33},"end":{"line":14,"col":34}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":3,"name":"c","span":{"data":{"file_id":0,"beg":{"line":14,"col":41},"end":{"line":14,"col":42}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":4,"name":"s","span":{"data":{"file_id":0,"beg":{"line":15,"col":8},"end":{"line":15,"col":9}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":5,"name":null,"span":{"data":{"file_id":0,"beg":{"line":15,"col":12},"end":{"line":15,"col":13}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":6,"name":null,"span":{"data":{"file_id":0,"beg":{"line":15,"col":16},"end":{"line":15,"col":17}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":7,"name":null,"span":{"data":{"file_id":0,"beg":{"line":15,"col":12},"end":{"line":15,"col":17}},"generated_from_span":null},"ty":{"HashConsedValue":[288,{"Adt":{"id":"Tuple","generics":{"regions":[],"types":[{"Deduplicated":283},{"Deduplicated":287}],"const_generics":[],"trait_refs":[]}}}]}},{"index":8,"name":"t","span":{"data":{"file_id":0,"beg":{"line":16,"col":8},"end":{"line":16,"col":9}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":9,"name":null,"span":{"data":{"file_id":0,"beg":{"line":16,"col":12},"end":{"line":16,"col":13}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":10,"name":null,"span":{"data":{"file_id":0,"beg":{"line":16,"col":12},"end":{"line":16,"col":17}},"generated_from_span":null},"ty":{"Deduplicated":288}},{"index":11,"name":null,"span":{"data":{"file_id":0,"beg":{"line":17,"col":4},"end":{"line":17,"col":5}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":12,"name":null,"span":{"data":{"file_id":0,"beg":{"line":17,"col":8},"end":{"line":17,"col":9}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":13,"name":null,"span":{"data":{"file_id":0,"beg":{"line":17,"col":4},"end":{"line":17,"col":9}},"generated_from_span":null},"ty":{"Deduplicated":288}}]},"body":[{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":15,"col":8},"end":{"line":15,"col":9}},"generated_from_span":null},"kind":{"StorageLive":7},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":15,"col":8},"end":{"line":15,"col":9}},"generated_from_span":null},"kind":{"StorageLive":10},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":15,"col":8},"end":{"line":15,"col":9}},"generated_from_span":null},"kind":{"StorageLive":13},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":15,"col":8},"end":{"line":15,"col":9}},"generated_from_span":null},"kind":{"StorageLive":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":15,"col":12},"end":{"line":15,"col":13}},"generated_from_span":null},"kind":{"StorageLive":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":15,"col":12},"end":{"line":15,"col":13}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":5},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Local":1},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":15,"col":16},"end":{"line":15,"col":17}},"generated_from_span":null},"kind":{"StorageLive":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":15,"col":16},"end":{"line":15,"col":17}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":6},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Local":2},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":15,"col":12},"end":{"line":15,"col":17}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":7},"ty":{"Deduplicated":288}},{"BinaryOp":["AddChecked",{"Copy":{"kind":{"Local":5},"ty":{"Deduplicated":283}}},{"Copy":{"kind":{"Local":6},"ty":{"Deduplicated":283}}}]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":15,"col":12},"end":{"line":15,"col":17}},"generated_from_span":null},"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":7},"ty":{"Deduplicated":288}},{"Field":[{"Tuple":2},1]}]},"ty":{"Deduplicated":287}}},"expected":false,"check_kind":{"Overflow":[{"Add":"Wrap"},{"Move":{"kind":{"Local":5},"ty":{"Deduplicated":283}}},{"Move":{"kind":{"Local":6},"ty":{"Deduplicated":283}}}]}},"target":2,"on_unwind":1}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":14,"col":0},"end":{"line":18,"col":1}},"generated_from_span":null},"kind":"UnwindResume","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":15,"col":12},"end":{"line":15,"col":17}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":4},"ty":{"Deduplicated":283}},{"Use":{"Move":{"kind":{"Projection":[{"kind":{"Local":7},"ty":{"Deduplicated":288}},{"Field":[{"Tuple":2},0]}]},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":15,"col":16},"end":{"line":15,"col":17}},"generated_from_span":null},"kind":{"StorageDead":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":15,"col":16},"end":{"line":15,"col":17}},"generated_from_span":null},"kind":{"StorageDead":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":16,"col":8},"end":{"line":16,"col":9}},"generated_from_span":null},"kind":{"StorageLive":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":16,"col":12},"end":{"line":16,"col":13}},"generated_from_span":null},"kind":{"StorageLive":9},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":16,"col":12},"end":{"line":16,"col":13}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":9},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Local":4},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":16,"col":12},"end":{"line":16,"col":17}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":10},"ty":{"Deduplicated":288}},{"BinaryOp":["MulChecked",{"Copy":{"kind":{"Local":9},"ty":{"Deduplicated":283}}},{"Const":{"kind":{"Literal":{"Scalar":{"Signed":["I64","2"]}}},"ty":{"Deduplicated":283}}}]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":16,"col":12},"end":{"line":16,"col":17}},"generated_from_span":null},"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":10},"ty":{"Deduplicated":288}},{"Field":[{"Tuple":2},1]}]},"ty":{"Deduplicated":287}}},"expected":false,"check_kind":{"Overflow":[{"Mul":"Wrap"},{"Move":{"kind":{"Local":9},"ty":{"Deduplicated":283}}},{"Const":{"kind":{"Literal":{"Scalar":{"Signed":["I64","2"]}}},"ty":{"Deduplicated":283}}}]}},"target":3,"on_unwind":1}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":16,"col":12},"end":{"line":16,"col":17}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":8},"ty":{"Deduplicated":283}},{"Use":{"Move":{"kind":{"Projection":[{"kind":{"Local":10},"ty":{"Deduplicated":288}},{"Field":[{"Tuple":2},0]}]},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":16,"col":16},"end":{"line":16,"col":17}},"generated_from_span":null},"kind":{"StorageDead":9},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":17,"col":4},"end":{"line":17,"col":5}},"generated_from_span":null},"kind":{"StorageLive":11},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":17,"col":4},"end":{"line":17,"col":5}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":11},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Local":8},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":17,"col":8},"end":{"line":17,"col":9}},"generated_from_span":null},"kind":{"StorageLive":12},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":17,"col":8},"end":{"line":17,"col":9}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":12},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Local":3},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":17,"col":4},"end":{"line":17,"col":9}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":13},"ty":{"Deduplicated":288}},{"BinaryOp":["AddChecked",{"Copy":{"kind":{"Local":11},"ty":{"Deduplicated":283}}},{"Copy":{"kind":{"Local":12},"ty":{"Deduplicated":283}}}]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":17,"col":4},"end":{"line":17,"col":9}},"generated_from_span":null},"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":13},"ty":{"Deduplicated":288}},{"Field":[{"Tuple":2},1]}]},"ty":{"Deduplicated":287}}},"expected":false,"check_kind":{"Overflow":[{"Add":"Wrap"},{"Move":{"kind":{"Local":11},"ty":{"Deduplicated":283}}},{"Move":{"kind":{"Local":12},"ty":{"Deduplicated":283}}}]}},"target":4,"on_unwind":1}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":17,"col":4},"end":{"line":17,"col":9}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":283}},{"Use":{"Move":{"kind":{"Projection":[{"kind":{"Local":13},"ty":{"Deduplicated":288}},{"Field":[{"Tuple":2},0]}]},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":17,"col":8},"end":{"line":17,"col":9}},"generated_from_span":null},"kind":{"StorageDead":12},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":17,"col":8},"end":{"line":17,"col":9}},"generated_from_span":null},"kind":{"StorageDead":11},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":18,"col":0},"end":{"line":18,"col":1}},"generated_from_span":null},"kind":{"StorageDead":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":18,"col":0},"end":{"line":18,"col":1}},"generated_from_span":null},"kind":{"StorageDead":4},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":18,"col":1},"end":{"line":18,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}}],"comments":[]}}},{"def_id":1,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["branch_loop_sum",0]}],"span":{"data":{"file_id":0,"beg":{"line":22,"col":0},"end":{"line":32,"col":1}},"generated_from_span":null},"source_text":"pub fn branch_loop_sum(slice: &[i64], threshold: i64) -> i64 {\n let mut acc: i64 = 0;\n for &v in slice {\n if v > threshold {\n acc += v;\n } else {\n acc -= v;\n }\n }\n acc\n}","attr_info":{"attributes":[],"inline":"Never","rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"HashConsedValue":[290,{"Ref":[{"Var":{"Bound":[0,0]}},{"HashConsedValue":[289,{"Slice":{"Deduplicated":283}}]},"Shared"]}]},{"Deduplicated":283}],"output":{"Deduplicated":283}},"src":"TopLevel","is_global_initializer":null,"body":{"Unstructured":{"span":{"data":{"file_id":0,"beg":{"line":22,"col":0},"end":{"line":32,"col":1}},"generated_from_span":null},"bound_body_regions":30,"locals":{"arg_count":2,"locals":[{"index":0,"name":null,"span":{"data":{"file_id":0,"beg":{"line":22,"col":57},"end":{"line":22,"col":60}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":1,"name":"slice","span":{"data":{"file_id":0,"beg":{"line":22,"col":23},"end":{"line":22,"col":28}},"generated_from_span":null},"ty":{"HashConsedValue":[293,{"Ref":[{"Body":1},{"Deduplicated":289},"Shared"]}]}},{"index":2,"name":"threshold","span":{"data":{"file_id":0,"beg":{"line":22,"col":38},"end":{"line":22,"col":47}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":3,"name":"acc","span":{"data":{"file_id":0,"beg":{"line":23,"col":8},"end":{"line":23,"col":15}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":4,"name":null,"span":{"data":{"file_id":0,"beg":{"line":24,"col":14},"end":{"line":24,"col":19}},"generated_from_span":null},"ty":{"HashConsedValue":[410,{"Adt":{"id":{"Adt":11},"generics":{"regions":[{"Body":3}],"types":[{"Deduplicated":283}],"const_generics":[],"trait_refs":[{"HashConsedValue":[408,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[407,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":283}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":283}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},{"index":5,"name":null,"span":{"data":{"file_id":0,"beg":{"line":24,"col":14},"end":{"line":24,"col":19}},"generated_from_span":null},"ty":{"HashConsedValue":[411,{"Ref":[{"Body":4},{"Deduplicated":289},"Shared"]}]}},{"index":6,"name":"iter","span":{"data":{"file_id":0,"beg":{"line":24,"col":14},"end":{"line":24,"col":19}},"generated_from_span":null},"ty":{"HashConsedValue":[412,{"Adt":{"id":{"Adt":11},"generics":{"regions":[{"Body":5}],"types":[{"Deduplicated":283}],"const_generics":[],"trait_refs":[{"Deduplicated":408}]}}}]}},{"index":7,"name":null,"span":{"data":{"file_id":0,"beg":{"line":24,"col":14},"end":{"line":24,"col":19}},"generated_from_span":null},"ty":{"HashConsedValue":[6435,{"Adt":{"id":{"Adt":12},"generics":{"regions":[],"types":[{"HashConsedValue":[450,{"Ref":[{"Body":12},{"Deduplicated":283},"Shared"]}]}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6434,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6433,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":450}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":450}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},{"index":8,"name":null,"span":{"data":{"file_id":0,"beg":{"line":24,"col":14},"end":{"line":24,"col":19}},"generated_from_span":null},"ty":{"HashConsedValue":[460,{"Ref":[{"Body":17},{"HashConsedValue":[459,{"Adt":{"id":{"Adt":11},"generics":{"regions":[{"Body":18}],"types":[{"Deduplicated":283}],"const_generics":[],"trait_refs":[{"Deduplicated":408}]}}}]},"Mut"]}]}},{"index":9,"name":null,"span":{"data":{"file_id":0,"beg":{"line":24,"col":14},"end":{"line":24,"col":19}},"generated_from_span":null},"ty":{"HashConsedValue":[462,{"Ref":[{"Body":19},{"HashConsedValue":[461,{"Adt":{"id":{"Adt":11},"generics":{"regions":[{"Body":20}],"types":[{"Deduplicated":283}],"const_generics":[],"trait_refs":[{"Deduplicated":408}]}}}]},"Mut"]}]}},{"index":10,"name":null,"span":{"data":{"file_id":0,"beg":{"line":24,"col":4},"end":{"line":30,"col":5}},"generated_from_span":null},"ty":{"HashConsedValue":[463,{"Literal":{"Int":"Isize"}}]}},{"index":11,"name":"v","span":{"data":{"file_id":0,"beg":{"line":24,"col":9},"end":{"line":24,"col":10}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":12,"name":null,"span":{"data":{"file_id":0,"beg":{"line":25,"col":11},"end":{"line":25,"col":24}},"generated_from_span":null},"ty":{"Deduplicated":287}},{"index":13,"name":null,"span":{"data":{"file_id":0,"beg":{"line":25,"col":11},"end":{"line":25,"col":12}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":14,"name":null,"span":{"data":{"file_id":0,"beg":{"line":25,"col":15},"end":{"line":25,"col":24}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":15,"name":null,"span":{"data":{"file_id":0,"beg":{"line":26,"col":19},"end":{"line":26,"col":20}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":16,"name":null,"span":{"data":{"file_id":0,"beg":{"line":26,"col":12},"end":{"line":26,"col":20}},"generated_from_span":null},"ty":{"Deduplicated":288}},{"index":17,"name":null,"span":{"data":{"file_id":0,"beg":{"line":28,"col":19},"end":{"line":28,"col":20}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":18,"name":null,"span":{"data":{"file_id":0,"beg":{"line":28,"col":12},"end":{"line":28,"col":20}},"generated_from_span":null},"ty":{"Deduplicated":288}}]},"body":[{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":23,"col":8},"end":{"line":23,"col":15}},"generated_from_span":null},"kind":{"StorageLive":10},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":23,"col":8},"end":{"line":23,"col":15}},"generated_from_span":null},"kind":{"StorageLive":16},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":23,"col":8},"end":{"line":23,"col":15}},"generated_from_span":null},"kind":{"StorageLive":18},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":23,"col":8},"end":{"line":23,"col":15}},"generated_from_span":null},"kind":{"StorageLive":3},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":23,"col":23},"end":{"line":23,"col":24}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":3},"ty":{"Deduplicated":283}},{"Use":{"Const":{"kind":{"Literal":{"Scalar":{"Signed":["I64","0"]}}},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":24,"col":14},"end":{"line":24,"col":19}},"generated_from_span":null},"kind":{"StorageLive":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":24,"col":14},"end":{"line":24,"col":19}},"generated_from_span":null},"kind":{"StorageLive":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":24,"col":14},"end":{"line":24,"col":19}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":5},"ty":{"Deduplicated":411}},{"Use":{"Copy":{"kind":{"Local":1},"ty":{"Deduplicated":293}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":24,"col":14},"end":{"line":24,"col":19}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":{"Regular":19}},"generics":{"regions":[{"Body":21}],"types":[{"Deduplicated":283}],"const_generics":[],"trait_refs":[{"Deduplicated":408}]}}},"args":[{"Move":{"kind":{"Local":5},"ty":{"Deduplicated":411}}}],"dest":{"kind":{"Local":4},"ty":{"Deduplicated":410}}},"target":2,"on_unwind":1}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":22,"col":0},"end":{"line":32,"col":1}},"generated_from_span":null},"kind":"UnwindResume","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":24,"col":18},"end":{"line":24,"col":19}},"generated_from_span":null},"kind":{"StorageDead":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":24,"col":14},"end":{"line":24,"col":19}},"generated_from_span":null},"kind":{"StorageLive":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":24,"col":14},"end":{"line":24,"col":19}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":6},"ty":{"Deduplicated":412}},{"Use":{"Move":{"kind":{"Local":4},"ty":{"Deduplicated":410}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":24,"col":4},"end":{"line":30,"col":5}},"generated_from_span":null},"kind":{"Goto":{"target":3}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":24,"col":14},"end":{"line":24,"col":19}},"generated_from_span":null},"kind":{"StorageLive":7},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":24,"col":14},"end":{"line":24,"col":19}},"generated_from_span":null},"kind":{"StorageLive":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":24,"col":14},"end":{"line":24,"col":19}},"generated_from_span":null},"kind":{"StorageLive":9},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":24,"col":14},"end":{"line":24,"col":19}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":9},"ty":{"Deduplicated":462}},{"Ref":{"place":{"kind":{"Local":6},"ty":{"Deduplicated":412}},"kind":"Mut","ptr_metadata":{"Const":{"kind":{"Adt":[null,[]]},"ty":{"HashConsedValue":[297,{"Adt":{"id":"Tuple","generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}}]}}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":24,"col":14},"end":{"line":24,"col":19}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":8},"ty":{"Deduplicated":460}},{"Ref":{"place":{"kind":{"Projection":[{"kind":{"Local":9},"ty":{"Deduplicated":462}},"Deref"]},"ty":{"HashConsedValue":[7554,{"Adt":{"id":{"Adt":11},"generics":{"regions":[{"Body":22}],"types":[{"Deduplicated":283}],"const_generics":[],"trait_refs":[{"Deduplicated":408}]}}}]}},"kind":"TwoPhaseMut","ptr_metadata":{"Const":{"kind":{"Adt":[null,[]]},"ty":{"Deduplicated":297}}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":24,"col":14},"end":{"line":24,"col":19}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":{"Regular":20}},"generics":{"regions":[{"Body":23},{"Body":25}],"types":[{"Deduplicated":283}],"const_generics":[],"trait_refs":[{"Deduplicated":408}]}}},"args":[{"Move":{"kind":{"Local":8},"ty":{"Deduplicated":460}}}],"dest":{"kind":{"Local":7},"ty":{"Deduplicated":6435}}},"target":4,"on_unwind":1}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":24,"col":18},"end":{"line":24,"col":19}},"generated_from_span":null},"kind":{"StorageDead":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":24,"col":14},"end":{"line":24,"col":19}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":10},"ty":{"Deduplicated":463}},{"Discriminant":{"kind":{"Local":7},"ty":{"Deduplicated":6435}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":24,"col":14},"end":{"line":24,"col":19}},"generated_from_span":null},"kind":{"Switch":{"discr":{"Move":{"kind":{"Local":10},"ty":{"Deduplicated":463}}},"targets":{"SwitchInt":[{"Int":"Isize"},[[{"Scalar":{"Signed":["Isize","0"]}},5],[{"Scalar":{"Signed":["Isize","1"]}},6]],7]}}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":30,"col":4},"end":{"line":30,"col":5}},"generated_from_span":null},"kind":{"StorageDead":9},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":30,"col":4},"end":{"line":30,"col":5}},"generated_from_span":null},"kind":{"StorageDead":7},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":30,"col":4},"end":{"line":30,"col":5}},"generated_from_span":null},"kind":{"StorageDead":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":30,"col":4},"end":{"line":30,"col":5}},"generated_from_span":null},"kind":{"StorageDead":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":31,"col":4},"end":{"line":31,"col":7}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Local":3},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":32,"col":0},"end":{"line":32,"col":1}},"generated_from_span":null},"kind":{"StorageDead":3},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":32,"col":1},"end":{"line":32,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":24,"col":9},"end":{"line":24,"col":10}},"generated_from_span":null},"kind":{"StorageLive":11},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":24,"col":9},"end":{"line":24,"col":10}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":11},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Projection":[{"kind":{"Local":7},"ty":{"Deduplicated":6435}},{"Field":[{"Adt":[12,1]},0]}]},"ty":{"HashConsedValue":[7555,{"Ref":[{"Body":29},{"Deduplicated":283},"Shared"]}]}},"Deref"]},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":25,"col":11},"end":{"line":25,"col":24}},"generated_from_span":null},"kind":{"StorageLive":12},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":25,"col":11},"end":{"line":25,"col":12}},"generated_from_span":null},"kind":{"StorageLive":13},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":25,"col":11},"end":{"line":25,"col":12}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":13},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Local":11},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":25,"col":15},"end":{"line":25,"col":24}},"generated_from_span":null},"kind":{"StorageLive":14},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":25,"col":15},"end":{"line":25,"col":24}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":14},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Local":2},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":25,"col":11},"end":{"line":25,"col":24}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":12},"ty":{"Deduplicated":287}},{"BinaryOp":["Gt",{"Move":{"kind":{"Local":13},"ty":{"Deduplicated":283}}},{"Move":{"kind":{"Local":14},"ty":{"Deduplicated":283}}}]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":25,"col":11},"end":{"line":25,"col":24}},"generated_from_span":null},"kind":{"Switch":{"discr":{"Move":{"kind":{"Local":12},"ty":{"Deduplicated":287}}},"targets":{"If":[8,9]}}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":24,"col":14},"end":{"line":24,"col":19}},"generated_from_span":null},"kind":{"Abort":"UndefinedBehavior"},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":25,"col":23},"end":{"line":25,"col":24}},"generated_from_span":null},"kind":{"StorageDead":14},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":25,"col":23},"end":{"line":25,"col":24}},"generated_from_span":null},"kind":{"StorageDead":13},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":26,"col":19},"end":{"line":26,"col":20}},"generated_from_span":null},"kind":{"StorageLive":15},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":26,"col":19},"end":{"line":26,"col":20}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":15},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Local":11},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":26,"col":12},"end":{"line":26,"col":20}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":16},"ty":{"Deduplicated":288}},{"BinaryOp":["AddChecked",{"Copy":{"kind":{"Local":3},"ty":{"Deduplicated":283}}},{"Copy":{"kind":{"Local":15},"ty":{"Deduplicated":283}}}]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":26,"col":12},"end":{"line":26,"col":20}},"generated_from_span":null},"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":16},"ty":{"Deduplicated":288}},{"Field":[{"Tuple":2},1]}]},"ty":{"Deduplicated":287}}},"expected":false,"check_kind":{"Overflow":[{"Add":"Wrap"},{"Copy":{"kind":{"Local":3},"ty":{"Deduplicated":283}}},{"Move":{"kind":{"Local":19},"ty":{"Deduplicated":283}}}]}},"target":10,"on_unwind":1}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":25,"col":23},"end":{"line":25,"col":24}},"generated_from_span":null},"kind":{"StorageDead":14},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":25,"col":23},"end":{"line":25,"col":24}},"generated_from_span":null},"kind":{"StorageDead":13},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":28,"col":19},"end":{"line":28,"col":20}},"generated_from_span":null},"kind":{"StorageLive":17},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":28,"col":19},"end":{"line":28,"col":20}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":17},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Local":11},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":28,"col":12},"end":{"line":28,"col":20}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":18},"ty":{"Deduplicated":288}},{"BinaryOp":["SubChecked",{"Copy":{"kind":{"Local":3},"ty":{"Deduplicated":283}}},{"Copy":{"kind":{"Local":17},"ty":{"Deduplicated":283}}}]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":28,"col":12},"end":{"line":28,"col":20}},"generated_from_span":null},"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":18},"ty":{"Deduplicated":288}},{"Field":[{"Tuple":2},1]}]},"ty":{"Deduplicated":287}}},"expected":false,"check_kind":{"Overflow":[{"Sub":"Wrap"},{"Copy":{"kind":{"Local":3},"ty":{"Deduplicated":283}}},{"Move":{"kind":{"Local":21},"ty":{"Deduplicated":283}}}]}},"target":11,"on_unwind":1}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":26,"col":12},"end":{"line":26,"col":20}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":3},"ty":{"Deduplicated":283}},{"Use":{"Move":{"kind":{"Projection":[{"kind":{"Local":16},"ty":{"Deduplicated":288}},{"Field":[{"Tuple":2},0]}]},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":26,"col":19},"end":{"line":26,"col":20}},"generated_from_span":null},"kind":{"StorageDead":15},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":25,"col":8},"end":{"line":29,"col":9}},"generated_from_span":null},"kind":{"Goto":{"target":12}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":28,"col":12},"end":{"line":28,"col":20}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":3},"ty":{"Deduplicated":283}},{"Use":{"Move":{"kind":{"Projection":[{"kind":{"Local":18},"ty":{"Deduplicated":288}},{"Field":[{"Tuple":2},0]}]},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":28,"col":19},"end":{"line":28,"col":20}},"generated_from_span":null},"kind":{"StorageDead":17},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":25,"col":8},"end":{"line":29,"col":9}},"generated_from_span":null},"kind":{"Goto":{"target":12}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":29,"col":8},"end":{"line":29,"col":9}},"generated_from_span":null},"kind":{"StorageDead":12},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":30,"col":4},"end":{"line":30,"col":5}},"generated_from_span":null},"kind":{"StorageDead":11},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":30,"col":4},"end":{"line":30,"col":5}},"generated_from_span":null},"kind":{"StorageDead":9},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":30,"col":4},"end":{"line":30,"col":5}},"generated_from_span":null},"kind":{"StorageDead":7},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":24,"col":4},"end":{"line":30,"col":5}},"generated_from_span":null},"kind":{"Goto":{"target":3}},"comments_before":[]}}],"comments":[]}}},{"def_id":2,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["slice_of_refs_sum",0]}],"span":{"data":{"file_id":0,"beg":{"line":42,"col":0},"end":{"line":48,"col":1}},"generated_from_span":null},"source_text":"pub fn slice_of_refs_sum(slice: &[&i64]) -> i64 {\n let mut acc: i64 = 0;\n for r in slice {\n acc += **r;\n }\n acc\n}","attr_info":{"attributes":[],"inline":"Never","rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"},{"index":1,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"HashConsedValue":[7558,{"Ref":[{"Var":{"Bound":[0,0]}},{"HashConsedValue":[7557,{"Slice":{"HashConsedValue":[7556,{"Ref":[{"Var":{"Bound":[0,1]}},{"Deduplicated":283},"Shared"]}]}}]},"Shared"]}]}],"output":{"Deduplicated":283}},"src":"TopLevel","is_global_initializer":null,"body":{"Unstructured":{"span":{"data":{"file_id":0,"beg":{"line":42,"col":0},"end":{"line":48,"col":1}},"generated_from_span":null},"bound_body_regions":86,"locals":{"arg_count":1,"locals":[{"index":0,"name":null,"span":{"data":{"file_id":0,"beg":{"line":42,"col":44},"end":{"line":42,"col":47}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":1,"name":"slice","span":{"data":{"file_id":0,"beg":{"line":42,"col":25},"end":{"line":42,"col":30}},"generated_from_span":null},"ty":{"HashConsedValue":[700,{"Ref":[{"Body":4},{"HashConsedValue":[699,{"Slice":{"HashConsedValue":[698,{"Ref":[{"Body":5},{"Deduplicated":283},"Shared"]}]}}]},"Shared"]}]}},{"index":2,"name":"acc","span":{"data":{"file_id":0,"beg":{"line":43,"col":8},"end":{"line":43,"col":15}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":3,"name":null,"span":{"data":{"file_id":0,"beg":{"line":44,"col":13},"end":{"line":44,"col":18}},"generated_from_span":null},"ty":{"HashConsedValue":[6443,{"Adt":{"id":{"Adt":11},"generics":{"regions":[{"Body":12}],"types":[{"HashConsedValue":[451,{"Ref":[{"Body":13},{"Deduplicated":283},"Shared"]}]}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6442,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[452,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":451}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":451}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},{"index":4,"name":null,"span":{"data":{"file_id":0,"beg":{"line":44,"col":13},"end":{"line":44,"col":18}},"generated_from_span":null},"ty":{"HashConsedValue":[710,{"Ref":[{"Body":16},{"HashConsedValue":[709,{"Slice":{"HashConsedValue":[708,{"Ref":[{"Body":17},{"Deduplicated":283},"Shared"]}]}}]},"Shared"]}]}},{"index":5,"name":"iter","span":{"data":{"file_id":0,"beg":{"line":44,"col":13},"end":{"line":44,"col":18}},"generated_from_span":null},"ty":{"HashConsedValue":[6445,{"Adt":{"id":{"Adt":11},"generics":{"regions":[{"Body":18}],"types":[{"HashConsedValue":[711,{"Ref":[{"Body":19},{"Deduplicated":283},"Shared"]}]}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6444,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[919,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":711}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":711}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},{"index":6,"name":null,"span":{"data":{"file_id":0,"beg":{"line":44,"col":13},"end":{"line":44,"col":18}},"generated_from_span":null},"ty":{"HashConsedValue":[6448,{"Adt":{"id":{"Adt":12},"generics":{"regions":[],"types":[{"HashConsedValue":[740,{"Ref":[{"Body":36},{"HashConsedValue":[739,{"Ref":[{"Body":37},{"Deduplicated":283},"Shared"]}]},"Shared"]}]}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6447,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6446,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":740}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":740}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},{"index":7,"name":null,"span":{"data":{"file_id":0,"beg":{"line":44,"col":13},"end":{"line":44,"col":18}},"generated_from_span":null},"ty":{"HashConsedValue":[6452,{"Ref":[{"Body":47},{"HashConsedValue":[6451,{"Adt":{"id":{"Adt":11},"generics":{"regions":[{"Body":48}],"types":[{"HashConsedValue":[756,{"Ref":[{"Body":49},{"Deduplicated":283},"Shared"]}]}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6450,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6449,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":756}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":756}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]},"Mut"]}]}},{"index":8,"name":null,"span":{"data":{"file_id":0,"beg":{"line":44,"col":13},"end":{"line":44,"col":18}},"generated_from_span":null},"ty":{"HashConsedValue":[6456,{"Ref":[{"Body":52},{"HashConsedValue":[6455,{"Adt":{"id":{"Adt":11},"generics":{"regions":[{"Body":53}],"types":[{"HashConsedValue":[763,{"Ref":[{"Body":54},{"Deduplicated":283},"Shared"]}]}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6454,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6453,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":763}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":763}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]},"Mut"]}]}},{"index":9,"name":null,"span":{"data":{"file_id":0,"beg":{"line":44,"col":4},"end":{"line":46,"col":5}},"generated_from_span":null},"ty":{"Deduplicated":463}},{"index":10,"name":"r","span":{"data":{"file_id":0,"beg":{"line":44,"col":8},"end":{"line":44,"col":9}},"generated_from_span":null},"ty":{"HashConsedValue":[771,{"Ref":[{"Body":57},{"HashConsedValue":[770,{"Ref":[{"Body":58},{"Deduplicated":283},"Shared"]}]},"Shared"]}]}},{"index":11,"name":null,"span":{"data":{"file_id":0,"beg":{"line":45,"col":15},"end":{"line":45,"col":18}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":12,"name":null,"span":{"data":{"file_id":0,"beg":{"line":45,"col":8},"end":{"line":45,"col":18}},"generated_from_span":null},"ty":{"Deduplicated":288}}]},"body":[{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":43,"col":8},"end":{"line":43,"col":15}},"generated_from_span":null},"kind":{"StorageLive":9},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":43,"col":8},"end":{"line":43,"col":15}},"generated_from_span":null},"kind":{"StorageLive":12},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":43,"col":8},"end":{"line":43,"col":15}},"generated_from_span":null},"kind":{"StorageLive":2},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":43,"col":23},"end":{"line":43,"col":24}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":2},"ty":{"Deduplicated":283}},{"Use":{"Const":{"kind":{"Literal":{"Scalar":{"Signed":["I64","0"]}}},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":44,"col":13},"end":{"line":44,"col":18}},"generated_from_span":null},"kind":{"StorageLive":3},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":44,"col":13},"end":{"line":44,"col":18}},"generated_from_span":null},"kind":{"StorageLive":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":44,"col":13},"end":{"line":44,"col":18}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":4},"ty":{"Deduplicated":710}},{"Use":{"Copy":{"kind":{"Local":1},"ty":{"Deduplicated":700}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":44,"col":13},"end":{"line":44,"col":18}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":{"Regular":19}},"generics":{"regions":[{"Body":59}],"types":[{"HashConsedValue":[785,{"Ref":[{"Body":60},{"Deduplicated":283},"Shared"]}]}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6458,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6457,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":785}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":785}],"const_generics":[],"trait_refs":[]}}}}]}]}}},"args":[{"Move":{"kind":{"Local":4},"ty":{"Deduplicated":710}}}],"dest":{"kind":{"Local":3},"ty":{"Deduplicated":6443}}},"target":2,"on_unwind":1}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":42,"col":0},"end":{"line":48,"col":1}},"generated_from_span":null},"kind":"UnwindResume","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":44,"col":17},"end":{"line":44,"col":18}},"generated_from_span":null},"kind":{"StorageDead":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":44,"col":13},"end":{"line":44,"col":18}},"generated_from_span":null},"kind":{"StorageLive":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":44,"col":13},"end":{"line":44,"col":18}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":5},"ty":{"Deduplicated":6445}},{"Use":{"Move":{"kind":{"Local":3},"ty":{"Deduplicated":6443}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":44,"col":4},"end":{"line":46,"col":5}},"generated_from_span":null},"kind":{"Goto":{"target":3}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":44,"col":13},"end":{"line":44,"col":18}},"generated_from_span":null},"kind":{"StorageLive":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":44,"col":13},"end":{"line":44,"col":18}},"generated_from_span":null},"kind":{"StorageLive":7},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":44,"col":13},"end":{"line":44,"col":18}},"generated_from_span":null},"kind":{"StorageLive":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":44,"col":13},"end":{"line":44,"col":18}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":8},"ty":{"Deduplicated":6456}},{"Ref":{"place":{"kind":{"Local":5},"ty":{"Deduplicated":6445}},"kind":"Mut","ptr_metadata":{"Const":{"kind":{"Adt":[null,[]]},"ty":{"Deduplicated":297}}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":44,"col":13},"end":{"line":44,"col":18}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":7},"ty":{"Deduplicated":6452}},{"Ref":{"place":{"kind":{"Projection":[{"kind":{"Local":8},"ty":{"Deduplicated":6456}},"Deref"]},"ty":{"HashConsedValue":[7563,{"Adt":{"id":{"Adt":11},"generics":{"regions":[{"Body":65}],"types":[{"HashConsedValue":[790,{"Ref":[{"Body":66},{"Deduplicated":283},"Shared"]}]}],"const_generics":[],"trait_refs":[{"HashConsedValue":[7562,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[7561,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"HashConsedValue":[7560,{"Ref":[{"Body":67},{"Deduplicated":283},"Shared"]}]}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[793,{"Ref":[{"Body":68},{"Deduplicated":283},"Shared"]}]}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},"kind":"TwoPhaseMut","ptr_metadata":{"Const":{"kind":{"Adt":[null,[]]},"ty":{"Deduplicated":297}}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":44,"col":13},"end":{"line":44,"col":18}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":{"Regular":20}},"generics":{"regions":[{"Body":69},{"Body":76}],"types":[{"HashConsedValue":[809,{"Ref":[{"Body":70},{"Deduplicated":283},"Shared"]}]}],"const_generics":[],"trait_refs":[{"HashConsedValue":[7564,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[1072,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":809}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":809}],"const_generics":[],"trait_refs":[]}}}}]}]}}},"args":[{"Move":{"kind":{"Local":7},"ty":{"Deduplicated":6452}}}],"dest":{"kind":{"Local":6},"ty":{"Deduplicated":6448}}},"target":4,"on_unwind":1}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":44,"col":17},"end":{"line":44,"col":18}},"generated_from_span":null},"kind":{"StorageDead":7},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":44,"col":13},"end":{"line":44,"col":18}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":9},"ty":{"Deduplicated":463}},{"Discriminant":{"kind":{"Local":6},"ty":{"Deduplicated":6448}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":44,"col":13},"end":{"line":44,"col":18}},"generated_from_span":null},"kind":{"Switch":{"discr":{"Move":{"kind":{"Local":9},"ty":{"Deduplicated":463}}},"targets":{"SwitchInt":[{"Int":"Isize"},[[{"Scalar":{"Signed":["Isize","0"]}},5],[{"Scalar":{"Signed":["Isize","1"]}},6]],7]}}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":46,"col":4},"end":{"line":46,"col":5}},"generated_from_span":null},"kind":{"StorageDead":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":46,"col":4},"end":{"line":46,"col":5}},"generated_from_span":null},"kind":{"StorageDead":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":46,"col":4},"end":{"line":46,"col":5}},"generated_from_span":null},"kind":{"StorageDead":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":46,"col":4},"end":{"line":46,"col":5}},"generated_from_span":null},"kind":{"StorageDead":3},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":47,"col":4},"end":{"line":47,"col":7}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Local":2},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":48,"col":0},"end":{"line":48,"col":1}},"generated_from_span":null},"kind":{"StorageDead":2},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":48,"col":1},"end":{"line":48,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":44,"col":8},"end":{"line":44,"col":9}},"generated_from_span":null},"kind":{"StorageLive":10},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":44,"col":8},"end":{"line":44,"col":9}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":10},"ty":{"Deduplicated":771}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Local":6},"ty":{"Deduplicated":6448}},{"Field":[{"Adt":[12,1]},0]}]},"ty":{"HashConsedValue":[7565,{"Ref":[{"Body":83},{"HashConsedValue":[823,{"Ref":[{"Body":84},{"Deduplicated":283},"Shared"]}]},"Shared"]}]}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":45,"col":15},"end":{"line":45,"col":18}},"generated_from_span":null},"kind":{"StorageLive":11},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":45,"col":15},"end":{"line":45,"col":18}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":11},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Projection":[{"kind":{"Local":10},"ty":{"Deduplicated":771}},"Deref"]},"ty":{"HashConsedValue":[7566,{"Ref":[{"Body":85},{"Deduplicated":283},"Shared"]}]}},"Deref"]},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":45,"col":8},"end":{"line":45,"col":18}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":12},"ty":{"Deduplicated":288}},{"BinaryOp":["AddChecked",{"Copy":{"kind":{"Local":2},"ty":{"Deduplicated":283}}},{"Copy":{"kind":{"Local":11},"ty":{"Deduplicated":283}}}]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":45,"col":8},"end":{"line":45,"col":18}},"generated_from_span":null},"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":12},"ty":{"Deduplicated":288}},{"Field":[{"Tuple":2},1]}]},"ty":{"Deduplicated":287}}},"expected":false,"check_kind":{"Overflow":[{"Add":"Wrap"},{"Copy":{"kind":{"Local":2},"ty":{"Deduplicated":283}}},{"Move":{"kind":{"Local":15},"ty":{"Deduplicated":283}}}]}},"target":8,"on_unwind":1}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":44,"col":13},"end":{"line":44,"col":18}},"generated_from_span":null},"kind":{"Abort":"UndefinedBehavior"},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":45,"col":8},"end":{"line":45,"col":18}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":2},"ty":{"Deduplicated":283}},{"Use":{"Move":{"kind":{"Projection":[{"kind":{"Local":12},"ty":{"Deduplicated":288}},{"Field":[{"Tuple":2},0]}]},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":45,"col":17},"end":{"line":45,"col":18}},"generated_from_span":null},"kind":{"StorageDead":11},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":46,"col":4},"end":{"line":46,"col":5}},"generated_from_span":null},"kind":{"StorageDead":10},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":46,"col":4},"end":{"line":46,"col":5}},"generated_from_span":null},"kind":{"StorageDead":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":46,"col":4},"end":{"line":46,"col":5}},"generated_from_span":null},"kind":{"StorageDead":6},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":44,"col":4},"end":{"line":46,"col":5}},"generated_from_span":null},"kind":{"Goto":{"target":3}},"comments_before":[]}}],"comments":[]}}},{"def_id":3,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["array_of_refs_sum",0]}],"span":{"data":{"file_id":0,"beg":{"line":51,"col":0},"end":{"line":57,"col":1}},"generated_from_span":null},"source_text":"pub fn array_of_refs_sum(refs: [&i64; 3]) -> i64 {\n let mut acc: i64 = 0;\n for r in refs {\n acc += *r;\n }\n acc\n}","attr_info":{"attributes":[],"inline":"Never","rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"HashConsedValue":[7567,{"Array":[{"Deduplicated":826},{"kind":{"Literal":{"Scalar":{"Unsigned":["Usize","3"]}}},"ty":{"Deduplicated":827}}]}]}],"output":{"Deduplicated":283}},"src":"TopLevel","is_global_initializer":null,"body":{"Unstructured":{"span":{"data":{"file_id":0,"beg":{"line":51,"col":0},"end":{"line":57,"col":1}},"generated_from_span":null},"bound_body_regions":111,"locals":{"arg_count":1,"locals":[{"index":0,"name":null,"span":{"data":{"file_id":0,"beg":{"line":51,"col":45},"end":{"line":51,"col":48}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":1,"name":"refs","span":{"data":{"file_id":0,"beg":{"line":51,"col":25},"end":{"line":51,"col":29}},"generated_from_span":null},"ty":{"HashConsedValue":[833,{"Array":[{"HashConsedValue":[693,{"Ref":[{"Body":2},{"Deduplicated":283},"Shared"]}]},{"kind":{"Literal":{"Scalar":{"Unsigned":["Usize","3"]}}},"ty":{"Deduplicated":827}}]}]}},{"index":2,"name":"acc","span":{"data":{"file_id":0,"beg":{"line":52,"col":8},"end":{"line":52,"col":15}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":3,"name":null,"span":{"data":{"file_id":0,"beg":{"line":53,"col":13},"end":{"line":53,"col":17}},"generated_from_span":null},"ty":{"HashConsedValue":[6501,{"Adt":{"id":{"Adt":13},"generics":{"regions":[],"types":[{"HashConsedValue":[443,{"Ref":[{"Body":8},{"Deduplicated":283},"Shared"]}]}],"const_generics":[{"kind":{"Literal":{"Scalar":{"Unsigned":["Usize","3"]}}},"ty":{"Deduplicated":827}}],"trait_refs":[{"HashConsedValue":[6500,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6499,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":443}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":443}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},{"index":4,"name":null,"span":{"data":{"file_id":0,"beg":{"line":53,"col":13},"end":{"line":53,"col":17}},"generated_from_span":null},"ty":{"HashConsedValue":[915,{"Array":[{"HashConsedValue":[446,{"Ref":[{"Body":11},{"Deduplicated":283},"Shared"]}]},{"kind":{"Literal":{"Scalar":{"Unsigned":["Usize","3"]}}},"ty":{"Deduplicated":827}}]}]}},{"index":5,"name":"iter","span":{"data":{"file_id":0,"beg":{"line":53,"col":13},"end":{"line":53,"col":17}},"generated_from_span":null},"ty":{"HashConsedValue":[6502,{"Adt":{"id":{"Adt":13},"generics":{"regions":[],"types":[{"Deduplicated":450}],"const_generics":[{"kind":{"Literal":{"Scalar":{"Unsigned":["Usize","3"]}}},"ty":{"Deduplicated":827}}],"trait_refs":[{"Deduplicated":6434}]}}}]}},{"index":6,"name":null,"span":{"data":{"file_id":0,"beg":{"line":53,"col":13},"end":{"line":53,"col":17}},"generated_from_span":null},"ty":{"HashConsedValue":[6505,{"Adt":{"id":{"Adt":12},"generics":{"regions":[],"types":[{"HashConsedValue":[712,{"Ref":[{"Body":20},{"Deduplicated":283},"Shared"]}]}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6504,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6503,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":712}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":712}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},{"index":7,"name":null,"span":{"data":{"file_id":0,"beg":{"line":53,"col":13},"end":{"line":53,"col":17}},"generated_from_span":null},"ty":{"HashConsedValue":[6509,{"Ref":[{"Body":27},{"HashConsedValue":[6508,{"Adt":{"id":{"Adt":13},"generics":{"regions":[],"types":[{"HashConsedValue":[682,{"Ref":[{"Body":28},{"Deduplicated":283},"Shared"]}]}],"const_generics":[{"kind":{"Literal":{"Scalar":{"Unsigned":["Usize","3"]}}},"ty":{"Deduplicated":827}}],"trait_refs":[{"HashConsedValue":[6507,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6506,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":682}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":682}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]},"Mut"]}]}},{"index":8,"name":null,"span":{"data":{"file_id":0,"beg":{"line":53,"col":13},"end":{"line":53,"col":17}},"generated_from_span":null},"ty":{"HashConsedValue":[6513,{"Ref":[{"Body":31},{"HashConsedValue":[6512,{"Adt":{"id":{"Adt":13},"generics":{"regions":[],"types":[{"HashConsedValue":[731,{"Ref":[{"Body":32},{"Deduplicated":283},"Shared"]}]}],"const_generics":[{"kind":{"Literal":{"Scalar":{"Unsigned":["Usize","3"]}}},"ty":{"Deduplicated":827}}],"trait_refs":[{"HashConsedValue":[6511,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6510,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":731}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":731}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]},"Mut"]}]}},{"index":9,"name":null,"span":{"data":{"file_id":0,"beg":{"line":53,"col":4},"end":{"line":55,"col":5}},"generated_from_span":null},"ty":{"Deduplicated":463}},{"index":10,"name":"r","span":{"data":{"file_id":0,"beg":{"line":53,"col":8},"end":{"line":53,"col":9}},"generated_from_span":null},"ty":{"HashConsedValue":[734,{"Ref":[{"Body":35},{"Deduplicated":283},"Shared"]}]}},{"index":11,"name":null,"span":{"data":{"file_id":0,"beg":{"line":54,"col":15},"end":{"line":54,"col":17}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":12,"name":null,"span":{"data":{"file_id":0,"beg":{"line":54,"col":8},"end":{"line":54,"col":17}},"generated_from_span":null},"ty":{"Deduplicated":288}}]},"body":[{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":52,"col":8},"end":{"line":52,"col":15}},"generated_from_span":null},"kind":{"StorageLive":9},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":52,"col":8},"end":{"line":52,"col":15}},"generated_from_span":null},"kind":{"StorageLive":12},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":52,"col":8},"end":{"line":52,"col":15}},"generated_from_span":null},"kind":{"StorageLive":2},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":52,"col":23},"end":{"line":52,"col":24}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":2},"ty":{"Deduplicated":283}},{"Use":{"Const":{"kind":{"Literal":{"Scalar":{"Signed":["I64","0"]}}},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":53,"col":13},"end":{"line":53,"col":17}},"generated_from_span":null},"kind":{"StorageLive":3},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":53,"col":13},"end":{"line":53,"col":17}},"generated_from_span":null},"kind":{"StorageLive":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":53,"col":13},"end":{"line":53,"col":17}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":4},"ty":{"Deduplicated":915}},{"Use":{"Copy":{"kind":{"Local":1},"ty":{"Deduplicated":833}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":53,"col":13},"end":{"line":53,"col":17}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":{"Regular":21}},"generics":{"regions":[],"types":[{"HashConsedValue":[6514,{"Ref":[{"Body":36},{"Deduplicated":283},"Shared"]}]}],"const_generics":[{"kind":{"Literal":{"Scalar":{"Unsigned":["Usize","3"]}}},"ty":{"Deduplicated":827}}],"trait_refs":[{"HashConsedValue":[7573,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[7572,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":6514}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":6514}],"const_generics":[],"trait_refs":[]}}}}]}]}}},"args":[{"Move":{"kind":{"Local":4},"ty":{"Deduplicated":915}}}],"dest":{"kind":{"Local":3},"ty":{"Deduplicated":6501}}},"target":2,"on_unwind":1}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":51,"col":0},"end":{"line":57,"col":1}},"generated_from_span":null},"kind":"UnwindResume","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":53,"col":16},"end":{"line":53,"col":17}},"generated_from_span":null},"kind":{"StorageDead":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":53,"col":13},"end":{"line":53,"col":17}},"generated_from_span":null},"kind":{"StorageLive":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":53,"col":13},"end":{"line":53,"col":17}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":5},"ty":{"Deduplicated":6502}},{"Use":{"Move":{"kind":{"Local":3},"ty":{"Deduplicated":6501}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":53,"col":4},"end":{"line":55,"col":5}},"generated_from_span":null},"kind":{"Goto":{"target":3}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":53,"col":13},"end":{"line":53,"col":17}},"generated_from_span":null},"kind":{"StorageLive":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":53,"col":13},"end":{"line":53,"col":17}},"generated_from_span":null},"kind":{"StorageLive":7},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":53,"col":13},"end":{"line":53,"col":17}},"generated_from_span":null},"kind":{"StorageLive":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":53,"col":13},"end":{"line":53,"col":17}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":8},"ty":{"Deduplicated":6513}},{"Ref":{"place":{"kind":{"Local":5},"ty":{"Deduplicated":6502}},"kind":"Mut","ptr_metadata":{"Const":{"kind":{"Adt":[null,[]]},"ty":{"Deduplicated":297}}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":53,"col":13},"end":{"line":53,"col":17}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":7},"ty":{"Deduplicated":6509}},{"Ref":{"place":{"kind":{"Projection":[{"kind":{"Local":8},"ty":{"Deduplicated":6513}},"Deref"]},"ty":{"HashConsedValue":[7579,{"Adt":{"id":{"Adt":13},"generics":{"regions":[],"types":[{"HashConsedValue":[7574,{"Ref":[{"Body":41},{"Deduplicated":283},"Shared"]}]}],"const_generics":[{"kind":{"Literal":{"Scalar":{"Unsigned":["Usize","3"]}}},"ty":{"Deduplicated":827}}],"trait_refs":[{"HashConsedValue":[7578,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[7576,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"HashConsedValue":[7575,{"Ref":[{"Body":42},{"Deduplicated":283},"Shared"]}]}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[7577,{"Ref":[{"Body":43},{"Deduplicated":283},"Shared"]}]}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},"kind":"TwoPhaseMut","ptr_metadata":{"Const":{"kind":{"Adt":[null,[]]},"ty":{"Deduplicated":297}}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":53,"col":13},"end":{"line":53,"col":17}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":{"Regular":22}},"generics":{"regions":[{"Body":50}],"types":[{"HashConsedValue":[749,{"Ref":[{"Body":44},{"Deduplicated":283},"Shared"]}]}],"const_generics":[{"kind":{"Literal":{"Scalar":{"Unsigned":["Usize","3"]}}},"ty":{"Deduplicated":827}}],"trait_refs":[{"HashConsedValue":[7581,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[7580,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":749}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":749}],"const_generics":[],"trait_refs":[]}}}}]}]}}},"args":[{"Move":{"kind":{"Local":7},"ty":{"Deduplicated":6509}}}],"dest":{"kind":{"Local":6},"ty":{"Deduplicated":6505}}},"target":5,"on_unwind":4}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":55,"col":4},"end":{"line":55,"col":5}},"generated_from_span":null},"kind":{"Drop":{"kind":"Conditional","place":{"kind":{"Local":5},"ty":{"Deduplicated":6502}},"fn_ptr":{"kind":{"Fun":{"Regular":266}},"generics":{"regions":[],"types":[{"Deduplicated":785}],"const_generics":[{"kind":{"Literal":{"Scalar":{"Unsigned":["Usize","3"]}}},"ty":{"Deduplicated":827}}],"trait_refs":[{"Deduplicated":6458}]}},"target":6,"on_unwind":7}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":53,"col":16},"end":{"line":53,"col":17}},"generated_from_span":null},"kind":{"StorageDead":7},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":53,"col":13},"end":{"line":53,"col":17}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":9},"ty":{"Deduplicated":463}},{"Discriminant":{"kind":{"Local":6},"ty":{"Deduplicated":6505}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":53,"col":13},"end":{"line":53,"col":17}},"generated_from_span":null},"kind":{"Switch":{"discr":{"Move":{"kind":{"Local":9},"ty":{"Deduplicated":463}}},"targets":{"SwitchInt":[{"Int":"Isize"},[[{"Scalar":{"Signed":["Isize","0"]}},8],[{"Scalar":{"Signed":["Isize","1"]}},9]],10]}}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":55,"col":4},"end":{"line":55,"col":5}},"generated_from_span":null},"kind":{"Drop":{"kind":"Conditional","place":{"kind":{"Local":3},"ty":{"Deduplicated":6501}},"fn_ptr":{"kind":{"Fun":{"Regular":266}},"generics":{"regions":[],"types":[{"HashConsedValue":[6529,{"Ref":[{"Body":74},{"Deduplicated":283},"Shared"]}]}],"const_generics":[{"kind":{"Literal":{"Scalar":{"Unsigned":["Usize","3"]}}},"ty":{"Deduplicated":827}}],"trait_refs":[{"HashConsedValue":[6768,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6767,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":6529}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":6529}],"const_generics":[],"trait_refs":[]}}}}]}]}},"target":1,"on_unwind":11}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":55,"col":4},"end":{"line":55,"col":5}},"generated_from_span":null},"kind":{"Abort":"UnwindTerminate"},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":55,"col":4},"end":{"line":55,"col":5}},"generated_from_span":null},"kind":{"StorageDead":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":55,"col":4},"end":{"line":55,"col":5}},"generated_from_span":null},"kind":{"StorageDead":6},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":55,"col":4},"end":{"line":55,"col":5}},"generated_from_span":null},"kind":{"Drop":{"kind":"Conditional","place":{"kind":{"Local":5},"ty":{"Deduplicated":6502}},"fn_ptr":{"kind":{"Fun":{"Regular":266}},"generics":{"regions":[],"types":[{"HashConsedValue":[6536,{"Ref":[{"Body":92},{"Deduplicated":283},"Shared"]}]}],"const_generics":[{"kind":{"Literal":{"Scalar":{"Unsigned":["Usize","3"]}}},"ty":{"Deduplicated":827}}],"trait_refs":[{"HashConsedValue":[6774,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6773,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":6536}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":6536}],"const_generics":[],"trait_refs":[]}}}}]}]}},"target":13,"on_unwind":6}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":53,"col":8},"end":{"line":53,"col":9}},"generated_from_span":null},"kind":{"StorageLive":10},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":53,"col":8},"end":{"line":53,"col":9}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":10},"ty":{"Deduplicated":734}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Local":6},"ty":{"Deduplicated":6505}},{"Field":[{"Adt":[12,1]},0]}]},"ty":{"HashConsedValue":[819,{"Ref":[{"Body":82},{"Deduplicated":283},"Shared"]}]}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":54,"col":15},"end":{"line":54,"col":17}},"generated_from_span":null},"kind":{"StorageLive":11},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":54,"col":15},"end":{"line":54,"col":17}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":11},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Local":10},"ty":{"Deduplicated":734}},"Deref"]},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":54,"col":8},"end":{"line":54,"col":17}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":12},"ty":{"Deduplicated":288}},{"BinaryOp":["AddChecked",{"Copy":{"kind":{"Local":2},"ty":{"Deduplicated":283}}},{"Copy":{"kind":{"Local":11},"ty":{"Deduplicated":283}}}]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":54,"col":8},"end":{"line":54,"col":17}},"generated_from_span":null},"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":12},"ty":{"Deduplicated":288}},{"Field":[{"Tuple":2},1]}]},"ty":{"Deduplicated":287}}},"expected":false,"check_kind":{"Overflow":[{"Add":"Wrap"},{"Copy":{"kind":{"Local":2},"ty":{"Deduplicated":283}}},{"Move":{"kind":{"Local":15},"ty":{"Deduplicated":283}}}]}},"target":12,"on_unwind":4}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":53,"col":13},"end":{"line":53,"col":17}},"generated_from_span":null},"kind":{"Abort":"UndefinedBehavior"},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":55,"col":4},"end":{"line":55,"col":5}},"generated_from_span":null},"kind":{"Abort":"UnwindTerminate"},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":54,"col":8},"end":{"line":54,"col":17}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":2},"ty":{"Deduplicated":283}},{"Use":{"Move":{"kind":{"Projection":[{"kind":{"Local":12},"ty":{"Deduplicated":288}},{"Field":[{"Tuple":2},0]}]},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":54,"col":16},"end":{"line":54,"col":17}},"generated_from_span":null},"kind":{"StorageDead":11},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":55,"col":4},"end":{"line":55,"col":5}},"generated_from_span":null},"kind":{"StorageDead":10},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":55,"col":4},"end":{"line":55,"col":5}},"generated_from_span":null},"kind":{"StorageDead":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":55,"col":4},"end":{"line":55,"col":5}},"generated_from_span":null},"kind":{"StorageDead":6},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":53,"col":4},"end":{"line":55,"col":5}},"generated_from_span":null},"kind":{"Goto":{"target":3}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":55,"col":4},"end":{"line":55,"col":5}},"generated_from_span":null},"kind":{"StorageDead":5},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":55,"col":4},"end":{"line":55,"col":5}},"generated_from_span":null},"kind":{"Drop":{"kind":"Conditional","place":{"kind":{"Local":3},"ty":{"Deduplicated":6501}},"fn_ptr":{"kind":{"Fun":{"Regular":266}},"generics":{"regions":[],"types":[{"HashConsedValue":[6543,{"Ref":[{"Body":106},{"Deduplicated":283},"Shared"]}]}],"const_generics":[{"kind":{"Literal":{"Scalar":{"Unsigned":["Usize","3"]}}},"ty":{"Deduplicated":827}}],"trait_refs":[{"HashConsedValue":[6780,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6779,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":6543}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":6543}],"const_generics":[],"trait_refs":[]}}}}]}]}},"target":14,"on_unwind":1}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":55,"col":4},"end":{"line":55,"col":5}},"generated_from_span":null},"kind":{"StorageDead":3},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":56,"col":4},"end":{"line":56,"col":7}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Local":2},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":57,"col":0},"end":{"line":57,"col":1}},"generated_from_span":null},"kind":{"StorageDead":2},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":57,"col":1},"end":{"line":57,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}}],"comments":[]}}},{"def_id":4,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["strategy_len",0]}],"span":{"data":{"file_id":0,"beg":{"line":67,"col":0},"end":{"line":73,"col":1}},"generated_from_span":null},"source_text":"pub fn strategy_len(s: &Strategy) -> usize {\n match s {\n Strategy::Empty => 0,\n Strategy::IntKeyed { len } => *len,\n Strategy::StrKeyed { len, capacity: _ } => *len,\n }\n}","attr_info":{"attributes":[],"inline":"Never","rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"HashConsedValue":[7582,{"Ref":[{"Var":{"Bound":[0,0]}},{"HashConsedValue":[1139,{"Adt":{"id":{"Adt":1},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}}]},"Shared"]}]}],"output":{"Deduplicated":827}},"src":"TopLevel","is_global_initializer":null,"body":{"Unstructured":{"span":{"data":{"file_id":0,"beg":{"line":67,"col":0},"end":{"line":73,"col":1}},"generated_from_span":null},"bound_body_regions":5,"locals":{"arg_count":1,"locals":[{"index":0,"name":null,"span":{"data":{"file_id":0,"beg":{"line":67,"col":37},"end":{"line":67,"col":42}},"generated_from_span":null},"ty":{"Deduplicated":827}},{"index":1,"name":"s","span":{"data":{"file_id":0,"beg":{"line":67,"col":20},"end":{"line":67,"col":21}},"generated_from_span":null},"ty":{"HashConsedValue":[1143,{"Ref":[{"Body":1},{"Deduplicated":1139},"Shared"]}]}},{"index":2,"name":null,"span":{"data":{"file_id":0,"beg":{"line":69,"col":8},"end":{"line":69,"col":23}},"generated_from_span":null},"ty":{"Deduplicated":463}},{"index":3,"name":"len","span":{"data":{"file_id":0,"beg":{"line":70,"col":29},"end":{"line":70,"col":32}},"generated_from_span":null},"ty":{"HashConsedValue":[1146,{"Ref":[{"Body":3},{"Deduplicated":827},"Shared"]}]}},{"index":4,"name":"len","span":{"data":{"file_id":0,"beg":{"line":71,"col":29},"end":{"line":71,"col":32}},"generated_from_span":null},"ty":{"HashConsedValue":[1147,{"Ref":[{"Body":4},{"Deduplicated":827},"Shared"]}]}}]},"body":[{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":68,"col":10},"end":{"line":68,"col":11}},"generated_from_span":null},"kind":{"StorageLive":2},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":68,"col":10},"end":{"line":68,"col":11}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":2},"ty":{"Deduplicated":463}},{"Discriminant":{"kind":{"Projection":[{"kind":{"Local":1},"ty":{"Deduplicated":1143}},"Deref"]},"ty":{"Deduplicated":1139}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":68,"col":4},"end":{"line":68,"col":11}},"generated_from_span":null},"kind":{"Switch":{"discr":{"Move":{"kind":{"Local":2},"ty":{"Deduplicated":463}}},"targets":{"SwitchInt":[{"Int":"Isize"},[[{"Scalar":{"Signed":["Isize","0"]}},1],[{"Scalar":{"Signed":["Isize","1"]}},2],[{"Scalar":{"Signed":["Isize","2"]}},3]],4]}}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":69,"col":27},"end":{"line":69,"col":28}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":827}},{"Use":{"Const":{"kind":{"Literal":{"Scalar":{"Unsigned":["Usize","0"]}}},"ty":{"Deduplicated":827}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":73,"col":1},"end":{"line":73,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":70,"col":29},"end":{"line":70,"col":32}},"generated_from_span":null},"kind":{"StorageLive":3},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":70,"col":29},"end":{"line":70,"col":32}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":3},"ty":{"Deduplicated":1146}},{"Ref":{"place":{"kind":{"Projection":[{"kind":{"Projection":[{"kind":{"Local":1},"ty":{"Deduplicated":1143}},"Deref"]},"ty":{"Deduplicated":1139}},{"Field":[{"Adt":[1,1]},0]}]},"ty":{"Deduplicated":827}},"kind":"Shared","ptr_metadata":{"Const":{"kind":{"Adt":[null,[]]},"ty":{"Deduplicated":297}}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":70,"col":38},"end":{"line":70,"col":42}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":827}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Local":3},"ty":{"Deduplicated":1146}},"Deref"]},"ty":{"Deduplicated":827}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":70,"col":41},"end":{"line":70,"col":42}},"generated_from_span":null},"kind":{"StorageDead":3},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":73,"col":1},"end":{"line":73,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":71,"col":29},"end":{"line":71,"col":32}},"generated_from_span":null},"kind":{"StorageLive":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":71,"col":29},"end":{"line":71,"col":32}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":4},"ty":{"Deduplicated":1147}},{"Ref":{"place":{"kind":{"Projection":[{"kind":{"Projection":[{"kind":{"Local":1},"ty":{"Deduplicated":1143}},"Deref"]},"ty":{"Deduplicated":1139}},{"Field":[{"Adt":[1,2]},0]}]},"ty":{"Deduplicated":827}},"kind":"Shared","ptr_metadata":{"Const":{"kind":{"Adt":[null,[]]},"ty":{"Deduplicated":297}}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":71,"col":51},"end":{"line":71,"col":55}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":827}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Local":4},"ty":{"Deduplicated":1147}},"Deref"]},"ty":{"Deduplicated":827}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":71,"col":54},"end":{"line":71,"col":55}},"generated_from_span":null},"kind":{"StorageDead":4},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":73,"col":1},"end":{"line":73,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":68,"col":10},"end":{"line":68,"col":11}},"generated_from_span":null},"kind":{"Abort":"UndefinedBehavior"},"comments_before":[]}}],"comments":[]}}},{"def_id":5,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["parse_one",0]}],"span":{"data":{"file_id":0,"beg":{"line":82,"col":0},"end":{"line":89,"col":1}},"generated_from_span":null},"source_text":"fn parse_one(raw: i64) -> PyResult {\n match raw {\n i64::MIN => Ok(Token::Halt),\n 0 => Err(\"halt-zero forbidden\"),\n v if v > 0 => Ok(Token::Add(v)),\n v => Ok(Token::Sub(-v)),\n }\n}","attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":283}],"output":{"HashConsedValue":[7583,{"Adt":{"id":{"Adt":10},"generics":{"regions":[],"types":[{"HashConsedValue":[1153,{"Adt":{"id":{"Adt":2},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}}]},{"Deduplicated":274}],"const_generics":[],"trait_refs":[{"HashConsedValue":[1155,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[1154,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":1153}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":1153}],"const_generics":[],"trait_refs":[]}}}}]},{"Deduplicated":281}]}}}]}},"src":"TopLevel","is_global_initializer":null,"body":{"Unstructured":{"span":{"data":{"file_id":0,"beg":{"line":82,"col":0},"end":{"line":89,"col":1}},"generated_from_span":null},"bound_body_regions":35,"locals":{"arg_count":1,"locals":[{"index":0,"name":null,"span":{"data":{"file_id":0,"beg":{"line":82,"col":26},"end":{"line":82,"col":41}},"generated_from_span":null},"ty":{"HashConsedValue":[6554,{"Adt":{"id":{"Adt":10},"generics":{"regions":[],"types":[{"Deduplicated":1153},{"HashConsedValue":[1170,{"Ref":[{"Body":6},{"Deduplicated":273},"Shared"]}]}],"const_generics":[],"trait_refs":[{"Deduplicated":1155},{"HashConsedValue":[6553,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6552,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":1170}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":1170}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},{"index":1,"name":"raw","span":{"data":{"file_id":0,"beg":{"line":82,"col":13},"end":{"line":82,"col":16}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":2,"name":null,"span":{"data":{"file_id":0,"beg":{"line":83,"col":10},"end":{"line":83,"col":13}},"generated_from_span":null},"ty":{"HashConsedValue":[445,{"Ref":[{"Body":10},{"Deduplicated":283},"Shared"]}]}},{"index":3,"name":null,"span":{"data":{"file_id":0,"beg":{"line":84,"col":23},"end":{"line":84,"col":34}},"generated_from_span":null},"ty":{"Deduplicated":1153}},{"index":4,"name":null,"span":{"data":{"file_id":0,"beg":{"line":85,"col":17},"end":{"line":85,"col":38}},"generated_from_span":null},"ty":{"HashConsedValue":[1176,{"Ref":[{"Body":11},{"Deduplicated":273},"Shared"]}]}},{"index":5,"name":null,"span":{"data":{"file_id":0,"beg":{"line":85,"col":17},"end":{"line":85,"col":38}},"generated_from_span":null},"ty":{"HashConsedValue":[1177,{"Ref":[{"Body":12},{"Deduplicated":273},"Shared"]}]}},{"index":6,"name":"v","span":{"data":{"file_id":0,"beg":{"line":86,"col":8},"end":{"line":86,"col":9}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":7,"name":"v","span":{"data":{"file_id":0,"beg":{"line":86,"col":8},"end":{"line":86,"col":9}},"generated_from_span":null},"ty":{"Deduplicated":451}},{"index":8,"name":null,"span":{"data":{"file_id":0,"beg":{"line":86,"col":13},"end":{"line":86,"col":18}},"generated_from_span":null},"ty":{"Deduplicated":287}},{"index":9,"name":null,"span":{"data":{"file_id":0,"beg":{"line":86,"col":13},"end":{"line":86,"col":14}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":10,"name":null,"span":{"data":{"file_id":0,"beg":{"line":86,"col":25},"end":{"line":86,"col":38}},"generated_from_span":null},"ty":{"Deduplicated":1153}},{"index":11,"name":null,"span":{"data":{"file_id":0,"beg":{"line":86,"col":36},"end":{"line":86,"col":37}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":12,"name":"v","span":{"data":{"file_id":0,"beg":{"line":87,"col":8},"end":{"line":87,"col":9}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":13,"name":null,"span":{"data":{"file_id":0,"beg":{"line":87,"col":16},"end":{"line":87,"col":30}},"generated_from_span":null},"ty":{"Deduplicated":1153}},{"index":14,"name":null,"span":{"data":{"file_id":0,"beg":{"line":87,"col":27},"end":{"line":87,"col":29}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":15,"name":null,"span":{"data":{"file_id":0,"beg":{"line":87,"col":28},"end":{"line":87,"col":29}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":16,"name":null,"span":{"data":{"file_id":0,"beg":{"line":87,"col":27},"end":{"line":87,"col":29}},"generated_from_span":null},"ty":{"Deduplicated":287}}]},"body":[{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":83,"col":4},"end":{"line":83,"col":13}},"generated_from_span":null},"kind":{"StorageLive":2},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":83,"col":4},"end":{"line":83,"col":13}},"generated_from_span":null},"kind":{"StorageLive":16},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":83,"col":4},"end":{"line":83,"col":13}},"generated_from_span":null},"kind":{"Switch":{"discr":{"Copy":{"kind":{"Local":1},"ty":{"Deduplicated":283}}},"targets":{"SwitchInt":[{"Int":"I64"},[[{"Scalar":{"Signed":["I64","-9223372036854775808"]}},1],[{"Scalar":{"Signed":["I64","0"]}},2]],3]}}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":84,"col":23},"end":{"line":84,"col":34}},"generated_from_span":null},"kind":{"StorageLive":3},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":84,"col":23},"end":{"line":84,"col":34}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":3},"ty":{"Deduplicated":1153}},{"Aggregate":[{"Adt":[{"id":{"Adt":2},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}},2,null]},[]]}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":84,"col":20},"end":{"line":84,"col":35}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":6554}},{"Aggregate":[{"Adt":[{"id":{"Adt":10},"generics":{"regions":[],"types":[{"Deduplicated":1153},{"HashConsedValue":[7584,{"Ref":[{"Body":14},{"Deduplicated":273},"Shared"]}]}],"const_generics":[],"trait_refs":[{"Deduplicated":1155},{"HashConsedValue":[7588,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[7586,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"HashConsedValue":[7585,{"Ref":[{"Body":18},{"Deduplicated":273},"Shared"]}]}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[7587,{"Ref":[{"Body":16},{"Deduplicated":273},"Shared"]}]}],"const_generics":[],"trait_refs":[]}}}}]}]}},0,null]},[{"Move":{"kind":{"Local":3},"ty":{"Deduplicated":1153}}}]]}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":84,"col":34},"end":{"line":84,"col":35}},"generated_from_span":null},"kind":{"StorageDead":3},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":89,"col":1},"end":{"line":89,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":85,"col":17},"end":{"line":85,"col":38}},"generated_from_span":null},"kind":{"StorageLive":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":85,"col":17},"end":{"line":85,"col":38}},"generated_from_span":null},"kind":{"StorageLive":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":85,"col":17},"end":{"line":85,"col":38}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":5},"ty":{"Deduplicated":1177}},{"Use":{"Const":{"kind":{"Literal":{"Str":"halt-zero forbidden"}},"ty":{"HashConsedValue":[7589,{"Ref":[{"Body":19},{"Deduplicated":273},"Shared"]}]}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":85,"col":17},"end":{"line":85,"col":38}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":4},"ty":{"Deduplicated":1176}},{"Ref":{"place":{"kind":{"Projection":[{"kind":{"Local":5},"ty":{"Deduplicated":1177}},"Deref"]},"ty":{"Deduplicated":273}},"kind":"Shared","ptr_metadata":{"Copy":{"kind":{"Projection":[{"kind":{"Local":5},"ty":{"Deduplicated":1177}},"PtrMetadata"]},"ty":{"Deduplicated":827}}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":85,"col":13},"end":{"line":85,"col":39}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":6554}},{"Aggregate":[{"Adt":[{"id":{"Adt":10},"generics":{"regions":[],"types":[{"Deduplicated":1153},{"HashConsedValue":[7590,{"Ref":[{"Body":20},{"Deduplicated":273},"Shared"]}]}],"const_generics":[],"trait_refs":[{"Deduplicated":1155},{"HashConsedValue":[7594,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[7592,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"HashConsedValue":[7591,{"Ref":[{"Body":24},{"Deduplicated":273},"Shared"]}]}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[7593,{"Ref":[{"Body":22},{"Deduplicated":273},"Shared"]}]}],"const_generics":[],"trait_refs":[]}}}}]}]}},1,null]},[{"Move":{"kind":{"Local":4},"ty":{"Deduplicated":1176}}}]]}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":85,"col":38},"end":{"line":85,"col":39}},"generated_from_span":null},"kind":{"StorageDead":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":85,"col":38},"end":{"line":85,"col":39}},"generated_from_span":null},"kind":{"StorageDead":5},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":89,"col":1},"end":{"line":89,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":86,"col":8},"end":{"line":86,"col":9}},"generated_from_span":null},"kind":{"StorageLive":7},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":86,"col":8},"end":{"line":86,"col":9}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":7},"ty":{"Deduplicated":451}},{"Ref":{"place":{"kind":{"Local":1},"ty":{"Deduplicated":283}},"kind":"Shared","ptr_metadata":{"Const":{"kind":{"Adt":[null,[]]},"ty":{"Deduplicated":297}}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":83,"col":10},"end":{"line":83,"col":13}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":2},"ty":{"Deduplicated":445}},{"Ref":{"place":{"kind":{"Local":1},"ty":{"Deduplicated":283}},"kind":"Shallow","ptr_metadata":{"Const":{"kind":{"Adt":[null,[]]},"ty":{"Deduplicated":297}}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":86,"col":13},"end":{"line":86,"col":18}},"generated_from_span":null},"kind":{"StorageLive":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":86,"col":13},"end":{"line":86,"col":14}},"generated_from_span":null},"kind":{"StorageLive":9},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":86,"col":13},"end":{"line":86,"col":14}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":9},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Local":7},"ty":{"Deduplicated":451}},"Deref"]},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":86,"col":13},"end":{"line":86,"col":18}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":8},"ty":{"Deduplicated":287}},{"BinaryOp":["Gt",{"Move":{"kind":{"Local":9},"ty":{"Deduplicated":283}}},{"Const":{"kind":{"Literal":{"Scalar":{"Signed":["I64","0"]}}},"ty":{"Deduplicated":283}}}]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":86,"col":13},"end":{"line":86,"col":18}},"generated_from_span":null},"kind":{"Switch":{"discr":{"Move":{"kind":{"Local":8},"ty":{"Deduplicated":287}}},"targets":{"If":[4,5]}}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":86,"col":17},"end":{"line":86,"col":18}},"generated_from_span":null},"kind":{"StorageDead":9},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":86,"col":17},"end":{"line":86,"col":18}},"generated_from_span":null},"kind":{"StorageDead":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":86,"col":8},"end":{"line":86,"col":9}},"generated_from_span":null},"kind":{"StorageLive":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":86,"col":8},"end":{"line":86,"col":9}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":6},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Local":1},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":86,"col":25},"end":{"line":86,"col":38}},"generated_from_span":null},"kind":{"StorageLive":10},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":86,"col":36},"end":{"line":86,"col":37}},"generated_from_span":null},"kind":{"StorageLive":11},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":86,"col":36},"end":{"line":86,"col":37}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":11},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Local":6},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":86,"col":25},"end":{"line":86,"col":38}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":10},"ty":{"Deduplicated":1153}},{"Aggregate":[{"Adt":[{"id":{"Adt":2},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}},0,null]},[{"Move":{"kind":{"Local":11},"ty":{"Deduplicated":283}}}]]}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":86,"col":37},"end":{"line":86,"col":38}},"generated_from_span":null},"kind":{"StorageDead":11},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":86,"col":22},"end":{"line":86,"col":39}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":6554}},{"Aggregate":[{"Adt":[{"id":{"Adt":10},"generics":{"regions":[],"types":[{"Deduplicated":1153},{"HashConsedValue":[7595,{"Ref":[{"Body":25},{"Deduplicated":273},"Shared"]}]}],"const_generics":[],"trait_refs":[{"Deduplicated":1155},{"HashConsedValue":[7599,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[7597,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"HashConsedValue":[7596,{"Ref":[{"Body":29},{"Deduplicated":273},"Shared"]}]}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[7598,{"Ref":[{"Body":27},{"Deduplicated":273},"Shared"]}]}],"const_generics":[],"trait_refs":[]}}}}]}]}},0,null]},[{"Move":{"kind":{"Local":10},"ty":{"Deduplicated":1153}}}]]}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":86,"col":38},"end":{"line":86,"col":39}},"generated_from_span":null},"kind":{"StorageDead":10},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":86,"col":38},"end":{"line":86,"col":39}},"generated_from_span":null},"kind":{"StorageDead":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":86,"col":38},"end":{"line":86,"col":39}},"generated_from_span":null},"kind":{"StorageDead":7},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":89,"col":1},"end":{"line":89,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":86,"col":17},"end":{"line":86,"col":18}},"generated_from_span":null},"kind":{"StorageDead":9},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":86,"col":17},"end":{"line":86,"col":18}},"generated_from_span":null},"kind":{"StorageDead":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":86,"col":38},"end":{"line":86,"col":39}},"generated_from_span":null},"kind":{"StorageDead":7},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":87,"col":8},"end":{"line":87,"col":9}},"generated_from_span":null},"kind":{"StorageLive":12},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":87,"col":8},"end":{"line":87,"col":9}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":12},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Local":1},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":87,"col":16},"end":{"line":87,"col":30}},"generated_from_span":null},"kind":{"StorageLive":13},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":87,"col":27},"end":{"line":87,"col":29}},"generated_from_span":null},"kind":{"StorageLive":14},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":87,"col":28},"end":{"line":87,"col":29}},"generated_from_span":null},"kind":{"StorageLive":15},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":87,"col":28},"end":{"line":87,"col":29}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":15},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Local":12},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":87,"col":27},"end":{"line":87,"col":29}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":16},"ty":{"Deduplicated":287}},{"BinaryOp":["Eq",{"Copy":{"kind":{"Local":15},"ty":{"Deduplicated":283}}},{"Const":{"kind":{"Literal":{"Scalar":{"Signed":["I64","-9223372036854775808"]}}},"ty":{"Deduplicated":283}}}]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":87,"col":27},"end":{"line":87,"col":29}},"generated_from_span":null},"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Local":16},"ty":{"Deduplicated":287}}},"expected":false,"check_kind":{"OverflowNeg":{"Copy":{"kind":{"Local":15},"ty":{"Deduplicated":283}}}}},"target":7,"on_unwind":6}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":82,"col":0},"end":{"line":89,"col":1}},"generated_from_span":null},"kind":"UnwindResume","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":87,"col":27},"end":{"line":87,"col":29}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":14},"ty":{"Deduplicated":283}},{"UnaryOp":[{"Neg":"Wrap"},{"Move":{"kind":{"Local":15},"ty":{"Deduplicated":283}}}]}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":87,"col":28},"end":{"line":87,"col":29}},"generated_from_span":null},"kind":{"StorageDead":15},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":87,"col":16},"end":{"line":87,"col":30}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":13},"ty":{"Deduplicated":1153}},{"Aggregate":[{"Adt":[{"id":{"Adt":2},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}},1,null]},[{"Move":{"kind":{"Local":14},"ty":{"Deduplicated":283}}}]]}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":87,"col":29},"end":{"line":87,"col":30}},"generated_from_span":null},"kind":{"StorageDead":14},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":87,"col":13},"end":{"line":87,"col":31}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":6554}},{"Aggregate":[{"Adt":[{"id":{"Adt":10},"generics":{"regions":[],"types":[{"Deduplicated":1153},{"HashConsedValue":[7600,{"Ref":[{"Body":30},{"Deduplicated":273},"Shared"]}]}],"const_generics":[],"trait_refs":[{"Deduplicated":1155},{"HashConsedValue":[7604,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[7602,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"HashConsedValue":[7601,{"Ref":[{"Body":34},{"Deduplicated":273},"Shared"]}]}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[7603,{"Ref":[{"Body":32},{"Deduplicated":273},"Shared"]}]}],"const_generics":[],"trait_refs":[]}}}}]}]}},0,null]},[{"Move":{"kind":{"Local":13},"ty":{"Deduplicated":1153}}}]]}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":87,"col":30},"end":{"line":87,"col":31}},"generated_from_span":null},"kind":{"StorageDead":13},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":87,"col":30},"end":{"line":87,"col":31}},"generated_from_span":null},"kind":{"StorageDead":12},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":89,"col":1},"end":{"line":89,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}}],"comments":[]}}},{"def_id":6,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["desugar_mix",0]}],"span":{"data":{"file_id":0,"beg":{"line":92,"col":0},"end":{"line":103,"col":1}},"generated_from_span":null},"source_text":"pub fn desugar_mix(input: &[i64]) -> PyResult {\n let mut acc: i64 = 0;\n for &raw in input.iter() {\n let tok = parse_one(raw)?;\n match tok {\n Token::Add(v) => acc += v,\n Token::Sub(v) => acc -= v,\n Token::Halt => break,\n }\n }\n Ok(acc)\n}","attr_info":{"attributes":[],"inline":"Never","rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":290}],"output":{"HashConsedValue":[7605,{"Adt":{"id":{"Adt":10},"generics":{"regions":[],"types":[{"Deduplicated":283},{"Deduplicated":274}],"const_generics":[],"trait_refs":[{"Deduplicated":408},{"Deduplicated":281}]}}}]}},"src":"TopLevel","is_global_initializer":null,"body":{"Unstructured":{"span":{"data":{"file_id":0,"beg":{"line":92,"col":0},"end":{"line":103,"col":1}},"generated_from_span":null},"bound_body_regions":147,"locals":{"arg_count":1,"locals":[{"index":0,"name":null,"span":{"data":{"file_id":0,"beg":{"line":92,"col":37},"end":{"line":92,"col":50}},"generated_from_span":null},"ty":{"HashConsedValue":[6608,{"Adt":{"id":{"Adt":10},"generics":{"regions":[],"types":[{"Deduplicated":283},{"Deduplicated":1170}],"const_generics":[],"trait_refs":[{"Deduplicated":408},{"Deduplicated":6553}]}}}]}},{"index":1,"name":"input","span":{"data":{"file_id":0,"beg":{"line":92,"col":19},"end":{"line":92,"col":24}},"generated_from_span":null},"ty":{"HashConsedValue":[1213,{"Ref":[{"Body":10},{"Deduplicated":289},"Shared"]}]}},{"index":2,"name":"acc","span":{"data":{"file_id":0,"beg":{"line":93,"col":8},"end":{"line":93,"col":15}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":3,"name":null,"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":28}},"generated_from_span":null},"ty":{"HashConsedValue":[1215,{"Adt":{"id":{"Adt":11},"generics":{"regions":[{"Body":12}],"types":[{"Deduplicated":283}],"const_generics":[],"trait_refs":[{"Deduplicated":408}]}}}]}},{"index":4,"name":null,"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":28}},"generated_from_span":null},"ty":{"HashConsedValue":[1216,{"Adt":{"id":{"Adt":11},"generics":{"regions":[{"Body":13}],"types":[{"Deduplicated":283}],"const_generics":[],"trait_refs":[{"Deduplicated":408}]}}}]}},{"index":5,"name":null,"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":21}},"generated_from_span":null},"ty":{"HashConsedValue":[1217,{"Ref":[{"Body":14},{"Deduplicated":289},"Shared"]}]}},{"index":6,"name":"iter","span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":28}},"generated_from_span":null},"ty":{"HashConsedValue":[1218,{"Adt":{"id":{"Adt":11},"generics":{"regions":[{"Body":15}],"types":[{"Deduplicated":283}],"const_generics":[],"trait_refs":[{"Deduplicated":408}]}}}]}},{"index":7,"name":null,"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":28}},"generated_from_span":null},"ty":{"HashConsedValue":[6611,{"Adt":{"id":{"Adt":12},"generics":{"regions":[],"types":[{"HashConsedValue":[923,{"Ref":[{"Body":22},{"Deduplicated":283},"Shared"]}]}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6610,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6609,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":923}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":923}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},{"index":8,"name":null,"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":28}},"generated_from_span":null},"ty":{"HashConsedValue":[1227,{"Ref":[{"Body":27},{"HashConsedValue":[1226,{"Adt":{"id":{"Adt":11},"generics":{"regions":[{"Body":28}],"types":[{"Deduplicated":283}],"const_generics":[],"trait_refs":[{"Deduplicated":408}]}}}]},"Mut"]}]}},{"index":9,"name":null,"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":28}},"generated_from_span":null},"ty":{"HashConsedValue":[1229,{"Ref":[{"Body":29},{"HashConsedValue":[1228,{"Adt":{"id":{"Adt":11},"generics":{"regions":[{"Body":30}],"types":[{"Deduplicated":283}],"const_generics":[],"trait_refs":[{"Deduplicated":408}]}}}]},"Mut"]}]}},{"index":10,"name":null,"span":{"data":{"file_id":0,"beg":{"line":94,"col":4},"end":{"line":101,"col":5}},"generated_from_span":null},"ty":{"Deduplicated":463}},{"index":11,"name":"raw","span":{"data":{"file_id":0,"beg":{"line":94,"col":9},"end":{"line":94,"col":12}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":12,"name":"tok","span":{"data":{"file_id":0,"beg":{"line":95,"col":12},"end":{"line":95,"col":15}},"generated_from_span":null},"ty":{"Deduplicated":1153}},{"index":13,"name":null,"span":{"data":{"file_id":0,"beg":{"line":95,"col":18},"end":{"line":95,"col":33}},"generated_from_span":null},"ty":{"HashConsedValue":[6617,{"Adt":{"id":{"Adt":14},"generics":{"regions":[],"types":[{"HashConsedValue":[6614,{"Adt":{"id":{"Adt":10},"generics":{"regions":[],"types":[{"HashConsedValue":[1335,{"Adt":{"id":{"Adt":15},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}}]},{"HashConsedValue":[1381,{"Ref":[{"Body":57},{"Deduplicated":273},"Shared"]}]}],"const_generics":[],"trait_refs":[{"HashConsedValue":[1337,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[1336,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":1335}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":1335}],"const_generics":[],"trait_refs":[]}}}}]},{"HashConsedValue":[6613,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6612,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":1381}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":1381}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]},{"Deduplicated":1153}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6616,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6615,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":6614}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":6614}],"const_generics":[],"trait_refs":[]}}}}]},{"Deduplicated":1155}]}}}]}},{"index":14,"name":null,"span":{"data":{"file_id":0,"beg":{"line":95,"col":18},"end":{"line":95,"col":32}},"generated_from_span":null},"ty":{"HashConsedValue":[6620,{"Adt":{"id":{"Adt":10},"generics":{"regions":[],"types":[{"Deduplicated":1153},{"HashConsedValue":[1410,{"Ref":[{"Body":71},{"Deduplicated":273},"Shared"]}]}],"const_generics":[],"trait_refs":[{"Deduplicated":1155},{"HashConsedValue":[6619,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6618,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":1410}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":1410}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},{"index":15,"name":null,"span":{"data":{"file_id":0,"beg":{"line":95,"col":28},"end":{"line":95,"col":31}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":16,"name":null,"span":{"data":{"file_id":0,"beg":{"line":95,"col":32},"end":{"line":95,"col":33}},"generated_from_span":null},"ty":{"Deduplicated":463}},{"index":17,"name":"residual","span":{"data":{"file_id":0,"beg":{"line":95,"col":32},"end":{"line":95,"col":33}},"generated_from_span":null},"ty":{"HashConsedValue":[6623,{"Adt":{"id":{"Adt":10},"generics":{"regions":[],"types":[{"Deduplicated":1335},{"HashConsedValue":[1416,{"Ref":[{"Body":74},{"Deduplicated":273},"Shared"]}]}],"const_generics":[],"trait_refs":[{"Deduplicated":1337},{"HashConsedValue":[6622,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6621,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":1416}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":1416}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},{"index":18,"name":null,"span":{"data":{"file_id":0,"beg":{"line":95,"col":32},"end":{"line":95,"col":33}},"generated_from_span":null},"ty":{"HashConsedValue":[6626,{"Adt":{"id":{"Adt":10},"generics":{"regions":[],"types":[{"Deduplicated":1335},{"HashConsedValue":[1422,{"Ref":[{"Body":77},{"Deduplicated":273},"Shared"]}]}],"const_generics":[],"trait_refs":[{"Deduplicated":1337},{"HashConsedValue":[6625,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6624,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":1422}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":1422}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},{"index":19,"name":"val","span":{"data":{"file_id":0,"beg":{"line":95,"col":18},"end":{"line":95,"col":33}},"generated_from_span":null},"ty":{"Deduplicated":1153}},{"index":20,"name":null,"span":{"data":{"file_id":0,"beg":{"line":97,"col":12},"end":{"line":97,"col":25}},"generated_from_span":null},"ty":{"Deduplicated":463}},{"index":21,"name":"v","span":{"data":{"file_id":0,"beg":{"line":97,"col":23},"end":{"line":97,"col":24}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":22,"name":null,"span":{"data":{"file_id":0,"beg":{"line":97,"col":36},"end":{"line":97,"col":37}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":23,"name":null,"span":{"data":{"file_id":0,"beg":{"line":97,"col":29},"end":{"line":97,"col":37}},"generated_from_span":null},"ty":{"Deduplicated":288}},{"index":24,"name":"v","span":{"data":{"file_id":0,"beg":{"line":98,"col":23},"end":{"line":98,"col":24}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":25,"name":null,"span":{"data":{"file_id":0,"beg":{"line":98,"col":36},"end":{"line":98,"col":37}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":26,"name":null,"span":{"data":{"file_id":0,"beg":{"line":98,"col":29},"end":{"line":98,"col":37}},"generated_from_span":null},"ty":{"Deduplicated":288}},{"index":27,"name":null,"span":{"data":{"file_id":0,"beg":{"line":102,"col":7},"end":{"line":102,"col":10}},"generated_from_span":null},"ty":{"Deduplicated":283}}]},"body":[{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":93,"col":8},"end":{"line":93,"col":15}},"generated_from_span":null},"kind":{"StorageLive":10},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":93,"col":8},"end":{"line":93,"col":15}},"generated_from_span":null},"kind":{"StorageLive":16},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":93,"col":8},"end":{"line":93,"col":15}},"generated_from_span":null},"kind":{"StorageLive":20},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":93,"col":8},"end":{"line":93,"col":15}},"generated_from_span":null},"kind":{"StorageLive":23},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":93,"col":8},"end":{"line":93,"col":15}},"generated_from_span":null},"kind":{"StorageLive":26},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":93,"col":8},"end":{"line":93,"col":15}},"generated_from_span":null},"kind":{"StorageLive":2},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":93,"col":23},"end":{"line":93,"col":24}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":2},"ty":{"Deduplicated":283}},{"Use":{"Const":{"kind":{"Literal":{"Scalar":{"Signed":["I64","0"]}}},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":28}},"generated_from_span":null},"kind":{"StorageLive":3},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":28}},"generated_from_span":null},"kind":{"StorageLive":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":21}},"generated_from_span":null},"kind":{"StorageLive":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":21}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":5},"ty":{"Deduplicated":1217}},{"Ref":{"place":{"kind":{"Projection":[{"kind":{"Local":1},"ty":{"Deduplicated":1213}},"Deref"]},"ty":{"Deduplicated":289}},"kind":"Shared","ptr_metadata":{"Copy":{"kind":{"Projection":[{"kind":{"Local":1},"ty":{"Deduplicated":1213}},"PtrMetadata"]},"ty":{"Deduplicated":827}}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":28}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":{"Regular":24}},"generics":{"regions":[{"Body":81}],"types":[{"Deduplicated":283}],"const_generics":[],"trait_refs":[{"Deduplicated":408}]}}},"args":[{"Move":{"kind":{"Local":5},"ty":{"Deduplicated":1217}}}],"dest":{"kind":{"Local":4},"ty":{"Deduplicated":1216}}},"target":2,"on_unwind":1}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":92,"col":0},"end":{"line":103,"col":1}},"generated_from_span":null},"kind":"UnwindResume","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":94,"col":27},"end":{"line":94,"col":28}},"generated_from_span":null},"kind":{"StorageDead":5},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":28}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":{"Regular":25}},"generics":{"regions":[],"types":[{"HashConsedValue":[6627,{"Adt":{"id":{"Adt":11},"generics":{"regions":[{"Body":82}],"types":[{"Deduplicated":283}],"const_generics":[],"trait_refs":[{"Deduplicated":408}]}}}]}],"const_generics":[],"trait_refs":[{"HashConsedValue":[7613,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[7612,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":6627}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":6627}],"const_generics":[],"trait_refs":[]}}}}]},{"HashConsedValue":[7614,{"kind":{"TraitImpl":{"id":1,"generics":{"regions":[{"Body":82}],"types":[{"Deduplicated":283}],"const_generics":[],"trait_refs":[{"Deduplicated":408}]}}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":6627}],"const_generics":[],"trait_refs":[]}}}}]}]}}},"args":[{"Move":{"kind":{"Local":4},"ty":{"Deduplicated":1216}}}],"dest":{"kind":{"Local":3},"ty":{"Deduplicated":1215}}},"target":3,"on_unwind":1}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":94,"col":27},"end":{"line":94,"col":28}},"generated_from_span":null},"kind":{"StorageDead":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":28}},"generated_from_span":null},"kind":{"StorageLive":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":28}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":6},"ty":{"Deduplicated":1218}},{"Use":{"Move":{"kind":{"Local":3},"ty":{"Deduplicated":1215}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":94,"col":4},"end":{"line":101,"col":5}},"generated_from_span":null},"kind":{"Goto":{"target":4}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":28}},"generated_from_span":null},"kind":{"StorageLive":7},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":28}},"generated_from_span":null},"kind":{"StorageLive":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":28}},"generated_from_span":null},"kind":{"StorageLive":9},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":28}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":9},"ty":{"Deduplicated":1229}},{"Ref":{"place":{"kind":{"Local":6},"ty":{"Deduplicated":1218}},"kind":"Mut","ptr_metadata":{"Const":{"kind":{"Adt":[null,[]]},"ty":{"Deduplicated":297}}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":28}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":8},"ty":{"Deduplicated":1227}},{"Ref":{"place":{"kind":{"Projection":[{"kind":{"Local":9},"ty":{"Deduplicated":1229}},"Deref"]},"ty":{"HashConsedValue":[7615,{"Adt":{"id":{"Adt":11},"generics":{"regions":[{"Body":90}],"types":[{"Deduplicated":283}],"const_generics":[],"trait_refs":[{"Deduplicated":408}]}}}]}},"kind":"TwoPhaseMut","ptr_metadata":{"Const":{"kind":{"Adt":[null,[]]},"ty":{"Deduplicated":297}}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":28}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":{"Regular":20}},"generics":{"regions":[{"Body":91},{"Body":93}],"types":[{"Deduplicated":283}],"const_generics":[],"trait_refs":[{"Deduplicated":408}]}}},"args":[{"Move":{"kind":{"Local":8},"ty":{"Deduplicated":1227}}}],"dest":{"kind":{"Local":7},"ty":{"Deduplicated":6611}}},"target":5,"on_unwind":1}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":94,"col":27},"end":{"line":94,"col":28}},"generated_from_span":null},"kind":{"StorageDead":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":28}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":10},"ty":{"Deduplicated":463}},{"Discriminant":{"kind":{"Local":7},"ty":{"Deduplicated":6611}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":28}},"generated_from_span":null},"kind":{"Switch":{"discr":{"Move":{"kind":{"Local":10},"ty":{"Deduplicated":463}}},"targets":{"SwitchInt":[{"Int":"Isize"},[[{"Scalar":{"Signed":["Isize","0"]}},9],[{"Scalar":{"Signed":["Isize","1"]}},6]],7]}}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":94,"col":9},"end":{"line":94,"col":12}},"generated_from_span":null},"kind":{"StorageLive":11},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":94,"col":9},"end":{"line":94,"col":12}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":11},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Projection":[{"kind":{"Local":7},"ty":{"Deduplicated":6611}},{"Field":[{"Adt":[12,1]},0]}]},"ty":{"HashConsedValue":[7616,{"Ref":[{"Body":97},{"Deduplicated":283},"Shared"]}]}},"Deref"]},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":95,"col":12},"end":{"line":95,"col":15}},"generated_from_span":null},"kind":{"StorageLive":12},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":95,"col":18},"end":{"line":95,"col":33}},"generated_from_span":null},"kind":{"StorageLive":13},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":95,"col":18},"end":{"line":95,"col":32}},"generated_from_span":null},"kind":{"StorageLive":14},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":95,"col":28},"end":{"line":95,"col":31}},"generated_from_span":null},"kind":{"StorageLive":15},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":95,"col":28},"end":{"line":95,"col":31}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":15},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Local":11},"ty":{"Deduplicated":283}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":95,"col":18},"end":{"line":95,"col":32}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":{"Regular":5}},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}},"args":[{"Move":{"kind":{"Local":15},"ty":{"Deduplicated":283}}}],"dest":{"kind":{"Local":14},"ty":{"Deduplicated":6620}}},"target":8,"on_unwind":1}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":94,"col":16},"end":{"line":94,"col":28}},"generated_from_span":null},"kind":{"Abort":"UndefinedBehavior"},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":95,"col":31},"end":{"line":95,"col":32}},"generated_from_span":null},"kind":{"StorageDead":15},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":95,"col":18},"end":{"line":95,"col":33}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":{"Regular":26}},"generics":{"regions":[],"types":[{"Deduplicated":1153},{"HashConsedValue":[6633,{"Ref":[{"Body":98},{"Deduplicated":273},"Shared"]}]}],"const_generics":[],"trait_refs":[{"Deduplicated":1155},{"HashConsedValue":[7618,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[7617,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":6633}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":6633}],"const_generics":[],"trait_refs":[]}}}}]}]}}},"args":[{"Move":{"kind":{"Local":14},"ty":{"Deduplicated":6620}}}],"dest":{"kind":{"Local":13},"ty":{"Deduplicated":6617}}},"target":10,"on_unwind":1}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":101,"col":4},"end":{"line":101,"col":5}},"generated_from_span":null},"kind":{"StorageDead":9},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":101,"col":4},"end":{"line":101,"col":5}},"generated_from_span":null},"kind":{"StorageDead":7},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":101,"col":4},"end":{"line":101,"col":5}},"generated_from_span":null},"kind":{"StorageDead":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":101,"col":4},"end":{"line":101,"col":5}},"generated_from_span":null},"kind":{"StorageDead":3},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":102,"col":7},"end":{"line":102,"col":10}},"generated_from_span":null},"kind":{"StorageLive":27},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":102,"col":7},"end":{"line":102,"col":10}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":27},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Local":2},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":102,"col":4},"end":{"line":102,"col":11}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":6608}},{"Aggregate":[{"Adt":[{"id":{"Adt":10},"generics":{"regions":[],"types":[{"Deduplicated":283},{"HashConsedValue":[7619,{"Ref":[{"Body":103},{"Deduplicated":273},"Shared"]}]}],"const_generics":[],"trait_refs":[{"Deduplicated":408},{"HashConsedValue":[7623,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[7621,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"HashConsedValue":[7620,{"Ref":[{"Body":107},{"Deduplicated":273},"Shared"]}]}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[7622,{"Ref":[{"Body":105},{"Deduplicated":273},"Shared"]}]}],"const_generics":[],"trait_refs":[]}}}}]}]}},0,null]},[{"Move":{"kind":{"Local":27},"ty":{"Deduplicated":283}}}]]}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":102,"col":10},"end":{"line":102,"col":11}},"generated_from_span":null},"kind":{"StorageDead":27},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":103,"col":0},"end":{"line":103,"col":1}},"generated_from_span":null},"kind":{"StorageDead":2},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":103,"col":1},"end":{"line":103,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":95,"col":32},"end":{"line":95,"col":33}},"generated_from_span":null},"kind":{"StorageDead":14},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":95,"col":18},"end":{"line":95,"col":33}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":16},"ty":{"Deduplicated":463}},{"Discriminant":{"kind":{"Local":13},"ty":{"Deduplicated":6617}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":95,"col":18},"end":{"line":95,"col":33}},"generated_from_span":null},"kind":{"Switch":{"discr":{"Move":{"kind":{"Local":16},"ty":{"Deduplicated":463}}},"targets":{"SwitchInt":[{"Int":"Isize"},[[{"Scalar":{"Signed":["Isize","0"]}},11],[{"Scalar":{"Signed":["Isize","1"]}},12]],13]}}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":95,"col":18},"end":{"line":95,"col":33}},"generated_from_span":null},"kind":{"StorageLive":19},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":95,"col":18},"end":{"line":95,"col":33}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":19},"ty":{"Deduplicated":1153}},{"Use":{"Move":{"kind":{"Projection":[{"kind":{"Local":13},"ty":{"Deduplicated":6617}},{"Field":[{"Adt":[14,0]},0]}]},"ty":{"Deduplicated":1153}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":95,"col":18},"end":{"line":95,"col":33}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":12},"ty":{"Deduplicated":1153}},{"Use":{"Move":{"kind":{"Local":19},"ty":{"Deduplicated":1153}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":95,"col":32},"end":{"line":95,"col":33}},"generated_from_span":null},"kind":{"StorageDead":19},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":95,"col":33},"end":{"line":95,"col":34}},"generated_from_span":null},"kind":{"StorageDead":13},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":96,"col":14},"end":{"line":96,"col":17}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":20},"ty":{"Deduplicated":463}},{"Discriminant":{"kind":{"Local":12},"ty":{"Deduplicated":1153}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":96,"col":8},"end":{"line":96,"col":17}},"generated_from_span":null},"kind":{"Switch":{"discr":{"Move":{"kind":{"Local":20},"ty":{"Deduplicated":463}}},"targets":{"SwitchInt":[{"Int":"Isize"},[[{"Scalar":{"Signed":["Isize","0"]}},14],[{"Scalar":{"Signed":["Isize","1"]}},15],[{"Scalar":{"Signed":["Isize","2"]}},16]],17]}}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":95,"col":32},"end":{"line":95,"col":33}},"generated_from_span":null},"kind":{"StorageLive":17},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":95,"col":32},"end":{"line":95,"col":33}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":17},"ty":{"Deduplicated":6623}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Local":13},"ty":{"Deduplicated":6617}},{"Field":[{"Adt":[14,1]},0]}]},"ty":{"HashConsedValue":[7629,{"Adt":{"id":{"Adt":10},"generics":{"regions":[],"types":[{"Deduplicated":1335},{"HashConsedValue":[7624,{"Ref":[{"Body":126},{"Deduplicated":273},"Shared"]}]}],"const_generics":[],"trait_refs":[{"Deduplicated":1337},{"HashConsedValue":[7628,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[7626,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"HashConsedValue":[7625,{"Ref":[{"Body":127},{"Deduplicated":273},"Shared"]}]}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[7627,{"Ref":[{"Body":128},{"Deduplicated":273},"Shared"]}]}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":95,"col":32},"end":{"line":95,"col":33}},"generated_from_span":null},"kind":{"StorageLive":18},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":95,"col":32},"end":{"line":95,"col":33}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":18},"ty":{"Deduplicated":6626}},{"Use":{"Copy":{"kind":{"Local":17},"ty":{"Deduplicated":6623}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":95,"col":18},"end":{"line":95,"col":33}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":{"Regular":27}},"generics":{"regions":[],"types":[{"Deduplicated":283},{"HashConsedValue":[6647,{"Ref":[{"Body":129},{"Deduplicated":273},"Shared"]}]},{"Deduplicated":6647}],"const_generics":[],"trait_refs":[{"Deduplicated":408},{"HashConsedValue":[6649,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6648,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":6647}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":6647}],"const_generics":[],"trait_refs":[]}}}}]},{"Deduplicated":6649},{"HashConsedValue":[7630,{"kind":{"TraitImpl":{"id":8,"generics":{"regions":[],"types":[{"Deduplicated":6647}],"const_generics":[],"trait_refs":[{"Deduplicated":6649}]}}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":4,"generics":{"regions":[],"types":[{"Deduplicated":6647},{"Deduplicated":6647}],"const_generics":[],"trait_refs":[]}}}}]}]}}},"args":[{"Move":{"kind":{"Local":18},"ty":{"Deduplicated":6626}}}],"dest":{"kind":{"Local":0},"ty":{"Deduplicated":6608}}},"target":18,"on_unwind":1}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":95,"col":18},"end":{"line":95,"col":33}},"generated_from_span":null},"kind":{"Abort":"UndefinedBehavior"},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":97,"col":23},"end":{"line":97,"col":24}},"generated_from_span":null},"kind":{"StorageLive":21},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":97,"col":23},"end":{"line":97,"col":24}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":21},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Local":12},"ty":{"Deduplicated":1153}},{"Field":[{"Adt":[2,0]},0]}]},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":97,"col":36},"end":{"line":97,"col":37}},"generated_from_span":null},"kind":{"StorageLive":22},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":97,"col":36},"end":{"line":97,"col":37}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":22},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Local":21},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":97,"col":29},"end":{"line":97,"col":37}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":23},"ty":{"Deduplicated":288}},{"BinaryOp":["AddChecked",{"Copy":{"kind":{"Local":2},"ty":{"Deduplicated":283}}},{"Copy":{"kind":{"Local":22},"ty":{"Deduplicated":283}}}]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":97,"col":29},"end":{"line":97,"col":37}},"generated_from_span":null},"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":23},"ty":{"Deduplicated":288}},{"Field":[{"Tuple":2},1]}]},"ty":{"Deduplicated":287}}},"expected":false,"check_kind":{"Overflow":[{"Add":"Wrap"},{"Copy":{"kind":{"Local":2},"ty":{"Deduplicated":283}}},{"Move":{"kind":{"Local":27},"ty":{"Deduplicated":283}}}]}},"target":19,"on_unwind":1}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":98,"col":23},"end":{"line":98,"col":24}},"generated_from_span":null},"kind":{"StorageLive":24},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":98,"col":23},"end":{"line":98,"col":24}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":24},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Local":12},"ty":{"Deduplicated":1153}},{"Field":[{"Adt":[2,1]},0]}]},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":98,"col":36},"end":{"line":98,"col":37}},"generated_from_span":null},"kind":{"StorageLive":25},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":98,"col":36},"end":{"line":98,"col":37}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":25},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Local":24},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":98,"col":29},"end":{"line":98,"col":37}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":26},"ty":{"Deduplicated":288}},{"BinaryOp":["SubChecked",{"Copy":{"kind":{"Local":2},"ty":{"Deduplicated":283}}},{"Copy":{"kind":{"Local":25},"ty":{"Deduplicated":283}}}]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":98,"col":29},"end":{"line":98,"col":37}},"generated_from_span":null},"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":26},"ty":{"Deduplicated":288}},{"Field":[{"Tuple":2},1]}]},"ty":{"Deduplicated":287}}},"expected":false,"check_kind":{"Overflow":[{"Sub":"Wrap"},{"Copy":{"kind":{"Local":2},"ty":{"Deduplicated":283}}},{"Move":{"kind":{"Local":30},"ty":{"Deduplicated":283}}}]}},"target":20,"on_unwind":1}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":101,"col":4},"end":{"line":101,"col":5}},"generated_from_span":null},"kind":{"StorageDead":12},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":101,"col":4},"end":{"line":101,"col":5}},"generated_from_span":null},"kind":{"StorageDead":11},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"kind":{"Goto":{"target":9}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":96,"col":14},"end":{"line":96,"col":17}},"generated_from_span":null},"kind":{"Abort":"UndefinedBehavior"},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":95,"col":32},"end":{"line":95,"col":33}},"generated_from_span":null},"kind":{"StorageDead":18},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":95,"col":32},"end":{"line":95,"col":33}},"generated_from_span":null},"kind":{"StorageDead":17},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":95,"col":33},"end":{"line":95,"col":34}},"generated_from_span":null},"kind":{"StorageDead":13},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":101,"col":4},"end":{"line":101,"col":5}},"generated_from_span":null},"kind":{"StorageDead":12},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":101,"col":4},"end":{"line":101,"col":5}},"generated_from_span":null},"kind":{"StorageDead":11},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":101,"col":4},"end":{"line":101,"col":5}},"generated_from_span":null},"kind":{"StorageDead":9},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":101,"col":4},"end":{"line":101,"col":5}},"generated_from_span":null},"kind":{"StorageDead":7},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":101,"col":4},"end":{"line":101,"col":5}},"generated_from_span":null},"kind":{"StorageDead":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":101,"col":4},"end":{"line":101,"col":5}},"generated_from_span":null},"kind":{"StorageDead":3},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":103,"col":0},"end":{"line":103,"col":1}},"generated_from_span":null},"kind":{"StorageDead":2},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":103,"col":1},"end":{"line":103,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":97,"col":29},"end":{"line":97,"col":37}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":2},"ty":{"Deduplicated":283}},{"Use":{"Move":{"kind":{"Projection":[{"kind":{"Local":23},"ty":{"Deduplicated":288}},{"Field":[{"Tuple":2},0]}]},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":97,"col":36},"end":{"line":97,"col":37}},"generated_from_span":null},"kind":{"StorageDead":22},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":97,"col":36},"end":{"line":97,"col":37}},"generated_from_span":null},"kind":{"StorageDead":21},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":97,"col":36},"end":{"line":97,"col":37}},"generated_from_span":null},"kind":{"Goto":{"target":21}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":98,"col":29},"end":{"line":98,"col":37}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":2},"ty":{"Deduplicated":283}},{"Use":{"Move":{"kind":{"Projection":[{"kind":{"Local":26},"ty":{"Deduplicated":288}},{"Field":[{"Tuple":2},0]}]},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":98,"col":36},"end":{"line":98,"col":37}},"generated_from_span":null},"kind":{"StorageDead":25},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":98,"col":36},"end":{"line":98,"col":37}},"generated_from_span":null},"kind":{"StorageDead":24},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":98,"col":36},"end":{"line":98,"col":37}},"generated_from_span":null},"kind":{"Goto":{"target":21}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":101,"col":4},"end":{"line":101,"col":5}},"generated_from_span":null},"kind":{"StorageDead":12},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":101,"col":4},"end":{"line":101,"col":5}},"generated_from_span":null},"kind":{"StorageDead":11},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":101,"col":4},"end":{"line":101,"col":5}},"generated_from_span":null},"kind":{"StorageDead":9},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":101,"col":4},"end":{"line":101,"col":5}},"generated_from_span":null},"kind":{"StorageDead":7},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":94,"col":4},"end":{"line":101,"col":5}},"generated_from_span":null},"kind":{"Goto":{"target":4}},"comments_before":[]}}],"comments":[]}}},{"def_id":7,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["tuple_roundtrip",0]}],"span":{"data":{"file_id":0,"beg":{"line":113,"col":0},"end":{"line":116,"col":1}},"generated_from_span":null},"source_text":"pub fn tuple_roundtrip(a: i64, b: i64) -> i64 {\n let pair = (a + b, a - b);\n pair.0 * pair.1\n}","attr_info":{"attributes":[],"inline":"Never","rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":283},{"Deduplicated":283}],"output":{"Deduplicated":283}},"src":"TopLevel","is_global_initializer":null,"body":{"Unstructured":{"span":{"data":{"file_id":0,"beg":{"line":113,"col":0},"end":{"line":116,"col":1}},"generated_from_span":null},"bound_body_regions":0,"locals":{"arg_count":2,"locals":[{"index":0,"name":null,"span":{"data":{"file_id":0,"beg":{"line":113,"col":42},"end":{"line":113,"col":45}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":1,"name":"a","span":{"data":{"file_id":0,"beg":{"line":113,"col":23},"end":{"line":113,"col":24}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":2,"name":"b","span":{"data":{"file_id":0,"beg":{"line":113,"col":31},"end":{"line":113,"col":32}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":3,"name":"pair","span":{"data":{"file_id":0,"beg":{"line":114,"col":8},"end":{"line":114,"col":12}},"generated_from_span":null},"ty":{"HashConsedValue":[1913,{"Adt":{"id":"Tuple","generics":{"regions":[],"types":[{"Deduplicated":283},{"Deduplicated":283}],"const_generics":[],"trait_refs":[]}}}]}},{"index":4,"name":null,"span":{"data":{"file_id":0,"beg":{"line":114,"col":16},"end":{"line":114,"col":21}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":5,"name":null,"span":{"data":{"file_id":0,"beg":{"line":114,"col":16},"end":{"line":114,"col":17}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":6,"name":null,"span":{"data":{"file_id":0,"beg":{"line":114,"col":20},"end":{"line":114,"col":21}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":7,"name":null,"span":{"data":{"file_id":0,"beg":{"line":114,"col":16},"end":{"line":114,"col":21}},"generated_from_span":null},"ty":{"Deduplicated":288}},{"index":8,"name":null,"span":{"data":{"file_id":0,"beg":{"line":114,"col":23},"end":{"line":114,"col":28}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":9,"name":null,"span":{"data":{"file_id":0,"beg":{"line":114,"col":23},"end":{"line":114,"col":24}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":10,"name":null,"span":{"data":{"file_id":0,"beg":{"line":114,"col":27},"end":{"line":114,"col":28}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":11,"name":null,"span":{"data":{"file_id":0,"beg":{"line":114,"col":23},"end":{"line":114,"col":28}},"generated_from_span":null},"ty":{"Deduplicated":288}},{"index":12,"name":null,"span":{"data":{"file_id":0,"beg":{"line":115,"col":4},"end":{"line":115,"col":10}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":13,"name":null,"span":{"data":{"file_id":0,"beg":{"line":115,"col":13},"end":{"line":115,"col":19}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":14,"name":null,"span":{"data":{"file_id":0,"beg":{"line":115,"col":4},"end":{"line":115,"col":19}},"generated_from_span":null},"ty":{"Deduplicated":288}}]},"body":[{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":114,"col":8},"end":{"line":114,"col":12}},"generated_from_span":null},"kind":{"StorageLive":7},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":8},"end":{"line":114,"col":12}},"generated_from_span":null},"kind":{"StorageLive":11},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":8},"end":{"line":114,"col":12}},"generated_from_span":null},"kind":{"StorageLive":14},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":8},"end":{"line":114,"col":12}},"generated_from_span":null},"kind":{"StorageLive":3},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":16},"end":{"line":114,"col":21}},"generated_from_span":null},"kind":{"StorageLive":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":16},"end":{"line":114,"col":17}},"generated_from_span":null},"kind":{"StorageLive":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":16},"end":{"line":114,"col":17}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":5},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Local":1},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":20},"end":{"line":114,"col":21}},"generated_from_span":null},"kind":{"StorageLive":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":20},"end":{"line":114,"col":21}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":6},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Local":2},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":16},"end":{"line":114,"col":21}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":7},"ty":{"Deduplicated":288}},{"BinaryOp":["AddChecked",{"Copy":{"kind":{"Local":5},"ty":{"Deduplicated":283}}},{"Copy":{"kind":{"Local":6},"ty":{"Deduplicated":283}}}]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":114,"col":16},"end":{"line":114,"col":21}},"generated_from_span":null},"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":7},"ty":{"Deduplicated":288}},{"Field":[{"Tuple":2},1]}]},"ty":{"Deduplicated":287}}},"expected":false,"check_kind":{"Overflow":[{"Add":"Wrap"},{"Move":{"kind":{"Local":5},"ty":{"Deduplicated":283}}},{"Move":{"kind":{"Local":6},"ty":{"Deduplicated":283}}}]}},"target":2,"on_unwind":1}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":113,"col":0},"end":{"line":116,"col":1}},"generated_from_span":null},"kind":"UnwindResume","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":114,"col":16},"end":{"line":114,"col":21}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":4},"ty":{"Deduplicated":283}},{"Use":{"Move":{"kind":{"Projection":[{"kind":{"Local":7},"ty":{"Deduplicated":288}},{"Field":[{"Tuple":2},0]}]},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":20},"end":{"line":114,"col":21}},"generated_from_span":null},"kind":{"StorageDead":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":20},"end":{"line":114,"col":21}},"generated_from_span":null},"kind":{"StorageDead":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":23},"end":{"line":114,"col":28}},"generated_from_span":null},"kind":{"StorageLive":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":23},"end":{"line":114,"col":24}},"generated_from_span":null},"kind":{"StorageLive":9},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":23},"end":{"line":114,"col":24}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":9},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Local":1},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":27},"end":{"line":114,"col":28}},"generated_from_span":null},"kind":{"StorageLive":10},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":27},"end":{"line":114,"col":28}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":10},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Local":2},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":23},"end":{"line":114,"col":28}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":11},"ty":{"Deduplicated":288}},{"BinaryOp":["SubChecked",{"Copy":{"kind":{"Local":9},"ty":{"Deduplicated":283}}},{"Copy":{"kind":{"Local":10},"ty":{"Deduplicated":283}}}]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":114,"col":23},"end":{"line":114,"col":28}},"generated_from_span":null},"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":11},"ty":{"Deduplicated":288}},{"Field":[{"Tuple":2},1]}]},"ty":{"Deduplicated":287}}},"expected":false,"check_kind":{"Overflow":[{"Sub":"Wrap"},{"Move":{"kind":{"Local":9},"ty":{"Deduplicated":283}}},{"Move":{"kind":{"Local":10},"ty":{"Deduplicated":283}}}]}},"target":3,"on_unwind":1}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":114,"col":23},"end":{"line":114,"col":28}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":8},"ty":{"Deduplicated":283}},{"Use":{"Move":{"kind":{"Projection":[{"kind":{"Local":11},"ty":{"Deduplicated":288}},{"Field":[{"Tuple":2},0]}]},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":27},"end":{"line":114,"col":28}},"generated_from_span":null},"kind":{"StorageDead":10},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":27},"end":{"line":114,"col":28}},"generated_from_span":null},"kind":{"StorageDead":9},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":15},"end":{"line":114,"col":29}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":3},"ty":{"Deduplicated":1913}},{"Aggregate":[{"Adt":[{"id":"Tuple","generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}},null,null]},[{"Move":{"kind":{"Local":4},"ty":{"Deduplicated":283}}},{"Move":{"kind":{"Local":8},"ty":{"Deduplicated":283}}}]]}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":28},"end":{"line":114,"col":29}},"generated_from_span":null},"kind":{"StorageDead":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":114,"col":28},"end":{"line":114,"col":29}},"generated_from_span":null},"kind":{"StorageDead":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":115,"col":4},"end":{"line":115,"col":10}},"generated_from_span":null},"kind":{"StorageLive":12},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":115,"col":4},"end":{"line":115,"col":10}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":12},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Local":3},"ty":{"Deduplicated":1913}},{"Field":[{"Tuple":2},0]}]},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":115,"col":13},"end":{"line":115,"col":19}},"generated_from_span":null},"kind":{"StorageLive":13},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":115,"col":13},"end":{"line":115,"col":19}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":13},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Local":3},"ty":{"Deduplicated":1913}},{"Field":[{"Tuple":2},1]}]},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":115,"col":4},"end":{"line":115,"col":19}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":14},"ty":{"Deduplicated":288}},{"BinaryOp":["MulChecked",{"Copy":{"kind":{"Local":12},"ty":{"Deduplicated":283}}},{"Copy":{"kind":{"Local":13},"ty":{"Deduplicated":283}}}]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":115,"col":4},"end":{"line":115,"col":19}},"generated_from_span":null},"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":14},"ty":{"Deduplicated":288}},{"Field":[{"Tuple":2},1]}]},"ty":{"Deduplicated":287}}},"expected":false,"check_kind":{"Overflow":[{"Mul":"Wrap"},{"Move":{"kind":{"Local":12},"ty":{"Deduplicated":283}}},{"Move":{"kind":{"Local":13},"ty":{"Deduplicated":283}}}]}},"target":4,"on_unwind":1}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":115,"col":4},"end":{"line":115,"col":19}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":283}},{"Use":{"Move":{"kind":{"Projection":[{"kind":{"Local":14},"ty":{"Deduplicated":288}},{"Field":[{"Tuple":2},0]}]},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":115,"col":18},"end":{"line":115,"col":19}},"generated_from_span":null},"kind":{"StorageDead":13},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":115,"col":18},"end":{"line":115,"col":19}},"generated_from_span":null},"kind":{"StorageDead":12},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":116,"col":0},"end":{"line":116,"col":1}},"generated_from_span":null},"kind":{"StorageDead":3},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":116,"col":1},"end":{"line":116,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}}],"comments":[]}}},{"def_id":8,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["bool_then_closure",0]}],"span":{"data":{"file_id":0,"beg":{"line":125,"col":0},"end":{"line":127,"col":1}},"generated_from_span":null},"source_text":"pub fn bool_then_closure(c: bool, x: i64) -> Option {\n c.then(|| x + 1)\n}","attr_info":{"attributes":[],"inline":"Never","rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":287},{"Deduplicated":283}],"output":{"HashConsedValue":[1914,{"Adt":{"id":{"Adt":12},"generics":{"regions":[],"types":[{"Deduplicated":283}],"const_generics":[],"trait_refs":[{"Deduplicated":408}]}}}]}},"src":"TopLevel","is_global_initializer":null,"body":{"Unstructured":{"span":{"data":{"file_id":0,"beg":{"line":125,"col":0},"end":{"line":127,"col":1}},"generated_from_span":null},"bound_body_regions":16,"locals":{"arg_count":2,"locals":[{"index":0,"name":null,"span":{"data":{"file_id":0,"beg":{"line":125,"col":45},"end":{"line":125,"col":56}},"generated_from_span":null},"ty":{"Deduplicated":1914}},{"index":1,"name":"c","span":{"data":{"file_id":0,"beg":{"line":125,"col":25},"end":{"line":125,"col":26}},"generated_from_span":null},"ty":{"Deduplicated":287}},{"index":2,"name":"x","span":{"data":{"file_id":0,"beg":{"line":125,"col":34},"end":{"line":125,"col":35}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":3,"name":null,"span":{"data":{"file_id":0,"beg":{"line":126,"col":4},"end":{"line":126,"col":5}},"generated_from_span":null},"ty":{"Deduplicated":287}},{"index":4,"name":null,"span":{"data":{"file_id":0,"beg":{"line":126,"col":11},"end":{"line":126,"col":19}},"generated_from_span":null},"ty":{"HashConsedValue":[1931,{"Adt":{"id":{"Adt":16},"generics":{"regions":[{"Body":1}],"types":[],"const_generics":[],"trait_refs":[]}}}]}},{"index":5,"name":null,"span":{"data":{"file_id":0,"beg":{"line":126,"col":11},"end":{"line":126,"col":19}},"generated_from_span":null},"ty":{"HashConsedValue":[695,{"Ref":[{"Body":3},{"Deduplicated":283},"Shared"]}]}}]},"body":[{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":126,"col":4},"end":{"line":126,"col":5}},"generated_from_span":null},"kind":{"StorageLive":3},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":126,"col":4},"end":{"line":126,"col":5}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":3},"ty":{"Deduplicated":287}},{"Use":{"Copy":{"kind":{"Local":1},"ty":{"Deduplicated":287}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":126,"col":11},"end":{"line":126,"col":19}},"generated_from_span":null},"kind":{"StorageLive":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":126,"col":11},"end":{"line":126,"col":19}},"generated_from_span":null},"kind":{"StorageLive":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":126,"col":11},"end":{"line":126,"col":19}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":5},"ty":{"Deduplicated":695}},{"Ref":{"place":{"kind":{"Local":2},"ty":{"Deduplicated":283}},"kind":"Shared","ptr_metadata":{"Const":{"kind":{"Adt":[null,[]]},"ty":{"Deduplicated":297}}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":126,"col":11},"end":{"line":126,"col":19}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":4},"ty":{"Deduplicated":1931}},{"Aggregate":[{"Adt":[{"id":{"Adt":16},"generics":{"regions":[{"Body":4}],"types":[],"const_generics":[],"trait_refs":[]}},null,null]},[{"Move":{"kind":{"Local":5},"ty":{"Deduplicated":695}}}]]}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":126,"col":12},"end":{"line":126,"col":13}},"generated_from_span":null},"kind":{"StorageDead":5},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":126,"col":4},"end":{"line":126,"col":20}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":{"Regular":28}},"generics":{"regions":[],"types":[{"Deduplicated":283},{"HashConsedValue":[6662,{"Adt":{"id":{"Adt":16},"generics":{"regions":[{"Body":5}],"types":[],"const_generics":[],"trait_refs":[]}}}]}],"const_generics":[],"trait_refs":[{"Deduplicated":408},{"HashConsedValue":[7636,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[7635,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":6662}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":6662}],"const_generics":[],"trait_refs":[]}}}}]},{"HashConsedValue":[7637,{"kind":{"TraitImpl":{"id":9,"generics":{"regions":[{"Body":5}],"types":[],"const_generics":[],"trait_refs":[]}}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":5,"generics":{"regions":[],"types":[{"Deduplicated":6662},{"Deduplicated":297}],"const_generics":[],"trait_refs":[]}}}}]},{"HashConsedValue":[7638,{"kind":{"TraitImpl":{"id":10,"generics":{"regions":[{"Body":5}],"types":[],"const_generics":[],"trait_refs":[]}}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":2,"generics":{"regions":[],"types":[{"Deduplicated":6662}],"const_generics":[],"trait_refs":[]}}}}]}]}}},"args":[{"Move":{"kind":{"Local":3},"ty":{"Deduplicated":287}}},{"Move":{"kind":{"Local":4},"ty":{"Deduplicated":1931}}}],"dest":{"kind":{"Local":0},"ty":{"Deduplicated":1914}}},"target":2,"on_unwind":1}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":125,"col":0},"end":{"line":127,"col":1}},"generated_from_span":null},"kind":"UnwindResume","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":126,"col":19},"end":{"line":126,"col":20}},"generated_from_span":null},"kind":{"StorageDead":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":126,"col":19},"end":{"line":126,"col":20}},"generated_from_span":null},"kind":{"StorageDead":3},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":127,"col":1},"end":{"line":127,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}}],"comments":[]}}},{"def_id":9,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["bool_then_some",0]}],"span":{"data":{"file_id":0,"beg":{"line":133,"col":0},"end":{"line":135,"col":1}},"generated_from_span":null},"source_text":"pub fn bool_then_some(c: bool, x: i64) -> Option {\n c.then_some(x + 1)\n}","attr_info":{"attributes":[],"inline":"Never","rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":287},{"Deduplicated":283}],"output":{"Deduplicated":1914}},"src":"TopLevel","is_global_initializer":null,"body":{"Unstructured":{"span":{"data":{"file_id":0,"beg":{"line":133,"col":0},"end":{"line":135,"col":1}},"generated_from_span":null},"bound_body_regions":0,"locals":{"arg_count":2,"locals":[{"index":0,"name":null,"span":{"data":{"file_id":0,"beg":{"line":133,"col":42},"end":{"line":133,"col":53}},"generated_from_span":null},"ty":{"Deduplicated":1914}},{"index":1,"name":"c","span":{"data":{"file_id":0,"beg":{"line":133,"col":22},"end":{"line":133,"col":23}},"generated_from_span":null},"ty":{"Deduplicated":287}},{"index":2,"name":"x","span":{"data":{"file_id":0,"beg":{"line":133,"col":31},"end":{"line":133,"col":32}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":3,"name":null,"span":{"data":{"file_id":0,"beg":{"line":134,"col":4},"end":{"line":134,"col":5}},"generated_from_span":null},"ty":{"Deduplicated":287}},{"index":4,"name":null,"span":{"data":{"file_id":0,"beg":{"line":134,"col":16},"end":{"line":134,"col":21}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":5,"name":null,"span":{"data":{"file_id":0,"beg":{"line":134,"col":16},"end":{"line":134,"col":17}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":6,"name":null,"span":{"data":{"file_id":0,"beg":{"line":134,"col":16},"end":{"line":134,"col":21}},"generated_from_span":null},"ty":{"Deduplicated":288}}]},"body":[{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":134,"col":4},"end":{"line":134,"col":5}},"generated_from_span":null},"kind":{"StorageLive":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":134,"col":4},"end":{"line":134,"col":5}},"generated_from_span":null},"kind":{"StorageLive":3},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":134,"col":4},"end":{"line":134,"col":5}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":3},"ty":{"Deduplicated":287}},{"Use":{"Copy":{"kind":{"Local":1},"ty":{"Deduplicated":287}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":134,"col":16},"end":{"line":134,"col":21}},"generated_from_span":null},"kind":{"StorageLive":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":134,"col":16},"end":{"line":134,"col":17}},"generated_from_span":null},"kind":{"StorageLive":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":134,"col":16},"end":{"line":134,"col":17}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":5},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Local":2},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":134,"col":16},"end":{"line":134,"col":21}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":6},"ty":{"Deduplicated":288}},{"BinaryOp":["AddChecked",{"Copy":{"kind":{"Local":5},"ty":{"Deduplicated":283}}},{"Const":{"kind":{"Literal":{"Scalar":{"Signed":["I64","1"]}}},"ty":{"Deduplicated":283}}}]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":134,"col":16},"end":{"line":134,"col":21}},"generated_from_span":null},"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":6},"ty":{"Deduplicated":288}},{"Field":[{"Tuple":2},1]}]},"ty":{"Deduplicated":287}}},"expected":false,"check_kind":{"Overflow":[{"Add":"Wrap"},{"Move":{"kind":{"Local":5},"ty":{"Deduplicated":283}}},{"Const":{"kind":{"Literal":{"Scalar":{"Signed":["I64","1"]}}},"ty":{"Deduplicated":283}}}]}},"target":2,"on_unwind":1}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":133,"col":0},"end":{"line":135,"col":1}},"generated_from_span":null},"kind":"UnwindResume","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":134,"col":16},"end":{"line":134,"col":21}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":4},"ty":{"Deduplicated":283}},{"Use":{"Move":{"kind":{"Projection":[{"kind":{"Local":6},"ty":{"Deduplicated":288}},{"Field":[{"Tuple":2},0]}]},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":134,"col":20},"end":{"line":134,"col":21}},"generated_from_span":null},"kind":{"StorageDead":5},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":134,"col":4},"end":{"line":134,"col":22}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":{"Regular":29}},"generics":{"regions":[],"types":[{"Deduplicated":283}],"const_generics":[],"trait_refs":[{"Deduplicated":408},{"HashConsedValue":[7640,{"kind":{"BuiltinOrAuto":{"builtin_data":"NoopDestruct","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":2,"generics":{"regions":[],"types":[{"Deduplicated":283}],"const_generics":[],"trait_refs":[]}}}}]}]}}},"args":[{"Move":{"kind":{"Local":3},"ty":{"Deduplicated":287}}},{"Move":{"kind":{"Local":4},"ty":{"Deduplicated":283}}}],"dest":{"kind":{"Local":0},"ty":{"Deduplicated":1914}}},"target":3,"on_unwind":1}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":134,"col":21},"end":{"line":134,"col":22}},"generated_from_span":null},"kind":{"StorageDead":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":134,"col":21},"end":{"line":134,"col":22}},"generated_from_span":null},"kind":{"StorageDead":3},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":135,"col":1},"end":{"line":135,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}}],"comments":[]}}},{"def_id":10,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["option_source",0]}],"span":{"data":{"file_id":0,"beg":{"line":142,"col":0},"end":{"line":144,"col":1}},"generated_from_span":null},"source_text":"fn option_source(keep: bool, value: i64) -> Option {\n if keep { Some(value) } else { None }\n}","attr_info":{"attributes":[],"inline":"Never","rename":null,"public":false},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":287},{"Deduplicated":283}],"output":{"Deduplicated":1914}},"src":"TopLevel","is_global_initializer":null,"body":{"Unstructured":{"span":{"data":{"file_id":0,"beg":{"line":142,"col":0},"end":{"line":144,"col":1}},"generated_from_span":null},"bound_body_regions":0,"locals":{"arg_count":2,"locals":[{"index":0,"name":null,"span":{"data":{"file_id":0,"beg":{"line":142,"col":44},"end":{"line":142,"col":55}},"generated_from_span":null},"ty":{"Deduplicated":1914}},{"index":1,"name":"keep","span":{"data":{"file_id":0,"beg":{"line":142,"col":17},"end":{"line":142,"col":21}},"generated_from_span":null},"ty":{"Deduplicated":287}},{"index":2,"name":"value","span":{"data":{"file_id":0,"beg":{"line":142,"col":29},"end":{"line":142,"col":34}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":3,"name":null,"span":{"data":{"file_id":0,"beg":{"line":143,"col":7},"end":{"line":143,"col":11}},"generated_from_span":null},"ty":{"Deduplicated":287}},{"index":4,"name":null,"span":{"data":{"file_id":0,"beg":{"line":143,"col":19},"end":{"line":143,"col":24}},"generated_from_span":null},"ty":{"Deduplicated":283}}]},"body":[{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":143,"col":7},"end":{"line":143,"col":11}},"generated_from_span":null},"kind":{"StorageLive":3},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":143,"col":7},"end":{"line":143,"col":11}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":3},"ty":{"Deduplicated":287}},{"Use":{"Copy":{"kind":{"Local":1},"ty":{"Deduplicated":287}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":143,"col":7},"end":{"line":143,"col":11}},"generated_from_span":null},"kind":{"Switch":{"discr":{"Move":{"kind":{"Local":3},"ty":{"Deduplicated":287}}},"targets":{"If":[1,2]}}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":143,"col":19},"end":{"line":143,"col":24}},"generated_from_span":null},"kind":{"StorageLive":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":143,"col":19},"end":{"line":143,"col":24}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":4},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Local":2},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":143,"col":14},"end":{"line":143,"col":25}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":1914}},{"Aggregate":[{"Adt":[{"id":{"Adt":12},"generics":{"regions":[],"types":[{"Deduplicated":283}],"const_generics":[],"trait_refs":[{"Deduplicated":408}]}},1,null]},[{"Move":{"kind":{"Local":4},"ty":{"Deduplicated":283}}}]]}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":143,"col":24},"end":{"line":143,"col":25}},"generated_from_span":null},"kind":{"StorageDead":4},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":143,"col":4},"end":{"line":143,"col":41}},"generated_from_span":null},"kind":{"Goto":{"target":3}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":143,"col":35},"end":{"line":143,"col":39}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":1914}},{"Aggregate":[{"Adt":[{"id":{"Adt":12},"generics":{"regions":[],"types":[{"Deduplicated":283}],"const_generics":[],"trait_refs":[{"Deduplicated":408}]}},0,null]},[]]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":143,"col":4},"end":{"line":143,"col":41}},"generated_from_span":null},"kind":{"Goto":{"target":3}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":143,"col":40},"end":{"line":143,"col":41}},"generated_from_span":null},"kind":{"StorageDead":3},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":144,"col":1},"end":{"line":144,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}}],"comments":[]}}},{"def_id":11,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["option_question_mark",0]}],"span":{"data":{"file_id":0,"beg":{"line":147,"col":0},"end":{"line":150,"col":1}},"generated_from_span":null},"source_text":"pub fn option_question_mark(keep: bool, value: i64, addend: i64) -> Option {\n let v = option_source(keep, value)?;\n Some(v + addend)\n}","attr_info":{"attributes":[],"inline":"Never","rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":287},{"Deduplicated":283},{"Deduplicated":283}],"output":{"Deduplicated":1914}},"src":"TopLevel","is_global_initializer":null,"body":{"Unstructured":{"span":{"data":{"file_id":0,"beg":{"line":147,"col":0},"end":{"line":150,"col":1}},"generated_from_span":null},"bound_body_regions":0,"locals":{"arg_count":3,"locals":[{"index":0,"name":null,"span":{"data":{"file_id":0,"beg":{"line":147,"col":68},"end":{"line":147,"col":79}},"generated_from_span":null},"ty":{"Deduplicated":1914}},{"index":1,"name":"keep","span":{"data":{"file_id":0,"beg":{"line":147,"col":28},"end":{"line":147,"col":32}},"generated_from_span":null},"ty":{"Deduplicated":287}},{"index":2,"name":"value","span":{"data":{"file_id":0,"beg":{"line":147,"col":40},"end":{"line":147,"col":45}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":3,"name":"addend","span":{"data":{"file_id":0,"beg":{"line":147,"col":52},"end":{"line":147,"col":58}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":4,"name":"v","span":{"data":{"file_id":0,"beg":{"line":148,"col":8},"end":{"line":148,"col":9}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":5,"name":null,"span":{"data":{"file_id":0,"beg":{"line":148,"col":12},"end":{"line":148,"col":39}},"generated_from_span":null},"ty":{"HashConsedValue":[2026,{"Adt":{"id":{"Adt":14},"generics":{"regions":[],"types":[{"HashConsedValue":[2023,{"Adt":{"id":{"Adt":12},"generics":{"regions":[],"types":[{"Deduplicated":1335}],"const_generics":[],"trait_refs":[{"Deduplicated":1337}]}}}]},{"Deduplicated":283}],"const_generics":[],"trait_refs":[{"HashConsedValue":[2025,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[2024,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}]},{"Deduplicated":408}]}}}]}},{"index":6,"name":null,"span":{"data":{"file_id":0,"beg":{"line":148,"col":12},"end":{"line":148,"col":38}},"generated_from_span":null},"ty":{"Deduplicated":1914}},{"index":7,"name":null,"span":{"data":{"file_id":0,"beg":{"line":148,"col":26},"end":{"line":148,"col":30}},"generated_from_span":null},"ty":{"Deduplicated":287}},{"index":8,"name":null,"span":{"data":{"file_id":0,"beg":{"line":148,"col":32},"end":{"line":148,"col":37}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":9,"name":null,"span":{"data":{"file_id":0,"beg":{"line":148,"col":38},"end":{"line":148,"col":39}},"generated_from_span":null},"ty":{"Deduplicated":463}},{"index":10,"name":"residual","span":{"data":{"file_id":0,"beg":{"line":148,"col":38},"end":{"line":148,"col":39}},"generated_from_span":null},"ty":{"Deduplicated":2023}},{"index":11,"name":null,"span":{"data":{"file_id":0,"beg":{"line":148,"col":38},"end":{"line":148,"col":39}},"generated_from_span":null},"ty":{"Deduplicated":2023}},{"index":12,"name":"val","span":{"data":{"file_id":0,"beg":{"line":148,"col":12},"end":{"line":148,"col":39}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":13,"name":null,"span":{"data":{"file_id":0,"beg":{"line":149,"col":9},"end":{"line":149,"col":19}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":14,"name":null,"span":{"data":{"file_id":0,"beg":{"line":149,"col":9},"end":{"line":149,"col":10}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":15,"name":null,"span":{"data":{"file_id":0,"beg":{"line":149,"col":13},"end":{"line":149,"col":19}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":16,"name":null,"span":{"data":{"file_id":0,"beg":{"line":149,"col":9},"end":{"line":149,"col":19}},"generated_from_span":null},"ty":{"Deduplicated":288}}]},"body":[{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":148,"col":8},"end":{"line":148,"col":9}},"generated_from_span":null},"kind":{"StorageLive":9},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":148,"col":8},"end":{"line":148,"col":9}},"generated_from_span":null},"kind":{"StorageLive":16},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":148,"col":8},"end":{"line":148,"col":9}},"generated_from_span":null},"kind":{"StorageLive":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":148,"col":12},"end":{"line":148,"col":39}},"generated_from_span":null},"kind":{"StorageLive":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":148,"col":12},"end":{"line":148,"col":38}},"generated_from_span":null},"kind":{"StorageLive":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":148,"col":26},"end":{"line":148,"col":30}},"generated_from_span":null},"kind":{"StorageLive":7},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":148,"col":26},"end":{"line":148,"col":30}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":7},"ty":{"Deduplicated":287}},{"Use":{"Copy":{"kind":{"Local":1},"ty":{"Deduplicated":287}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":148,"col":32},"end":{"line":148,"col":37}},"generated_from_span":null},"kind":{"StorageLive":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":148,"col":32},"end":{"line":148,"col":37}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":8},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Local":2},"ty":{"Deduplicated":283}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":148,"col":12},"end":{"line":148,"col":38}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":{"Regular":10}},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}},"args":[{"Move":{"kind":{"Local":7},"ty":{"Deduplicated":287}}},{"Move":{"kind":{"Local":8},"ty":{"Deduplicated":283}}}],"dest":{"kind":{"Local":6},"ty":{"Deduplicated":1914}}},"target":2,"on_unwind":1}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":147,"col":0},"end":{"line":150,"col":1}},"generated_from_span":null},"kind":"UnwindResume","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":148,"col":37},"end":{"line":148,"col":38}},"generated_from_span":null},"kind":{"StorageDead":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":148,"col":37},"end":{"line":148,"col":38}},"generated_from_span":null},"kind":{"StorageDead":7},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":148,"col":12},"end":{"line":148,"col":39}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":{"Regular":30}},"generics":{"regions":[],"types":[{"Deduplicated":283}],"const_generics":[],"trait_refs":[{"Deduplicated":408}]}}},"args":[{"Move":{"kind":{"Local":6},"ty":{"Deduplicated":1914}}}],"dest":{"kind":{"Local":5},"ty":{"Deduplicated":2026}}},"target":3,"on_unwind":1}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":148,"col":38},"end":{"line":148,"col":39}},"generated_from_span":null},"kind":{"StorageDead":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":148,"col":12},"end":{"line":148,"col":39}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":9},"ty":{"Deduplicated":463}},{"Discriminant":{"kind":{"Local":5},"ty":{"Deduplicated":2026}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":148,"col":12},"end":{"line":148,"col":39}},"generated_from_span":null},"kind":{"Switch":{"discr":{"Move":{"kind":{"Local":9},"ty":{"Deduplicated":463}}},"targets":{"SwitchInt":[{"Int":"Isize"},[[{"Scalar":{"Signed":["Isize","0"]}},4],[{"Scalar":{"Signed":["Isize","1"]}},5]],6]}}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":148,"col":12},"end":{"line":148,"col":39}},"generated_from_span":null},"kind":{"StorageLive":12},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":148,"col":12},"end":{"line":148,"col":39}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":12},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Local":5},"ty":{"Deduplicated":2026}},{"Field":[{"Adt":[14,0]},0]}]},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":148,"col":12},"end":{"line":148,"col":39}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":4},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Local":12},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":148,"col":38},"end":{"line":148,"col":39}},"generated_from_span":null},"kind":{"StorageDead":12},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":148,"col":39},"end":{"line":148,"col":40}},"generated_from_span":null},"kind":{"StorageDead":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":149,"col":9},"end":{"line":149,"col":19}},"generated_from_span":null},"kind":{"StorageLive":13},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":149,"col":9},"end":{"line":149,"col":10}},"generated_from_span":null},"kind":{"StorageLive":14},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":149,"col":9},"end":{"line":149,"col":10}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":14},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Local":4},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":149,"col":13},"end":{"line":149,"col":19}},"generated_from_span":null},"kind":{"StorageLive":15},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":149,"col":13},"end":{"line":149,"col":19}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":15},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Local":3},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":149,"col":9},"end":{"line":149,"col":19}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":16},"ty":{"Deduplicated":288}},{"BinaryOp":["AddChecked",{"Copy":{"kind":{"Local":14},"ty":{"Deduplicated":283}}},{"Copy":{"kind":{"Local":15},"ty":{"Deduplicated":283}}}]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":149,"col":9},"end":{"line":149,"col":19}},"generated_from_span":null},"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":16},"ty":{"Deduplicated":288}},{"Field":[{"Tuple":2},1]}]},"ty":{"Deduplicated":287}}},"expected":false,"check_kind":{"Overflow":[{"Add":"Wrap"},{"Move":{"kind":{"Local":15},"ty":{"Deduplicated":283}}},{"Move":{"kind":{"Local":16},"ty":{"Deduplicated":283}}}]}},"target":7,"on_unwind":1}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":148,"col":38},"end":{"line":148,"col":39}},"generated_from_span":null},"kind":{"StorageLive":10},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":148,"col":38},"end":{"line":148,"col":39}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":10},"ty":{"Deduplicated":2023}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Local":5},"ty":{"Deduplicated":2026}},{"Field":[{"Adt":[14,1]},0]}]},"ty":{"Deduplicated":2023}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":148,"col":38},"end":{"line":148,"col":39}},"generated_from_span":null},"kind":{"StorageLive":11},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":148,"col":38},"end":{"line":148,"col":39}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":11},"ty":{"Deduplicated":2023}},{"Use":{"Copy":{"kind":{"Local":10},"ty":{"Deduplicated":2023}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":148,"col":12},"end":{"line":148,"col":39}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":{"Regular":31}},"generics":{"regions":[],"types":[{"Deduplicated":283}],"const_generics":[],"trait_refs":[{"Deduplicated":408}]}}},"args":[{"Move":{"kind":{"Local":11},"ty":{"Deduplicated":2023}}}],"dest":{"kind":{"Local":0},"ty":{"Deduplicated":1914}}},"target":8,"on_unwind":1}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":148,"col":12},"end":{"line":148,"col":39}},"generated_from_span":null},"kind":{"Abort":"UndefinedBehavior"},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":149,"col":9},"end":{"line":149,"col":19}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":13},"ty":{"Deduplicated":283}},{"Use":{"Move":{"kind":{"Projection":[{"kind":{"Local":16},"ty":{"Deduplicated":288}},{"Field":[{"Tuple":2},0]}]},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":149,"col":18},"end":{"line":149,"col":19}},"generated_from_span":null},"kind":{"StorageDead":15},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":149,"col":18},"end":{"line":149,"col":19}},"generated_from_span":null},"kind":{"StorageDead":14},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":149,"col":4},"end":{"line":149,"col":20}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":1914}},{"Aggregate":[{"Adt":[{"id":{"Adt":12},"generics":{"regions":[],"types":[{"Deduplicated":283}],"const_generics":[],"trait_refs":[{"Deduplicated":408}]}},1,null]},[{"Move":{"kind":{"Local":13},"ty":{"Deduplicated":283}}}]]}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":149,"col":19},"end":{"line":149,"col":20}},"generated_from_span":null},"kind":{"StorageDead":13},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":150,"col":0},"end":{"line":150,"col":1}},"generated_from_span":null},"kind":{"StorageDead":4},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":150,"col":1},"end":{"line":150,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":148,"col":38},"end":{"line":148,"col":39}},"generated_from_span":null},"kind":{"StorageDead":11},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":148,"col":38},"end":{"line":148,"col":39}},"generated_from_span":null},"kind":{"StorageDead":10},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":148,"col":39},"end":{"line":148,"col":40}},"generated_from_span":null},"kind":{"StorageDead":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":150,"col":0},"end":{"line":150,"col":1}},"generated_from_span":null},"kind":{"StorageDead":4},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":150,"col":1},"end":{"line":150,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}}],"comments":[]}}},{"def_id":12,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["w_object_type",0]}],"span":{"data":{"file_id":0,"beg":{"line":245,"col":0},"end":{"line":247,"col":1}},"generated_from_span":null},"source_text":"pub fn w_object_type(w: *mut ObjectHeader) -> *const ClassObject {\n unsafe { (*w).ob_type }\n}","attr_info":{"attributes":[{"DocComment":" Premise 1: the header read."}],"inline":"Never","rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"HashConsedValue":[2085,{"RawPtr":[{"Deduplicated":2071},"Mut"]}]}],"output":{"Deduplicated":2067}},"src":"TopLevel","is_global_initializer":null,"body":{"Unstructured":{"span":{"data":{"file_id":0,"beg":{"line":245,"col":0},"end":{"line":247,"col":1}},"generated_from_span":null},"bound_body_regions":0,"locals":{"arg_count":1,"locals":[{"index":0,"name":null,"span":{"data":{"file_id":0,"beg":{"line":245,"col":46},"end":{"line":245,"col":64}},"generated_from_span":null},"ty":{"Deduplicated":2067}},{"index":1,"name":"w","span":{"data":{"file_id":0,"beg":{"line":245,"col":21},"end":{"line":245,"col":22}},"generated_from_span":null},"ty":{"Deduplicated":2085}}]},"body":[{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":246,"col":13},"end":{"line":246,"col":25}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":2067}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Projection":[{"kind":{"Local":1},"ty":{"Deduplicated":2085}},"Deref"]},"ty":{"Deduplicated":2071}},{"Field":[{"Adt":[4,null]},0]}]},"ty":{"Deduplicated":2067}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":247,"col":1},"end":{"line":247,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}}],"comments":[]}}},{"def_id":13,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["w_new_int",0]}],"span":{"data":{"file_id":0,"beg":{"line":252,"col":0},"end":{"line":260,"col":1}},"generated_from_span":null},"source_text":"pub fn w_new_int(x: i64) -> *mut W_IntObject {\n lltype::malloc_typed(W_IntObject {\n ob_header: ObjectHeader {\n ob_type: &INT_CLASS,\n w_class: pyre_object::pyobject::get_instantiate(&INT_CLASS),\n },\n intval: x,\n })\n}","attr_info":{"attributes":[{"DocComment":" Premise 2: the boxing cluster — header store, payload store, then one"},{"DocComment":" by-value `malloc_typed`."}],"inline":"Never","rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":283}],"output":{"HashConsedValue":[2087,{"RawPtr":[{"HashConsedValue":[2086,{"Adt":{"id":{"Adt":6},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}}]},"Mut"]}]}},"src":"TopLevel","is_global_initializer":null,"body":{"Unstructured":{"span":{"data":{"file_id":0,"beg":{"line":252,"col":0},"end":{"line":260,"col":1}},"generated_from_span":null},"bound_body_regions":10,"locals":{"arg_count":1,"locals":[{"index":0,"name":null,"span":{"data":{"file_id":0,"beg":{"line":252,"col":28},"end":{"line":252,"col":44}},"generated_from_span":null},"ty":{"Deduplicated":2087}},{"index":1,"name":"x","span":{"data":{"file_id":0,"beg":{"line":252,"col":17},"end":{"line":252,"col":18}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":2,"name":null,"span":{"data":{"file_id":0,"beg":{"line":253,"col":25},"end":{"line":259,"col":5}},"generated_from_span":null},"ty":{"Deduplicated":2086}},{"index":3,"name":null,"span":{"data":{"file_id":0,"beg":{"line":254,"col":19},"end":{"line":257,"col":9}},"generated_from_span":null},"ty":{"Deduplicated":2071}},{"index":4,"name":null,"span":{"data":{"file_id":0,"beg":{"line":255,"col":21},"end":{"line":255,"col":31}},"generated_from_span":null},"ty":{"Deduplicated":2067}},{"index":5,"name":null,"span":{"data":{"file_id":0,"beg":{"line":255,"col":21},"end":{"line":255,"col":31}},"generated_from_span":null},"ty":{"HashConsedValue":[2090,{"Ref":[{"Body":1},{"Deduplicated":2066},"Shared"]}]}},{"index":6,"name":null,"span":{"data":{"file_id":0,"beg":{"line":255,"col":22},"end":{"line":255,"col":31}},"generated_from_span":null},"ty":{"HashConsedValue":[2091,{"Ref":[{"Body":2},{"Deduplicated":2066},"Shared"]}]}},{"index":7,"name":null,"span":{"data":{"file_id":0,"beg":{"line":256,"col":21},"end":{"line":256,"col":71}},"generated_from_span":null},"ty":{"Deduplicated":2067}},{"index":8,"name":null,"span":{"data":{"file_id":0,"beg":{"line":256,"col":60},"end":{"line":256,"col":70}},"generated_from_span":null},"ty":{"HashConsedValue":[2092,{"Ref":[{"Body":3},{"Deduplicated":2066},"Shared"]}]}},{"index":9,"name":null,"span":{"data":{"file_id":0,"beg":{"line":256,"col":60},"end":{"line":256,"col":70}},"generated_from_span":null},"ty":{"HashConsedValue":[2093,{"Ref":[{"Body":4},{"Deduplicated":2066},"Shared"]}]}},{"index":10,"name":null,"span":{"data":{"file_id":0,"beg":{"line":256,"col":61},"end":{"line":256,"col":70}},"generated_from_span":null},"ty":{"HashConsedValue":[2094,{"Ref":[{"Body":5},{"Deduplicated":2066},"Shared"]}]}},{"index":11,"name":null,"span":{"data":{"file_id":0,"beg":{"line":258,"col":16},"end":{"line":258,"col":17}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":12,"name":null,"span":{"data":{"file_id":0,"beg":{"line":0,"col":0},"end":{"line":0,"col":0}},"generated_from_span":null},"ty":{"HashConsedValue":[7433,{"Ref":[{"Body":6},{"Deduplicated":2066},"Shared"]}]}},{"index":13,"name":null,"span":{"data":{"file_id":0,"beg":{"line":0,"col":0},"end":{"line":0,"col":0}},"generated_from_span":null},"ty":{"HashConsedValue":[7434,{"Ref":[{"Body":7},{"Deduplicated":2066},"Shared"]}]}}]},"body":[{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":253,"col":25},"end":{"line":259,"col":5}},"generated_from_span":null},"kind":{"StorageLive":2},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":254,"col":19},"end":{"line":257,"col":9}},"generated_from_span":null},"kind":{"StorageLive":3},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":255,"col":21},"end":{"line":255,"col":31}},"generated_from_span":null},"kind":{"StorageLive":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":255,"col":21},"end":{"line":255,"col":31}},"generated_from_span":null},"kind":{"StorageLive":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":255,"col":22},"end":{"line":255,"col":31}},"generated_from_span":null},"kind":{"StorageLive":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":255,"col":22},"end":{"line":255,"col":31}},"generated_from_span":null},"kind":{"StorageLive":12},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":255,"col":22},"end":{"line":255,"col":31}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":12},"ty":{"Deduplicated":7433}},{"Ref":{"place":{"kind":{"Global":{"id":0,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}},"ty":{"Deduplicated":2066}},"kind":"Shared","ptr_metadata":{"Const":{"kind":{"Adt":[null,[]]},"ty":{"Deduplicated":297}}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":255,"col":22},"end":{"line":255,"col":31}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":6},"ty":{"Deduplicated":2091}},{"Use":{"Move":{"kind":{"Local":12},"ty":{"Deduplicated":7433}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":255,"col":21},"end":{"line":255,"col":31}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":5},"ty":{"Deduplicated":2090}},{"Ref":{"place":{"kind":{"Projection":[{"kind":{"Local":6},"ty":{"Deduplicated":2091}},"Deref"]},"ty":{"Deduplicated":2066}},"kind":"Shared","ptr_metadata":{"Const":{"kind":{"Adt":[null,[]]},"ty":{"Deduplicated":297}}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":255,"col":21},"end":{"line":255,"col":31}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":4},"ty":{"Deduplicated":2067}},{"RawPtr":{"place":{"kind":{"Projection":[{"kind":{"Local":5},"ty":{"Deduplicated":2090}},"Deref"]},"ty":{"Deduplicated":2066}},"kind":"Shared","ptr_metadata":{"Const":{"kind":{"Adt":[null,[]]},"ty":{"Deduplicated":297}}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":256,"col":21},"end":{"line":256,"col":71}},"generated_from_span":null},"kind":{"StorageLive":7},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":256,"col":60},"end":{"line":256,"col":70}},"generated_from_span":null},"kind":{"StorageLive":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":256,"col":60},"end":{"line":256,"col":70}},"generated_from_span":null},"kind":{"StorageLive":9},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":256,"col":61},"end":{"line":256,"col":70}},"generated_from_span":null},"kind":{"StorageLive":10},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":256,"col":61},"end":{"line":256,"col":70}},"generated_from_span":null},"kind":{"StorageLive":13},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":256,"col":61},"end":{"line":256,"col":70}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":13},"ty":{"Deduplicated":7434}},{"Ref":{"place":{"kind":{"Global":{"id":0,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}},"ty":{"Deduplicated":2066}},"kind":"Shared","ptr_metadata":{"Const":{"kind":{"Adt":[null,[]]},"ty":{"Deduplicated":297}}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":256,"col":61},"end":{"line":256,"col":70}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":10},"ty":{"Deduplicated":2094}},{"Use":{"Move":{"kind":{"Local":13},"ty":{"Deduplicated":7434}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":256,"col":60},"end":{"line":256,"col":70}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":9},"ty":{"Deduplicated":2093}},{"Ref":{"place":{"kind":{"Projection":[{"kind":{"Local":10},"ty":{"Deduplicated":2094}},"Deref"]},"ty":{"Deduplicated":2066}},"kind":"Shared","ptr_metadata":{"Const":{"kind":{"Adt":[null,[]]},"ty":{"Deduplicated":297}}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":256,"col":60},"end":{"line":256,"col":70}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":8},"ty":{"Deduplicated":2092}},{"Ref":{"place":{"kind":{"Projection":[{"kind":{"Local":9},"ty":{"Deduplicated":2093}},"Deref"]},"ty":{"Deduplicated":2066}},"kind":"Shared","ptr_metadata":{"Const":{"kind":{"Adt":[null,[]]},"ty":{"Deduplicated":297}}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":256,"col":21},"end":{"line":256,"col":71}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":{"Regular":35}},"generics":{"regions":[{"Body":9}],"types":[],"const_generics":[],"trait_refs":[]}}},"args":[{"Move":{"kind":{"Local":8},"ty":{"Deduplicated":2092}}}],"dest":{"kind":{"Local":7},"ty":{"Deduplicated":2067}}},"target":2,"on_unwind":1}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":252,"col":0},"end":{"line":260,"col":1}},"generated_from_span":null},"kind":"UnwindResume","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":256,"col":70},"end":{"line":256,"col":71}},"generated_from_span":null},"kind":{"StorageDead":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":254,"col":19},"end":{"line":257,"col":9}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":3},"ty":{"Deduplicated":2071}},{"Aggregate":[{"Adt":[{"id":{"Adt":4},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}},null,null]},[{"Move":{"kind":{"Local":4},"ty":{"Deduplicated":2067}}},{"Move":{"kind":{"Local":7},"ty":{"Deduplicated":2067}}}]]}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":257,"col":8},"end":{"line":257,"col":9}},"generated_from_span":null},"kind":{"StorageDead":7},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":257,"col":8},"end":{"line":257,"col":9}},"generated_from_span":null},"kind":{"StorageDead":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":258,"col":16},"end":{"line":258,"col":17}},"generated_from_span":null},"kind":{"StorageLive":11},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":258,"col":16},"end":{"line":258,"col":17}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":11},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Local":1},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":253,"col":25},"end":{"line":259,"col":5}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":2},"ty":{"Deduplicated":2086}},{"Aggregate":[{"Adt":[{"id":{"Adt":6},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}},null,null]},[{"Move":{"kind":{"Local":3},"ty":{"Deduplicated":2071}}},{"Move":{"kind":{"Local":11},"ty":{"Deduplicated":283}}}]]}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":259,"col":4},"end":{"line":259,"col":5}},"generated_from_span":null},"kind":{"StorageDead":11},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":259,"col":4},"end":{"line":259,"col":5}},"generated_from_span":null},"kind":{"StorageDead":3},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":253,"col":4},"end":{"line":259,"col":6}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":{"Regular":34}},"generics":{"regions":[],"types":[{"Deduplicated":2086}],"const_generics":[],"trait_refs":[{"HashConsedValue":[7644,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[7643,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":2086}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2086}],"const_generics":[],"trait_refs":[]}}}}]}]}}},"args":[{"Move":{"kind":{"Local":2},"ty":{"Deduplicated":2086}}}],"dest":{"kind":{"Local":0},"ty":{"Deduplicated":2087}}},"target":3,"on_unwind":1}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":259,"col":5},"end":{"line":259,"col":6}},"generated_from_span":null},"kind":{"StorageDead":10},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":259,"col":5},"end":{"line":259,"col":6}},"generated_from_span":null},"kind":{"StorageDead":9},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":259,"col":5},"end":{"line":259,"col":6}},"generated_from_span":null},"kind":{"StorageDead":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":259,"col":5},"end":{"line":259,"col":6}},"generated_from_span":null},"kind":{"StorageDead":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":259,"col":5},"end":{"line":259,"col":6}},"generated_from_span":null},"kind":{"StorageDead":2},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":260,"col":1},"end":{"line":260,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}}],"comments":[]}}},{"def_id":14,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["w_new_type_only_int",0]}],"span":{"data":{"file_id":0,"beg":{"line":266,"col":0},"end":{"line":273,"col":1}},"generated_from_span":null},"source_text":"pub fn w_new_type_only_int(x: i64) -> *mut W_TypeOnlyIntObject {\n lltype::malloc_typed(W_TypeOnlyIntObject {\n ob_header: TypeOnlyHeader {\n ob_type: &INT_CLASS,\n },\n intval: x,\n })\n}","attr_info":{"attributes":[{"DocComment":" Premise 2, second header shape: the same cluster over a header that"},{"DocComment":" declares no class word, so the fuse has to admit it on the layout alone."},{"DocComment":" The `get_instantiate` call has no subject here and is absent."}],"inline":"Never","rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":283}],"output":{"HashConsedValue":[2115,{"RawPtr":[{"HashConsedValue":[2114,{"Adt":{"id":{"Adt":7},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}}]},"Mut"]}]}},"src":"TopLevel","is_global_initializer":null,"body":{"Unstructured":{"span":{"data":{"file_id":0,"beg":{"line":266,"col":0},"end":{"line":273,"col":1}},"generated_from_span":null},"bound_body_regions":4,"locals":{"arg_count":1,"locals":[{"index":0,"name":null,"span":{"data":{"file_id":0,"beg":{"line":266,"col":38},"end":{"line":266,"col":62}},"generated_from_span":null},"ty":{"Deduplicated":2115}},{"index":1,"name":"x","span":{"data":{"file_id":0,"beg":{"line":266,"col":27},"end":{"line":266,"col":28}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":2,"name":null,"span":{"data":{"file_id":0,"beg":{"line":267,"col":25},"end":{"line":272,"col":5}},"generated_from_span":null},"ty":{"Deduplicated":2114}},{"index":3,"name":null,"span":{"data":{"file_id":0,"beg":{"line":268,"col":19},"end":{"line":270,"col":9}},"generated_from_span":null},"ty":{"Deduplicated":2074}},{"index":4,"name":null,"span":{"data":{"file_id":0,"beg":{"line":269,"col":21},"end":{"line":269,"col":31}},"generated_from_span":null},"ty":{"Deduplicated":2067}},{"index":5,"name":null,"span":{"data":{"file_id":0,"beg":{"line":269,"col":21},"end":{"line":269,"col":31}},"generated_from_span":null},"ty":{"Deduplicated":2090}},{"index":6,"name":null,"span":{"data":{"file_id":0,"beg":{"line":269,"col":22},"end":{"line":269,"col":31}},"generated_from_span":null},"ty":{"Deduplicated":2091}},{"index":7,"name":null,"span":{"data":{"file_id":0,"beg":{"line":271,"col":16},"end":{"line":271,"col":17}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":8,"name":null,"span":{"data":{"file_id":0,"beg":{"line":0,"col":0},"end":{"line":0,"col":0}},"generated_from_span":null},"ty":{"Deduplicated":2092}}]},"body":[{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":267,"col":25},"end":{"line":272,"col":5}},"generated_from_span":null},"kind":{"StorageLive":2},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":268,"col":19},"end":{"line":270,"col":9}},"generated_from_span":null},"kind":{"StorageLive":3},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":269,"col":21},"end":{"line":269,"col":31}},"generated_from_span":null},"kind":{"StorageLive":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":269,"col":21},"end":{"line":269,"col":31}},"generated_from_span":null},"kind":{"StorageLive":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":269,"col":22},"end":{"line":269,"col":31}},"generated_from_span":null},"kind":{"StorageLive":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":269,"col":22},"end":{"line":269,"col":31}},"generated_from_span":null},"kind":{"StorageLive":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":269,"col":22},"end":{"line":269,"col":31}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":8},"ty":{"Deduplicated":2092}},{"Ref":{"place":{"kind":{"Global":{"id":0,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}},"ty":{"Deduplicated":2066}},"kind":"Shared","ptr_metadata":{"Const":{"kind":{"Adt":[null,[]]},"ty":{"Deduplicated":297}}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":269,"col":22},"end":{"line":269,"col":31}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":6},"ty":{"Deduplicated":2091}},{"Use":{"Move":{"kind":{"Local":8},"ty":{"Deduplicated":2092}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":269,"col":21},"end":{"line":269,"col":31}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":5},"ty":{"Deduplicated":2090}},{"Ref":{"place":{"kind":{"Projection":[{"kind":{"Local":6},"ty":{"Deduplicated":2091}},"Deref"]},"ty":{"Deduplicated":2066}},"kind":"Shared","ptr_metadata":{"Const":{"kind":{"Adt":[null,[]]},"ty":{"Deduplicated":297}}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":269,"col":21},"end":{"line":269,"col":31}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":4},"ty":{"Deduplicated":2067}},{"RawPtr":{"place":{"kind":{"Projection":[{"kind":{"Local":5},"ty":{"Deduplicated":2090}},"Deref"]},"ty":{"Deduplicated":2066}},"kind":"Shared","ptr_metadata":{"Const":{"kind":{"Adt":[null,[]]},"ty":{"Deduplicated":297}}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":268,"col":19},"end":{"line":270,"col":9}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":3},"ty":{"Deduplicated":2074}},{"Aggregate":[{"Adt":[{"id":{"Adt":5},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}},null,null]},[{"Move":{"kind":{"Local":4},"ty":{"Deduplicated":2067}}}]]}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":270,"col":8},"end":{"line":270,"col":9}},"generated_from_span":null},"kind":{"StorageDead":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":271,"col":16},"end":{"line":271,"col":17}},"generated_from_span":null},"kind":{"StorageLive":7},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":271,"col":16},"end":{"line":271,"col":17}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":7},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Local":1},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":267,"col":25},"end":{"line":272,"col":5}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":2},"ty":{"Deduplicated":2114}},{"Aggregate":[{"Adt":[{"id":{"Adt":7},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}},null,null]},[{"Move":{"kind":{"Local":3},"ty":{"Deduplicated":2074}}},{"Move":{"kind":{"Local":7},"ty":{"Deduplicated":283}}}]]}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":272,"col":4},"end":{"line":272,"col":5}},"generated_from_span":null},"kind":{"StorageDead":7},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":272,"col":4},"end":{"line":272,"col":5}},"generated_from_span":null},"kind":{"StorageDead":3},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":267,"col":4},"end":{"line":272,"col":6}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":{"Regular":34}},"generics":{"regions":[],"types":[{"Deduplicated":2114}],"const_generics":[],"trait_refs":[{"HashConsedValue":[7648,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[7647,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":2114}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2114}],"const_generics":[],"trait_refs":[]}}}}]}]}}},"args":[{"Move":{"kind":{"Local":2},"ty":{"Deduplicated":2114}}}],"dest":{"kind":{"Local":0},"ty":{"Deduplicated":2115}}},"target":2,"on_unwind":1}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":266,"col":0},"end":{"line":273,"col":1}},"generated_from_span":null},"kind":"UnwindResume","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":272,"col":5},"end":{"line":272,"col":6}},"generated_from_span":null},"kind":{"StorageDead":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":272,"col":5},"end":{"line":272,"col":6}},"generated_from_span":null},"kind":{"StorageDead":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":272,"col":5},"end":{"line":272,"col":6}},"generated_from_span":null},"kind":{"StorageDead":2},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":273,"col":1},"end":{"line":273,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}}],"comments":[]}}},{"def_id":15,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["w_int_add",0]}],"span":{"data":{"file_id":0,"beg":{"line":276,"col":0},"end":{"line":278,"col":1}},"generated_from_span":null},"source_text":"fn w_int_add(a: *mut W_IntObject, b: *mut W_IntObject) -> i64 {\n unsafe { (*a).intval + (*b).intval }\n}","attr_info":{"attributes":[],"inline":"Never","rename":null,"public":false},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":2087},{"Deduplicated":2087}],"output":{"Deduplicated":283}},"src":"TopLevel","is_global_initializer":null,"body":{"Unstructured":{"span":{"data":{"file_id":0,"beg":{"line":276,"col":0},"end":{"line":278,"col":1}},"generated_from_span":null},"bound_body_regions":0,"locals":{"arg_count":2,"locals":[{"index":0,"name":null,"span":{"data":{"file_id":0,"beg":{"line":276,"col":58},"end":{"line":276,"col":61}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":1,"name":"a","span":{"data":{"file_id":0,"beg":{"line":276,"col":13},"end":{"line":276,"col":14}},"generated_from_span":null},"ty":{"Deduplicated":2087}},{"index":2,"name":"b","span":{"data":{"file_id":0,"beg":{"line":276,"col":34},"end":{"line":276,"col":35}},"generated_from_span":null},"ty":{"Deduplicated":2087}},{"index":3,"name":null,"span":{"data":{"file_id":0,"beg":{"line":277,"col":13},"end":{"line":277,"col":24}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":4,"name":null,"span":{"data":{"file_id":0,"beg":{"line":277,"col":27},"end":{"line":277,"col":38}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":5,"name":null,"span":{"data":{"file_id":0,"beg":{"line":277,"col":13},"end":{"line":277,"col":38}},"generated_from_span":null},"ty":{"Deduplicated":288}}]},"body":[{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":277,"col":13},"end":{"line":277,"col":24}},"generated_from_span":null},"kind":{"StorageLive":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":277,"col":13},"end":{"line":277,"col":24}},"generated_from_span":null},"kind":{"StorageLive":3},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":277,"col":13},"end":{"line":277,"col":24}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":3},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Projection":[{"kind":{"Local":1},"ty":{"Deduplicated":2087}},"Deref"]},"ty":{"Deduplicated":2086}},{"Field":[{"Adt":[6,null]},1]}]},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":277,"col":27},"end":{"line":277,"col":38}},"generated_from_span":null},"kind":{"StorageLive":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":277,"col":27},"end":{"line":277,"col":38}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":4},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Projection":[{"kind":{"Local":2},"ty":{"Deduplicated":2087}},"Deref"]},"ty":{"Deduplicated":2086}},{"Field":[{"Adt":[6,null]},1]}]},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":277,"col":13},"end":{"line":277,"col":38}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":5},"ty":{"Deduplicated":288}},{"BinaryOp":["AddChecked",{"Copy":{"kind":{"Local":3},"ty":{"Deduplicated":283}}},{"Copy":{"kind":{"Local":4},"ty":{"Deduplicated":283}}}]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":277,"col":13},"end":{"line":277,"col":38}},"generated_from_span":null},"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":5},"ty":{"Deduplicated":288}},{"Field":[{"Tuple":2},1]}]},"ty":{"Deduplicated":287}}},"expected":false,"check_kind":{"Overflow":[{"Add":"Wrap"},{"Move":{"kind":{"Local":3},"ty":{"Deduplicated":283}}},{"Move":{"kind":{"Local":4},"ty":{"Deduplicated":283}}}]}},"target":2,"on_unwind":1}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":276,"col":0},"end":{"line":278,"col":1}},"generated_from_span":null},"kind":"UnwindResume","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":277,"col":13},"end":{"line":277,"col":38}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":283}},{"Use":{"Move":{"kind":{"Projection":[{"kind":{"Local":5},"ty":{"Deduplicated":288}},{"Field":[{"Tuple":2},0]}]},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":277,"col":37},"end":{"line":277,"col":38}},"generated_from_span":null},"kind":{"StorageDead":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":277,"col":37},"end":{"line":277,"col":38}},"generated_from_span":null},"kind":{"StorageDead":3},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":278,"col":1},"end":{"line":278,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}}],"comments":[]}}},{"def_id":16,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["w_number_add",0]}],"span":{"data":{"file_id":0,"beg":{"line":284,"col":0},"end":{"line":291,"col":1}},"generated_from_span":null},"source_text":"pub fn w_number_add(a: *mut ObjectHeader, b: *mut ObjectHeader) -> i64 {\n let ta = unsafe { (*a).ob_type };\n let tb = unsafe { (*b).ob_type };\n if ta == tb && ta == (&INT_CLASS as *const ClassObject) {\n return w_int_add(a as *mut W_IntObject, b as *mut W_IntObject);\n }\n 0\n}","attr_info":{"attributes":[{"DocComment":" Premise 3: the narrowing chain. `descroperation.py` `binop_impl`"},{"DocComment":" (`type(w_obj1) is type(w_obj2)`, then the per-class shortcut)"},{"DocComment":" transliterated — the shape that lowers each arm to a direct call."}],"inline":"Never","rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":2085},{"Deduplicated":2085}],"output":{"Deduplicated":283}},"src":"TopLevel","is_global_initializer":null,"body":{"Unstructured":{"span":{"data":{"file_id":0,"beg":{"line":284,"col":0},"end":{"line":291,"col":1}},"generated_from_span":null},"bound_body_regions":4,"locals":{"arg_count":2,"locals":[{"index":0,"name":null,"span":{"data":{"file_id":0,"beg":{"line":284,"col":67},"end":{"line":284,"col":70}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":1,"name":"a","span":{"data":{"file_id":0,"beg":{"line":284,"col":20},"end":{"line":284,"col":21}},"generated_from_span":null},"ty":{"Deduplicated":2085}},{"index":2,"name":"b","span":{"data":{"file_id":0,"beg":{"line":284,"col":42},"end":{"line":284,"col":43}},"generated_from_span":null},"ty":{"Deduplicated":2085}},{"index":3,"name":"ta","span":{"data":{"file_id":0,"beg":{"line":285,"col":8},"end":{"line":285,"col":10}},"generated_from_span":null},"ty":{"Deduplicated":2067}},{"index":4,"name":"tb","span":{"data":{"file_id":0,"beg":{"line":286,"col":8},"end":{"line":286,"col":10}},"generated_from_span":null},"ty":{"Deduplicated":2067}},{"index":5,"name":null,"span":{"data":{"file_id":0,"beg":{"line":287,"col":7},"end":{"line":287,"col":15}},"generated_from_span":null},"ty":{"Deduplicated":287}},{"index":6,"name":null,"span":{"data":{"file_id":0,"beg":{"line":287,"col":7},"end":{"line":287,"col":9}},"generated_from_span":null},"ty":{"Deduplicated":2067}},{"index":7,"name":null,"span":{"data":{"file_id":0,"beg":{"line":287,"col":13},"end":{"line":287,"col":15}},"generated_from_span":null},"ty":{"Deduplicated":2067}},{"index":8,"name":null,"span":{"data":{"file_id":0,"beg":{"line":287,"col":19},"end":{"line":287,"col":59}},"generated_from_span":null},"ty":{"Deduplicated":287}},{"index":9,"name":null,"span":{"data":{"file_id":0,"beg":{"line":287,"col":19},"end":{"line":287,"col":21}},"generated_from_span":null},"ty":{"Deduplicated":2067}},{"index":10,"name":null,"span":{"data":{"file_id":0,"beg":{"line":287,"col":25},"end":{"line":287,"col":59}},"generated_from_span":null},"ty":{"Deduplicated":2067}},{"index":11,"name":null,"span":{"data":{"file_id":0,"beg":{"line":287,"col":26},"end":{"line":287,"col":36}},"generated_from_span":null},"ty":{"Deduplicated":2090}},{"index":12,"name":null,"span":{"data":{"file_id":0,"beg":{"line":287,"col":27},"end":{"line":287,"col":36}},"generated_from_span":null},"ty":{"Deduplicated":2091}},{"index":13,"name":null,"span":{"data":{"file_id":0,"beg":{"line":288,"col":25},"end":{"line":288,"col":46}},"generated_from_span":null},"ty":{"Deduplicated":2087}},{"index":14,"name":null,"span":{"data":{"file_id":0,"beg":{"line":288,"col":25},"end":{"line":288,"col":26}},"generated_from_span":null},"ty":{"Deduplicated":2085}},{"index":15,"name":null,"span":{"data":{"file_id":0,"beg":{"line":288,"col":48},"end":{"line":288,"col":69}},"generated_from_span":null},"ty":{"Deduplicated":2087}},{"index":16,"name":null,"span":{"data":{"file_id":0,"beg":{"line":288,"col":48},"end":{"line":288,"col":49}},"generated_from_span":null},"ty":{"Deduplicated":2085}},{"index":17,"name":null,"span":{"data":{"file_id":0,"beg":{"line":0,"col":0},"end":{"line":0,"col":0}},"generated_from_span":null},"ty":{"Deduplicated":2092}}]},"body":[{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":285,"col":8},"end":{"line":285,"col":10}},"generated_from_span":null},"kind":{"StorageLive":3},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":285,"col":22},"end":{"line":285,"col":34}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":3},"ty":{"Deduplicated":2067}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Projection":[{"kind":{"Local":1},"ty":{"Deduplicated":2085}},"Deref"]},"ty":{"Deduplicated":2071}},{"Field":[{"Adt":[4,null]},0]}]},"ty":{"Deduplicated":2067}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":286,"col":8},"end":{"line":286,"col":10}},"generated_from_span":null},"kind":{"StorageLive":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":286,"col":22},"end":{"line":286,"col":34}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":4},"ty":{"Deduplicated":2067}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Projection":[{"kind":{"Local":2},"ty":{"Deduplicated":2085}},"Deref"]},"ty":{"Deduplicated":2071}},{"Field":[{"Adt":[4,null]},0]}]},"ty":{"Deduplicated":2067}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":287,"col":7},"end":{"line":287,"col":15}},"generated_from_span":null},"kind":{"StorageLive":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":287,"col":7},"end":{"line":287,"col":9}},"generated_from_span":null},"kind":{"StorageLive":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":287,"col":7},"end":{"line":287,"col":9}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":6},"ty":{"Deduplicated":2067}},{"Use":{"Copy":{"kind":{"Local":3},"ty":{"Deduplicated":2067}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":287,"col":13},"end":{"line":287,"col":15}},"generated_from_span":null},"kind":{"StorageLive":7},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":287,"col":13},"end":{"line":287,"col":15}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":7},"ty":{"Deduplicated":2067}},{"Use":{"Copy":{"kind":{"Local":4},"ty":{"Deduplicated":2067}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":287,"col":7},"end":{"line":287,"col":15}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":5},"ty":{"Deduplicated":287}},{"BinaryOp":["Eq",{"Move":{"kind":{"Local":6},"ty":{"Deduplicated":2067}}},{"Move":{"kind":{"Local":7},"ty":{"Deduplicated":2067}}}]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":287,"col":7},"end":{"line":287,"col":15}},"generated_from_span":null},"kind":{"Switch":{"discr":{"Move":{"kind":{"Local":5},"ty":{"Deduplicated":287}}},"targets":{"If":[1,2]}}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":287,"col":14},"end":{"line":287,"col":15}},"generated_from_span":null},"kind":{"StorageDead":7},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":287,"col":14},"end":{"line":287,"col":15}},"generated_from_span":null},"kind":{"StorageDead":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":287,"col":19},"end":{"line":287,"col":59}},"generated_from_span":null},"kind":{"StorageLive":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":287,"col":19},"end":{"line":287,"col":21}},"generated_from_span":null},"kind":{"StorageLive":9},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":287,"col":19},"end":{"line":287,"col":21}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":9},"ty":{"Deduplicated":2067}},{"Use":{"Copy":{"kind":{"Local":3},"ty":{"Deduplicated":2067}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":287,"col":25},"end":{"line":287,"col":59}},"generated_from_span":null},"kind":{"StorageLive":10},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":287,"col":26},"end":{"line":287,"col":36}},"generated_from_span":null},"kind":{"StorageLive":11},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":287,"col":27},"end":{"line":287,"col":36}},"generated_from_span":null},"kind":{"StorageLive":12},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":287,"col":27},"end":{"line":287,"col":36}},"generated_from_span":null},"kind":{"StorageLive":17},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":287,"col":27},"end":{"line":287,"col":36}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":17},"ty":{"Deduplicated":2092}},{"Ref":{"place":{"kind":{"Global":{"id":0,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}},"ty":{"Deduplicated":2066}},"kind":"Shared","ptr_metadata":{"Const":{"kind":{"Adt":[null,[]]},"ty":{"Deduplicated":297}}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":287,"col":27},"end":{"line":287,"col":36}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":12},"ty":{"Deduplicated":2091}},{"Use":{"Move":{"kind":{"Local":17},"ty":{"Deduplicated":2092}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":287,"col":26},"end":{"line":287,"col":36}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":11},"ty":{"Deduplicated":2090}},{"Ref":{"place":{"kind":{"Projection":[{"kind":{"Local":12},"ty":{"Deduplicated":2091}},"Deref"]},"ty":{"Deduplicated":2066}},"kind":"Shared","ptr_metadata":{"Const":{"kind":{"Adt":[null,[]]},"ty":{"Deduplicated":297}}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":287,"col":26},"end":{"line":287,"col":36}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":10},"ty":{"Deduplicated":2067}},{"RawPtr":{"place":{"kind":{"Projection":[{"kind":{"Local":11},"ty":{"Deduplicated":2090}},"Deref"]},"ty":{"Deduplicated":2066}},"kind":"Shared","ptr_metadata":{"Const":{"kind":{"Adt":[null,[]]},"ty":{"Deduplicated":297}}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":287,"col":19},"end":{"line":287,"col":59}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":8},"ty":{"Deduplicated":287}},{"BinaryOp":["Eq",{"Move":{"kind":{"Local":9},"ty":{"Deduplicated":2067}}},{"Move":{"kind":{"Local":10},"ty":{"Deduplicated":2067}}}]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":287,"col":19},"end":{"line":287,"col":59}},"generated_from_span":null},"kind":{"Switch":{"discr":{"Move":{"kind":{"Local":8},"ty":{"Deduplicated":287}}},"targets":{"If":[3,4]}}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":287,"col":14},"end":{"line":287,"col":15}},"generated_from_span":null},"kind":{"StorageDead":7},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":287,"col":14},"end":{"line":287,"col":15}},"generated_from_span":null},"kind":{"StorageDead":6},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"kind":{"Goto":{"target":5}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":287,"col":58},"end":{"line":287,"col":59}},"generated_from_span":null},"kind":{"StorageDead":12},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":287,"col":58},"end":{"line":287,"col":59}},"generated_from_span":null},"kind":{"StorageDead":11},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":287,"col":58},"end":{"line":287,"col":59}},"generated_from_span":null},"kind":{"StorageDead":10},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":287,"col":58},"end":{"line":287,"col":59}},"generated_from_span":null},"kind":{"StorageDead":9},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":288,"col":25},"end":{"line":288,"col":46}},"generated_from_span":null},"kind":{"StorageLive":13},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":288,"col":25},"end":{"line":288,"col":26}},"generated_from_span":null},"kind":{"StorageLive":14},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":288,"col":25},"end":{"line":288,"col":26}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":14},"ty":{"Deduplicated":2085}},{"Use":{"Copy":{"kind":{"Local":1},"ty":{"Deduplicated":2085}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":288,"col":25},"end":{"line":288,"col":46}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":13},"ty":{"Deduplicated":2087}},{"UnaryOp":[{"Cast":{"RawPtr":[{"Deduplicated":2085},{"Deduplicated":2087}]}},{"Move":{"kind":{"Local":14},"ty":{"Deduplicated":2085}}}]}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":288,"col":45},"end":{"line":288,"col":46}},"generated_from_span":null},"kind":{"StorageDead":14},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":288,"col":48},"end":{"line":288,"col":69}},"generated_from_span":null},"kind":{"StorageLive":15},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":288,"col":48},"end":{"line":288,"col":49}},"generated_from_span":null},"kind":{"StorageLive":16},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":288,"col":48},"end":{"line":288,"col":49}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":16},"ty":{"Deduplicated":2085}},{"Use":{"Copy":{"kind":{"Local":2},"ty":{"Deduplicated":2085}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":288,"col":48},"end":{"line":288,"col":69}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":15},"ty":{"Deduplicated":2087}},{"UnaryOp":[{"Cast":{"RawPtr":[{"Deduplicated":2085},{"Deduplicated":2087}]}},{"Move":{"kind":{"Local":16},"ty":{"Deduplicated":2085}}}]}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":288,"col":68},"end":{"line":288,"col":69}},"generated_from_span":null},"kind":{"StorageDead":16},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":288,"col":15},"end":{"line":288,"col":70}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":{"Regular":15}},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}},"args":[{"Move":{"kind":{"Local":13},"ty":{"Deduplicated":2087}}},{"Move":{"kind":{"Local":15},"ty":{"Deduplicated":2087}}}],"dest":{"kind":{"Local":0},"ty":{"Deduplicated":283}}},"target":7,"on_unwind":6}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":287,"col":58},"end":{"line":287,"col":59}},"generated_from_span":null},"kind":{"StorageDead":12},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":287,"col":58},"end":{"line":287,"col":59}},"generated_from_span":null},"kind":{"StorageDead":11},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":287,"col":58},"end":{"line":287,"col":59}},"generated_from_span":null},"kind":{"StorageDead":10},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":287,"col":58},"end":{"line":287,"col":59}},"generated_from_span":null},"kind":{"StorageDead":9},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"kind":{"Goto":{"target":5}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":289,"col":4},"end":{"line":289,"col":5}},"generated_from_span":null},"kind":{"StorageDead":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":289,"col":4},"end":{"line":289,"col":5}},"generated_from_span":null},"kind":{"StorageDead":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":290,"col":4},"end":{"line":290,"col":5}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":283}},{"Use":{"Const":{"kind":{"Literal":{"Scalar":{"Signed":["I64","0"]}}},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":291,"col":0},"end":{"line":291,"col":1}},"generated_from_span":null},"kind":{"StorageDead":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":291,"col":0},"end":{"line":291,"col":1}},"generated_from_span":null},"kind":{"StorageDead":3},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":291,"col":1},"end":{"line":291,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":284,"col":0},"end":{"line":291,"col":1}},"generated_from_span":null},"kind":"UnwindResume","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":288,"col":69},"end":{"line":288,"col":70}},"generated_from_span":null},"kind":{"StorageDead":15},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":288,"col":69},"end":{"line":288,"col":70}},"generated_from_span":null},"kind":{"StorageDead":13},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":289,"col":4},"end":{"line":289,"col":5}},"generated_from_span":null},"kind":{"StorageDead":8},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":289,"col":4},"end":{"line":289,"col":5}},"generated_from_span":null},"kind":{"StorageDead":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":291,"col":0},"end":{"line":291,"col":1}},"generated_from_span":null},"kind":{"StorageDead":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":291,"col":0},"end":{"line":291,"col":1}},"generated_from_span":null},"kind":{"StorageDead":3},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":291,"col":1},"end":{"line":291,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}}],"comments":[]}}},{"def_id":17,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["host_registry_dispatch",0]}],"span":{"data":{"file_id":0,"beg":{"line":320,"col":0},"end":{"line":322,"col":1}},"generated_from_span":null},"source_text":"pub fn host_registry_dispatch(reg: &HostRegistry, x: i64) -> i64 {\n (reg.slot)(x)\n}","attr_info":{"attributes":[{"DocComment":" Call through the registered callback. `front::mir` lowers this to"},{"DocComment":" `OpKind::IndirectCall { graphs: None }` — `indirect_call` with an"},{"DocComment":" unknown PBC family, which `guess_call_kind` answers `residual` for"},{"DocComment":" (`call.py:105`/`137`, `jtransform.py:410-412`). The `__dyn_call`"},{"DocComment":" placeholder it used to reach is an unregistered synthetic path with no"},{"DocComment":" continuation."}],"inline":"Never","rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"HashConsedValue":[2134,{"Ref":[{"Var":{"Bound":[0,0]}},{"HashConsedValue":[2133,{"Adt":{"id":{"Adt":9},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}}]},"Shared"]}]},{"Deduplicated":283}],"output":{"Deduplicated":283}},"src":"TopLevel","is_global_initializer":null,"body":{"Unstructured":{"span":{"data":{"file_id":0,"beg":{"line":320,"col":0},"end":{"line":322,"col":1}},"generated_from_span":null},"bound_body_regions":2,"locals":{"arg_count":2,"locals":[{"index":0,"name":null,"span":{"data":{"file_id":0,"beg":{"line":320,"col":61},"end":{"line":320,"col":64}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":1,"name":"reg","span":{"data":{"file_id":0,"beg":{"line":320,"col":30},"end":{"line":320,"col":33}},"generated_from_span":null},"ty":{"HashConsedValue":[2137,{"Ref":[{"Body":1},{"Deduplicated":2133},"Shared"]}]}},{"index":2,"name":"x","span":{"data":{"file_id":0,"beg":{"line":320,"col":50},"end":{"line":320,"col":51}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":3,"name":null,"span":{"data":{"file_id":0,"beg":{"line":321,"col":4},"end":{"line":321,"col":14}},"generated_from_span":null},"ty":{"Deduplicated":2127}},{"index":4,"name":null,"span":{"data":{"file_id":0,"beg":{"line":321,"col":15},"end":{"line":321,"col":16}},"generated_from_span":null},"ty":{"Deduplicated":283}}]},"body":[{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":321,"col":4},"end":{"line":321,"col":14}},"generated_from_span":null},"kind":{"StorageLive":3},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":321,"col":4},"end":{"line":321,"col":14}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":3},"ty":{"Deduplicated":2127}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Projection":[{"kind":{"Local":1},"ty":{"Deduplicated":2137}},"Deref"]},"ty":{"Deduplicated":2133}},{"Field":[{"Adt":[9,null]},0]}]},"ty":{"Deduplicated":2127}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":321,"col":15},"end":{"line":321,"col":16}},"generated_from_span":null},"kind":{"StorageLive":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":321,"col":15},"end":{"line":321,"col":16}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":4},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Local":2},"ty":{"Deduplicated":283}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":321,"col":4},"end":{"line":321,"col":17}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Dynamic":{"Move":{"kind":{"Local":3},"ty":{"Deduplicated":2127}}}},"args":[{"Move":{"kind":{"Local":4},"ty":{"Deduplicated":283}}}],"dest":{"kind":{"Local":0},"ty":{"Deduplicated":283}}},"target":2,"on_unwind":1}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":320,"col":0},"end":{"line":322,"col":1}},"generated_from_span":null},"kind":"UnwindResume","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":321,"col":16},"end":{"line":321,"col":17}},"generated_from_span":null},"kind":{"StorageDead":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":321,"col":16},"end":{"line":321,"col":17}},"generated_from_span":null},"kind":{"StorageDead":3},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":322,"col":1},"end":{"line":322,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}}],"comments":[]}}},{"def_id":18,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["host_registry_dispatch_optional",0]}],"span":{"data":{"file_id":0,"beg":{"line":326,"col":0},"end":{"line":331,"col":1}},"generated_from_span":null},"source_text":"pub fn host_registry_dispatch_optional(reg: &HostRegistry, x: i64) -> i64 {\n match reg.maybe_slot {\n Some(f) => f(x),\n None => 0,\n }\n}","attr_info":{"attributes":[{"DocComment":" The one-hop `Option` spelling of the same shape."}],"inline":"Never","rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":2134},{"Deduplicated":283}],"output":{"Deduplicated":283}},"src":"TopLevel","is_global_initializer":null,"body":{"Unstructured":{"span":{"data":{"file_id":0,"beg":{"line":326,"col":0},"end":{"line":331,"col":1}},"generated_from_span":null},"bound_body_regions":2,"locals":{"arg_count":2,"locals":[{"index":0,"name":null,"span":{"data":{"file_id":0,"beg":{"line":326,"col":70},"end":{"line":326,"col":73}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":1,"name":"reg","span":{"data":{"file_id":0,"beg":{"line":326,"col":39},"end":{"line":326,"col":42}},"generated_from_span":null},"ty":{"Deduplicated":2137}},{"index":2,"name":"x","span":{"data":{"file_id":0,"beg":{"line":326,"col":59},"end":{"line":326,"col":60}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":3,"name":null,"span":{"data":{"file_id":0,"beg":{"line":328,"col":8},"end":{"line":328,"col":15}},"generated_from_span":null},"ty":{"Deduplicated":463}},{"index":4,"name":"f","span":{"data":{"file_id":0,"beg":{"line":328,"col":13},"end":{"line":328,"col":14}},"generated_from_span":null},"ty":{"Deduplicated":2127}},{"index":5,"name":null,"span":{"data":{"file_id":0,"beg":{"line":328,"col":19},"end":{"line":328,"col":20}},"generated_from_span":null},"ty":{"Deduplicated":2127}},{"index":6,"name":null,"span":{"data":{"file_id":0,"beg":{"line":328,"col":21},"end":{"line":328,"col":22}},"generated_from_span":null},"ty":{"Deduplicated":283}}]},"body":[{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":327,"col":10},"end":{"line":327,"col":24}},"generated_from_span":null},"kind":{"StorageLive":3},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":327,"col":10},"end":{"line":327,"col":24}},"generated_from_span":null},"kind":{"PlaceMention":{"kind":{"Projection":[{"kind":{"Projection":[{"kind":{"Local":1},"ty":{"Deduplicated":2137}},"Deref"]},"ty":{"Deduplicated":2133}},{"Field":[{"Adt":[9,null]},1]}]},"ty":{"Deduplicated":2131}}},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":327,"col":10},"end":{"line":327,"col":24}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":3},"ty":{"Deduplicated":463}},{"Discriminant":{"kind":{"Projection":[{"kind":{"Projection":[{"kind":{"Local":1},"ty":{"Deduplicated":2137}},"Deref"]},"ty":{"Deduplicated":2133}},{"Field":[{"Adt":[9,null]},1]}]},"ty":{"Deduplicated":2131}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":327,"col":4},"end":{"line":327,"col":24}},"generated_from_span":null},"kind":{"Switch":{"discr":{"Move":{"kind":{"Local":3},"ty":{"Deduplicated":463}}},"targets":{"SwitchInt":[{"Int":"Isize"},[[{"Scalar":{"Signed":["Isize","0"]}},1],[{"Scalar":{"Signed":["Isize","1"]}},2]],3]}}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":329,"col":16},"end":{"line":329,"col":17}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":283}},{"Use":{"Const":{"kind":{"Literal":{"Scalar":{"Signed":["I64","0"]}}},"ty":{"Deduplicated":283}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":331,"col":1},"end":{"line":331,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":328,"col":13},"end":{"line":328,"col":14}},"generated_from_span":null},"kind":{"StorageLive":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":328,"col":13},"end":{"line":328,"col":14}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":4},"ty":{"Deduplicated":2127}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Projection":[{"kind":{"Projection":[{"kind":{"Local":1},"ty":{"Deduplicated":2137}},"Deref"]},"ty":{"Deduplicated":2133}},{"Field":[{"Adt":[9,null]},1]}]},"ty":{"Deduplicated":2131}},{"Field":[{"Adt":[12,1]},0]}]},"ty":{"Deduplicated":2127}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":328,"col":19},"end":{"line":328,"col":20}},"generated_from_span":null},"kind":{"StorageLive":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":328,"col":19},"end":{"line":328,"col":20}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":5},"ty":{"Deduplicated":2127}},{"Use":{"Copy":{"kind":{"Local":4},"ty":{"Deduplicated":2127}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":328,"col":21},"end":{"line":328,"col":22}},"generated_from_span":null},"kind":{"StorageLive":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":328,"col":21},"end":{"line":328,"col":22}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":6},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Local":2},"ty":{"Deduplicated":283}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":328,"col":19},"end":{"line":328,"col":23}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Dynamic":{"Move":{"kind":{"Local":5},"ty":{"Deduplicated":2127}}}},"args":[{"Move":{"kind":{"Local":6},"ty":{"Deduplicated":283}}}],"dest":{"kind":{"Local":0},"ty":{"Deduplicated":283}}},"target":5,"on_unwind":4}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":327,"col":10},"end":{"line":327,"col":24}},"generated_from_span":null},"kind":{"Abort":"UndefinedBehavior"},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":326,"col":0},"end":{"line":331,"col":1}},"generated_from_span":null},"kind":"UnwindResume","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":328,"col":22},"end":{"line":328,"col":23}},"generated_from_span":null},"kind":{"StorageDead":6},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":328,"col":22},"end":{"line":328,"col":23}},"generated_from_span":null},"kind":{"StorageDead":5},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":328,"col":22},"end":{"line":328,"col":23}},"generated_from_span":null},"kind":{"StorageDead":4},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":331,"col":1},"end":{"line":331,"col":1}},"generated_from_span":null},"kind":"Return","comments_before":[]}}],"comments":[]}}},{"def_id":19,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":0}},{"Ident":["into_iter",0]}],"span":{"data":{"file_id":4,"beg":{"line":25,"col":4},"end":{"line":25,"col":37}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[{"index":0,"name":"'a","mutability":"Unknown"}],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":4,"beg":{"line":21,"col":9},"end":{"line":21,"col":10}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"HashConsedValue":[2156,{"Ref":[{"Var":{"Bound":[0,0]}},{"Deduplicated":1563},"Shared"]}]}],"output":{"HashConsedValue":[2179,{"Adt":{"id":{"Adt":11},"generics":{"regions":[{"Var":{"Bound":[0,0]}}],"types":[{"Deduplicated":272}],"const_generics":[],"trait_refs":[{"Deduplicated":275}]}}}]}},"src":{"TraitImpl":{"impl_ref":{"id":0,"generics":{"regions":[{"Var":{"Bound":[0,0]}}],"types":[{"Deduplicated":272}],"const_generics":[],"trait_refs":[{"Deduplicated":275}]}},"trait_ref":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":2156}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"reuses_default":true}},"is_global_initializer":null,"body":"Opaque"},{"def_id":20,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}},{"Ident":["next",0]}],"span":{"data":{"file_id":7,"beg":{"line":157,"col":12},"end":{"line":157,"col":47}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":"Hint","rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[{"index":0,"name":"'a","mutability":"Unknown"},{"index":1,"name":null,"mutability":"Unknown"}],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":7,"beg":{"line":153,"col":17},"end":{"line":153,"col":18}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"HashConsedValue":[7649,{"Ref":[{"Var":{"Bound":[0,1]}},{"Deduplicated":2179},"Mut"]}]}],"output":{"HashConsedValue":[7651,{"Adt":{"id":{"Adt":12},"generics":{"regions":[],"types":[{"HashConsedValue":[5042,{"Ref":[{"Var":{"Bound":[0,0]}},{"Deduplicated":272},"Shared"]}]}],"const_generics":[],"trait_refs":[{"HashConsedValue":[7650,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6682,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"HashConsedValue":[6681,{"Ref":["Erased",{"Deduplicated":240},"Shared"]}]}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[2164,{"Ref":[{"Var":{"Bound":[1,0]}},{"Deduplicated":240},"Shared"]}]}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},"src":{"TraitImpl":{"impl_ref":{"id":1,"generics":{"regions":[{"Var":{"Bound":[0,0]}}],"types":[{"Deduplicated":272}],"const_generics":[],"trait_refs":[{"Deduplicated":275}]}},"trait_ref":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":2179}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"reuses_default":true}},"is_global_initializer":null,"body":"Opaque"},{"def_id":21,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":2}},{"Ident":["into_iter",0]}],"span":{"data":{"file_id":8,"beg":{"line":54,"col":4},"end":{"line":54,"col":40}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Creates a consuming iterator, that is, one that moves each value out of"},{"DocComment":" the array (from start to end)."},{"DocComment":""},{"DocComment":" The array cannot be used after calling this unless `T` implements"},{"DocComment":" `Copy`, so the whole array is copied."},{"DocComment":""},{"DocComment":" Arrays have special behavior when calling `.into_iter()` prior to the"},{"DocComment":" 2021 edition -- see the [array] Editions section for more information."},{"DocComment":""},{"DocComment":" [array]: prim@array"}],"inline":"Hint","rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[{"index":0,"name":"N","ty":{"Deduplicated":827}}],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":8,"beg":{"line":39,"col":5},"end":{"line":39,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"HashConsedValue":[5047,{"Array":[{"Deduplicated":272},{"kind":{"Var":{"Bound":[0,0]}},"ty":{"Deduplicated":827}}]}]}],"output":{"HashConsedValue":[5060,{"Adt":{"id":{"Adt":13},"generics":{"regions":[],"types":[{"Deduplicated":272}],"const_generics":[{"kind":{"Var":{"Bound":[0,0]}},"ty":{"Deduplicated":827}}],"trait_refs":[{"Deduplicated":275}]}}}]}},"src":{"TraitImpl":{"impl_ref":{"id":2,"generics":{"regions":[],"types":[{"Deduplicated":272}],"const_generics":[{"kind":{"Var":{"Bound":[0,0]}},"ty":{"Deduplicated":827}}],"trait_refs":[{"Deduplicated":275}]}},"trait_ref":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":5047}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"reuses_default":true}},"is_global_initializer":null,"body":"Opaque"},{"def_id":22,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}},{"Ident":["next",0]}],"span":{"data":{"file_id":8,"beg":{"line":239,"col":4},"end":{"line":239,"col":44}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":"Hint","rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[{"index":0,"name":"T"}],"const_generics":[{"index":0,"name":"N","ty":{"Deduplicated":827}}],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":8,"beg":{"line":235,"col":5},"end":{"line":235,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"HashConsedValue":[7652,{"Ref":[{"Var":{"Bound":[0,0]}},{"Deduplicated":5060},"Mut"]}]}],"output":{"HashConsedValue":[3852,{"Adt":{"id":{"Adt":12},"generics":{"regions":[],"types":[{"Deduplicated":272}],"const_generics":[],"trait_refs":[{"Deduplicated":275}]}}}]}},"src":{"TraitImpl":{"impl_ref":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":272}],"const_generics":[{"kind":{"Var":{"Bound":[0,0]}},"ty":{"Deduplicated":827}}],"trait_refs":[{"Deduplicated":275}]}},"trait_ref":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":5060}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"reuses_default":true}},"is_global_initializer":null,"body":"Opaque"},{"def_id":23,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["Destruct",0]},{"Ident":["drop_in_place",0]}],"span":{"data":{"file_id":1,"beg":{"line":1063,"col":0},"end":{"line":1063,"col":38}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":true,"inputs":[{"HashConsedValue":[5275,{"RawPtr":[{"Deduplicated":272},"Mut"]}]}],"output":{"Deduplicated":297}},"src":{"TraitDecl":{"trait_ref":{"id":2,"generics":{"regions":[],"types":[{"Deduplicated":272}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"has_default":false}},"is_global_initializer":null,"body":"Opaque"},{"def_id":24,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Impl":{"Ty":{"params":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":5,"beg":{"line":101,"col":5},"end":{"line":101,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"Deduplicated":1563},"kind":"InherentImplBlock"}}},{"Ident":["iter",0]}],"span":{"data":{"file_id":5,"beg":{"line":1040,"col":4},"end":{"line":1040,"col":43}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Returns an iterator over the slice."},{"DocComment":""},{"DocComment":" The iterator yields all items from start to end."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let x = &[1, 2, 4];"},{"DocComment":" let mut iterator = x.iter();"},{"DocComment":""},{"DocComment":" assert_eq!(iterator.next(), Some(&1));"},{"DocComment":" assert_eq!(iterator.next(), Some(&2));"},{"DocComment":" assert_eq!(iterator.next(), Some(&4));"},{"DocComment":" assert_eq!(iterator.next(), None);"},{"DocComment":" ```"}],"inline":"Hint","rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"slice_iter"},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":5,"beg":{"line":101,"col":5},"end":{"line":101,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":2156}],"output":{"Deduplicated":2179}},"src":"TopLevel","is_global_initializer":null,"body":"Opaque"},{"def_id":25,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["collect",0]},{"Impl":{"Trait":5}},{"Ident":["into_iter",0]}],"span":{"data":{"file_id":13,"beg":{"line":322,"col":4},"end":{"line":322,"col":27}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":"Hint","rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"I"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":13,"beg":{"line":317,"col":5},"end":{"line":317,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":13,"beg":{"line":317,"col":8},"end":{"line":317,"col":24}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":272}],"output":{"Deduplicated":272}},"src":{"TraitImpl":{"impl_ref":{"id":5,"generics":{"regions":[],"types":[{"Deduplicated":272}],"const_generics":[],"trait_refs":[{"Deduplicated":275},{"HashConsedValue":[5282,{"kind":{"Clause":{"Bound":[0,1]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}]}]}},"trait_ref":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":272}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"reuses_default":true}},"is_global_initializer":null,"body":"Opaque"},{"def_id":26,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["result",0]},{"Impl":{"Trait":6}},{"Ident":["branch",0]}],"span":{"data":{"file_id":3,"beg":{"line":2172,"col":4},"end":{"line":2172,"col":64}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":"Hint","rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"T"},{"index":1,"name":"E"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":3,"beg":{"line":2162,"col":5},"end":{"line":2162,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":3,"beg":{"line":2162,"col":8},"end":{"line":2162,"col":9}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"HashConsedValue":[5294,{"Adt":{"id":{"Adt":10},"generics":{"regions":[],"types":[{"Deduplicated":272},{"Deduplicated":2143}],"const_generics":[],"trait_refs":[{"Deduplicated":275},{"HashConsedValue":[2766,{"kind":{"Clause":{"Bound":[0,1]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}],"output":{"HashConsedValue":[7653,{"Adt":{"id":{"Adt":14},"generics":{"regions":[],"types":[{"HashConsedValue":[5314,{"Adt":{"id":{"Adt":10},"generics":{"regions":[],"types":[{"Deduplicated":1335},{"Deduplicated":2143}],"const_generics":[],"trait_refs":[{"Deduplicated":1337},{"Deduplicated":2766}]}}}]},{"Deduplicated":272}],"const_generics":[],"trait_refs":[{"HashConsedValue":[5316,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[5315,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"HashConsedValue":[5300,{"Adt":{"id":{"Adt":10},"generics":{"regions":[],"types":[{"Deduplicated":1335},{"Deduplicated":2139}],"const_generics":[],"trait_refs":[{"Deduplicated":1337},{"HashConsedValue":[3155,{"kind":{"Clause":{"Bound":[1,1]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[2737,{"TypeVar":{"Bound":[2,1]}}]}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":5300}],"const_generics":[],"trait_refs":[]}}}}]},{"Deduplicated":275}]}}}]}},"src":{"TraitImpl":{"impl_ref":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":272},{"Deduplicated":2143}],"const_generics":[],"trait_refs":[{"Deduplicated":275},{"Deduplicated":2766}]}},"trait_ref":{"id":11,"generics":{"regions":[],"types":[{"Deduplicated":5294}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":1},"reuses_default":true}},"is_global_initializer":null,"body":"Opaque"},{"def_id":27,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["result",0]},{"Impl":{"Trait":7}},{"Ident":["from_residual",0]}],"span":{"data":{"file_id":3,"beg":{"line":2187,"col":4},"end":{"line":2187,"col":70}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":"Hint","rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"T"},{"index":1,"name":"E"},{"index":2,"name":"F"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":3,"beg":{"line":2182,"col":5},"end":{"line":2182,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":3,"beg":{"line":2182,"col":8},"end":{"line":2182,"col":9}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":2,"span":{"data":{"file_id":3,"beg":{"line":2182,"col":11},"end":{"line":2182,"col":12}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":3117}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":3,"span":{"data":{"file_id":3,"beg":{"line":2182,"col":14},"end":{"line":2182,"col":29}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":4,"generics":{"regions":[],"types":[{"Deduplicated":3117},{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":5314}],"output":{"HashConsedValue":[5318,{"Adt":{"id":{"Adt":10},"generics":{"regions":[],"types":[{"Deduplicated":272},{"HashConsedValue":[3130,{"TypeVar":{"Bound":[0,2]}}]}],"const_generics":[],"trait_refs":[{"Deduplicated":275},{"HashConsedValue":[3158,{"kind":{"Clause":{"Bound":[0,2]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":3117}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},"src":{"TraitImpl":{"impl_ref":{"id":7,"generics":{"regions":[],"types":[{"Deduplicated":272},{"Deduplicated":2143},{"Deduplicated":3130}],"const_generics":[],"trait_refs":[{"Deduplicated":275},{"Deduplicated":2766},{"Deduplicated":3158},{"HashConsedValue":[5319,{"kind":{"Clause":{"Bound":[0,3]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":4,"generics":{"regions":[],"types":[{"Deduplicated":3117},{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}]}]}},"trait_ref":{"id":24,"generics":{"regions":[],"types":[{"Deduplicated":5318},{"Deduplicated":5314}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"reuses_default":true}},"is_global_initializer":null,"body":"Opaque"},{"def_id":28,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["bool",0]},{"Impl":{"Ty":{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"Deduplicated":287},"kind":"InherentImplBlock"}}},{"Ident":["then",0]}],"span":{"data":{"file_id":17,"beg":{"line":65,"col":4},"end":{"line":65,"col":94}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Returns `Some(f())` if the `bool` is [`true`](../std/keyword.true.html),"},{"DocComment":" or `None` otherwise."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" assert_eq!(false.then(|| 0), None);"},{"DocComment":" assert_eq!(true.then(|| 0), Some(0));"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let mut a = 0;"},{"DocComment":""},{"DocComment":" true.then(|| { a += 1; });"},{"DocComment":" false.then(|| { a += 1; });"},{"DocComment":""},{"DocComment":" // `a` is incremented once because the closure is evaluated lazily by"},{"DocComment":" // `then`."},{"DocComment":" assert_eq!(a, 1);"},{"DocComment":" ```"}],"inline":"Hint","rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"bool_then"},"generics":{"regions":[],"types":[{"index":0,"name":"T"},{"index":1,"name":"F"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":17,"beg":{"line":65,"col":22},"end":{"line":65,"col":23}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":17,"beg":{"line":65,"col":25},"end":{"line":65,"col":26}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":2,"span":{"data":{"file_id":17,"beg":{"line":65,"col":28},"end":{"line":65,"col":49}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":5,"generics":{"regions":[],"types":[{"Deduplicated":2139},{"Deduplicated":297}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":3,"span":{"data":{"file_id":17,"beg":{"line":65,"col":52},"end":{"line":65,"col":68}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":2,"generics":{"regions":[],"types":[{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[{"regions":[],"skip_binder":{"trait_ref":{"HashConsedValue":[7445,{"kind":{"Clause":{"Bound":[1,2]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":5,"generics":{"regions":[],"types":[{"Deduplicated":2737},{"Deduplicated":297}],"const_generics":[],"trait_refs":[]}}}}]},"type_id":0,"ty":{"Deduplicated":240}}}]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":287},{"Deduplicated":2143}],"output":{"Deduplicated":3852}},"src":"TopLevel","is_global_initializer":null,"body":"Opaque"},{"def_id":29,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["bool",0]},{"Impl":{"Ty":{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"Deduplicated":287},"kind":"InherentImplBlock"}}},{"Ident":["then_some",0]}],"span":{"data":{"file_id":17,"beg":{"line":36,"col":4},"end":{"line":36,"col":72}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Returns `Some(t)` if the `bool` is [`true`](../std/keyword.true.html),"},{"DocComment":" or `None` otherwise."},{"DocComment":""},{"DocComment":" Arguments passed to `then_some` are eagerly evaluated; if you are"},{"DocComment":" passing the result of a function call, it is recommended to use"},{"DocComment":" [`then`], which is lazily evaluated."},{"DocComment":""},{"DocComment":" [`then`]: bool::then"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" assert_eq!(false.then_some(0), None);"},{"DocComment":" assert_eq!(true.then_some(0), Some(0));"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let mut a = 0;"},{"DocComment":" let mut function_with_side_effects = || { a += 1; };"},{"DocComment":""},{"DocComment":" true.then_some(function_with_side_effects());"},{"DocComment":" false.then_some(function_with_side_effects());"},{"DocComment":""},{"DocComment":" // `a` is incremented twice because the value passed to `then_some` is"},{"DocComment":" // evaluated eagerly."},{"DocComment":" assert_eq!(a, 2);"},{"DocComment":" ```"}],"inline":"Hint","rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":17,"beg":{"line":36,"col":27},"end":{"line":36,"col":28}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":17,"beg":{"line":36,"col":30},"end":{"line":36,"col":46}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":2,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":287},{"Deduplicated":272}],"output":{"Deduplicated":3852}},"src":"TopLevel","is_global_initializer":null,"body":"Opaque"},{"def_id":30,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["option",0]},{"Impl":{"Trait":11}},{"Ident":["branch",0]}],"span":{"data":{"file_id":6,"beg":{"line":2765,"col":4},"end":{"line":2765,"col":64}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":"Hint","rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":6,"beg":{"line":2755,"col":5},"end":{"line":2755,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":3852}],"output":{"HashConsedValue":[7654,{"Adt":{"id":{"Adt":14},"generics":{"regions":[],"types":[{"Deduplicated":2023},{"Deduplicated":272}],"const_generics":[],"trait_refs":[{"Deduplicated":2025},{"Deduplicated":275}]}}}]}},"src":{"TraitImpl":{"impl_ref":{"id":11,"generics":{"regions":[],"types":[{"Deduplicated":272}],"const_generics":[],"trait_refs":[{"Deduplicated":275}]}},"trait_ref":{"id":11,"generics":{"regions":[],"types":[{"Deduplicated":3852}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":1},"reuses_default":true}},"is_global_initializer":null,"body":"Opaque"},{"def_id":31,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["option",0]},{"Impl":{"Trait":12}},{"Ident":["from_residual",0]}],"span":{"data":{"file_id":6,"beg":{"line":2779,"col":4},"end":{"line":2779,"col":67}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":"Hint","rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":6,"beg":{"line":2777,"col":5},"end":{"line":2777,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":2023}],"output":{"Deduplicated":3852}},"src":{"TraitImpl":{"impl_ref":{"id":12,"generics":{"regions":[],"types":[{"Deduplicated":272}],"const_generics":[],"trait_refs":[{"Deduplicated":275}]}},"trait_ref":{"id":24,"generics":{"regions":[],"types":[{"Deduplicated":3852},{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"reuses_default":true}},"is_global_initializer":null,"body":"Opaque"},{"def_id":32,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["INT_CLASS",0]}],"span":{"data":{"file_id":0,"beg":{"line":206,"col":0},"end":{"line":209,"col":2}},"generated_from_span":null},"source_text":"pub static INT_CLASS: ClassObject = ClassObject {\n name: \"int\",\n kind: 1,\n};","attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[],"output":{"Deduplicated":2066}},"src":"TopLevel","is_global_initializer":0,"body":{"Unstructured":{"span":{"data":{"file_id":0,"beg":{"line":206,"col":0},"end":{"line":209,"col":2}},"generated_from_span":null},"bound_body_regions":2,"locals":{"arg_count":0,"locals":[{"index":0,"name":null,"span":{"data":{"file_id":0,"beg":{"line":206,"col":22},"end":{"line":206,"col":33}},"generated_from_span":null},"ty":{"Deduplicated":2066}}]},"body":[{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":206,"col":36},"end":{"line":209,"col":1}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":2066}},{"Aggregate":[{"Adt":[{"id":{"Adt":3},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}},null,null]},[{"Const":{"kind":{"Literal":{"Str":"int"}},"ty":{"HashConsedValue":[1162,{"Ref":[{"Body":1},{"Deduplicated":273},"Shared"]}]}}},{"Const":{"kind":{"Literal":{"Scalar":{"Unsigned":["U8","1"]}}},"ty":{"Deduplicated":2064}}}]]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":206,"col":0},"end":{"line":209,"col":2}},"generated_from_span":null},"kind":"Return","comments_before":[]}}],"comments":[]}}},{"def_id":33,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["DOUBLE_CLASS",0]}],"span":{"data":{"file_id":0,"beg":{"line":210,"col":0},"end":{"line":213,"col":2}},"generated_from_span":null},"source_text":"pub static DOUBLE_CLASS: ClassObject = ClassObject {\n name: \"double\",\n kind: 2,\n};","attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[],"output":{"Deduplicated":2066}},"src":"TopLevel","is_global_initializer":1,"body":{"Unstructured":{"span":{"data":{"file_id":0,"beg":{"line":210,"col":0},"end":{"line":213,"col":2}},"generated_from_span":null},"bound_body_regions":2,"locals":{"arg_count":0,"locals":[{"index":0,"name":null,"span":{"data":{"file_id":0,"beg":{"line":210,"col":25},"end":{"line":210,"col":36}},"generated_from_span":null},"ty":{"Deduplicated":2066}}]},"body":[{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":210,"col":39},"end":{"line":213,"col":1}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":2066}},{"Aggregate":[{"Adt":[{"id":{"Adt":3},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}},null,null]},[{"Const":{"kind":{"Literal":{"Str":"double"}},"ty":{"Deduplicated":1162}}},{"Const":{"kind":{"Literal":{"Scalar":{"Unsigned":["U8","2"]}}},"ty":{"Deduplicated":2064}}}]]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":210,"col":0},"end":{"line":213,"col":2}},"generated_from_span":null},"kind":"Return","comments_before":[]}}],"comments":[]}}},{"def_id":34,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["lltype",0]},{"Ident":["malloc_typed",0]}],"span":{"data":{"file_id":0,"beg":{"line":221,"col":4},"end":{"line":223,"col":5}},"generated_from_span":null},"source_text":"pub fn malloc_typed(value: T) -> *mut T {\n Box::into_raw(Box::new(value))\n }","attr_info":{"attributes":[],"inline":"Never","rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":0,"beg":{"line":221,"col":24},"end":{"line":221,"col":25}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":272}],"output":{"Deduplicated":5275}},"src":"TopLevel","is_global_initializer":null,"body":{"Unstructured":{"span":{"data":{"file_id":0,"beg":{"line":221,"col":4},"end":{"line":223,"col":5}},"generated_from_span":null},"bound_body_regions":0,"locals":{"arg_count":1,"locals":[{"index":0,"name":null,"span":{"data":{"file_id":0,"beg":{"line":221,"col":40},"end":{"line":221,"col":46}},"generated_from_span":null},"ty":{"Deduplicated":5275}},{"index":1,"name":"value","span":{"data":{"file_id":0,"beg":{"line":221,"col":27},"end":{"line":221,"col":32}},"generated_from_span":null},"ty":{"Deduplicated":272}},{"index":2,"name":null,"span":{"data":{"file_id":0,"beg":{"line":222,"col":22},"end":{"line":222,"col":37}},"generated_from_span":null},"ty":{"Deduplicated":5462}},{"index":3,"name":null,"span":{"data":{"file_id":0,"beg":{"line":222,"col":31},"end":{"line":222,"col":36}},"generated_from_span":null},"ty":{"Deduplicated":272}}]},"body":[{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":222,"col":22},"end":{"line":222,"col":37}},"generated_from_span":null},"kind":{"StorageLive":2},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":222,"col":31},"end":{"line":222,"col":36}},"generated_from_span":null},"kind":{"StorageLive":3},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":222,"col":31},"end":{"line":222,"col":36}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":3},"ty":{"Deduplicated":272}},{"Use":{"Move":{"kind":{"Local":1},"ty":{"Deduplicated":272}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":222,"col":22},"end":{"line":222,"col":37}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":{"Regular":274}},"generics":{"regions":[],"types":[{"Deduplicated":272}],"const_generics":[],"trait_refs":[{"Deduplicated":275}]}}},"args":[{"Move":{"kind":{"Local":3},"ty":{"Deduplicated":272}}}],"dest":{"kind":{"Local":2},"ty":{"Deduplicated":5462}}},"target":2,"on_unwind":1}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":222,"col":36},"end":{"line":222,"col":37}},"generated_from_span":null},"kind":{"Drop":{"kind":"Conditional","place":{"kind":{"Local":3},"ty":{"Deduplicated":272}},"fn_ptr":{"kind":{"Trait":[{"HashConsedValue":[5482,{"kind":{"BuiltinOrAuto":{"builtin_data":"UntrackedDestruct","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":2,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}]},0,23]},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}},"target":3,"on_unwind":4}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":222,"col":36},"end":{"line":222,"col":37}},"generated_from_span":null},"kind":{"StorageDead":3},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":222,"col":8},"end":{"line":222,"col":38}},"generated_from_span":null},"kind":{"Call":{"call":{"func":{"Regular":{"kind":{"Fun":{"Regular":275}},"generics":{"regions":[],"types":[{"Deduplicated":272}],"const_generics":[],"trait_refs":[{"Deduplicated":5284}]}}},"args":[{"Move":{"kind":{"Local":2},"ty":{"Deduplicated":5462}}}],"dest":{"kind":{"Local":0},"ty":{"Deduplicated":5275}}},"target":6,"on_unwind":5}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":223,"col":4},"end":{"line":223,"col":5}},"generated_from_span":null},"kind":{"Drop":{"kind":"Conditional","place":{"kind":{"Local":1},"ty":{"Deduplicated":272}},"fn_ptr":{"kind":{"Trait":[{"Deduplicated":5482},0,23]},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}},"target":7,"on_unwind":8}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":222,"col":36},"end":{"line":222,"col":37}},"generated_from_span":null},"kind":{"Abort":"UnwindTerminate"},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":222,"col":37},"end":{"line":222,"col":38}},"generated_from_span":null},"kind":{"Drop":{"kind":"Conditional","place":{"kind":{"Local":2},"ty":{"Deduplicated":5462}},"fn_ptr":{"kind":{"Fun":{"Regular":329}},"generics":{"regions":[],"types":[{"Deduplicated":272},{"Deduplicated":5432}],"const_generics":[],"trait_refs":[{"Deduplicated":5284},{"Deduplicated":5434},{"Deduplicated":5461}]}},"target":3,"on_unwind":9}},"comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":222,"col":37},"end":{"line":222,"col":38}},"generated_from_span":null},"kind":{"StorageDead":2},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":223,"col":4},"end":{"line":223,"col":5}},"generated_from_span":null},"kind":{"Drop":{"kind":"Conditional","place":{"kind":{"Local":1},"ty":{"Deduplicated":272}},"fn_ptr":{"kind":{"Trait":[{"Deduplicated":5482},0,23]},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}},"target":10,"on_unwind":7}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":221,"col":4},"end":{"line":223,"col":5}},"generated_from_span":null},"kind":"UnwindResume","comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":223,"col":4},"end":{"line":223,"col":5}},"generated_from_span":null},"kind":{"Abort":"UnwindTerminate"},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":222,"col":37},"end":{"line":222,"col":38}},"generated_from_span":null},"kind":{"Abort":"UnwindTerminate"},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":223,"col":5},"end":{"line":223,"col":5}},"generated_from_span":null},"kind":"Return","comments_before":[]}}],"comments":[]}}},{"def_id":35,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["pyre_object",0]},{"Ident":["pyobject",0]},{"Ident":["get_instantiate",0]}],"span":{"data":{"file_id":0,"beg":{"line":237,"col":8},"end":{"line":239,"col":9}},"generated_from_span":null},"source_text":"pub fn get_instantiate(tp: &ClassObject) -> *const ClassObject {\n tp\n }","attr_info":{"attributes":[],"inline":"Never","rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"HashConsedValue":[7655,{"Ref":[{"Var":{"Bound":[0,0]}},{"Deduplicated":2066},"Shared"]}]}],"output":{"Deduplicated":2067}},"src":"TopLevel","is_global_initializer":null,"body":{"Unstructured":{"span":{"data":{"file_id":0,"beg":{"line":237,"col":8},"end":{"line":239,"col":9}},"generated_from_span":null},"bound_body_regions":2,"locals":{"arg_count":1,"locals":[{"index":0,"name":null,"span":{"data":{"file_id":0,"beg":{"line":237,"col":52},"end":{"line":237,"col":70}},"generated_from_span":null},"ty":{"Deduplicated":2067}},{"index":1,"name":"tp","span":{"data":{"file_id":0,"beg":{"line":237,"col":31},"end":{"line":237,"col":33}},"generated_from_span":null},"ty":{"Deduplicated":2090}}]},"body":[{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":238,"col":12},"end":{"line":238,"col":14}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":2067}},{"RawPtr":{"place":{"kind":{"Projection":[{"kind":{"Local":1},"ty":{"Deduplicated":2090}},"Deref"]},"ty":{"Deduplicated":2066}},"kind":"Shared","ptr_metadata":{"Const":{"kind":{"Adt":[null,[]]},"ty":{"Deduplicated":297}}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":239,"col":9},"end":{"line":239,"col":9}},"generated_from_span":null},"kind":"Return","comments_before":[]}}],"comments":[]}}},{"def_id":36,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["_immutable_fields_W_IntObject",0]}],"span":{"data":{"file_id":0,"beg":{"line":298,"col":0},"end":{"line":298,"col":57}},"generated_from_span":null},"source_text":"pub const _immutable_fields_W_IntObject: &str = \"intval\";","attr_info":{"attributes":[{"DocComment":" Premise 4: the immutability marker `harvest_immutable_fields_from_llbcs`"},{"DocComment":" reads (`front/llbc_hints.rs:148` `_immutable_fields_` prefix). Written by"},{"DocComment":" hand rather than through `#[jit_immutable_fields]` so the corpus keeps"},{"DocComment":" its zero-dependency manifest."},{"Unknown":{"path":"allow","args":"non_upper_case_globals"}}],"inline":null,"rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[],"output":{"Deduplicated":274}},"src":"TopLevel","is_global_initializer":2,"body":{"Unstructured":{"span":{"data":{"file_id":0,"beg":{"line":298,"col":0},"end":{"line":298,"col":57}},"generated_from_span":null},"bound_body_regions":3,"locals":{"arg_count":0,"locals":[{"index":0,"name":null,"span":{"data":{"file_id":0,"beg":{"line":298,"col":41},"end":{"line":298,"col":45}},"generated_from_span":null},"ty":{"Deduplicated":1162}}]},"body":[{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":298,"col":48},"end":{"line":298,"col":56}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":1162}},{"Use":{"Const":{"kind":{"Literal":{"Str":"intval"}},"ty":{"HashConsedValue":[7656,{"Ref":[{"Body":2},{"Deduplicated":273},"Shared"]}]}}}}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":298,"col":0},"end":{"line":298,"col":57}},"generated_from_span":null},"kind":"Return","comments_before":[]}}],"comments":[]}}},null,null,null,null,null,null,null,{"def_id":44,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]},{"Ident":["next",0]}],"span":{"data":{"file_id":16,"beg":{"line":77,"col":4},"end":{"line":77,"col":45}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Advances the iterator and returns the next value."},{"DocComment":""},{"DocComment":" Returns [`None`] when iteration is finished. Individual iterator"},{"DocComment":" implementations may choose to resume iteration, and so calling `next()`"},{"DocComment":" again may or may not eventually start returning [`Some(Item)`] again at some"},{"DocComment":" point."},{"DocComment":""},{"DocComment":" [`Some(Item)`]: Some"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let a = [1, 2, 3];"},{"DocComment":""},{"DocComment":" let mut iter = a.into_iter();"},{"DocComment":""},{"DocComment":" // A call to next() returns the next value..."},{"DocComment":" assert_eq!(Some(1), iter.next());"},{"DocComment":" assert_eq!(Some(2), iter.next());"},{"DocComment":" assert_eq!(Some(3), iter.next());"},{"DocComment":""},{"DocComment":" // ... and then None once it's over."},{"DocComment":" assert_eq!(None, iter.next());"},{"DocComment":""},{"DocComment":" // More calls may or may not return `None`. Here, they always will."},{"DocComment":" assert_eq!(None, iter.next());"},{"DocComment":" assert_eq!(None, iter.next());"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"next"},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"HashConsedValue":[3470,{"Ref":[{"Var":{"Bound":[0,0]}},{"Deduplicated":272},"Mut"]}]}],"output":{"HashConsedValue":[7660,{"Adt":{"id":{"Adt":12},"generics":{"regions":[],"types":[{"HashConsedValue":[7657,{"TraitType":[{"HashConsedValue":[5526,{"kind":{"Clause":{"Bound":[0,0]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}]},0]}]}],"const_generics":[],"trait_refs":[{"HashConsedValue":[7659,{"kind":{"ParentClause":[{"Deduplicated":5526},1]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[7658,{"TraitType":[{"HashConsedValue":[6850,{"kind":{"Clause":{"Bound":[1,0]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":2165}],"const_generics":[],"trait_refs":[]}}}}]},0]}]}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},"src":{"TraitDecl":{"trait_ref":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":272}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"has_default":false}},"is_global_initializer":null,"body":"Opaque"},null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,{"def_id":266,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Ident":["IntoIter",0]},{"Impl":{"Trait":4}},{"Ident":["drop_in_place",0]}],"span":{"data":{"file_id":8,"beg":{"line":20,"col":0},"end":{"line":20,"col":38}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[{"index":0,"name":"N","ty":{"Deduplicated":827}}],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":8,"beg":{"line":20,"col":20},"end":{"line":20,"col":21}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":true,"inputs":[{"HashConsedValue":[7661,{"RawPtr":[{"Deduplicated":5060},"Mut"]}]}],"output":{"Deduplicated":297}},"src":{"TraitImpl":{"impl_ref":{"id":4,"generics":{"regions":[],"types":[{"Deduplicated":272}],"const_generics":[{"kind":{"Var":{"Bound":[0,0]}},"ty":{"Deduplicated":827}}],"trait_refs":[{"Deduplicated":275}]}},"trait_ref":{"id":2,"generics":{"regions":[],"types":[{"Deduplicated":5060}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"reuses_default":false}},"is_global_initializer":null,"body":"Opaque"},{"def_id":267,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["result",0]},{"Impl":{"Trait":6}},{"Ident":["from_output",0]}],"span":{"data":{"file_id":3,"beg":{"line":2167,"col":4},"end":{"line":2167,"col":48}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":"Hint","rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"T"},{"index":1,"name":"E"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":3,"beg":{"line":2162,"col":5},"end":{"line":2162,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":3,"beg":{"line":2162,"col":8},"end":{"line":2162,"col":9}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":272}],"output":{"Deduplicated":5294}},"src":{"TraitImpl":{"impl_ref":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":272},{"Deduplicated":2143}],"const_generics":[],"trait_refs":[{"Deduplicated":275},{"Deduplicated":2766}]}},"trait_ref":{"id":11,"generics":{"regions":[],"types":[{"Deduplicated":5294}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"reuses_default":true}},"is_global_initializer":null,"body":"Opaque"},{"def_id":268,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["convert",0]},{"Ident":["From",0]},{"Ident":["from",0]}],"span":{"data":{"file_id":12,"beg":{"line":592,"col":4},"end":{"line":592,"col":30}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Converts to this type from the input type."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"from_fn"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"},{"index":1,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":4,"generics":{"regions":[],"types":[{"Deduplicated":240},{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":2143}],"output":{"Deduplicated":272}},"src":{"TraitDecl":{"trait_ref":{"id":4,"generics":{"regions":[],"types":[{"Deduplicated":272},{"Deduplicated":2143}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"has_default":false}},"is_global_initializer":null,"body":"Opaque"},{"def_id":269,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["convert",0]},{"Impl":{"Trait":8}},{"Ident":["from",0]}],"span":{"data":{"file_id":12,"beg":{"line":788,"col":4},"end":{"line":788,"col":22}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Returns the argument unchanged."}],"inline":"Always","rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":12,"beg":{"line":785,"col":5},"end":{"line":785,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":272}],"output":{"Deduplicated":272}},"src":{"TraitImpl":{"impl_ref":{"id":8,"generics":{"regions":[],"types":[{"Deduplicated":272}],"const_generics":[],"trait_refs":[{"Deduplicated":275}]}},"trait_ref":{"id":4,"generics":{"regions":[],"types":[{"Deduplicated":272},{"Deduplicated":272}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"reuses_default":true}},"is_global_initializer":null,"body":"Opaque"},{"def_id":270,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["bool_then_closure",0]},{"Impl":{"Trait":9}},{"Ident":["call_once",0]}],"span":{"data":{"file_id":0,"beg":{"line":126,"col":11},"end":{"line":126,"col":19}},"generated_from_span":null},"source_text":"|| x + 1","attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"HashConsedValue":[5334,{"Adt":{"id":{"Adt":16},"generics":{"regions":[{"Var":{"Bound":[0,0]}}],"types":[],"const_generics":[],"trait_refs":[]}}}]},{"Deduplicated":297}],"output":{"Deduplicated":283}},"src":{"TraitImpl":{"impl_ref":{"id":9,"generics":{"regions":[{"Var":{"Bound":[0,0]}}],"types":[],"const_generics":[],"trait_refs":[]}},"trait_ref":{"id":5,"generics":{"regions":[],"types":[{"Deduplicated":5334},{"Deduplicated":297}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"reuses_default":false}},"is_global_initializer":null,"body":{"Unstructured":{"span":{"data":{"file_id":0,"beg":{"line":126,"col":11},"end":{"line":126,"col":19}},"generated_from_span":null},"bound_body_regions":1,"locals":{"arg_count":2,"locals":[{"index":0,"name":null,"span":{"data":{"file_id":0,"beg":{"line":126,"col":13},"end":{"line":126,"col":13}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":1,"name":null,"span":{"data":{"file_id":0,"beg":{"line":126,"col":11},"end":{"line":126,"col":19}},"generated_from_span":null},"ty":{"Deduplicated":5334}},{"index":2,"name":"tupled_args","span":{"data":{"file_id":0,"beg":{"line":0,"col":0},"end":{"line":0,"col":0}},"generated_from_span":null},"ty":{"Deduplicated":297}},{"index":3,"name":null,"span":{"data":{"file_id":0,"beg":{"line":126,"col":14},"end":{"line":126,"col":15}},"generated_from_span":null},"ty":{"Deduplicated":283}},{"index":4,"name":null,"span":{"data":{"file_id":0,"beg":{"line":126,"col":14},"end":{"line":126,"col":19}},"generated_from_span":null},"ty":{"Deduplicated":288}}]},"body":[{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":126,"col":14},"end":{"line":126,"col":15}},"generated_from_span":null},"kind":{"StorageLive":4},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":126,"col":14},"end":{"line":126,"col":15}},"generated_from_span":null},"kind":{"StorageLive":3},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":126,"col":14},"end":{"line":126,"col":15}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":3},"ty":{"Deduplicated":283}},{"Use":{"Copy":{"kind":{"Projection":[{"kind":{"Projection":[{"kind":{"Local":1},"ty":{"Deduplicated":5334}},{"Field":[{"Adt":[16,null]},0]}]},"ty":{"HashConsedValue":[7662,{"Ref":[{"Body":0},{"Deduplicated":283},"Shared"]}]}},"Deref"]},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":126,"col":14},"end":{"line":126,"col":19}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":4},"ty":{"Deduplicated":288}},{"BinaryOp":["AddChecked",{"Copy":{"kind":{"Local":3},"ty":{"Deduplicated":283}}},{"Const":{"kind":{"Literal":{"Scalar":{"Signed":["I64","1"]}}},"ty":{"Deduplicated":283}}}]}]},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":126,"col":14},"end":{"line":126,"col":19}},"generated_from_span":null},"kind":{"Assert":{"assert":{"cond":{"Move":{"kind":{"Projection":[{"kind":{"Local":4},"ty":{"Deduplicated":288}},{"Field":[{"Tuple":2},1]}]},"ty":{"Deduplicated":287}}},"expected":false,"check_kind":{"Overflow":[{"Add":"Wrap"},{"Move":{"kind":{"Local":3},"ty":{"Deduplicated":283}}},{"Const":{"kind":{"Literal":{"Scalar":{"Signed":["I64","1"]}}},"ty":{"Deduplicated":283}}}]}},"target":2,"on_unwind":1}},"comments_before":[]}},{"statements":[],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":126,"col":11},"end":{"line":126,"col":19}},"generated_from_span":null},"kind":"UnwindResume","comments_before":[]}},{"statements":[{"span":{"data":{"file_id":0,"beg":{"line":126,"col":14},"end":{"line":126,"col":19}},"generated_from_span":null},"kind":{"Assign":[{"kind":{"Local":0},"ty":{"Deduplicated":283}},{"Use":{"Move":{"kind":{"Projection":[{"kind":{"Local":4},"ty":{"Deduplicated":288}},{"Field":[{"Tuple":2},0]}]},"ty":{"Deduplicated":283}}}}]},"comments_before":[]},{"span":{"data":{"file_id":0,"beg":{"line":126,"col":18},"end":{"line":126,"col":19}},"generated_from_span":null},"kind":{"StorageDead":3},"comments_before":[]}],"terminator":{"span":{"data":{"file_id":0,"beg":{"line":126,"col":19},"end":{"line":126,"col":19}},"generated_from_span":null},"kind":"Return","comments_before":[]}}],"comments":[]}}},{"def_id":271,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["function",0]},{"Ident":["FnOnce",0]},{"Ident":["call_once",0]}],"span":{"data":{"file_id":18,"beg":{"line":250,"col":4},"end":{"line":250,"col":70}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Performs the call operation."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"Self"},{"index":1,"name":"Args"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":5,"generics":{"regions":[],"types":[{"Deduplicated":240},{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":272},{"Deduplicated":2143}],"output":{"HashConsedValue":[7664,{"TraitType":[{"HashConsedValue":[7663,{"kind":{"Clause":{"Bound":[0,0]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":5,"generics":{"regions":[],"types":[{"Deduplicated":240},{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}]},0]}]}},"src":{"TraitDecl":{"trait_ref":{"id":5,"generics":{"regions":[],"types":[{"Deduplicated":272},{"Deduplicated":2143}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"has_default":false}},"is_global_initializer":null,"body":"Opaque"},{"def_id":272,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["bool_then_closure",0]},{"Ident":["closure",0]},{"Impl":{"Trait":10}},{"Ident":["drop_in_place",0]}],"span":{"data":{"file_id":0,"beg":{"line":126,"col":11},"end":{"line":126,"col":19}},"generated_from_span":null},"source_text":"|| x + 1","attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":true,"inputs":[{"HashConsedValue":[7665,{"RawPtr":[{"Deduplicated":5334},"Mut"]}]}],"output":{"Deduplicated":297}},"src":{"TraitImpl":{"impl_ref":{"id":10,"generics":{"regions":[{"Var":{"Bound":[0,0]}}],"types":[],"const_generics":[],"trait_refs":[]}},"trait_ref":{"id":2,"generics":{"regions":[],"types":[{"Deduplicated":5334}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"reuses_default":false}},"is_global_initializer":null,"body":"Missing"},{"def_id":273,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["option",0]},{"Impl":{"Trait":11}},{"Ident":["from_output",0]}],"span":{"data":{"file_id":6,"beg":{"line":2760,"col":4},"end":{"line":2760,"col":48}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":"Hint","rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":6,"beg":{"line":2755,"col":5},"end":{"line":2755,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":272}],"output":{"Deduplicated":3852}},"src":{"TraitImpl":{"impl_ref":{"id":11,"generics":{"regions":[],"types":[{"Deduplicated":272}],"const_generics":[],"trait_refs":[{"Deduplicated":275}]}},"trait_ref":{"id":11,"generics":{"regions":[],"types":[{"Deduplicated":3852}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"reuses_default":true}},"is_global_initializer":null,"body":"Opaque"},{"def_id":274,"item_meta":{"name":[{"Ident":["alloc",0]},{"Ident":["boxed",0]},{"Impl":{"Ty":{"params":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":53,"beg":{"line":269,"col":5},"end":{"line":269,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"Deduplicated":5462},"kind":"InherentImplBlock"}}},{"Ident":["new",0]}],"span":{"data":{"file_id":53,"beg":{"line":285,"col":4},"end":{"line":285,"col":28}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Allocates memory on the heap and then places `x` into it."},{"DocComment":""},{"DocComment":" This doesn't actually allocate if `T` is zero-sized."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let five = Box::new(5);"},{"DocComment":" ```"}],"inline":"Always","rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"box_new"},"generics":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":53,"beg":{"line":269,"col":5},"end":{"line":269,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":272}],"output":{"Deduplicated":5462}},"src":"TopLevel","is_global_initializer":null,"body":"Opaque"},{"def_id":275,"item_meta":{"name":[{"Ident":["alloc",0]},{"Ident":["boxed",0]},{"Impl":{"Ty":{"params":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":53,"beg":{"line":1263,"col":5},"end":{"line":1263,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"Deduplicated":5496},"kind":"InherentImplBlock"}}},{"Ident":["into_raw",0]}],"span":{"data":{"file_id":53,"beg":{"line":1417,"col":4},"end":{"line":1417,"col":38}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Consumes the `Box`, returning a wrapped raw pointer."},{"DocComment":""},{"DocComment":" The pointer will be properly aligned and non-null."},{"DocComment":""},{"DocComment":" After calling this function, the caller is responsible for the"},{"DocComment":" memory previously managed by the `Box`. In particular, the"},{"DocComment":" caller should properly destroy `T` and release the memory, taking"},{"DocComment":" into account the [memory layout] used by `Box`. The easiest way to"},{"DocComment":" do this is to convert the raw pointer back into a `Box` with the"},{"DocComment":" [`Box::from_raw`] function, allowing the `Box` destructor to perform"},{"DocComment":" the cleanup."},{"DocComment":""},{"DocComment":" Note: this is an associated function, which means that you have"},{"DocComment":" to call it as `Box::into_raw(b)` instead of `b.into_raw()`. This"},{"DocComment":" is so that there is no conflict with a method on the inner type."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":" Converting the raw pointer back into a `Box` with [`Box::from_raw`]"},{"DocComment":" for automatic cleanup:"},{"DocComment":" ```"},{"DocComment":" let x = Box::new(String::from(\"Hello\"));"},{"DocComment":" let ptr = Box::into_raw(x);"},{"DocComment":" let x = unsafe { Box::from_raw(ptr) };"},{"DocComment":" ```"},{"DocComment":" Manual cleanup by explicitly running the destructor and deallocating"},{"DocComment":" the memory:"},{"DocComment":" ```"},{"DocComment":" use std::alloc::{dealloc, Layout};"},{"DocComment":" use std::ptr;"},{"DocComment":""},{"DocComment":" let x = Box::new(String::from(\"Hello\"));"},{"DocComment":" let ptr = Box::into_raw(x);"},{"DocComment":" unsafe {"},{"DocComment":" ptr::drop_in_place(ptr);"},{"DocComment":" dealloc(ptr as *mut u8, Layout::new::());"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":" Note: This is equivalent to the following:"},{"DocComment":" ```"},{"DocComment":" let x = Box::new(String::from(\"Hello\"));"},{"DocComment":" let ptr = Box::into_raw(x);"},{"DocComment":" unsafe {"},{"DocComment":" drop(Box::from_raw(ptr));"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" [memory layout]: self#memory-layout"}],"inline":"Hint","rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":53,"beg":{"line":1263,"col":5},"end":{"line":1263,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":5496}],"output":{"Deduplicated":5275}},"src":"TopLevel","is_global_initializer":null,"body":"Opaque"},{"def_id":276,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["collect",0]},{"Ident":["IntoIterator",0]},{"Ident":["into_iter",0]}],"span":{"data":{"file_id":13,"beg":{"line":312,"col":4},"end":{"line":312,"col":41}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Creates an iterator from a value."},{"DocComment":""},{"DocComment":" See the [module-level documentation] for more."},{"DocComment":""},{"DocComment":" [module-level documentation]: crate::iter"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let v = [1, 2, 3];"},{"DocComment":" let mut iter = v.into_iter();"},{"DocComment":""},{"DocComment":" assert_eq!(Some(1), iter.next());"},{"DocComment":" assert_eq!(Some(2), iter.next());"},{"DocComment":" assert_eq!(Some(3), iter.next());"},{"DocComment":" assert_eq!(None, iter.next());"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"into_iter"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":272}],"output":{"HashConsedValue":[7666,{"TraitType":[{"HashConsedValue":[6859,{"kind":{"Clause":{"Bound":[0,0]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}]},1]}]}},"src":{"TraitDecl":{"trait_ref":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":272}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"has_default":false}},"is_global_initializer":null,"body":"Opaque"},{"def_id":277,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["clone",0]},{"Ident":["Clone",0]},{"Ident":["clone",0]}],"span":{"data":{"file_id":25,"beg":{"line":236,"col":4},"end":{"line":236,"col":28}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Returns a duplicate of the value."},{"DocComment":""},{"DocComment":" Note that what \"duplicate\" means varies by type:"},{"DocComment":" - For most types, this creates a deep, independent copy"},{"DocComment":" - For reference types like `&T`, this creates another reference to the same value"},{"DocComment":" - For smart pointers like [`Arc`] or [`Rc`], this increments the reference count"},{"DocComment":" but still points to the same underlying data"},{"DocComment":""},{"DocComment":" [`Arc`]: ../../std/sync/struct.Arc.html"},{"DocComment":" [`Rc`]: ../../std/rc/struct.Rc.html"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" # #![allow(noop_method_call)]"},{"DocComment":" let hello = \"Hello\"; // &str implements Clone"},{"DocComment":""},{"DocComment":" assert_eq!(\"Hello\", hello.clone());"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" Example with a reference-counted type:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" use std::sync::{Arc, Mutex};"},{"DocComment":""},{"DocComment":" let data = Arc::new(Mutex::new(vec![1, 2, 3]));"},{"DocComment":" let data_clone = data.clone(); // Creates another Arc pointing to the same Mutex"},{"DocComment":""},{"DocComment":" {"},{"DocComment":" let mut lock = data.lock().unwrap();"},{"DocComment":" lock.push(4);"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" // Changes are visible through the clone because they share the same underlying data"},{"DocComment":" assert_eq!(*data_clone.lock().unwrap(), vec![1, 2, 3, 4]);"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"clone_fn"},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":8,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":5042}],"output":{"Deduplicated":272}},"src":{"TraitDecl":{"trait_ref":{"id":8,"generics":{"regions":[],"types":[{"Deduplicated":272}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"has_default":false}},"is_global_initializer":null,"body":"Opaque"},null,{"def_id":279,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["function",0]},{"Ident":["FnMut",0]},{"Ident":["call_mut",0]}],"span":{"data":{"file_id":18,"beg":{"line":166,"col":4},"end":{"line":166,"col":74}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Performs the call operation."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[{"index":0,"name":"Self"},{"index":1,"name":"Args"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":9,"generics":{"regions":[],"types":[{"Deduplicated":240},{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":3470},{"Deduplicated":2143}],"output":{"HashConsedValue":[7669,{"TraitType":[{"HashConsedValue":[7668,{"kind":{"ParentClause":[{"HashConsedValue":[7667,{"kind":{"Clause":{"Bound":[0,0]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":9,"generics":{"regions":[],"types":[{"Deduplicated":240},{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}]},1]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":5,"generics":{"regions":[],"types":[{"Deduplicated":240},{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}]},0]}]}},"src":{"TraitDecl":{"trait_ref":{"id":9,"generics":{"regions":[],"types":[{"Deduplicated":272},{"Deduplicated":2143}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"has_default":false}},"is_global_initializer":null,"body":"Opaque"},{"def_id":280,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["collect",0]},{"Ident":["FromIterator",0]},{"Ident":["from_iter",0]}],"span":{"data":{"file_id":13,"beg":{"line":152,"col":4},"end":{"line":152,"col":61}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Creates a value from an iterator."},{"DocComment":""},{"DocComment":" See the [module-level documentation] for more."},{"DocComment":""},{"DocComment":" [module-level documentation]: crate::iter"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let five_fives = std::iter::repeat(5).take(5);"},{"DocComment":""},{"DocComment":" let v = Vec::from_iter(five_fives);"},{"DocComment":""},{"DocComment":" assert_eq!(v, vec![5, 5, 5, 5, 5]);"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"from_iter_fn"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"},{"index":1,"name":"A"},{"index":2,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":10,"generics":{"regions":[],"types":[{"Deduplicated":240},{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":13,"beg":{"line":152,"col":17},"end":{"line":152,"col":18}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":3117}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":2,"span":{"data":{"file_id":13,"beg":{"line":152,"col":20},"end":{"line":152,"col":42}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":3117}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[{"regions":[],"skip_binder":{"trait_ref":{"HashConsedValue":[6299,{"kind":{"Clause":{"Bound":[1,2]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":6,"generics":{"regions":[],"types":[{"HashConsedValue":[3121,{"TypeVar":{"Bound":[2,2]}}]}],"const_generics":[],"trait_refs":[]}}}}]},"type_id":0,"ty":{"Deduplicated":2139}}}]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":3130}],"output":{"Deduplicated":272}},"src":{"TraitDecl":{"trait_ref":{"id":10,"generics":{"regions":[],"types":[{"Deduplicated":272},{"Deduplicated":2143}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"has_default":false}},"is_global_initializer":null,"body":"Opaque"},{"def_id":281,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["try_trait",0]},{"Ident":["Try",0]},{"Ident":["from_output",0]}],"span":{"data":{"file_id":42,"beg":{"line":192,"col":4},"end":{"line":192,"col":49}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Constructs the type from its `Output` type."},{"DocComment":""},{"DocComment":" This should be implemented consistently with the `branch` method"},{"DocComment":" such that applying the `?` operator will get back the original value:"},{"DocComment":" `Try::from_output(x).branch() --> ControlFlow::Continue(x)`."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" #![feature(try_trait_v2)]"},{"DocComment":" use std::ops::Try;"},{"DocComment":""},{"DocComment":" assert_eq!( as Try>::from_output(3), Ok(3));"},{"DocComment":" assert_eq!( as Try>::from_output(4), Some(4));"},{"DocComment":" assert_eq!("},{"DocComment":" as Try>::from_output(5),"},{"DocComment":" std::ops::ControlFlow::Continue(5),"},{"DocComment":" );"},{"DocComment":""},{"DocComment":" # fn make_question_mark_work() -> Option<()> {"},{"DocComment":" assert_eq!(Option::from_output(4)?, 4);"},{"DocComment":" # None }"},{"DocComment":" # make_question_mark_work();"},{"DocComment":""},{"DocComment":" // This is used, for example, on the accumulator in `try_fold`:"},{"DocComment":" let r = std::iter::empty().try_fold(4, |_, ()| -> Option<_> { unreachable!() });"},{"DocComment":" assert_eq!(r, Some(4));"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"from_output"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":11,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"HashConsedValue":[6301,{"TraitType":[{"HashConsedValue":[6300,{"kind":{"Clause":{"Bound":[0,0]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":11,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}]},0]}]}],"output":{"Deduplicated":272}},"src":{"TraitDecl":{"trait_ref":{"id":11,"generics":{"regions":[],"types":[{"Deduplicated":272}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"has_default":false}},"is_global_initializer":null,"body":"Opaque"},{"def_id":282,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["try_trait",0]},{"Ident":["Try",0]},{"Ident":["branch",0]}],"span":{"data":{"file_id":42,"beg":{"line":219,"col":4},"end":{"line":219,"col":65}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Used in `?` to decide whether the operator should produce a value"},{"DocComment":" (because this returned [`ControlFlow::Continue`])"},{"DocComment":" or propagate a value back to the caller"},{"DocComment":" (because this returned [`ControlFlow::Break`])."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" #![feature(try_trait_v2)]"},{"DocComment":" use std::ops::{ControlFlow, Try};"},{"DocComment":""},{"DocComment":" assert_eq!(Ok::<_, String>(3).branch(), ControlFlow::Continue(3));"},{"DocComment":" assert_eq!(Err::(3).branch(), ControlFlow::Break(Err(3)));"},{"DocComment":""},{"DocComment":" assert_eq!(Some(3).branch(), ControlFlow::Continue(3));"},{"DocComment":" assert_eq!(None::.branch(), ControlFlow::Break(None));"},{"DocComment":""},{"DocComment":" assert_eq!(ControlFlow::::Continue(3).branch(), ControlFlow::Continue(3));"},{"DocComment":" assert_eq!("},{"DocComment":" ControlFlow::<_, String>::Break(3).branch(),"},{"DocComment":" ControlFlow::Break(ControlFlow::Break(3)),"},{"DocComment":" );"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"branch"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":11,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":272}],"output":{"HashConsedValue":[7675,{"Adt":{"id":{"Adt":14},"generics":{"regions":[],"types":[{"HashConsedValue":[7670,{"TraitType":[{"Deduplicated":6300},1]}]},{"Deduplicated":6301}],"const_generics":[],"trait_refs":[{"HashConsedValue":[7672,{"kind":{"ParentClause":[{"HashConsedValue":[7671,{"kind":{"ParentClause":[{"Deduplicated":6300},1]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":24,"generics":{"regions":[],"types":[{"Deduplicated":240},{"HashConsedValue":[6304,{"TraitType":[{"HashConsedValue":[6303,{"kind":{"Clause":{"Bound":[1,0]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":11,"generics":{"regions":[],"types":[{"Deduplicated":2165}],"const_generics":[],"trait_refs":[]}}}}]},1]}]}],"const_generics":[],"trait_refs":[]}}}}]},1]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":6304}],"const_generics":[],"trait_refs":[]}}}}]},{"HashConsedValue":[7674,{"kind":{"ParentClause":[{"Deduplicated":6300},2]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[7673,{"TraitType":[{"Deduplicated":6303},0]}]}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},"src":{"TraitDecl":{"trait_ref":{"id":11,"generics":{"regions":[],"types":[{"Deduplicated":272}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":1},"has_default":false}},"is_global_initializer":null,"body":"Opaque"},{"def_id":283,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["collect",0]},{"Ident":["Extend",0]},{"Ident":["extend",0]}],"span":{"data":{"file_id":13,"beg":{"line":416,"col":4},"end":{"line":416,"col":61}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Extends a collection with the contents of an iterator."},{"DocComment":""},{"DocComment":" As this is the only required method for this trait, the [trait-level] docs"},{"DocComment":" contain more details."},{"DocComment":""},{"DocComment":" [trait-level]: Extend"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" // You can extend a String with some chars:"},{"DocComment":" let mut message = String::from(\"abc\");"},{"DocComment":""},{"DocComment":" message.extend(['d', 'e', 'f'].iter());"},{"DocComment":""},{"DocComment":" assert_eq!(\"abcdef\", &message);"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[{"index":0,"name":"Self"},{"index":1,"name":"A"},{"index":2,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":13,"generics":{"regions":[],"types":[{"Deduplicated":240},{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":13,"beg":{"line":416,"col":14},"end":{"line":416,"col":15}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":3117}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":2,"span":{"data":{"file_id":13,"beg":{"line":416,"col":17},"end":{"line":416,"col":39}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":3117}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[{"regions":[],"skip_binder":{"trait_ref":{"Deduplicated":6299},"type_id":0,"ty":{"Deduplicated":2139}}}]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":3470},{"Deduplicated":3130}],"output":{"Deduplicated":297}},"src":{"TraitDecl":{"trait_ref":{"id":13,"generics":{"regions":[],"types":[{"Deduplicated":272},{"Deduplicated":2143}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"has_default":false}},"is_global_initializer":null,"body":"Opaque"},null,null,null,{"def_id":287,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["default",0]},{"Ident":["Default",0]},{"Ident":["default",0]}],"span":{"data":{"file_id":43,"beg":{"line":139,"col":4},"end":{"line":139,"col":25}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Returns the \"default value\" for a type."},{"DocComment":""},{"DocComment":" Default values are often some kind of initial value, identity value, or anything else that"},{"DocComment":" may make sense as a default."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" Using built-in default values:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let i: i8 = Default::default();"},{"DocComment":" let (x, y): (Option, f64) = Default::default();"},{"DocComment":" let (a, b, (c, d)): (i32, u32, (bool, bool)) = Default::default();"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" Making your own:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" # #[allow(dead_code)]"},{"DocComment":" enum Kind {"},{"DocComment":" A,"},{"DocComment":" B,"},{"DocComment":" C,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl Default for Kind {"},{"DocComment":" fn default() -> Self { Kind::A }"},{"DocComment":" }"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"default_fn"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":14,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[],"output":{"Deduplicated":272}},"src":{"TraitDecl":{"trait_ref":{"id":14,"generics":{"regions":[],"types":[{"Deduplicated":272}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"has_default":false}},"is_global_initializer":null,"body":"Opaque"},{"def_id":288,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["double_ended",0]},{"Ident":["DoubleEndedIterator",0]},{"Ident":["next_back",0]}],"span":{"data":{"file_id":44,"beg":{"line":94,"col":4},"end":{"line":94,"col":50}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Removes and returns an element from the end of the iterator."},{"DocComment":""},{"DocComment":" Returns `None` when there are no more elements."},{"DocComment":""},{"DocComment":" The [trait-level] docs contain more details."},{"DocComment":""},{"DocComment":" [trait-level]: DoubleEndedIterator"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" Basic usage:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let numbers = vec![1, 2, 3, 4, 5, 6];"},{"DocComment":""},{"DocComment":" let mut iter = numbers.iter();"},{"DocComment":""},{"DocComment":" assert_eq!(Some(&1), iter.next());"},{"DocComment":" assert_eq!(Some(&6), iter.next_back());"},{"DocComment":" assert_eq!(Some(&5), iter.next_back());"},{"DocComment":" assert_eq!(Some(&2), iter.next());"},{"DocComment":" assert_eq!(Some(&3), iter.next());"},{"DocComment":" assert_eq!(Some(&4), iter.next());"},{"DocComment":" assert_eq!(None, iter.next());"},{"DocComment":" assert_eq!(None, iter.next_back());"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" # Remarks"},{"DocComment":""},{"DocComment":" The elements yielded by `DoubleEndedIterator`'s methods may differ from"},{"DocComment":" the ones yielded by [`Iterator`]'s methods:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let vec = vec![(1, 'a'), (1, 'b'), (1, 'c'), (2, 'a'), (2, 'b')];"},{"DocComment":" let uniq_by_fst_comp = || {"},{"DocComment":" let mut seen = std::collections::HashSet::new();"},{"DocComment":" vec.iter().copied().filter(move |x| seen.insert(x.0))"},{"DocComment":" };"},{"DocComment":""},{"DocComment":" assert_eq!(uniq_by_fst_comp().last(), Some((2, 'a')));"},{"DocComment":" assert_eq!(uniq_by_fst_comp().next_back(), Some((2, 'b')));"},{"DocComment":""},{"DocComment":" assert_eq!("},{"DocComment":" uniq_by_fst_comp().fold(vec![], |mut v, x| {v.push(x); v}),"},{"DocComment":" vec![(1, 'a'), (2, 'a')]"},{"DocComment":" );"},{"DocComment":" assert_eq!("},{"DocComment":" uniq_by_fst_comp().rfold(vec![], |mut v, x| {v.push(x); v}),"},{"DocComment":" vec![(2, 'b'), (1, 'c')]"},{"DocComment":" );"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":15,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":3470}],"output":{"HashConsedValue":[7679,{"Adt":{"id":{"Adt":12},"generics":{"regions":[],"types":[{"HashConsedValue":[7676,{"TraitType":[{"HashConsedValue":[6311,{"kind":{"ParentClause":[{"HashConsedValue":[6310,{"kind":{"Clause":{"Bound":[0,0]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":15,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}]},1]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}]},0]}]}],"const_generics":[],"trait_refs":[{"HashConsedValue":[7678,{"kind":{"ParentClause":[{"Deduplicated":6311},1]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[7677,{"TraitType":[{"HashConsedValue":[6872,{"kind":{"ParentClause":[{"HashConsedValue":[6871,{"kind":{"Clause":{"Bound":[1,0]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":15,"generics":{"regions":[],"types":[{"Deduplicated":2165}],"const_generics":[],"trait_refs":[]}}}}]},1]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":2165}],"const_generics":[],"trait_refs":[]}}}}]},0]}]}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},"src":{"TraitDecl":{"trait_ref":{"id":15,"generics":{"regions":[],"types":[{"Deduplicated":272}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"has_default":false}},"is_global_initializer":null,"body":"Opaque"},null,null,null,null,null,null,null,{"def_id":296,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["Ord",0]},{"Ident":["cmp",0]}],"span":{"data":{"file_id":46,"beg":{"line":991,"col":4},"end":{"line":991,"col":44}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" This method returns an [`Ordering`] between `self` and `other`."},{"DocComment":""},{"DocComment":" By convention, `self.cmp(&other)` returns the ordering matching the expression"},{"DocComment":" `self other` if true."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" use std::cmp::Ordering;"},{"DocComment":""},{"DocComment":" assert_eq!(5.cmp(&10), Ordering::Less);"},{"DocComment":" assert_eq!(10.cmp(&5), Ordering::Greater);"},{"DocComment":" assert_eq!(5.cmp(&5), Ordering::Equal);"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"ord_cmp_method"},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"},{"index":1,"name":null,"mutability":"Unknown"}],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":17,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":5042},{"HashConsedValue":[7680,{"Ref":[{"Var":{"Bound":[0,1]}},{"Deduplicated":272},"Shared"]}]}],"output":{"HashConsedValue":[4094,{"Adt":{"id":{"Adt":41},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}}]}},"src":{"TraitDecl":{"trait_ref":{"id":17,"generics":{"regions":[],"types":[{"Deduplicated":272}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"has_default":false}},"is_global_initializer":null,"body":"Opaque"},null,null,null,{"def_id":300,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["accum",0]},{"Ident":["Sum",0]},{"Ident":["sum",0]}],"span":{"data":{"file_id":52,"beg":{"line":21,"col":4},"end":{"line":21,"col":51}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Takes an iterator and generates `Self` from the elements by \"summing up\""},{"DocComment":" the items."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"Self"},{"index":1,"name":"A"},{"index":2,"name":"I"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":19,"generics":{"regions":[],"types":[{"Deduplicated":240},{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":52,"beg":{"line":21,"col":11},"end":{"line":21,"col":12}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":3117}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":2,"span":{"data":{"file_id":52,"beg":{"line":21,"col":14},"end":{"line":21,"col":32}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":3117}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[{"regions":[],"skip_binder":{"trait_ref":{"HashConsedValue":[6326,{"kind":{"Clause":{"Bound":[1,2]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":3121}],"const_generics":[],"trait_refs":[]}}}}]},"type_id":0,"ty":{"Deduplicated":2139}}}]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":3130}],"output":{"Deduplicated":272}},"src":{"TraitDecl":{"trait_ref":{"id":19,"generics":{"regions":[],"types":[{"Deduplicated":272},{"Deduplicated":2143}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"has_default":false}},"is_global_initializer":null,"body":"Opaque"},{"def_id":301,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["accum",0]},{"Ident":["Product",0]},{"Ident":["product",0]}],"span":{"data":{"file_id":52,"beg":{"line":42,"col":4},"end":{"line":42,"col":55}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Takes an iterator and generates `Self` from the elements by multiplying"},{"DocComment":" the items."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"Self"},{"index":1,"name":"A"},{"index":2,"name":"I"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":20,"generics":{"regions":[],"types":[{"Deduplicated":240},{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":52,"beg":{"line":42,"col":15},"end":{"line":42,"col":16}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":3117}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":2,"span":{"data":{"file_id":52,"beg":{"line":42,"col":18},"end":{"line":42,"col":36}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":3117}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[{"regions":[],"skip_binder":{"trait_ref":{"Deduplicated":6326},"type_id":0,"ty":{"Deduplicated":2139}}}]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":3130}],"output":{"Deduplicated":272}},"src":{"TraitDecl":{"trait_ref":{"id":20,"generics":{"regions":[],"types":[{"Deduplicated":272},{"Deduplicated":2143}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"has_default":false}},"is_global_initializer":null,"body":"Opaque"},{"def_id":302,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["PartialOrd",0]},{"Ident":["partial_cmp",0]}],"span":{"data":{"file_id":46,"beg":{"line":1387,"col":4},"end":{"line":1387,"col":59}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" This method returns an ordering between `self` and `other` values if one exists."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" use std::cmp::Ordering;"},{"DocComment":""},{"DocComment":" let result = 1.0.partial_cmp(&2.0);"},{"DocComment":" assert_eq!(result, Some(Ordering::Less));"},{"DocComment":""},{"DocComment":" let result = 1.0.partial_cmp(&1.0);"},{"DocComment":" assert_eq!(result, Some(Ordering::Equal));"},{"DocComment":""},{"DocComment":" let result = 2.0.partial_cmp(&1.0);"},{"DocComment":" assert_eq!(result, Some(Ordering::Greater));"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" When comparison is impossible:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let result = f64::NAN.partial_cmp(&1.0);"},{"DocComment":" assert_eq!(result, None);"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"cmp_partialord_cmp"},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"},{"index":1,"name":null,"mutability":"Unknown"}],"types":[{"index":0,"name":"Self"},{"index":1,"name":"Rhs"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":21,"generics":{"regions":[],"types":[{"Deduplicated":240},{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":5042},{"HashConsedValue":[6327,{"Ref":[{"Var":{"Bound":[0,1]}},{"Deduplicated":2143},"Shared"]}]}],"output":{"HashConsedValue":[4463,{"Adt":{"id":{"Adt":12},"generics":{"regions":[],"types":[{"Deduplicated":4094}],"const_generics":[],"trait_refs":[{"HashConsedValue":[4462,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[4461,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":4094}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":4094}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},"src":{"TraitDecl":{"trait_ref":{"id":21,"generics":{"regions":[],"types":[{"Deduplicated":272},{"Deduplicated":2143}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"has_default":false}},"is_global_initializer":null,"body":"Opaque"},null,null,null,null,null,null,null,null,{"def_id":311,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["PartialEq",0]},{"Ident":["eq",0]}],"span":{"data":{"file_id":46,"beg":{"line":256,"col":4},"end":{"line":256,"col":38}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Tests for `self` and `other` values to be equal, and is used by `==`."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"cmp_partialeq_eq"},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"},{"index":1,"name":null,"mutability":"Unknown"}],"types":[{"index":0,"name":"Self"},{"index":1,"name":"Rhs"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":22,"generics":{"regions":[],"types":[{"Deduplicated":240},{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":5042},{"Deduplicated":6327}],"output":{"Deduplicated":287}},"src":{"TraitDecl":{"trait_ref":{"id":22,"generics":{"regions":[],"types":[{"Deduplicated":272},{"Deduplicated":2143}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"has_default":false}},"is_global_initializer":null,"body":"Opaque"},null,null,{"def_id":314,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["try_trait",0]},{"Ident":["FromResidual",0]},{"Ident":["from_residual",0]}],"span":{"data":{"file_id":42,"beg":{"line":333,"col":4},"end":{"line":333,"col":42}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Constructs the type from a compatible `Residual` type."},{"DocComment":""},{"DocComment":" This should be implemented consistently with the `branch` method such"},{"DocComment":" that applying the `?` operator will get back an equivalent residual:"},{"DocComment":" `FromResidual::from_residual(r).branch() --> ControlFlow::Break(r)`."},{"DocComment":" (The residual is not mandated to be *identical* when interconversion is involved.)"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" #![feature(try_trait_v2)]"},{"DocComment":" use std::ops::{ControlFlow, FromResidual};"},{"DocComment":""},{"DocComment":" assert_eq!(Result::::from_residual(Err(3_u8)), Err(3));"},{"DocComment":" assert_eq!(Option::::from_residual(None), None);"},{"DocComment":" assert_eq!("},{"DocComment":" ControlFlow::<_, String>::from_residual(ControlFlow::Break(5)),"},{"DocComment":" ControlFlow::Break(5),"},{"DocComment":" );"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"from_residual"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"},{"index":1,"name":"R"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":24,"generics":{"regions":[],"types":[{"Deduplicated":240},{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":2143}],"output":{"Deduplicated":272}},"src":{"TraitDecl":{"trait_ref":{"id":24,"generics":{"regions":[],"types":[{"Deduplicated":272},{"Deduplicated":2143}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"has_default":false}},"is_global_initializer":null,"body":"Opaque"},{"def_id":315,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["alloc",0]},{"Ident":["Allocator",0]},{"Ident":["allocate",0]}],"span":{"data":{"file_id":56,"beg":{"line":133,"col":4},"end":{"line":133,"col":76}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Attempts to allocate a block of memory."},{"DocComment":""},{"DocComment":" On success, returns a [`NonNull<[u8]>`][NonNull] meeting the size and alignment guarantees of `layout`."},{"DocComment":""},{"DocComment":" The returned block may have a larger size than specified by `layout.size()`, and may or may"},{"DocComment":" not have its contents initialized."},{"DocComment":""},{"DocComment":" The returned block of memory remains valid as long as it is [*currently allocated*] and the shorter of:"},{"DocComment":" - the borrow-checker lifetime of the allocator type itself."},{"DocComment":" - as long as the allocator and all its clones have not been dropped."},{"DocComment":""},{"DocComment":" [*currently allocated*]: #currently-allocated-memory"},{"DocComment":""},{"DocComment":" # Errors"},{"DocComment":""},{"DocComment":" Returning `Err` indicates that either memory is exhausted or `layout` does not meet"},{"DocComment":" allocator's size or alignment constraints."},{"DocComment":""},{"DocComment":" Implementations are encouraged to return `Err` on memory exhaustion rather than panicking or"},{"DocComment":" aborting, but this is not a strict requirement. (Specifically: it is *legal* to implement"},{"DocComment":" this trait atop an underlying native allocation library that aborts on memory exhaustion.)"},{"DocComment":""},{"DocComment":" Clients wishing to abort computation in response to an allocation error are encouraged to"},{"DocComment":" call the [`handle_alloc_error`] function, rather than directly invoking `panic!` or similar."},{"DocComment":""},{"DocComment":" [`handle_alloc_error`]: ../../alloc/alloc/fn.handle_alloc_error.html"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":26,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":5042},{"HashConsedValue":[6208,{"Adt":{"id":{"Adt":58},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}}]}],"output":{"HashConsedValue":[6213,{"Adt":{"id":{"Adt":10},"generics":{"regions":[],"types":[{"HashConsedValue":[6200,{"Adt":{"id":{"Adt":59},"generics":{"regions":[],"types":[{"HashConsedValue":[6199,{"Slice":{"Deduplicated":2064}}]}],"const_generics":[],"trait_refs":[]}}}]},{"HashConsedValue":[6202,{"Adt":{"id":{"Adt":60},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}}]}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6210,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6209,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":6200}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":6200}],"const_generics":[],"trait_refs":[]}}}}]},{"HashConsedValue":[6212,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6211,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":6202}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":6202}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},"src":{"TraitDecl":{"trait_ref":{"id":26,"generics":{"regions":[],"types":[{"Deduplicated":272}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"has_default":false}},"is_global_initializer":null,"body":"Opaque"},null,{"def_id":317,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["alloc",0]},{"Ident":["Allocator",0]},{"Ident":["deallocate",0]}],"span":{"data":{"file_id":56,"beg":{"line":166,"col":4},"end":{"line":166,"col":66}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Deallocates the memory referenced by `ptr`."},{"DocComment":""},{"DocComment":" # Safety"},{"DocComment":""},{"DocComment":" * `ptr` must denote a block of memory [*currently allocated*] via this allocator, and"},{"DocComment":" * `layout` must [*fit*] that block of memory."},{"DocComment":""},{"DocComment":" [*currently allocated*]: #currently-allocated-memory"},{"DocComment":" [*fit*]: #memory-fitting"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":0,"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":26,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":true,"inputs":[{"Deduplicated":5042},{"HashConsedValue":[6228,{"Adt":{"id":{"Adt":59},"generics":{"regions":[],"types":[{"Deduplicated":2064}],"const_generics":[],"trait_refs":[]}}}]},{"Deduplicated":6208}],"output":{"Deduplicated":297}},"src":{"TraitDecl":{"trait_ref":{"id":26,"generics":{"regions":[],"types":[{"Deduplicated":272}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":2},"has_default":false}},"is_global_initializer":null,"body":"Opaque"},null,null,null,null,{"def_id":322,"item_meta":{"name":[{"Ident":["alloc",0]},{"Ident":["alloc",0]},{"Impl":{"Trait":14}},{"Ident":["allocate",0]}],"span":{"data":{"file_id":55,"beg":{"line":428,"col":4},"end":{"line":428,"col":75}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":"Hint","rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"HashConsedValue":[6278,{"Ref":[{"Var":{"Bound":[0,0]}},{"Deduplicated":5432},"Shared"]}]},{"Deduplicated":6208}],"output":{"Deduplicated":6213}},"src":{"TraitImpl":{"impl_ref":{"id":14,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}},"trait_ref":{"id":26,"generics":{"regions":[],"types":[{"Deduplicated":5432}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"reuses_default":true}},"is_global_initializer":null,"body":"Opaque"},null,{"def_id":324,"item_meta":{"name":[{"Ident":["alloc",0]},{"Ident":["alloc",0]},{"Impl":{"Trait":14}},{"Ident":["deallocate",0]}],"span":{"data":{"file_id":55,"beg":{"line":440,"col":4},"end":{"line":440,"col":65}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":"Hint","rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":true,"inputs":[{"Deduplicated":6278},{"Deduplicated":6228},{"Deduplicated":6208}],"output":{"Deduplicated":297}},"src":{"TraitImpl":{"impl_ref":{"id":14,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}},"trait_ref":{"id":26,"generics":{"regions":[],"types":[{"Deduplicated":5432}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":2},"reuses_default":true}},"is_global_initializer":null,"body":"Opaque"},null,null,null,null,{"def_id":329,"item_meta":{"name":[{"Ident":["alloc",0]},{"Ident":["boxed",0]},{"Ident":["Box",0]},{"Impl":{"Trait":15}},{"Ident":["drop_in_place",0]}],"span":{"data":{"file_id":53,"beg":{"line":234,"col":0},"end":{"line":237,"col":1}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"T"},{"index":1,"name":"A"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":53,"beg":{"line":235,"col":4},"end":{"line":235,"col":5}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":53,"beg":{"line":236,"col":60},"end":{"line":236,"col":81}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":2,"span":{"data":{"file_id":53,"beg":{"line":236,"col":63},"end":{"line":236,"col":72}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":26,"generics":{"regions":[],"types":[{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":true,"inputs":[{"HashConsedValue":[7681,{"RawPtr":[{"HashConsedValue":[6281,{"Adt":{"id":{"Adt":48},"generics":{"regions":[],"types":[{"Deduplicated":272},{"Deduplicated":2143}],"const_generics":[],"trait_refs":[{"Deduplicated":5495},{"Deduplicated":2766},{"HashConsedValue":[6280,{"kind":{"Clause":{"Bound":[0,2]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":26,"generics":{"regions":[],"types":[{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]},"Mut"]}]}],"output":{"Deduplicated":297}},"src":{"TraitImpl":{"impl_ref":{"id":15,"generics":{"regions":[],"types":[{"Deduplicated":272},{"Deduplicated":2143}],"const_generics":[],"trait_refs":[{"Deduplicated":5495},{"Deduplicated":2766},{"Deduplicated":6280}]}},"trait_ref":{"id":2,"generics":{"regions":[],"types":[{"Deduplicated":6281}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"reuses_default":false}},"is_global_initializer":null,"body":"Opaque"},null,{"def_id":331,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["clone",0]},{"Ident":["impls",0]},{"Impl":{"Trait":19}},{"Ident":["clone",0]}],"span":{"data":{"file_id":25,"beg":{"line":614,"col":20},"end":{"line":614,"col":43}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":"Always","rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"HashConsedValue":[7682,{"Ref":[{"Var":{"Bound":[0,0]}},{"Deduplicated":827},"Shared"]}]}],"output":{"Deduplicated":827}},"src":{"TraitImpl":{"impl_ref":{"id":19,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}},"trait_ref":{"id":8,"generics":{"regions":[],"types":[{"Deduplicated":827}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"reuses_default":true}},"is_global_initializer":null,"body":"Opaque"},null,{"def_id":333,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["num",0]},{"Ident":["niche_types",0]},{"Impl":{"Trait":20}},{"Ident":["clone",0]}],"span":{"data":{"file_id":57,"beg":{"line":17,"col":17},"end":{"line":17,"col":22}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":"Hint","rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"signature":{"is_unsafe":false,"inputs":[{"HashConsedValue":[7683,{"Ref":[{"Var":{"Bound":[0,0]}},{"HashConsedValue":[5600,{"Adt":{"id":{"Adt":51},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}}]},"Shared"]}]}],"output":{"Deduplicated":5600}},"src":{"TraitImpl":{"impl_ref":{"id":20,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}},"trait_ref":{"id":8,"generics":{"regions":[],"types":[{"Deduplicated":5600}],"const_generics":[],"trait_refs":[]}},"item_id":{"Method":0},"reuses_default":true}},"is_global_initializer":null,"body":"Opaque"},null],"global_decls":[{"def_id":0,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["INT_CLASS",0]}],"span":{"data":{"file_id":0,"beg":{"line":206,"col":0},"end":{"line":209,"col":2}},"generated_from_span":null},"source_text":"pub static INT_CLASS: ClassObject = ClassObject {\n name: \"int\",\n kind: 1,\n};","attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"ty":{"Deduplicated":2066},"src":"TopLevel","global_kind":"Static","init":32},{"def_id":1,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["DOUBLE_CLASS",0]}],"span":{"data":{"file_id":0,"beg":{"line":210,"col":0},"end":{"line":213,"col":2}},"generated_from_span":null},"source_text":"pub static DOUBLE_CLASS: ClassObject = ClassObject {\n name: \"double\",\n kind: 2,\n};","attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"ty":{"Deduplicated":2066},"src":"TopLevel","global_kind":"Static","init":33},{"def_id":2,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["_immutable_fields_W_IntObject",0]}],"span":{"data":{"file_id":0,"beg":{"line":298,"col":0},"end":{"line":298,"col":57}},"generated_from_span":null},"source_text":"pub const _immutable_fields_W_IntObject: &str = \"intval\";","attr_info":{"attributes":[{"DocComment":" Premise 4: the immutability marker `harvest_immutable_fields_from_llbcs`"},{"DocComment":" reads (`front/llbc_hints.rs:148` `_immutable_fields_` prefix). Written by"},{"DocComment":" hand rather than through `#[jit_immutable_fields]` so the corpus keeps"},{"DocComment":" its zero-dependency manifest."},{"Unknown":{"path":"allow","args":"non_upper_case_globals"}}],"inline":null,"rename":null,"public":true},"is_local":true,"opacity":"Transparent","lang_item":null},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"ty":{"Deduplicated":274},"src":"TopLevel","global_kind":"NamedConst","init":36},null,null,null,null,null,null,null],"trait_decls":[{"def_id":0,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["Sized",0]}],"span":{"data":{"file_id":1,"beg":{"line":161,"col":0},"end":{"line":161,"col":26}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Types with a constant size known at compile time."},{"DocComment":""},{"DocComment":" All type parameters have an implicit bound of `Sized`. The special syntax"},{"DocComment":" `?Sized` can be used to remove this bound if it's not appropriate."},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" # #![allow(dead_code)]"},{"DocComment":" struct Foo(T);"},{"DocComment":" struct Bar(T);"},{"DocComment":""},{"DocComment":" // struct FooUse(Foo<[i32]>); // error: Sized is not implemented for [i32]"},{"DocComment":" struct BarUse(Bar<[i32]>); // OK"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" The one exception is the implicit `Self` type of a trait. A trait does not"},{"DocComment":" have an implicit `Sized` bound as this is incompatible with [trait object]s"},{"DocComment":" where, by definition, the trait needs to work with all possible implementors,"},{"DocComment":" and thus could be any size."},{"DocComment":""},{"DocComment":" Although Rust will let you bind `Sized` to a trait, you won't"},{"DocComment":" be able to use it to form a trait object later:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" # #![allow(unused_variables)]"},{"DocComment":" trait Foo { }"},{"DocComment":" trait Bar: Sized { }"},{"DocComment":""},{"DocComment":" struct Impl;"},{"DocComment":" impl Foo for Impl { }"},{"DocComment":" impl Bar for Impl { }"},{"DocComment":""},{"DocComment":" let x: &dyn Foo = &Impl; // OK"},{"DocComment":" // let y: &dyn Bar = &Impl; // error: the trait `Bar` cannot be made into an object"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" [trait object]: ../../book/ch17-02-trait-objects.html"},{"Unknown":{"path":"diagnostic::on_unimplemented","args":"message =\n\"the size for values of type `{Self}` cannot be known at compilation time\",\nlabel = \"doesn't have a size known at compile-time\""}}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"sized"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":1,"beg":{"line":161,"col":17},"end":{"line":161,"col":26}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[],"methods":[],"vtable":null},{"def_id":1,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["MetaSized",0]}],"span":{"data":{"file_id":1,"beg":{"line":178,"col":0},"end":{"line":178,"col":33}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Types with a size that can be determined from pointer metadata."},{"Unknown":{"path":"diagnostic::on_unimplemented","args":"message = \"the size for values of type `{Self}` cannot be known\", label =\n\"doesn't have a known size\""}}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"meta_sized"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[],"consts":[],"types":[],"methods":[],"vtable":{"id":{"Adt":17},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}},{"def_id":2,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["Destruct",0]}],"span":{"data":{"file_id":1,"beg":{"line":1063,"col":0},"end":{"line":1063,"col":38}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" A marker for types that can be dropped."},{"DocComment":""},{"DocComment":" This should be used for `[const]` bounds,"},{"DocComment":" as non-const bounds will always hold for every type."},{"Unknown":{"path":"rustc_on_unimplemented","args":"message = \"can't drop `{Self}`\", append_const_msg"}}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"destruct"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[],"consts":[],"types":[],"methods":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"drop_in_place","attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"signature":{"is_unsafe":true,"inputs":[{"HashConsedValue":[7477,{"RawPtr":[{"Deduplicated":240},"Mut"]}]}],"output":{"Deduplicated":297}},"item":{"id":23,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}},"kind":{"TraitMethod":[2,0]}}],"vtable":null},{"def_id":3,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["iterator",0]},{"Ident":["Iterator",0]}],"span":{"data":{"file_id":16,"beg":{"line":41,"col":0},"end":{"line":41,"col":24}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" A trait for dealing with iterators."},{"DocComment":""},{"DocComment":" This is the main iterator trait. For more about the concept of iterators"},{"DocComment":" generally, please see the [module-level documentation]. In particular, you"},{"DocComment":" may want to know how to [implement `Iterator`][impl]."},{"DocComment":""},{"DocComment":" [module-level documentation]: crate::iter"},{"DocComment":" [impl]: crate::iter#implementing-iterator"},{"Unknown":{"path":"rustc_on_unimplemented","args":"on(Self = \"core::ops::range::RangeTo\", note =\n\"you might have meant to use a bounded `Range`\"),\non(Self = \"core::ops::range::RangeToInclusive\", note =\n\"you might have meant to use a bounded `RangeInclusive`\"), label =\n\"`{Self}` is not an iterator\", message = \"`{Self}` is not an iterator\""}}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"iterator"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":16,"beg":{"line":41,"col":0},"end":{"line":4130,"col":1}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":16,"beg":{"line":45,"col":4},"end":{"line":45,"col":14}},"generated_from_span":null},"origin":{"TraitItem":0},"trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[2282,{"TraitType":[{"HashConsedValue":[2281,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":2165}],"const_generics":[],"trait_refs":[]}}}}]},0]}]}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"Item","attr_info":{"attributes":[{"DocComment":" The type of the elements being iterated over."}],"inline":null,"rename":null,"public":false},"default":null,"implied_clauses":[]},"kind":{"TraitType":[3,0]}}],"methods":[{"params":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"next","attr_info":{"attributes":[{"DocComment":" Advances the iterator and returns the next value."},{"DocComment":""},{"DocComment":" Returns [`None`] when iteration is finished. Individual iterator"},{"DocComment":" implementations may choose to resume iteration, and so calling `next()`"},{"DocComment":" again may or may not eventually start returning [`Some(Item)`] again at some"},{"DocComment":" point."},{"DocComment":""},{"DocComment":" [`Some(Item)`]: Some"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let a = [1, 2, 3];"},{"DocComment":""},{"DocComment":" let mut iter = a.into_iter();"},{"DocComment":""},{"DocComment":" // A call to next() returns the next value..."},{"DocComment":" assert_eq!(Some(1), iter.next());"},{"DocComment":" assert_eq!(Some(2), iter.next());"},{"DocComment":" assert_eq!(Some(3), iter.next());"},{"DocComment":""},{"DocComment":" // ... and then None once it's over."},{"DocComment":" assert_eq!(None, iter.next());"},{"DocComment":""},{"DocComment":" // More calls may or may not return `None`. Here, they always will."},{"DocComment":" assert_eq!(None, iter.next());"},{"DocComment":" assert_eq!(None, iter.next());"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"signature":{"is_unsafe":false,"inputs":[{"HashConsedValue":[2280,{"Ref":[{"Var":{"Bound":[0,0]}},{"Deduplicated":240},"Mut"]}]}],"output":{"HashConsedValue":[7479,{"Adt":{"id":{"Adt":12},"generics":{"regions":[],"types":[{"Deduplicated":2282}],"const_generics":[],"trait_refs":[{"HashConsedValue":[7478,{"kind":{"ParentClause":[{"Deduplicated":2281},1]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[2260,{"TraitType":[{"HashConsedValue":[2259,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"HashConsedValue":[2173,{"TypeVar":{"Bound":[3,0]}}]}],"const_generics":[],"trait_refs":[]}}}}]},0]}]}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},"item":{"id":44,"generics":{"regions":[{"Var":{"Bound":[0,0]}}],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[{"Deduplicated":2281}]}}},"kind":{"TraitMethod":[3,0]}},null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"vtable":{"id":{"Adt":18},"generics":{"regions":[],"types":[{"HashConsedValue":[7481,{"TraitType":[{"HashConsedValue":[7480,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}]},0]}]}],"const_generics":[],"trait_refs":[]}}},{"def_id":4,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["convert",0]},{"Ident":["From",0]}],"span":{"data":{"file_id":12,"beg":{"line":587,"col":0},"end":{"line":587,"col":30}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Used to do value-to-value conversions while consuming the input value. It is the reciprocal of"},{"DocComment":" [`Into`]."},{"DocComment":""},{"DocComment":" One should always prefer implementing `From` over [`Into`]"},{"DocComment":" because implementing `From` automatically provides one with an implementation of [`Into`]"},{"DocComment":" thanks to the blanket implementation in the standard library."},{"DocComment":""},{"DocComment":" Only implement [`Into`] when targeting a version prior to Rust 1.41 and converting to a type"},{"DocComment":" outside the current crate."},{"DocComment":" `From` was not able to do these types of conversions in earlier versions because of Rust's"},{"DocComment":" orphaning rules."},{"DocComment":" See [`Into`] for more details."},{"DocComment":""},{"DocComment":" Prefer using [`Into`] over [`From`] when specifying trait bounds on a generic function"},{"DocComment":" to ensure that types that only implement [`Into`] can be used as well."},{"DocComment":""},{"DocComment":" The `From` trait is also very useful when performing error handling. When constructing a function"},{"DocComment":" that is capable of failing, the return type will generally be of the form `Result`."},{"DocComment":" `From` simplifies error handling by allowing a function to return a single error type"},{"DocComment":" that encapsulates multiple error types. See the \"Examples\" section and [the book][book] for more"},{"DocComment":" details."},{"DocComment":""},{"DocComment":" **Note: This trait must not fail**. The `From` trait is intended for perfect conversions."},{"DocComment":" If the conversion can fail or is not perfect, use [`TryFrom`]."},{"DocComment":""},{"DocComment":" # Generic Implementations"},{"DocComment":""},{"DocComment":" - `From for U` implies [`Into`]` for T`"},{"DocComment":" - `From` is reflexive, which means that `From for T` is implemented"},{"DocComment":""},{"DocComment":" # When to implement `From`"},{"DocComment":""},{"DocComment":" While there's no technical restrictions on which conversions can be done using"},{"DocComment":" a `From` implementation, the general expectation is that the conversions"},{"DocComment":" should typically be restricted as follows:"},{"DocComment":""},{"DocComment":" * The conversion is *infallible*: if the conversion can fail, use [`TryFrom`]"},{"DocComment":" instead; don't provide a `From` impl that panics."},{"DocComment":""},{"DocComment":" * The conversion is *lossless*: semantically, it should not lose or discard"},{"DocComment":" information. For example, `i32: From` exists, where the original"},{"DocComment":" value can be recovered using `u16: TryFrom`. And `String: From<&str>`"},{"DocComment":" exists, where you can get something equivalent to the original value via"},{"DocComment":" `Deref`. But `From` cannot be used to convert from `u32` to `u16`, since"},{"DocComment":" that cannot succeed in a lossless way. (There's some wiggle room here for"},{"DocComment":" information not considered semantically relevant. For example,"},{"DocComment":" `Box<[T]>: From>` exists even though it might not preserve capacity,"},{"DocComment":" like how two vectors can be equal despite differing capacities.)"},{"DocComment":""},{"DocComment":" * The conversion is *value-preserving*: the conceptual kind and meaning of"},{"DocComment":" the resulting value is the same, even though the Rust type and technical"},{"DocComment":" representation might be different. For example `-1_i8 as u8` is *lossless*,"},{"DocComment":" since `as` casting back can recover the original value, but that conversion"},{"DocComment":" is *not* available via `From` because `-1` and `255` are different conceptual"},{"DocComment":" values (despite being identical bit patterns technically). But"},{"DocComment":" `f32: From` *is* available because `1_i16` and `1.0_f32` are conceptually"},{"DocComment":" the same real number (despite having very different bit patterns technically)."},{"DocComment":" `String: From` is available because they're both *text*, but"},{"DocComment":" `String: From` is *not* available, since `1` (a number) and `\"1\"`"},{"DocComment":" (text) are too different. (Converting values to text is instead covered"},{"DocComment":" by the [`Display`](crate::fmt::Display) trait.)"},{"DocComment":""},{"DocComment":" * The conversion is *obvious*: it's the only reasonable conversion between"},{"DocComment":" the two types. Otherwise it's better to have it be a named method or"},{"DocComment":" constructor, like how [`str::as_bytes`] is a method and how integers have"},{"DocComment":" methods like [`u32::from_ne_bytes`], [`u32::from_le_bytes`], and"},{"DocComment":" [`u32::from_be_bytes`], none of which are `From` implementations. Whereas"},{"DocComment":" there's only one reasonable way to wrap an [`Ipv6Addr`](crate::net::Ipv6Addr)"},{"DocComment":" into an [`IpAddr`](crate::net::IpAddr), thus `IpAddr: From` exists."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" [`String`] implements `From<&str>`:"},{"DocComment":""},{"DocComment":" An explicit conversion from a `&str` to a String is done as follows:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let string = \"hello\".to_string();"},{"DocComment":" let other_string = String::from(\"hello\");"},{"DocComment":""},{"DocComment":" assert_eq!(string, other_string);"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" While performing error handling it is often useful to implement `From` for your own error type."},{"DocComment":" By converting underlying error types to our own custom error type that encapsulates the"},{"DocComment":" underlying error type, we can return a single error type without losing information on the"},{"DocComment":" underlying cause. The '?' operator automatically converts the underlying error type to our"},{"DocComment":" custom error type with `From::from`."},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" use std::fs;"},{"DocComment":" use std::io;"},{"DocComment":" use std::num;"},{"DocComment":""},{"DocComment":" enum CliError {"},{"DocComment":" IoError(io::Error),"},{"DocComment":" ParseError(num::ParseIntError),"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl From for CliError {"},{"DocComment":" fn from(error: io::Error) -> Self {"},{"DocComment":" CliError::IoError(error)"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl From for CliError {"},{"DocComment":" fn from(error: num::ParseIntError) -> Self {"},{"DocComment":" CliError::ParseError(error)"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" fn open_and_parse_file(file_name: &str) -> Result {"},{"DocComment":" let mut contents = fs::read_to_string(&file_name)?;"},{"DocComment":" let num: i32 = contents.trim().parse()?;"},{"DocComment":" Ok(num)"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" [`String`]: ../../std/string/struct.String.html"},{"DocComment":" [`from`]: From::from"},{"DocComment":" [book]: ../../book/ch09-00-error-handling.html"},{"Unknown":{"path":"rustc_on_unimplemented","args":"on(all(Self = \"&str\", T = \"alloc::string::String\"), note =\n\"to coerce a `{T}` into a `{Self}`, use `&*` as a prefix\",)"}}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"From"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"},{"index":1,"name":"T"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":12,"beg":{"line":587,"col":25},"end":{"line":587,"col":30}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":12,"beg":{"line":587,"col":21},"end":{"line":587,"col":22}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[],"methods":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"from","attr_info":{"attributes":[{"DocComment":" Converts to this type from the input type."}],"inline":null,"rename":null,"public":true},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":2139}],"output":{"Deduplicated":240}},"item":{"id":268,"generics":{"regions":[],"types":[{"Deduplicated":240},{"Deduplicated":2139}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6885,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":4,"generics":{"regions":[],"types":[{"Deduplicated":2165},{"Deduplicated":2737}],"const_generics":[],"trait_refs":[]}}}}]}]}}},"kind":{"TraitMethod":[4,0]}}],"vtable":null},{"def_id":5,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["function",0]},{"Ident":["FnOnce",0]}],"span":{"data":{"file_id":18,"beg":{"line":242,"col":0},"end":{"line":242,"col":35}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" The version of the call operator that takes a by-value receiver."},{"DocComment":""},{"DocComment":" Instances of `FnOnce` can be called, but might not be callable multiple"},{"DocComment":" times. Because of this, if the only thing known about a type is that it"},{"DocComment":" implements `FnOnce`, it can only be called once."},{"DocComment":""},{"DocComment":" `FnOnce` is implemented automatically by closures that might consume captured"},{"DocComment":" variables, as well as all types that implement [`FnMut`], e.g., (safe)"},{"DocComment":" [function pointers] (since `FnOnce` is a supertrait of [`FnMut`])."},{"DocComment":""},{"DocComment":" Since both [`Fn`] and [`FnMut`] are subtraits of `FnOnce`, any instance of"},{"DocComment":" [`Fn`] or [`FnMut`] can be used where a `FnOnce` is expected."},{"DocComment":""},{"DocComment":" Use `FnOnce` as a bound when you want to accept a parameter of function-like"},{"DocComment":" type and only need to call it once. If you need to call the parameter"},{"DocComment":" repeatedly, use [`FnMut`] as a bound; if you also need it to not mutate"},{"DocComment":" state, use [`Fn`]."},{"DocComment":""},{"DocComment":" See the [chapter on closures in *The Rust Programming Language*][book] for"},{"DocComment":" some more information on this topic."},{"DocComment":""},{"DocComment":" Also of note is the special syntax for `Fn` traits (e.g."},{"DocComment":" `Fn(usize, bool) -> usize`). Those interested in the technical details of"},{"DocComment":" this can refer to [the relevant section in the *Rustonomicon*][nomicon]."},{"DocComment":""},{"DocComment":" [book]: ../../book/ch13-01-closures.html"},{"DocComment":" [function pointers]: fn"},{"DocComment":" [nomicon]: ../../nomicon/hrtb.html"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ## Using a `FnOnce` parameter"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" fn consume_with_relish(func: F)"},{"DocComment":" where F: FnOnce() -> String"},{"DocComment":" {"},{"DocComment":" // `func` consumes its captured variables, so it cannot be run more"},{"DocComment":" // than once."},{"DocComment":" println!(\"Consumed: {}\", func());"},{"DocComment":""},{"DocComment":" println!(\"Delicious!\");"},{"DocComment":""},{"DocComment":" // Attempting to invoke `func()` again will throw a `use of moved"},{"DocComment":" // value` error for `func`."},{"DocComment":" }"},{"DocComment":""},{"DocComment":" let x = String::from(\"x\");"},{"DocComment":" let consume_and_return_x = move || x;"},{"DocComment":" consume_with_relish(consume_and_return_x);"},{"DocComment":""},{"DocComment":" // `consume_and_return_x` can no longer be invoked at this point"},{"DocComment":" ```"},{"Unknown":{"path":"rustc_on_unimplemented","args":"on(Args = \"()\", note =\n\"wrap the `{Self}` in a closure with no arguments: `|| {{ /* code */ }}`\"),\non(Self = \"unsafe fn\", note =\n\"unsafe function cannot be called generically without an unsafe block\", label\n= \"call the function in a closure: `|| unsafe {{ /* code */ }}`\"), message =\n\"expected a `{Trait}` closure, found `{Self}`\", label =\n\"expected an `{Trait}` closure, found `{Self}`\""}}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"fn_once"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"},{"index":1,"name":"Args"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":18,"beg":{"line":242,"col":0},"end":{"line":251,"col":1}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":18,"beg":{"line":242,"col":23},"end":{"line":242,"col":27}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":2,"span":{"data":{"file_id":18,"beg":{"line":242,"col":29},"end":{"line":242,"col":34}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":25,"generics":{"regions":[],"types":[{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":3,"span":{"data":{"file_id":18,"beg":{"line":246,"col":4},"end":{"line":246,"col":16}},"generated_from_span":null},"origin":{"TraitItem":0},"trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[6356,{"TraitType":[{"HashConsedValue":[5349,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":5,"generics":{"regions":[],"types":[{"Deduplicated":2165},{"Deduplicated":2737}],"const_generics":[],"trait_refs":[]}}}}]},0]}]}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"Output","attr_info":{"attributes":[{"DocComment":" The returned type after the call operator is used."}],"inline":null,"rename":null,"public":false},"default":null,"implied_clauses":[]},"kind":{"TraitType":[5,0]}}],"methods":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"call_once","attr_info":{"attributes":[{"DocComment":" Performs the call operation."}],"inline":null,"rename":null,"public":true},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":240},{"Deduplicated":2139}],"output":{"Deduplicated":6356}},"item":{"id":271,"generics":{"regions":[],"types":[{"Deduplicated":240},{"Deduplicated":2139}],"const_generics":[],"trait_refs":[{"Deduplicated":5349}]}}},"kind":{"TraitMethod":[5,0]}}],"vtable":{"id":{"Adt":47},"generics":{"regions":[],"types":[{"Deduplicated":2143},{"HashConsedValue":[7483,{"TraitType":[{"HashConsedValue":[7482,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":5,"generics":{"regions":[],"types":[{"Deduplicated":240},{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}]},0]}]}],"const_generics":[],"trait_refs":[]}}},{"def_id":6,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["collect",0]},{"Ident":["IntoIterator",0]}],"span":{"data":{"file_id":13,"beg":{"line":283,"col":0},"end":{"line":283,"col":28}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Conversion into an [`Iterator`]."},{"DocComment":""},{"DocComment":" By implementing `IntoIterator` for a type, you define how it will be"},{"DocComment":" converted to an iterator. This is common for types which describe a"},{"DocComment":" collection of some kind."},{"DocComment":""},{"DocComment":" One benefit of implementing `IntoIterator` is that your type will [work"},{"DocComment":" with Rust's `for` loop syntax](crate::iter#for-loops-and-intoiterator)."},{"DocComment":""},{"DocComment":" See also: [`FromIterator`]."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" Basic usage:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let v = [1, 2, 3];"},{"DocComment":" let mut iter = v.into_iter();"},{"DocComment":""},{"DocComment":" assert_eq!(Some(1), iter.next());"},{"DocComment":" assert_eq!(Some(2), iter.next());"},{"DocComment":" assert_eq!(Some(3), iter.next());"},{"DocComment":" assert_eq!(None, iter.next());"},{"DocComment":" ```"},{"DocComment":" Implementing `IntoIterator` for your type:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" // A sample collection, that's just a wrapper over Vec"},{"DocComment":" #[derive(Debug)]"},{"DocComment":" struct MyCollection(Vec);"},{"DocComment":""},{"DocComment":" // Let's give it some methods so we can create one and add things"},{"DocComment":" // to it."},{"DocComment":" impl MyCollection {"},{"DocComment":" fn new() -> MyCollection {"},{"DocComment":" MyCollection(Vec::new())"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" fn add(&mut self, elem: i32) {"},{"DocComment":" self.0.push(elem);"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" // and we'll implement IntoIterator"},{"DocComment":" impl IntoIterator for MyCollection {"},{"DocComment":" type Item = i32;"},{"DocComment":" type IntoIter = std::vec::IntoIter;"},{"DocComment":""},{"DocComment":" fn into_iter(self) -> Self::IntoIter {"},{"DocComment":" self.0.into_iter()"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" // Now we can make a new collection..."},{"DocComment":" let mut c = MyCollection::new();"},{"DocComment":""},{"DocComment":" // ... add some stuff to it ..."},{"DocComment":" c.add(0);"},{"DocComment":" c.add(1);"},{"DocComment":" c.add(2);"},{"DocComment":""},{"DocComment":" // ... and then turn it into an Iterator:"},{"DocComment":" for (i, n) in c.into_iter().enumerate() {"},{"DocComment":" assert_eq!(i as i32, n);"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" It is common to use `IntoIterator` as a trait bound. This allows"},{"DocComment":" the input collection type to change, so long as it is still an"},{"DocComment":" iterator. Additional bounds can be specified by restricting on"},{"DocComment":" `Item`:"},{"DocComment":""},{"DocComment":" ```rust"},{"DocComment":" fn collect_as_strings(collection: T) -> Vec"},{"DocComment":" where"},{"DocComment":" T: IntoIterator,"},{"DocComment":" T::Item: std::fmt::Debug,"},{"DocComment":" {"},{"DocComment":" collection"},{"DocComment":" .into_iter()"},{"DocComment":" .map(|item| format!(\"{item:?}\"))"},{"DocComment":" .collect()"},{"DocComment":" }"},{"DocComment":" ```"},{"Unknown":{"path":"rustc_on_unimplemented","args":"on(Self = \"core::ops::range::RangeTo\", label =\n\"if you meant to iterate until a value, add a starting value\", note =\n\"`..end` is a `RangeTo`, which cannot be iterated on; you might have meant to have a \\\n bounded `Range`: `0..end`\"),\non(Self = \"core::ops::range::RangeToInclusive\", label =\n\"if you meant to iterate until a value (including it), add a starting value\",\nnote =\n\"`..=end` is a `RangeToInclusive`, which cannot be iterated on; you might have meant \\\n to have a bounded `RangeInclusive`: `0..=end`\"),\non(Self = \"[]\", label =\n\"`{Self}` is not an iterator; try calling `.into_iter()` or `.iter()`\"),\non(Self = \"&[]\", label =\n\"`{Self}` is not an iterator; try calling `.iter()`\"),\non(Self = \"alloc::vec::Vec\", label =\n\"`{Self}` is not an iterator; try calling `.into_iter()` or `.iter()`\"),\non(Self = \"&str\", label =\n\"`{Self}` is not an iterator; try calling `.chars()` or `.bytes()`\"),\non(Self = \"alloc::string::String\", label =\n\"`{Self}` is not an iterator; try calling `.chars()` or `.bytes()`\"),\non(Self = \"{integral}\", note =\n\"if you want to iterate between `start` until a value `end`, use the exclusive range \\\n syntax `start..end` or the inclusive range syntax `start..=end`\"),\non(Self = \"{float}\", note =\n\"if you want to iterate between `start` until a value `end`, use the exclusive range \\\n syntax `start..end` or the inclusive range syntax `start..=end`\"),\nlabel = \"`{Self}` is not an iterator\", message = \"`{Self}` is not an iterator\""}}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"IntoIterator"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[{"regions":[],"skip_binder":{"trait_ref":{"HashConsedValue":[7317,{"kind":{"ParentClause":[{"HashConsedValue":[5524,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":2165}],"const_generics":[],"trait_refs":[]}}}}]},3]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"HashConsedValue":[6889,{"TraitType":[{"HashConsedValue":[6888,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":2173}],"const_generics":[],"trait_refs":[]}}}}]},1]}]}],"const_generics":[],"trait_refs":[]}}}}]},"type_id":0,"ty":{"HashConsedValue":[6724,{"TraitType":[{"Deduplicated":5524},0]}]}}}]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":13,"beg":{"line":283,"col":0},"end":{"line":313,"col":1}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":13,"beg":{"line":287,"col":4},"end":{"line":287,"col":14}},"generated_from_span":null},"origin":{"TraitItem":0},"trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":6724}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":2,"span":{"data":{"file_id":13,"beg":{"line":291,"col":4},"end":{"line":291,"col":47}},"generated_from_span":null},"origin":{"TraitItem":1},"trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[6359,{"TraitType":[{"Deduplicated":5524},1]}]}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":3,"span":{"data":{"file_id":13,"beg":{"line":291,"col":19},"end":{"line":291,"col":46}},"generated_from_span":null},"origin":{"TraitItem":1},"trait_":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":6359}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"Item","attr_info":{"attributes":[{"DocComment":" The type of the elements being iterated over."}],"inline":null,"rename":null,"public":false},"default":null,"implied_clauses":[]},"kind":{"TraitType":[6,0]}},{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"IntoIter","attr_info":{"attributes":[{"DocComment":" Which kind of iterator are we turning this into?"}],"inline":null,"rename":null,"public":false},"default":null,"implied_clauses":[]},"kind":{"TraitType":[6,1]}}],"methods":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"into_iter","attr_info":{"attributes":[{"DocComment":" Creates an iterator from a value."},{"DocComment":""},{"DocComment":" See the [module-level documentation] for more."},{"DocComment":""},{"DocComment":" [module-level documentation]: crate::iter"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let v = [1, 2, 3];"},{"DocComment":" let mut iter = v.into_iter();"},{"DocComment":""},{"DocComment":" assert_eq!(Some(1), iter.next());"},{"DocComment":" assert_eq!(Some(2), iter.next());"},{"DocComment":" assert_eq!(Some(3), iter.next());"},{"DocComment":" assert_eq!(None, iter.next());"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":240}],"output":{"Deduplicated":6359}},"item":{"id":276,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[{"Deduplicated":5524}]}}},"kind":{"TraitMethod":[6,0]}}],"vtable":{"id":{"Adt":50},"generics":{"regions":[],"types":[{"HashConsedValue":[7484,{"TraitType":[{"HashConsedValue":[5504,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}]},0]}]},{"HashConsedValue":[7485,{"TraitType":[{"Deduplicated":5504},1]}]}],"const_generics":[],"trait_refs":[]}}},{"def_id":7,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["num",0]},{"Ident":["nonzero",0]},{"Ident":["ZeroablePrimitive",0]}],"span":{"data":{"file_id":19,"beg":{"line":33,"col":0},"end":{"line":33,"col":66}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" A marker trait for primitive types which can be zero."},{"DocComment":""},{"DocComment":" This is an implementation detail for [NonZero]\\ which may disappear or be replaced at any time."},{"DocComment":""},{"DocComment":" # Safety"},{"DocComment":""},{"DocComment":" Types implementing this trait must be primitives that are valid when zeroed."},{"DocComment":""},{"DocComment":" The associated `Self::NonZeroInner` type must have the same size+align as `Self`,"},{"DocComment":" but with a niche and bit validity making it so the following `transmutes` are sound:"},{"DocComment":""},{"DocComment":" - `Self::NonZeroInner` to `Option`"},{"DocComment":" - `Option` to `Self`"},{"DocComment":""},{"DocComment":" (And, consequently, `Self::NonZeroInner` to `Self`.)"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":19,"beg":{"line":33,"col":36},"end":{"line":33,"col":41}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":19,"beg":{"line":33,"col":44},"end":{"line":33,"col":48}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":18,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":2,"span":{"data":{"file_id":19,"beg":{"line":33,"col":51},"end":{"line":33,"col":66}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":27,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":3,"span":{"data":{"file_id":19,"beg":{"line":35,"col":23},"end":{"line":35,"col":28}},"generated_from_span":null},"origin":{"TraitItem":0},"trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[6728,{"TraitType":[{"HashConsedValue":[6727,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":7,"generics":{"regions":[],"types":[{"Deduplicated":2165}],"const_generics":[],"trait_refs":[]}}}}]},0]}]}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":4,"span":{"data":{"file_id":19,"beg":{"line":35,"col":31},"end":{"line":35,"col":35}},"generated_from_span":null},"origin":{"TraitItem":0},"trait_":{"regions":[],"skip_binder":{"id":18,"generics":{"regions":[],"types":[{"Deduplicated":6728}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"NonZeroInner","attr_info":{"attributes":[{"DocComment":" A type like `Self` but with a niche that includes zero."}],"inline":null,"rename":null,"public":false},"default":null,"implied_clauses":[]},"kind":{"TraitType":[7,0]}}],"methods":[],"vtable":null},{"def_id":8,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["clone",0]},{"Ident":["Clone",0]}],"span":{"data":{"file_id":25,"beg":{"line":194,"col":0},"end":{"line":194,"col":28}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" A common trait that allows explicit creation of a duplicate value."},{"DocComment":""},{"DocComment":" Calling [`clone`] always produces a new value."},{"DocComment":" However, for types that are references to other data (such as smart pointers or references),"},{"DocComment":" the new value may still point to the same underlying data, rather than duplicating it."},{"DocComment":" See [`Clone::clone`] for more details."},{"DocComment":""},{"DocComment":" This distinction is especially important when using `#[derive(Clone)]` on structs containing"},{"DocComment":" smart pointers like `Arc>` - the cloned struct will share mutable state with the"},{"DocComment":" original."},{"DocComment":""},{"DocComment":" Differs from [`Copy`] in that [`Copy`] is implicit and an inexpensive bit-wise copy, while"},{"DocComment":" `Clone` is always explicit and may or may not be expensive. [`Copy`] has no methods, so you"},{"DocComment":" cannot change its behavior, but when implementing `Clone`, the `clone` method you provide"},{"DocComment":" may run arbitrary code."},{"DocComment":""},{"DocComment":" Since `Clone` is a supertrait of [`Copy`], any type that implements `Copy` must also implement"},{"DocComment":" `Clone`."},{"DocComment":""},{"DocComment":" ## Derivable"},{"DocComment":""},{"DocComment":" This trait can be used with `#[derive]` if all fields are `Clone`. The `derive`d"},{"DocComment":" implementation of [`Clone`] calls [`clone`] on each field."},{"DocComment":""},{"DocComment":" [`clone`]: Clone::clone"},{"DocComment":""},{"DocComment":" For a generic struct, `#[derive]` implements `Clone` conditionally by adding bound `Clone` on"},{"DocComment":" generic parameters."},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" // `derive` implements Clone for Reading when T is Clone."},{"DocComment":" #[derive(Clone)]"},{"DocComment":" struct Reading {"},{"DocComment":" frequency: T,"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" ## How can I implement `Clone`?"},{"DocComment":""},{"DocComment":" Types that are [`Copy`] should have a trivial implementation of `Clone`. More formally:"},{"DocComment":" if `T: Copy`, `x: T`, and `y: &T`, then `let x = y.clone();` is equivalent to `let x = *y;`."},{"DocComment":" Manual implementations should be careful to uphold this invariant; however, unsafe code"},{"DocComment":" must not rely on it to ensure memory safety."},{"DocComment":""},{"DocComment":" An example is a generic struct holding a function pointer. In this case, the"},{"DocComment":" implementation of `Clone` cannot be `derive`d, but can be implemented as:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" struct Generate(fn() -> T);"},{"DocComment":""},{"DocComment":" impl Copy for Generate {}"},{"DocComment":""},{"DocComment":" impl Clone for Generate {"},{"DocComment":" fn clone(&self) -> Self {"},{"DocComment":" *self"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" If we `derive`:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" #[derive(Copy, Clone)]"},{"DocComment":" struct Generate(fn() -> T);"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" the auto-derived implementations will have unnecessary `T: Copy` and `T: Clone` bounds:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" # struct Generate(fn() -> T);"},{"DocComment":""},{"DocComment":" // Automatically derived"},{"DocComment":" impl Copy for Generate { }"},{"DocComment":""},{"DocComment":" // Automatically derived"},{"DocComment":" impl Clone for Generate {"},{"DocComment":" fn clone(&self) -> Generate {"},{"DocComment":" Generate(Clone::clone(&self.0))"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" The bounds are unnecessary because clearly the function itself should be"},{"DocComment":" copy- and cloneable even if its return type is not:"},{"DocComment":""},{"DocComment":" ```compile_fail,E0599"},{"DocComment":" #[derive(Copy, Clone)]"},{"DocComment":" struct Generate(fn() -> T);"},{"DocComment":""},{"DocComment":" struct NotCloneable;"},{"DocComment":""},{"DocComment":" fn generate_not_cloneable() -> NotCloneable {"},{"DocComment":" NotCloneable"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" Generate(generate_not_cloneable).clone(); // error: trait bounds were not satisfied"},{"DocComment":" // Note: With the manual implementations the above line will compile."},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" ## `Clone` and `PartialEq`/`Eq`"},{"DocComment":" `Clone` is intended for the duplication of objects. Consequently, when implementing"},{"DocComment":" both `Clone` and [`PartialEq`], the following property is expected to hold:"},{"DocComment":" ```text"},{"DocComment":" x == x -> x.clone() == x"},{"DocComment":" ```"},{"DocComment":" In other words, if an object compares equal to itself,"},{"DocComment":" its clone must also compare equal to the original."},{"DocComment":""},{"DocComment":" For types that also implement [`Eq`] – for which `x == x` always holds –"},{"DocComment":" this implies that `x.clone() == x` must always be true."},{"DocComment":" Standard library collections such as"},{"DocComment":" [`HashMap`], [`HashSet`], [`BTreeMap`], [`BTreeSet`] and [`BinaryHeap`]"},{"DocComment":" rely on their keys respecting this property for correct behavior."},{"DocComment":" Furthermore, these collections require that cloning a key preserves the outcome of the"},{"DocComment":" [`Hash`] and [`Ord`] methods. Thankfully, this follows automatically from `x.clone() == x`"},{"DocComment":" if `Hash` and `Ord` are correctly implemented according to their own requirements."},{"DocComment":""},{"DocComment":" When deriving both `Clone` and [`PartialEq`] using `#[derive(Clone, PartialEq)]`"},{"DocComment":" or when additionally deriving [`Eq`] using `#[derive(Clone, PartialEq, Eq)]`,"},{"DocComment":" then this property is automatically upheld – provided that it is satisfied by"},{"DocComment":" the underlying types."},{"DocComment":""},{"DocComment":" Violating this property is a logic error. The behavior resulting from a logic error is not"},{"DocComment":" specified, but users of the trait must ensure that such logic errors do *not* result in"},{"DocComment":" undefined behavior. This means that `unsafe` code **must not** rely on this property"},{"DocComment":" being satisfied."},{"DocComment":""},{"DocComment":" ## Additional implementors"},{"DocComment":""},{"DocComment":" In addition to the [implementors listed below][impls],"},{"DocComment":" the following types also implement `Clone`:"},{"DocComment":""},{"DocComment":" * Function item types (i.e., the distinct types defined for each function)"},{"DocComment":" * Function pointer types (e.g., `fn() -> i32`)"},{"DocComment":" * Closure types, if they capture no value from the environment"},{"DocComment":" or if all such captured values implement `Clone` themselves."},{"DocComment":" Note that variables captured by shared reference always implement `Clone`"},{"DocComment":" (even if the referent doesn't),"},{"DocComment":" while variables captured by mutable reference never implement `Clone`."},{"DocComment":""},{"DocComment":" [`HashMap`]: ../../std/collections/struct.HashMap.html"},{"DocComment":" [`HashSet`]: ../../std/collections/struct.HashSet.html"},{"DocComment":" [`BTreeMap`]: ../../std/collections/struct.BTreeMap.html"},{"DocComment":" [`BTreeSet`]: ../../std/collections/struct.BTreeSet.html"},{"DocComment":" [`BinaryHeap`]: ../../std/collections/struct.BinaryHeap.html"},{"DocComment":" [impls]: #implementors"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"clone"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":25,"beg":{"line":194,"col":23},"end":{"line":194,"col":28}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[],"methods":[{"params":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"clone","attr_info":{"attributes":[{"DocComment":" Returns a duplicate of the value."},{"DocComment":""},{"DocComment":" Note that what \"duplicate\" means varies by type:"},{"DocComment":" - For most types, this creates a deep, independent copy"},{"DocComment":" - For reference types like `&T`, this creates another reference to the same value"},{"DocComment":" - For smart pointers like [`Arc`] or [`Rc`], this increments the reference count"},{"DocComment":" but still points to the same underlying data"},{"DocComment":""},{"DocComment":" [`Arc`]: ../../std/sync/struct.Arc.html"},{"DocComment":" [`Rc`]: ../../std/rc/struct.Rc.html"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" # #![allow(noop_method_call)]"},{"DocComment":" let hello = \"Hello\"; // &str implements Clone"},{"DocComment":""},{"DocComment":" assert_eq!(\"Hello\", hello.clone());"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" Example with a reference-counted type:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" use std::sync::{Arc, Mutex};"},{"DocComment":""},{"DocComment":" let data = Arc::new(Mutex::new(vec![1, 2, 3]));"},{"DocComment":" let data_clone = data.clone(); // Creates another Arc pointing to the same Mutex"},{"DocComment":""},{"DocComment":" {"},{"DocComment":" let mut lock = data.lock().unwrap();"},{"DocComment":" lock.push(4);"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" // Changes are visible through the clone because they share the same underlying data"},{"DocComment":" assert_eq!(*data_clone.lock().unwrap(), vec![1, 2, 3, 4]);"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"signature":{"is_unsafe":false,"inputs":[{"HashConsedValue":[2345,{"Ref":[{"Var":{"Bound":[0,0]}},{"Deduplicated":240},"Shared"]}]}],"output":{"Deduplicated":240}},"item":{"id":277,"generics":{"regions":[{"Var":{"Bound":[0,0]}}],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6893,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":8,"generics":{"regions":[],"types":[{"Deduplicated":2165}],"const_generics":[],"trait_refs":[]}}}}]}]}}},"kind":{"TraitMethod":[8,0]}},null],"vtable":null},{"def_id":9,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["function",0]},{"Ident":["FnMut",0]}],"span":{"data":{"file_id":18,"beg":{"line":163,"col":0},"end":{"line":163,"col":48}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" The version of the call operator that takes a mutable receiver."},{"DocComment":""},{"DocComment":" Instances of `FnMut` can be called repeatedly and may mutate state."},{"DocComment":""},{"DocComment":" `FnMut` is implemented automatically by closures which take mutable"},{"DocComment":" references to captured variables, as well as all types that implement"},{"DocComment":" [`Fn`], e.g., (safe) [function pointers] (since `FnMut` is a supertrait of"},{"DocComment":" [`Fn`]). Additionally, for any type `F` that implements `FnMut`, `&mut F`"},{"DocComment":" implements `FnMut`, too."},{"DocComment":""},{"DocComment":" Since [`FnOnce`] is a supertrait of `FnMut`, any instance of `FnMut` can be"},{"DocComment":" used where a [`FnOnce`] is expected, and since [`Fn`] is a subtrait of"},{"DocComment":" `FnMut`, any instance of [`Fn`] can be used where `FnMut` is expected."},{"DocComment":""},{"DocComment":" Use `FnMut` as a bound when you want to accept a parameter of function-like"},{"DocComment":" type and need to call it repeatedly, while allowing it to mutate state."},{"DocComment":" If you don't want the parameter to mutate state, use [`Fn`] as a"},{"DocComment":" bound; if you don't need to call it repeatedly, use [`FnOnce`]."},{"DocComment":""},{"DocComment":" See the [chapter on closures in *The Rust Programming Language*][book] for"},{"DocComment":" some more information on this topic."},{"DocComment":""},{"DocComment":" Also of note is the special syntax for `Fn` traits (e.g."},{"DocComment":" `Fn(usize, bool) -> usize`). Those interested in the technical details of"},{"DocComment":" this can refer to [the relevant section in the *Rustonomicon*][nomicon]."},{"DocComment":""},{"DocComment":" [book]: ../../book/ch13-01-closures.html"},{"DocComment":" [function pointers]: fn"},{"DocComment":" [nomicon]: ../../nomicon/hrtb.html"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ## Calling a mutably capturing closure"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let mut x = 5;"},{"DocComment":" {"},{"DocComment":" let mut square_x = || x *= x;"},{"DocComment":" square_x();"},{"DocComment":" }"},{"DocComment":" assert_eq!(x, 25);"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" ## Using a `FnMut` parameter"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" fn do_twice(mut func: F)"},{"DocComment":" where F: FnMut()"},{"DocComment":" {"},{"DocComment":" func();"},{"DocComment":" func();"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" let mut x: usize = 1;"},{"DocComment":" {"},{"DocComment":" let add_two_to_x = || x += 2;"},{"DocComment":" do_twice(add_two_to_x);"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" assert_eq!(x, 5);"},{"DocComment":" ```"},{"Unknown":{"path":"rustc_on_unimplemented","args":"on(Args = \"()\", note =\n\"wrap the `{Self}` in a closure with no arguments: `|| {{ /* code */ }}`\"),\non(Self = \"unsafe fn\", note =\n\"unsafe function cannot be called generically without an unsafe block\", label\n= \"call the function in a closure: `|| unsafe {{ /* code */ }}`\"), message =\n\"expected a `{Trait}` closure, found `{Self}`\", label =\n\"expected an `{Trait}` closure, found `{Self}`\""}}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"fn_mut"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"},{"index":1,"name":"Args"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":18,"beg":{"line":163,"col":0},"end":{"line":167,"col":1}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":18,"beg":{"line":163,"col":36},"end":{"line":163,"col":48}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":5,"generics":{"regions":[],"types":[{"Deduplicated":240},{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":2,"span":{"data":{"file_id":18,"beg":{"line":163,"col":22},"end":{"line":163,"col":26}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":3,"span":{"data":{"file_id":18,"beg":{"line":163,"col":28},"end":{"line":163,"col":33}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":25,"generics":{"regions":[],"types":[{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[],"methods":[{"params":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"call_mut","attr_info":{"attributes":[{"DocComment":" Performs the call operation."}],"inline":null,"rename":null,"public":true},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":2280},{"Deduplicated":2139}],"output":{"HashConsedValue":[7487,{"TraitType":[{"HashConsedValue":[7486,{"kind":{"ParentClause":[{"HashConsedValue":[5641,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":9,"generics":{"regions":[],"types":[{"Deduplicated":2165},{"Deduplicated":2737}],"const_generics":[],"trait_refs":[]}}}}]},1]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":5,"generics":{"regions":[],"types":[{"Deduplicated":2165},{"Deduplicated":2737}],"const_generics":[],"trait_refs":[]}}}}]},0]}]}},"item":{"id":279,"generics":{"regions":[{"Var":{"Bound":[0,0]}}],"types":[{"Deduplicated":240},{"Deduplicated":2139}],"const_generics":[],"trait_refs":[{"Deduplicated":5641}]}}},"kind":{"TraitMethod":[9,0]}}],"vtable":{"id":{"Adt":52},"generics":{"regions":[],"types":[{"Deduplicated":2143},{"HashConsedValue":[7490,{"TraitType":[{"HashConsedValue":[7489,{"kind":{"ParentClause":[{"HashConsedValue":[7488,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":9,"generics":{"regions":[],"types":[{"Deduplicated":240},{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}]},1]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":5,"generics":{"regions":[],"types":[{"Deduplicated":240},{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}]},0]}]}],"const_generics":[],"trait_refs":[]}}},{"def_id":10,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["collect",0]},{"Ident":["FromIterator",0]}],"span":{"data":{"file_id":13,"beg":{"line":134,"col":0},"end":{"line":134,"col":32}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Conversion from an [`Iterator`]."},{"DocComment":""},{"DocComment":" By implementing `FromIterator` for a type, you define how it will be"},{"DocComment":" created from an iterator. This is common for types which describe a"},{"DocComment":" collection of some kind."},{"DocComment":""},{"DocComment":" If you want to create a collection from the contents of an iterator, the"},{"DocComment":" [`Iterator::collect()`] method is preferred. However, when you need to"},{"DocComment":" specify the container type, [`FromIterator::from_iter()`] can be more"},{"DocComment":" readable than using a turbofish (e.g. `::>()`). See the"},{"DocComment":" [`Iterator::collect()`] documentation for more examples of its use."},{"DocComment":""},{"DocComment":" See also: [`IntoIterator`]."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" Basic usage:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let five_fives = std::iter::repeat(5).take(5);"},{"DocComment":""},{"DocComment":" let v = Vec::from_iter(five_fives);"},{"DocComment":""},{"DocComment":" assert_eq!(v, vec![5, 5, 5, 5, 5]);"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" Using [`Iterator::collect()`] to implicitly use `FromIterator`:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let five_fives = std::iter::repeat(5).take(5);"},{"DocComment":""},{"DocComment":" let v: Vec = five_fives.collect();"},{"DocComment":""},{"DocComment":" assert_eq!(v, vec![5, 5, 5, 5, 5]);"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" Using [`FromIterator::from_iter()`] as a more readable alternative to"},{"DocComment":" [`Iterator::collect()`]:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" use std::collections::VecDeque;"},{"DocComment":" let first = (0..10).collect::>();"},{"DocComment":" let second = VecDeque::from_iter(0..10);"},{"DocComment":""},{"DocComment":" assert_eq!(first, second);"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" Implementing `FromIterator` for your type:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" // A sample collection, that's just a wrapper over Vec"},{"DocComment":" #[derive(Debug)]"},{"DocComment":" struct MyCollection(Vec);"},{"DocComment":""},{"DocComment":" // Let's give it some methods so we can create one and add things"},{"DocComment":" // to it."},{"DocComment":" impl MyCollection {"},{"DocComment":" fn new() -> MyCollection {"},{"DocComment":" MyCollection(Vec::new())"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" fn add(&mut self, elem: i32) {"},{"DocComment":" self.0.push(elem);"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" // and we'll implement FromIterator"},{"DocComment":" impl FromIterator for MyCollection {"},{"DocComment":" fn from_iter>(iter: I) -> Self {"},{"DocComment":" let mut c = MyCollection::new();"},{"DocComment":""},{"DocComment":" for i in iter {"},{"DocComment":" c.add(i);"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" c"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" // Now we can make a new iterator..."},{"DocComment":" let iter = (0..5).into_iter();"},{"DocComment":""},{"DocComment":" // ... and make a MyCollection out of it"},{"DocComment":" let c = MyCollection::from_iter(iter);"},{"DocComment":""},{"DocComment":" assert_eq!(c.0, vec![0, 1, 2, 3, 4]);"},{"DocComment":""},{"DocComment":" // collect works too!"},{"DocComment":""},{"DocComment":" let iter = (0..5).into_iter();"},{"DocComment":" let c: MyCollection = iter.collect();"},{"DocComment":""},{"DocComment":" assert_eq!(c.0, vec![0, 1, 2, 3, 4]);"},{"DocComment":" ```"},{"Unknown":{"path":"rustc_on_unimplemented","args":"on(Self = \"&[{A}]\", message =\n\"a slice of type `{Self}` cannot be built since we need to store the elements somewhere\",\nlabel = \"try explicitly collecting into a `Vec<{A}>`\",),\non(all(A = \"{integer}\", any(Self = \"&[{integral}]\",)), message =\n\"a slice of type `{Self}` cannot be built since we need to store the elements somewhere\",\nlabel = \"try explicitly collecting into a `Vec<{A}>`\",),\non(Self = \"[{A}]\", message =\n\"a slice of type `{Self}` cannot be built since `{Self}` has no definite size\",\nlabel = \"try explicitly collecting into a `Vec<{A}>`\",),\non(all(A = \"{integer}\", any(Self = \"[{integral}]\",)), message =\n\"a slice of type `{Self}` cannot be built since `{Self}` has no definite size\",\nlabel = \"try explicitly collecting into a `Vec<{A}>`\",),\non(Self = \"[{A}; _]\", message =\n\"an array of type `{Self}` cannot be built directly from an iterator\", label =\n\"try collecting into a `Vec<{A}>`, then using `.try_into()`\",),\non(all(A = \"{integer}\", any(Self = \"[{integral}; _]\",)), message =\n\"an array of type `{Self}` cannot be built directly from an iterator\", label =\n\"try collecting into a `Vec<{A}>`, then using `.try_into()`\",), message =\n\"a value of type `{Self}` cannot be built from an iterator \\\n over elements of type `{A}`\",\nlabel =\n\"value of type `{Self}` cannot be built from `std::iter::Iterator`\""}}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"FromIterator"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"},{"index":1,"name":"A"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":13,"beg":{"line":134,"col":27},"end":{"line":134,"col":32}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":13,"beg":{"line":134,"col":23},"end":{"line":134,"col":24}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[],"methods":[{"params":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":13,"beg":{"line":152,"col":17},"end":{"line":152,"col":18}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":13,"beg":{"line":152,"col":20},"end":{"line":152,"col":42}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[{"regions":[],"skip_binder":{"trait_ref":{"HashConsedValue":[4380,{"kind":{"Clause":{"Bound":[1,1]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":2165}],"const_generics":[],"trait_refs":[]}}}}]},"type_id":0,"ty":{"Deduplicated":2737}}}]},"skip_binder":{"name":"from_iter","attr_info":{"attributes":[{"DocComment":" Creates a value from an iterator."},{"DocComment":""},{"DocComment":" See the [module-level documentation] for more."},{"DocComment":""},{"DocComment":" [module-level documentation]: crate::iter"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let five_fives = std::iter::repeat(5).take(5);"},{"DocComment":""},{"DocComment":" let v = Vec::from_iter(five_fives);"},{"DocComment":""},{"DocComment":" assert_eq!(v, vec![5, 5, 5, 5, 5]);"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":272}],"output":{"Deduplicated":240}},"item":{"id":280,"generics":{"regions":[],"types":[{"Deduplicated":240},{"Deduplicated":2139},{"Deduplicated":272}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6899,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":10,"generics":{"regions":[],"types":[{"Deduplicated":2165},{"Deduplicated":2737}],"const_generics":[],"trait_refs":[]}}}}]},{"Deduplicated":275},{"HashConsedValue":[4381,{"kind":{"Clause":{"Bound":[0,1]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}]}]}}},"kind":{"TraitMethod":[10,0]}}],"vtable":null},{"def_id":11,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["try_trait",0]},{"Ident":["Try",0]}],"span":{"data":{"file_id":42,"beg":{"line":133,"col":0},"end":{"line":133,"col":41}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" The `?` operator and `try {}` blocks."},{"DocComment":""},{"DocComment":" `try_*` methods typically involve a type implementing this trait. For"},{"DocComment":" example, the closures passed to [`Iterator::try_fold`] and"},{"DocComment":" [`Iterator::try_for_each`] must return such a type."},{"DocComment":""},{"DocComment":" `Try` types are typically those containing two or more categories of values,"},{"DocComment":" some subset of which are so commonly handled via early returns that it's"},{"DocComment":" worth providing a terse (but still visible) syntax to make that easy."},{"DocComment":""},{"DocComment":" This is most often seen for error handling with [`Result`] and [`Option`]."},{"DocComment":" The quintessential implementation of this trait is on [`ControlFlow`]."},{"DocComment":""},{"DocComment":" # Using `Try` in Generic Code"},{"DocComment":""},{"DocComment":" `Iterator::try_fold` was stabilized to call back in Rust 1.27, but"},{"DocComment":" this trait is much newer. To illustrate the various associated types and"},{"DocComment":" methods, let's implement our own version."},{"DocComment":""},{"DocComment":" As a reminder, an infallible version of a fold looks something like this:"},{"DocComment":" ```"},{"DocComment":" fn simple_fold("},{"DocComment":" iter: impl Iterator,"},{"DocComment":" mut accum: A,"},{"DocComment":" mut f: impl FnMut(A, T) -> A,"},{"DocComment":" ) -> A {"},{"DocComment":" for x in iter {"},{"DocComment":" accum = f(accum, x);"},{"DocComment":" }"},{"DocComment":" accum"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" So instead of `f` returning just an `A`, we'll need it to return some other"},{"DocComment":" type that produces an `A` in the \"don't short circuit\" path. Conveniently,"},{"DocComment":" that's also the type we need to return from the function."},{"DocComment":""},{"DocComment":" Let's add a new generic parameter `R` for that type, and bound it to the"},{"DocComment":" output type that we want:"},{"DocComment":" ```"},{"DocComment":" # #![feature(try_trait_v2)]"},{"DocComment":" # use std::ops::Try;"},{"DocComment":" fn simple_try_fold_1>("},{"DocComment":" iter: impl Iterator,"},{"DocComment":" mut accum: A,"},{"DocComment":" mut f: impl FnMut(A, T) -> R,"},{"DocComment":" ) -> R {"},{"DocComment":" todo!()"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" If we get through the entire iterator, we need to wrap up the accumulator"},{"DocComment":" into the return type using [`Try::from_output`]:"},{"DocComment":" ```"},{"DocComment":" # #![feature(try_trait_v2)]"},{"DocComment":" # use std::ops::{ControlFlow, Try};"},{"DocComment":" fn simple_try_fold_2>("},{"DocComment":" iter: impl Iterator,"},{"DocComment":" mut accum: A,"},{"DocComment":" mut f: impl FnMut(A, T) -> R,"},{"DocComment":" ) -> R {"},{"DocComment":" for x in iter {"},{"DocComment":" let cf = f(accum, x).branch();"},{"DocComment":" match cf {"},{"DocComment":" ControlFlow::Continue(a) => accum = a,"},{"DocComment":" ControlFlow::Break(_) => todo!(),"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":" R::from_output(accum)"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" We'll also need [`FromResidual::from_residual`] to turn the residual back"},{"DocComment":" into the original type. But because it's a supertrait of `Try`, we don't"},{"DocComment":" need to mention it in the bounds. All types which implement `Try` can be"},{"DocComment":" recreated from their corresponding residual, so we'll just call it:"},{"DocComment":" ```"},{"DocComment":" # #![feature(try_trait_v2)]"},{"DocComment":" # use std::ops::{ControlFlow, Try};"},{"DocComment":" pub fn simple_try_fold_3>("},{"DocComment":" iter: impl Iterator,"},{"DocComment":" mut accum: A,"},{"DocComment":" mut f: impl FnMut(A, T) -> R,"},{"DocComment":" ) -> R {"},{"DocComment":" for x in iter {"},{"DocComment":" let cf = f(accum, x).branch();"},{"DocComment":" match cf {"},{"DocComment":" ControlFlow::Continue(a) => accum = a,"},{"DocComment":" ControlFlow::Break(r) => return R::from_residual(r),"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":" R::from_output(accum)"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" But this \"call `branch`, then `match` on it, and `return` if it was a"},{"DocComment":" `Break`\" is exactly what happens inside the `?` operator. So rather than"},{"DocComment":" do all this manually, we can just use `?` instead:"},{"DocComment":" ```"},{"DocComment":" # #![feature(try_trait_v2)]"},{"DocComment":" # use std::ops::Try;"},{"DocComment":" fn simple_try_fold>("},{"DocComment":" iter: impl Iterator,"},{"DocComment":" mut accum: A,"},{"DocComment":" mut f: impl FnMut(A, T) -> R,"},{"DocComment":" ) -> R {"},{"DocComment":" for x in iter {"},{"DocComment":" accum = f(accum, x)?;"},{"DocComment":" }"},{"DocComment":" R::from_output(accum)"},{"DocComment":" }"},{"DocComment":" ```"},{"Unknown":{"path":"rustc_on_unimplemented","args":"on(all(from_desugaring = \"TryBlock\"), message =\n\"a `try` block must return `Result` or `Option` \\\n (or another type that implements `{This}`)\",\nlabel =\n\"could not wrap the final value of the block as `{Self}` doesn't implement `Try`\",),\non(all(from_desugaring = \"QuestionMark\"), message =\n\"the `?` operator can only be applied to values that implement `{This}`\",\nlabel = \"the `?` operator cannot be applied to type `{Self}`\")"}}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"Try"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":42,"beg":{"line":133,"col":0},"end":{"line":220,"col":1}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":42,"beg":{"line":133,"col":21},"end":{"line":133,"col":41}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":24,"generics":{"regions":[],"types":[{"Deduplicated":240},{"HashConsedValue":[5673,{"TraitType":[{"HashConsedValue":[5672,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":11,"generics":{"regions":[],"types":[{"Deduplicated":2165}],"const_generics":[],"trait_refs":[]}}}}]},1]}]}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":2,"span":{"data":{"file_id":42,"beg":{"line":136,"col":4},"end":{"line":136,"col":16}},"generated_from_span":null},"origin":{"TraitItem":0},"trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[5686,{"TraitType":[{"Deduplicated":5672},0]}]}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":3,"span":{"data":{"file_id":42,"beg":{"line":160,"col":4},"end":{"line":160,"col":18}},"generated_from_span":null},"origin":{"TraitItem":1},"trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":5673}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"Output","attr_info":{"attributes":[{"DocComment":" The type of the value produced by `?` when *not* short-circuiting."}],"inline":null,"rename":null,"public":false},"default":null,"implied_clauses":[]},"kind":{"TraitType":[11,0]}},{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"Residual","attr_info":{"attributes":[{"DocComment":" The type of the value passed to [`FromResidual::from_residual`]"},{"DocComment":" as part of `?` when short-circuiting."},{"DocComment":""},{"DocComment":" This represents the possible values of the `Self` type which are *not*"},{"DocComment":" represented by the `Output` type."},{"DocComment":""},{"DocComment":" # Note to Implementors"},{"DocComment":""},{"DocComment":" The choice of this type is critical to interconversion."},{"DocComment":" Unlike the `Output` type, which will often be a raw generic type,"},{"DocComment":" this type is typically a newtype of some sort to \"color\" the type"},{"DocComment":" so that it's distinguishable from the residuals of other types."},{"DocComment":""},{"DocComment":" This is why `Result::Residual` is not `E`, but `Result`."},{"DocComment":" That way it's distinct from `ControlFlow::Residual`, for example,"},{"DocComment":" and thus `?` on `ControlFlow` cannot be used in a method returning `Result`."},{"DocComment":""},{"DocComment":" If you're making a generic type `Foo` that implements `Try`,"},{"DocComment":" then typically you can use `Foo` as its `Residual`"},{"DocComment":" type: that type will have a \"hole\" in the correct place, and will maintain the"},{"DocComment":" \"foo-ness\" of the residual so other types need to opt-in to interconversion."}],"inline":null,"rename":null,"public":false},"default":null,"implied_clauses":[]},"kind":{"TraitType":[11,1]}}],"methods":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"from_output","attr_info":{"attributes":[{"DocComment":" Constructs the type from its `Output` type."},{"DocComment":""},{"DocComment":" This should be implemented consistently with the `branch` method"},{"DocComment":" such that applying the `?` operator will get back the original value:"},{"DocComment":" `Try::from_output(x).branch() --> ControlFlow::Continue(x)`."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" #![feature(try_trait_v2)]"},{"DocComment":" use std::ops::Try;"},{"DocComment":""},{"DocComment":" assert_eq!( as Try>::from_output(3), Ok(3));"},{"DocComment":" assert_eq!( as Try>::from_output(4), Some(4));"},{"DocComment":" assert_eq!("},{"DocComment":" as Try>::from_output(5),"},{"DocComment":" std::ops::ControlFlow::Continue(5),"},{"DocComment":" );"},{"DocComment":""},{"DocComment":" # fn make_question_mark_work() -> Option<()> {"},{"DocComment":" assert_eq!(Option::from_output(4)?, 4);"},{"DocComment":" # None }"},{"DocComment":" # make_question_mark_work();"},{"DocComment":""},{"DocComment":" // This is used, for example, on the accumulator in `try_fold`:"},{"DocComment":" let r = std::iter::empty().try_fold(4, |_, ()| -> Option<_> { unreachable!() });"},{"DocComment":" assert_eq!(r, Some(4));"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":5686}],"output":{"Deduplicated":240}},"item":{"id":281,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[{"Deduplicated":5672}]}}},"kind":{"TraitMethod":[11,0]}},{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"branch","attr_info":{"attributes":[{"DocComment":" Used in `?` to decide whether the operator should produce a value"},{"DocComment":" (because this returned [`ControlFlow::Continue`])"},{"DocComment":" or propagate a value back to the caller"},{"DocComment":" (because this returned [`ControlFlow::Break`])."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" #![feature(try_trait_v2)]"},{"DocComment":" use std::ops::{ControlFlow, Try};"},{"DocComment":""},{"DocComment":" assert_eq!(Ok::<_, String>(3).branch(), ControlFlow::Continue(3));"},{"DocComment":" assert_eq!(Err::(3).branch(), ControlFlow::Break(Err(3)));"},{"DocComment":""},{"DocComment":" assert_eq!(Some(3).branch(), ControlFlow::Continue(3));"},{"DocComment":" assert_eq!(None::.branch(), ControlFlow::Break(None));"},{"DocComment":""},{"DocComment":" assert_eq!(ControlFlow::::Continue(3).branch(), ControlFlow::Continue(3));"},{"DocComment":" assert_eq!("},{"DocComment":" ControlFlow::<_, String>::Break(3).branch(),"},{"DocComment":" ControlFlow::Break(ControlFlow::Break(3)),"},{"DocComment":" );"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":240}],"output":{"HashConsedValue":[7495,{"Adt":{"id":{"Adt":14},"generics":{"regions":[],"types":[{"Deduplicated":5673},{"Deduplicated":5686}],"const_generics":[],"trait_refs":[{"HashConsedValue":[7492,{"kind":{"ParentClause":[{"HashConsedValue":[7491,{"kind":{"ParentClause":[{"Deduplicated":5672},1]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":24,"generics":{"regions":[],"types":[{"Deduplicated":2165},{"HashConsedValue":[5680,{"TraitType":[{"HashConsedValue":[5678,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":11,"generics":{"regions":[],"types":[{"Deduplicated":2173}],"const_generics":[],"trait_refs":[]}}}}]},1]}]}],"const_generics":[],"trait_refs":[]}}}}]},1]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":5680}],"const_generics":[],"trait_refs":[]}}}}]},{"HashConsedValue":[7494,{"kind":{"ParentClause":[{"Deduplicated":5672},2]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[7493,{"TraitType":[{"Deduplicated":5678},0]}]}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},"item":{"id":282,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[{"Deduplicated":5672}]}}},"kind":{"TraitMethod":[11,1]}}],"vtable":null},{"def_id":12,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["try_trait",0]},{"Ident":["Residual",0]}],"span":{"data":{"file_id":42,"beg":{"line":364,"col":0},"end":{"line":364,"col":34}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Allows retrieving the canonical type implementing [`Try`] that has this type"},{"DocComment":" as its residual and allows it to hold an `O` as its output."},{"DocComment":""},{"DocComment":" If you think of the `Try` trait as splitting a type into its [`Try::Output`]"},{"DocComment":" and [`Try::Residual`] components, this allows putting them back together."},{"DocComment":""},{"DocComment":" For example,"},{"DocComment":" `Result: Try>`,"},{"DocComment":" and in the other direction,"},{"DocComment":" ` as Residual>::TryType = Result`."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"Self"},{"index":1,"name":"O"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[{"regions":[],"skip_binder":{"trait_ref":{"HashConsedValue":[6905,{"kind":{"ParentClause":[{"HashConsedValue":[6729,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":12,"generics":{"regions":[],"types":[{"Deduplicated":2165},{"Deduplicated":2737}],"const_generics":[],"trait_refs":[]}}}}]},3]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":11,"generics":{"regions":[],"types":[{"HashConsedValue":[6731,{"TraitType":[{"HashConsedValue":[5712,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":12,"generics":{"regions":[],"types":[{"Deduplicated":2173},{"HashConsedValue":[5307,{"TypeVar":{"Bound":[3,1]}}]}],"const_generics":[],"trait_refs":[]}}}}]},0]}]}],"const_generics":[],"trait_refs":[]}}}}]},"type_id":0,"ty":{"Deduplicated":2139}}},{"regions":[],"skip_binder":{"trait_ref":{"Deduplicated":6905},"type_id":1,"ty":{"Deduplicated":240}}}]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":42,"beg":{"line":364,"col":29},"end":{"line":364,"col":34}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":42,"beg":{"line":364,"col":25},"end":{"line":364,"col":26}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":2,"span":{"data":{"file_id":42,"beg":{"line":368,"col":4},"end":{"line":368,"col":59}},"generated_from_span":null},"origin":{"TraitItem":0},"trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[6730,{"TraitType":[{"Deduplicated":6729},0]}]}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":3,"span":{"data":{"file_id":42,"beg":{"line":368,"col":18},"end":{"line":368,"col":58}},"generated_from_span":null},"origin":{"TraitItem":0},"trait_":{"regions":[],"skip_binder":{"id":11,"generics":{"regions":[],"types":[{"Deduplicated":6730}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"TryType","attr_info":{"attributes":[{"DocComment":" The \"return\" type of this meta-function."}],"inline":null,"rename":null,"public":false},"default":null,"implied_clauses":[]},"kind":{"TraitType":[12,0]}}],"methods":[],"vtable":null},{"def_id":13,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["collect",0]},{"Ident":["Extend",0]}],"span":{"data":{"file_id":13,"beg":{"line":397,"col":0},"end":{"line":397,"col":19}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Extend a collection with the contents of an iterator."},{"DocComment":""},{"DocComment":" Iterators produce a series of values, and collections can also be thought"},{"DocComment":" of as a series of values. The `Extend` trait bridges this gap, allowing you"},{"DocComment":" to extend a collection by including the contents of that iterator. When"},{"DocComment":" extending a collection with an already existing key, that entry is updated"},{"DocComment":" or, in the case of collections that permit multiple entries with equal"},{"DocComment":" keys, that entry is inserted."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" Basic usage:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" // You can extend a String with some chars:"},{"DocComment":" let mut message = String::from(\"The first three letters are: \");"},{"DocComment":""},{"DocComment":" message.extend(&['a', 'b', 'c']);"},{"DocComment":""},{"DocComment":" assert_eq!(\"abc\", &message[29..32]);"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" Implementing `Extend`:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" // A sample collection, that's just a wrapper over Vec"},{"DocComment":" #[derive(Debug)]"},{"DocComment":" struct MyCollection(Vec);"},{"DocComment":""},{"DocComment":" // Let's give it some methods so we can create one and add things"},{"DocComment":" // to it."},{"DocComment":" impl MyCollection {"},{"DocComment":" fn new() -> MyCollection {"},{"DocComment":" MyCollection(Vec::new())"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" fn add(&mut self, elem: i32) {"},{"DocComment":" self.0.push(elem);"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" // since MyCollection has a list of i32s, we implement Extend for i32"},{"DocComment":" impl Extend for MyCollection {"},{"DocComment":""},{"DocComment":" // This is a bit simpler with the concrete type signature: we can call"},{"DocComment":" // extend on anything which can be turned into an Iterator which gives"},{"DocComment":" // us i32s. Because we need i32s to put into MyCollection."},{"DocComment":" fn extend>(&mut self, iter: T) {"},{"DocComment":""},{"DocComment":" // The implementation is very straightforward: loop through the"},{"DocComment":" // iterator, and add() each element to ourselves."},{"DocComment":" for elem in iter {"},{"DocComment":" self.add(elem);"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" let mut c = MyCollection::new();"},{"DocComment":""},{"DocComment":" c.add(5);"},{"DocComment":" c.add(6);"},{"DocComment":" c.add(7);"},{"DocComment":""},{"DocComment":" // let's extend our collection with three more numbers"},{"DocComment":" c.extend(vec![1, 2, 3]);"},{"DocComment":""},{"DocComment":" // we've added these elements onto the end"},{"DocComment":" assert_eq!(\"MyCollection([5, 6, 7, 1, 2, 3])\", format!(\"{c:?}\"));"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"Self"},{"index":1,"name":"A"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":13,"beg":{"line":397,"col":0},"end":{"line":451,"col":1}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":13,"beg":{"line":397,"col":17},"end":{"line":397,"col":18}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[],"methods":[{"params":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":13,"beg":{"line":416,"col":14},"end":{"line":416,"col":15}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":13,"beg":{"line":416,"col":17},"end":{"line":416,"col":39}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[{"regions":[],"skip_binder":{"trait_ref":{"Deduplicated":4380},"type_id":0,"ty":{"Deduplicated":2737}}}]},"skip_binder":{"name":"extend","attr_info":{"attributes":[{"DocComment":" Extends a collection with the contents of an iterator."},{"DocComment":""},{"DocComment":" As this is the only required method for this trait, the [trait-level] docs"},{"DocComment":" contain more details."},{"DocComment":""},{"DocComment":" [trait-level]: Extend"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" // You can extend a String with some chars:"},{"DocComment":" let mut message = String::from(\"abc\");"},{"DocComment":""},{"DocComment":" message.extend(['d', 'e', 'f'].iter());"},{"DocComment":""},{"DocComment":" assert_eq!(\"abcdef\", &message);"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":2280},{"Deduplicated":272}],"output":{"Deduplicated":297}},"item":{"id":283,"generics":{"regions":[{"Var":{"Bound":[0,0]}}],"types":[{"Deduplicated":240},{"Deduplicated":2139},{"Deduplicated":272}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6906,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":13,"generics":{"regions":[],"types":[{"Deduplicated":2165},{"Deduplicated":2737}],"const_generics":[],"trait_refs":[]}}}}]},{"Deduplicated":275},{"Deduplicated":4381}]}}},"kind":{"TraitMethod":[13,0]}},null,null,null],"vtable":null},{"def_id":14,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["default",0]},{"Ident":["Default",0]}],"span":{"data":{"file_id":43,"beg":{"line":107,"col":0},"end":{"line":107,"col":30}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" A trait for giving a type a useful default value."},{"DocComment":""},{"DocComment":" Sometimes, you want to fall back to some kind of default value, and"},{"DocComment":" don't particularly care what it is. This comes up often with `struct`s"},{"DocComment":" that define a set of options:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" # #[allow(dead_code)]"},{"DocComment":" struct SomeOptions {"},{"DocComment":" foo: i32,"},{"DocComment":" bar: f32,"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" How can we define some default values? You can use `Default`:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" # #[allow(dead_code)]"},{"DocComment":" #[derive(Default)]"},{"DocComment":" struct SomeOptions {"},{"DocComment":" foo: i32,"},{"DocComment":" bar: f32,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" fn main() {"},{"DocComment":" let options: SomeOptions = Default::default();"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" Now, you get all of the default values. Rust implements `Default` for various primitive types."},{"DocComment":""},{"DocComment":" If you want to override a particular option, but still retain the other defaults:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" # #[allow(dead_code)]"},{"DocComment":" # #[derive(Default)]"},{"DocComment":" # struct SomeOptions {"},{"DocComment":" # foo: i32,"},{"DocComment":" # bar: f32,"},{"DocComment":" # }"},{"DocComment":" fn main() {"},{"DocComment":" let options = SomeOptions { foo: 42, ..Default::default() };"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" ## Derivable"},{"DocComment":""},{"DocComment":" This trait can be used with `#[derive]` if all of the type's fields implement"},{"DocComment":" `Default`. When `derive`d, it will use the default value for each field's type."},{"DocComment":""},{"DocComment":" ### `enum`s"},{"DocComment":""},{"DocComment":" When using `#[derive(Default)]` on an `enum`, you need to choose which unit variant will be"},{"DocComment":" default. You do this by placing the `#[default]` attribute on the variant."},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" #[derive(Default)]"},{"DocComment":" enum Kind {"},{"DocComment":" #[default]"},{"DocComment":" A,"},{"DocComment":" B,"},{"DocComment":" C,"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" You cannot use the `#[default]` attribute on non-unit or non-exhaustive variants."},{"DocComment":""},{"DocComment":" The `#[default]` attribute was stabilized in Rust 1.62.0."},{"DocComment":""},{"DocComment":" ## How can I implement `Default`?"},{"DocComment":""},{"DocComment":" Provide an implementation for the `default()` method that returns the value of"},{"DocComment":" your type that should be the default:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" # #![allow(dead_code)]"},{"DocComment":" enum Kind {"},{"DocComment":" A,"},{"DocComment":" B,"},{"DocComment":" C,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl Default for Kind {"},{"DocComment":" fn default() -> Self { Kind::A }"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" # #[allow(dead_code)]"},{"DocComment":" #[derive(Default)]"},{"DocComment":" struct SomeOptions {"},{"DocComment":" foo: i32,"},{"DocComment":" bar: f32,"},{"DocComment":" }"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"Default"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":43,"beg":{"line":107,"col":25},"end":{"line":107,"col":30}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[],"methods":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"default","attr_info":{"attributes":[{"DocComment":" Returns the \"default value\" for a type."},{"DocComment":""},{"DocComment":" Default values are often some kind of initial value, identity value, or anything else that"},{"DocComment":" may make sense as a default."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" Using built-in default values:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let i: i8 = Default::default();"},{"DocComment":" let (x, y): (Option, f64) = Default::default();"},{"DocComment":" let (a, b, (c, d)): (i32, u32, (bool, bool)) = Default::default();"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" Making your own:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" # #[allow(dead_code)]"},{"DocComment":" enum Kind {"},{"DocComment":" A,"},{"DocComment":" B,"},{"DocComment":" C,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl Default for Kind {"},{"DocComment":" fn default() -> Self { Kind::A }"},{"DocComment":" }"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"signature":{"is_unsafe":false,"inputs":[],"output":{"Deduplicated":240}},"item":{"id":287,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6907,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":14,"generics":{"regions":[],"types":[{"Deduplicated":2165}],"const_generics":[],"trait_refs":[]}}}}]}]}}},"kind":{"TraitMethod":[14,0]}}],"vtable":null},{"def_id":15,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["double_ended",0]},{"Ident":["DoubleEndedIterator",0]}],"span":{"data":{"file_id":44,"beg":{"line":41,"col":0},"end":{"line":41,"col":39}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator able to yield elements from both ends."},{"DocComment":""},{"DocComment":" Something that implements `DoubleEndedIterator` has one extra capability"},{"DocComment":" over something that implements [`Iterator`]: the ability to also take"},{"DocComment":" `Item`s from the back, as well as the front."},{"DocComment":""},{"DocComment":" It is important to note that both back and forth work on the same range,"},{"DocComment":" and do not cross: iteration is over when they meet in the middle."},{"DocComment":""},{"DocComment":" In a similar fashion to the [`Iterator`] protocol, once a"},{"DocComment":" `DoubleEndedIterator` returns [`None`] from a [`next_back()`], calling it"},{"DocComment":" again may or may not ever return [`Some`] again. [`next()`] and"},{"DocComment":" [`next_back()`] are interchangeable for this purpose."},{"DocComment":""},{"DocComment":" [`next_back()`]: DoubleEndedIterator::next_back"},{"DocComment":" [`next()`]: Iterator::next"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" Basic usage:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let numbers = vec![1, 2, 3, 4, 5, 6];"},{"DocComment":""},{"DocComment":" let mut iter = numbers.iter();"},{"DocComment":""},{"DocComment":" assert_eq!(Some(&1), iter.next());"},{"DocComment":" assert_eq!(Some(&6), iter.next_back());"},{"DocComment":" assert_eq!(Some(&5), iter.next_back());"},{"DocComment":" assert_eq!(Some(&2), iter.next());"},{"DocComment":" assert_eq!(Some(&3), iter.next());"},{"DocComment":" assert_eq!(Some(&4), iter.next());"},{"DocComment":" assert_eq!(None, iter.next());"},{"DocComment":" assert_eq!(None, iter.next_back());"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"DoubleEndedIterator"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":44,"beg":{"line":41,"col":0},"end":{"line":380,"col":1}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":44,"beg":{"line":41,"col":31},"end":{"line":41,"col":39}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[],"methods":[{"params":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"next_back","attr_info":{"attributes":[{"DocComment":" Removes and returns an element from the end of the iterator."},{"DocComment":""},{"DocComment":" Returns `None` when there are no more elements."},{"DocComment":""},{"DocComment":" The [trait-level] docs contain more details."},{"DocComment":""},{"DocComment":" [trait-level]: DoubleEndedIterator"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" Basic usage:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let numbers = vec![1, 2, 3, 4, 5, 6];"},{"DocComment":""},{"DocComment":" let mut iter = numbers.iter();"},{"DocComment":""},{"DocComment":" assert_eq!(Some(&1), iter.next());"},{"DocComment":" assert_eq!(Some(&6), iter.next_back());"},{"DocComment":" assert_eq!(Some(&5), iter.next_back());"},{"DocComment":" assert_eq!(Some(&2), iter.next());"},{"DocComment":" assert_eq!(Some(&3), iter.next());"},{"DocComment":" assert_eq!(Some(&4), iter.next());"},{"DocComment":" assert_eq!(None, iter.next());"},{"DocComment":" assert_eq!(None, iter.next_back());"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" # Remarks"},{"DocComment":""},{"DocComment":" The elements yielded by `DoubleEndedIterator`'s methods may differ from"},{"DocComment":" the ones yielded by [`Iterator`]'s methods:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let vec = vec![(1, 'a'), (1, 'b'), (1, 'c'), (2, 'a'), (2, 'b')];"},{"DocComment":" let uniq_by_fst_comp = || {"},{"DocComment":" let mut seen = std::collections::HashSet::new();"},{"DocComment":" vec.iter().copied().filter(move |x| seen.insert(x.0))"},{"DocComment":" };"},{"DocComment":""},{"DocComment":" assert_eq!(uniq_by_fst_comp().last(), Some((2, 'a')));"},{"DocComment":" assert_eq!(uniq_by_fst_comp().next_back(), Some((2, 'b')));"},{"DocComment":""},{"DocComment":" assert_eq!("},{"DocComment":" uniq_by_fst_comp().fold(vec![], |mut v, x| {v.push(x); v}),"},{"DocComment":" vec![(1, 'a'), (2, 'a')]"},{"DocComment":" );"},{"DocComment":" assert_eq!("},{"DocComment":" uniq_by_fst_comp().rfold(vec![], |mut v, x| {v.push(x); v}),"},{"DocComment":" vec![(2, 'b'), (1, 'c')]"},{"DocComment":" );"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":2280}],"output":{"HashConsedValue":[7498,{"Adt":{"id":{"Adt":12},"generics":{"regions":[],"types":[{"HashConsedValue":[7496,{"TraitType":[{"HashConsedValue":[5776,{"kind":{"ParentClause":[{"HashConsedValue":[5775,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":15,"generics":{"regions":[],"types":[{"Deduplicated":2165}],"const_generics":[],"trait_refs":[]}}}}]},1]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":2165}],"const_generics":[],"trait_refs":[]}}}}]},0]}]}],"const_generics":[],"trait_refs":[{"HashConsedValue":[7497,{"kind":{"ParentClause":[{"Deduplicated":5776},1]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"HashConsedValue":[5780,{"TraitType":[{"HashConsedValue":[5779,{"kind":{"ParentClause":[{"HashConsedValue":[5778,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":15,"generics":{"regions":[],"types":[{"Deduplicated":2173}],"const_generics":[],"trait_refs":[]}}}}]},1]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":2173}],"const_generics":[],"trait_refs":[]}}}}]},0]}]}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}},"item":{"id":288,"generics":{"regions":[{"Var":{"Bound":[0,0]}}],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[{"Deduplicated":5775}]}}},"kind":{"TraitMethod":[15,0]}},null,null,null,null,null],"vtable":{"id":{"Adt":53},"generics":{"regions":[],"types":[{"HashConsedValue":[7501,{"TraitType":[{"HashConsedValue":[7500,{"kind":{"ParentClause":[{"HashConsedValue":[7499,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":15,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}]},1]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}]},0]}]}],"const_generics":[],"trait_refs":[]}}},{"def_id":16,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["exact_size",0]},{"Ident":["ExactSizeIterator",0]}],"span":{"data":{"file_id":45,"beg":{"line":86,"col":0},"end":{"line":86,"col":37}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An iterator that knows its exact length."},{"DocComment":""},{"DocComment":" Many [`Iterator`]s don't know how many times they will iterate, but some do."},{"DocComment":" If an iterator knows how many times it can iterate, providing access to"},{"DocComment":" that information can be useful. For example, if you want to iterate"},{"DocComment":" backwards, a good start is to know where the end is."},{"DocComment":""},{"DocComment":" When implementing an `ExactSizeIterator`, you must also implement"},{"DocComment":" [`Iterator`]. When doing so, the implementation of [`Iterator::size_hint`]"},{"DocComment":" *must* return the exact size of the iterator."},{"DocComment":""},{"DocComment":" The [`len`] method has a default implementation, so you usually shouldn't"},{"DocComment":" implement it. However, you may be able to provide a more performant"},{"DocComment":" implementation than the default, so overriding it in this case makes sense."},{"DocComment":""},{"DocComment":" Note that this trait is a safe trait and as such does *not* and *cannot*"},{"DocComment":" guarantee that the returned length is correct. This means that `unsafe`"},{"DocComment":" code **must not** rely on the correctness of [`Iterator::size_hint`]. The"},{"DocComment":" unstable and unsafe [`TrustedLen`](super::marker::TrustedLen) trait gives"},{"DocComment":" this additional guarantee."},{"DocComment":""},{"DocComment":" [`len`]: ExactSizeIterator::len"},{"DocComment":""},{"DocComment":" # When *shouldn't* an adapter be `ExactSizeIterator`?"},{"DocComment":""},{"DocComment":" If an adapter makes an iterator *longer*, then it's usually incorrect for"},{"DocComment":" that adapter to implement `ExactSizeIterator`. The inner exact-sized"},{"DocComment":" iterator might already be `usize::MAX`-long, and thus the length of the"},{"DocComment":" longer adapted iterator would no longer be exactly representable in `usize`."},{"DocComment":""},{"DocComment":" This is why [`Chain`](crate::iter::Chain) isn't `ExactSizeIterator`,"},{"DocComment":" even when `A` and `B` are both `ExactSizeIterator`."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" Basic usage:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" // a finite range knows exactly how many times it will iterate"},{"DocComment":" let five = 0..5;"},{"DocComment":""},{"DocComment":" assert_eq!(5, five.len());"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" In the [module-level docs], we implemented an [`Iterator`], `Counter`."},{"DocComment":" Let's implement `ExactSizeIterator` for it as well:"},{"DocComment":""},{"DocComment":" [module-level docs]: crate::iter"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" # struct Counter {"},{"DocComment":" # count: usize,"},{"DocComment":" # }"},{"DocComment":" # impl Counter {"},{"DocComment":" # fn new() -> Counter {"},{"DocComment":" # Counter { count: 0 }"},{"DocComment":" # }"},{"DocComment":" # }"},{"DocComment":" # impl Iterator for Counter {"},{"DocComment":" # type Item = usize;"},{"DocComment":" # fn next(&mut self) -> Option {"},{"DocComment":" # self.count += 1;"},{"DocComment":" # if self.count < 6 {"},{"DocComment":" # Some(self.count)"},{"DocComment":" # } else {"},{"DocComment":" # None"},{"DocComment":" # }"},{"DocComment":" # }"},{"DocComment":" # }"},{"DocComment":" impl ExactSizeIterator for Counter {"},{"DocComment":" // We can easily calculate the remaining number of iterations."},{"DocComment":" fn len(&self) -> usize {"},{"DocComment":" 5 - self.count"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" // And now we can use it!"},{"DocComment":""},{"DocComment":" let mut counter = Counter::new();"},{"DocComment":""},{"DocComment":" assert_eq!(5, counter.len());"},{"DocComment":" let _ = counter.next();"},{"DocComment":" assert_eq!(4, counter.len());"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":45,"beg":{"line":86,"col":0},"end":{"line":151,"col":1}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":45,"beg":{"line":86,"col":29},"end":{"line":86,"col":37}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[],"methods":[null,null],"vtable":{"id":{"Adt":54},"generics":{"regions":[],"types":[{"HashConsedValue":[7504,{"TraitType":[{"HashConsedValue":[7503,{"kind":{"ParentClause":[{"HashConsedValue":[7502,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":16,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}]},1]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}]},0]}]}],"const_generics":[],"trait_refs":[]}}},{"def_id":17,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["Ord",0]}],"span":{"data":{"file_id":46,"beg":{"line":973,"col":0},"end":{"line":973,"col":73}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Trait for types that form a [total order](https://en.wikipedia.org/wiki/Total_order)."},{"DocComment":""},{"DocComment":" Implementations must be consistent with the [`PartialOrd`] implementation, and ensure `max`,"},{"DocComment":" `min`, and `clamp` are consistent with `cmp`:"},{"DocComment":""},{"DocComment":" - `partial_cmp(a, b) == Some(cmp(a, b))`."},{"DocComment":" - `max(a, b) == max_by(a, b, cmp)` (ensured by the default implementation)."},{"DocComment":" - `min(a, b) == min_by(a, b, cmp)` (ensured by the default implementation)."},{"DocComment":" - For `a.clamp(min, max)`, see the [method docs](#method.clamp) (ensured by the default"},{"DocComment":" implementation)."},{"DocComment":""},{"DocComment":" Violating these requirements is a logic error. The behavior resulting from a logic error is not"},{"DocComment":" specified, but users of the trait must ensure that such logic errors do *not* result in"},{"DocComment":" undefined behavior. This means that `unsafe` code **must not** rely on the correctness of these"},{"DocComment":" methods."},{"DocComment":""},{"DocComment":" ## Corollaries"},{"DocComment":""},{"DocComment":" From the above and the requirements of `PartialOrd`, it follows that for all `a`, `b` and `c`:"},{"DocComment":""},{"DocComment":" - exactly one of `a < b`, `a == b` or `a > b` is true; and"},{"DocComment":" - `<` is transitive: `a < b` and `b < c` implies `a < c`. The same must hold for both `==` and"},{"DocComment":" `>`."},{"DocComment":""},{"DocComment":" Mathematically speaking, the `<` operator defines a strict [weak order]. In cases where `==`"},{"DocComment":" conforms to mathematical equality, it also defines a strict [total order]."},{"DocComment":""},{"DocComment":" [weak order]: https://en.wikipedia.org/wiki/Weak_ordering"},{"DocComment":" [total order]: https://en.wikipedia.org/wiki/Total_order"},{"DocComment":""},{"DocComment":" ## Derivable"},{"DocComment":""},{"DocComment":" This trait can be used with `#[derive]`."},{"DocComment":""},{"DocComment":" When `derive`d on structs, it will produce a"},{"DocComment":" [lexicographic](https://en.wikipedia.org/wiki/Lexicographic_order) ordering based on the"},{"DocComment":" top-to-bottom declaration order of the struct's members."},{"DocComment":""},{"DocComment":" When `derive`d on enums, variants are ordered primarily by their discriminants. Secondarily,"},{"DocComment":" they are ordered by their fields. By default, the discriminant is smallest for variants at the"},{"DocComment":" top, and largest for variants at the bottom. Here's an example:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" #[derive(PartialEq, Eq, PartialOrd, Ord)]"},{"DocComment":" enum E {"},{"DocComment":" Top,"},{"DocComment":" Bottom,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" assert!(E::Top < E::Bottom);"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" However, manually setting the discriminants can override this default behavior:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" #[derive(PartialEq, Eq, PartialOrd, Ord)]"},{"DocComment":" enum E {"},{"DocComment":" Top = 2,"},{"DocComment":" Bottom = 1,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" assert!(E::Bottom < E::Top);"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" ## Lexicographical comparison"},{"DocComment":""},{"DocComment":" Lexicographical comparison is an operation with the following properties:"},{"DocComment":" - Two sequences are compared element by element."},{"DocComment":" - The first mismatching element defines which sequence is lexicographically less or greater"},{"DocComment":" than the other."},{"DocComment":" - If one sequence is a prefix of another, the shorter sequence is lexicographically less than"},{"DocComment":" the other."},{"DocComment":" - If two sequences have equivalent elements and are of the same length, then the sequences are"},{"DocComment":" lexicographically equal."},{"DocComment":" - An empty sequence is lexicographically less than any non-empty sequence."},{"DocComment":" - Two empty sequences are lexicographically equal."},{"DocComment":""},{"DocComment":" ## How can I implement `Ord`?"},{"DocComment":""},{"DocComment":" `Ord` requires that the type also be [`PartialOrd`], [`PartialEq`], and [`Eq`]."},{"DocComment":""},{"DocComment":" Because `Ord` implies a stronger ordering relationship than [`PartialOrd`], and both `Ord` and"},{"DocComment":" [`PartialOrd`] must agree, you must choose how to implement `Ord` **first**. You can choose to"},{"DocComment":" derive it, or implement it manually. If you derive it, you should derive all four traits. If you"},{"DocComment":" implement it manually, you should manually implement all four traits, based on the"},{"DocComment":" implementation of `Ord`."},{"DocComment":""},{"DocComment":" Here's an example where you want to define the `Character` comparison by `health` and"},{"DocComment":" `experience` only, disregarding the field `mana`:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" use std::cmp::Ordering;"},{"DocComment":""},{"DocComment":" struct Character {"},{"DocComment":" health: u32,"},{"DocComment":" experience: u32,"},{"DocComment":" mana: f32,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl Ord for Character {"},{"DocComment":" fn cmp(&self, other: &Self) -> Ordering {"},{"DocComment":" self.experience"},{"DocComment":" .cmp(&other.experience)"},{"DocComment":" .then(self.health.cmp(&other.health))"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl PartialOrd for Character {"},{"DocComment":" fn partial_cmp(&self, other: &Self) -> Option {"},{"DocComment":" Some(self.cmp(other))"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl PartialEq for Character {"},{"DocComment":" fn eq(&self, other: &Self) -> bool {"},{"DocComment":" self.health == other.health && self.experience == other.experience"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl Eq for Character {}"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" If all you need is to `slice::sort` a type by a field value, it can be simpler to use"},{"DocComment":" `slice::sort_by_key`."},{"DocComment":""},{"DocComment":" ## Examples of incorrect `Ord` implementations"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" use std::cmp::Ordering;"},{"DocComment":""},{"DocComment":" #[derive(Debug)]"},{"DocComment":" struct Character {"},{"DocComment":" health: f32,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl Ord for Character {"},{"DocComment":" fn cmp(&self, other: &Self) -> std::cmp::Ordering {"},{"DocComment":" if self.health < other.health {"},{"DocComment":" Ordering::Less"},{"DocComment":" } else if self.health > other.health {"},{"DocComment":" Ordering::Greater"},{"DocComment":" } else {"},{"DocComment":" Ordering::Equal"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl PartialOrd for Character {"},{"DocComment":" fn partial_cmp(&self, other: &Self) -> Option {"},{"DocComment":" Some(self.cmp(other))"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl PartialEq for Character {"},{"DocComment":" fn eq(&self, other: &Self) -> bool {"},{"DocComment":" self.health == other.health"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl Eq for Character {}"},{"DocComment":""},{"DocComment":" let a = Character { health: 4.5 };"},{"DocComment":" let b = Character { health: f32::NAN };"},{"DocComment":""},{"DocComment":" // Mistake: floating-point values do not form a total order and using the built-in comparison"},{"DocComment":" // operands to implement `Ord` irregardless of that reality does not change it. Use"},{"DocComment":" // `f32::total_cmp` if you need a total order for floating-point values."},{"DocComment":""},{"DocComment":" // Reflexivity requirement of `Ord` is not given."},{"DocComment":" assert!(a == a);"},{"DocComment":" assert!(b != b);"},{"DocComment":""},{"DocComment":" // Antisymmetry requirement of `Ord` is not given. Only one of a < c and c < a is allowed to be"},{"DocComment":" // true, not both or neither."},{"DocComment":" assert_eq!((a < b) as u8 + (b < a) as u8, 0);"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" use std::cmp::Ordering;"},{"DocComment":""},{"DocComment":" #[derive(Debug)]"},{"DocComment":" struct Character {"},{"DocComment":" health: u32,"},{"DocComment":" experience: u32,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl PartialOrd for Character {"},{"DocComment":" fn partial_cmp(&self, other: &Self) -> Option {"},{"DocComment":" Some(self.cmp(other))"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl Ord for Character {"},{"DocComment":" fn cmp(&self, other: &Self) -> std::cmp::Ordering {"},{"DocComment":" if self.health < 50 {"},{"DocComment":" self.health.cmp(&other.health)"},{"DocComment":" } else {"},{"DocComment":" self.experience.cmp(&other.experience)"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" // For performance reasons implementing `PartialEq` this way is not the idiomatic way, but it"},{"DocComment":" // ensures consistent behavior between `PartialEq`, `PartialOrd` and `Ord` in this example."},{"DocComment":" impl PartialEq for Character {"},{"DocComment":" fn eq(&self, other: &Self) -> bool {"},{"DocComment":" self.cmp(other) == Ordering::Equal"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl Eq for Character {}"},{"DocComment":""},{"DocComment":" let a = Character {"},{"DocComment":" health: 3,"},{"DocComment":" experience: 5,"},{"DocComment":" };"},{"DocComment":" let b = Character {"},{"DocComment":" health: 10,"},{"DocComment":" experience: 77,"},{"DocComment":" };"},{"DocComment":" let c = Character {"},{"DocComment":" health: 143,"},{"DocComment":" experience: 2,"},{"DocComment":" };"},{"DocComment":""},{"DocComment":" // Mistake: The implementation of `Ord` compares different fields depending on the value of"},{"DocComment":" // `self.health`, the resulting order is not total."},{"DocComment":""},{"DocComment":" // Transitivity requirement of `Ord` is not given. If a is smaller than b and b is smaller than"},{"DocComment":" // c, by transitive property a must also be smaller than c."},{"DocComment":" assert!(a < b && b < c && c < a);"},{"DocComment":""},{"DocComment":" // Antisymmetry requirement of `Ord` is not given. Only one of a < c and c < a is allowed to be"},{"DocComment":" // true, not both or neither."},{"DocComment":" assert_eq!((a < c) as u8 + (c < a) as u8, 2);"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" The documentation of [`PartialOrd`] contains further examples, for example it's wrong for"},{"DocComment":" [`PartialOrd`] and [`PartialEq`] to disagree."},{"DocComment":""},{"DocComment":" [`cmp`]: Ord::cmp"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"Ord"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":46,"beg":{"line":973,"col":21},"end":{"line":973,"col":31}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":28,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":46,"beg":{"line":973,"col":34},"end":{"line":973,"col":58}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":21,"generics":{"regions":[],"types":[{"Deduplicated":240},{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[],"methods":[{"params":{"regions":[{"index":0,"name":null,"mutability":"Unknown"},{"index":1,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"cmp","attr_info":{"attributes":[{"DocComment":" This method returns an [`Ordering`] between `self` and `other`."},{"DocComment":""},{"DocComment":" By convention, `self.cmp(&other)` returns the ordering matching the expression"},{"DocComment":" `self other` if true."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" use std::cmp::Ordering;"},{"DocComment":""},{"DocComment":" assert_eq!(5.cmp(&10), Ordering::Less);"},{"DocComment":" assert_eq!(10.cmp(&5), Ordering::Greater);"},{"DocComment":" assert_eq!(5.cmp(&5), Ordering::Equal);"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":2345},{"HashConsedValue":[7505,{"Ref":[{"Var":{"Bound":[0,1]}},{"Deduplicated":240},"Shared"]}]}],"output":{"Deduplicated":4094}},"item":{"id":296,"generics":{"regions":[{"Var":{"Bound":[0,0]}},{"Var":{"Bound":[0,1]}}],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6918,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":17,"generics":{"regions":[],"types":[{"Deduplicated":2165}],"const_generics":[],"trait_refs":[]}}}}]}]}}},"kind":{"TraitMethod":[17,0]}},null,null,null],"vtable":null},{"def_id":18,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["Copy",0]}],"span":{"data":{"file_id":1,"beg":{"line":457,"col":0},"end":{"line":457,"col":21}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Types whose values can be duplicated simply by copying bits."},{"DocComment":""},{"DocComment":" By default, variable bindings have 'move semantics.' In other"},{"DocComment":" words:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" #[derive(Debug)]"},{"DocComment":" struct Foo;"},{"DocComment":""},{"DocComment":" let x = Foo;"},{"DocComment":""},{"DocComment":" let y = x;"},{"DocComment":""},{"DocComment":" // `x` has moved into `y`, and so cannot be used"},{"DocComment":""},{"DocComment":" // println!(\"{x:?}\"); // error: use of moved value"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" However, if a type implements `Copy`, it instead has 'copy semantics':"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" // We can derive a `Copy` implementation. `Clone` is also required, as it's"},{"DocComment":" // a supertrait of `Copy`."},{"DocComment":" #[derive(Debug, Copy, Clone)]"},{"DocComment":" struct Foo;"},{"DocComment":""},{"DocComment":" let x = Foo;"},{"DocComment":""},{"DocComment":" let y = x;"},{"DocComment":""},{"DocComment":" // `y` is a copy of `x`"},{"DocComment":""},{"DocComment":" println!(\"{x:?}\"); // A-OK!"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" It's important to note that in these two examples, the only difference is whether you"},{"DocComment":" are allowed to access `x` after the assignment. Under the hood, both a copy and a move"},{"DocComment":" can result in bits being copied in memory, although this is sometimes optimized away."},{"DocComment":""},{"DocComment":" ## How can I implement `Copy`?"},{"DocComment":""},{"DocComment":" There are two ways to implement `Copy` on your type. The simplest is to use `derive`:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" #[derive(Copy, Clone)]"},{"DocComment":" struct MyStruct;"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" You can also implement `Copy` and `Clone` manually:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" struct MyStruct;"},{"DocComment":""},{"DocComment":" impl Copy for MyStruct { }"},{"DocComment":""},{"DocComment":" impl Clone for MyStruct {"},{"DocComment":" fn clone(&self) -> MyStruct {"},{"DocComment":" *self"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" There is a small difference between the two. The `derive` strategy will also place a `Copy`"},{"DocComment":" bound on type parameters:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" #[derive(Clone)]"},{"DocComment":" struct MyStruct(T);"},{"DocComment":""},{"DocComment":" impl Copy for MyStruct { }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" This isn't always desired. For example, shared references (`&T`) can be copied regardless of"},{"DocComment":" whether `T` is `Copy`. Likewise, a generic struct containing markers such as [`PhantomData`]"},{"DocComment":" could potentially be duplicated with a bit-wise copy."},{"DocComment":""},{"DocComment":" ## What's the difference between `Copy` and `Clone`?"},{"DocComment":""},{"DocComment":" Copies happen implicitly, for example as part of an assignment `y = x`. The behavior of"},{"DocComment":" `Copy` is not overloadable; it is always a simple bit-wise copy."},{"DocComment":""},{"DocComment":" Cloning is an explicit action, `x.clone()`. The implementation of [`Clone`] can"},{"DocComment":" provide any type-specific behavior necessary to duplicate values safely. For example,"},{"DocComment":" the implementation of [`Clone`] for [`String`] needs to copy the pointed-to string"},{"DocComment":" buffer in the heap. A simple bitwise copy of [`String`] values would merely copy the"},{"DocComment":" pointer, leading to a double free down the line. For this reason, [`String`] is [`Clone`]"},{"DocComment":" but not `Copy`."},{"DocComment":""},{"DocComment":" [`Clone`] is a supertrait of `Copy`, so everything which is `Copy` must also implement"},{"DocComment":" [`Clone`]. If a type is `Copy` then its [`Clone`] implementation only needs to return `*self`"},{"DocComment":" (see the example above)."},{"DocComment":""},{"DocComment":" ## When can my type be `Copy`?"},{"DocComment":""},{"DocComment":" A type can implement `Copy` if all of its components implement `Copy`. For example, this"},{"DocComment":" struct can be `Copy`:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" # #[allow(dead_code)]"},{"DocComment":" #[derive(Copy, Clone)]"},{"DocComment":" struct Point {"},{"DocComment":" x: i32,"},{"DocComment":" y: i32,"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" A struct can be `Copy`, and [`i32`] is `Copy`, therefore `Point` is eligible to be `Copy`."},{"DocComment":" By contrast, consider"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" # #![allow(dead_code)]"},{"DocComment":" # struct Point;"},{"DocComment":" struct PointList {"},{"DocComment":" points: Vec,"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" The struct `PointList` cannot implement `Copy`, because [`Vec`] is not `Copy`. If we"},{"DocComment":" attempt to derive a `Copy` implementation, we'll get an error:"},{"DocComment":""},{"DocComment":" ```text"},{"DocComment":" the trait `Copy` cannot be implemented for this type; field `points` does not implement `Copy`"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" Shared references (`&T`) are also `Copy`, so a type can be `Copy`, even when it holds"},{"DocComment":" shared references of types `T` that are *not* `Copy`. Consider the following struct,"},{"DocComment":" which can implement `Copy`, because it only holds a *shared reference* to our non-`Copy`"},{"DocComment":" type `PointList` from above:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" # #![allow(dead_code)]"},{"DocComment":" # struct PointList;"},{"DocComment":" #[derive(Copy, Clone)]"},{"DocComment":" struct PointListWrapper<'a> {"},{"DocComment":" point_list_ref: &'a PointList,"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" ## When *can't* my type be `Copy`?"},{"DocComment":""},{"DocComment":" Some types can't be copied safely. For example, copying `&mut T` would create an aliased"},{"DocComment":" mutable reference. Copying [`String`] would duplicate responsibility for managing the"},{"DocComment":" [`String`]'s buffer, leading to a double free."},{"DocComment":""},{"DocComment":" Generalizing the latter case, any type implementing [`Drop`] can't be `Copy`, because it's"},{"DocComment":" managing some resource besides its own [`size_of::`] bytes."},{"DocComment":""},{"DocComment":" If you try to implement `Copy` on a struct or enum containing non-`Copy` data, you will get"},{"DocComment":" the error [E0204]."},{"DocComment":""},{"DocComment":" [E0204]: ../../error_codes/E0204.html"},{"DocComment":""},{"DocComment":" ## When *should* my type be `Copy`?"},{"DocComment":""},{"DocComment":" Generally speaking, if your type _can_ implement `Copy`, it should. Keep in mind, though,"},{"DocComment":" that implementing `Copy` is part of the public API of your type. If the type might become"},{"DocComment":" non-`Copy` in the future, it could be prudent to omit the `Copy` implementation now, to"},{"DocComment":" avoid a breaking API change."},{"DocComment":""},{"DocComment":" ## Additional implementors"},{"DocComment":""},{"DocComment":" In addition to the [implementors listed below][impls],"},{"DocComment":" the following types also implement `Copy`:"},{"DocComment":""},{"DocComment":" * Function item types (i.e., the distinct types defined for each function)"},{"DocComment":" * Function pointer types (e.g., `fn() -> i32`)"},{"DocComment":" * Closure types, if they capture no value from the environment"},{"DocComment":" or if all such captured values implement `Copy` themselves."},{"DocComment":" Note that variables captured by shared reference always implement `Copy`"},{"DocComment":" (even if the referent doesn't),"},{"DocComment":" while variables captured by mutable reference never implement `Copy`."},{"DocComment":""},{"DocComment":" [`Vec`]: ../../std/vec/struct.Vec.html"},{"DocComment":" [`String`]: ../../std/string/struct.String.html"},{"DocComment":" [`size_of::`]: size_of"},{"DocComment":" [impls]: #implementors"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"copy"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":1,"beg":{"line":457,"col":0},"end":{"line":459,"col":1}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":1,"beg":{"line":457,"col":16},"end":{"line":457,"col":21}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":8,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[],"methods":[],"vtable":null},{"def_id":19,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["accum",0]},{"Ident":["Sum",0]}],"span":{"data":{"file_id":52,"beg":{"line":17,"col":0},"end":{"line":17,"col":30}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Trait to represent types that can be created by summing up an iterator."},{"DocComment":""},{"DocComment":" This trait is used to implement [`Iterator::sum()`]. Types which implement"},{"DocComment":" this trait can be generated by using the [`sum()`] method on an iterator."},{"DocComment":" Like [`FromIterator`], this trait should rarely be called directly."},{"DocComment":""},{"DocComment":" [`sum()`]: Iterator::sum"},{"DocComment":" [`FromIterator`]: iter::FromIterator"},{"Unknown":{"path":"diagnostic::on_unimplemented","args":"message =\n\"a value of type `{Self}` cannot be made by summing an iterator over elements of type `{A}`\",\nlabel =\n\"value of type `{Self}` cannot be made by summing a `std::iter::Iterator`\""}}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"Self"},{"index":1,"name":"A"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":52,"beg":{"line":17,"col":25},"end":{"line":17,"col":30}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":52,"beg":{"line":17,"col":14},"end":{"line":17,"col":22}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[],"methods":[{"params":{"regions":[],"types":[{"index":0,"name":"I"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":52,"beg":{"line":21,"col":11},"end":{"line":21,"col":12}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":52,"beg":{"line":21,"col":14},"end":{"line":21,"col":32}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[{"regions":[],"skip_binder":{"trait_ref":{"Deduplicated":5287},"type_id":0,"ty":{"Deduplicated":2737}}}]},"skip_binder":{"name":"sum","attr_info":{"attributes":[{"DocComment":" Takes an iterator and generates `Self` from the elements by \"summing up\""},{"DocComment":" the items."}],"inline":null,"rename":null,"public":true},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":272}],"output":{"Deduplicated":240}},"item":{"id":300,"generics":{"regions":[],"types":[{"Deduplicated":240},{"Deduplicated":2139},{"Deduplicated":272}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6919,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":19,"generics":{"regions":[],"types":[{"Deduplicated":2165},{"Deduplicated":2737}],"const_generics":[],"trait_refs":[]}}}}]},{"Deduplicated":275},{"Deduplicated":5282}]}}},"kind":{"TraitMethod":[19,0]}}],"vtable":null},{"def_id":20,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["accum",0]},{"Ident":["Product",0]}],"span":{"data":{"file_id":52,"beg":{"line":38,"col":0},"end":{"line":38,"col":34}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Trait to represent types that can be created by multiplying elements of an"},{"DocComment":" iterator."},{"DocComment":""},{"DocComment":" This trait is used to implement [`Iterator::product()`]. Types which implement"},{"DocComment":" this trait can be generated by using the [`product()`] method on an iterator."},{"DocComment":" Like [`FromIterator`], this trait should rarely be called directly."},{"DocComment":""},{"DocComment":" [`product()`]: Iterator::product"},{"DocComment":" [`FromIterator`]: iter::FromIterator"},{"Unknown":{"path":"diagnostic::on_unimplemented","args":"message =\n\"a value of type `{Self}` cannot be made by multiplying all elements of type `{A}` from an iterator\",\nlabel =\n\"value of type `{Self}` cannot be made by multiplying all elements from a `std::iter::Iterator`\""}}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"Self"},{"index":1,"name":"A"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":52,"beg":{"line":38,"col":29},"end":{"line":38,"col":34}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":52,"beg":{"line":38,"col":18},"end":{"line":38,"col":26}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[],"methods":[{"params":{"regions":[],"types":[{"index":0,"name":"I"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":52,"beg":{"line":42,"col":15},"end":{"line":42,"col":16}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":52,"beg":{"line":42,"col":18},"end":{"line":42,"col":36}},"generated_from_span":null},"origin":"WhereClauseOnFn","trait_":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[{"regions":[],"skip_binder":{"trait_ref":{"Deduplicated":5287},"type_id":0,"ty":{"Deduplicated":2737}}}]},"skip_binder":{"name":"product","attr_info":{"attributes":[{"DocComment":" Takes an iterator and generates `Self` from the elements by multiplying"},{"DocComment":" the items."}],"inline":null,"rename":null,"public":true},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":272}],"output":{"Deduplicated":240}},"item":{"id":301,"generics":{"regions":[],"types":[{"Deduplicated":240},{"Deduplicated":2139},{"Deduplicated":272}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6920,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":20,"generics":{"regions":[],"types":[{"Deduplicated":2165},{"Deduplicated":2737}],"const_generics":[],"trait_refs":[]}}}}]},{"Deduplicated":275},{"Deduplicated":5282}]}}},"kind":{"TraitMethod":[20,0]}}],"vtable":null},{"def_id":21,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["PartialOrd",0]}],"span":{"data":{"file_id":46,"beg":{"line":1358,"col":0},"end":{"line":1359,"col":41}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Trait for types that form a [partial order](https://en.wikipedia.org/wiki/Partial_order)."},{"DocComment":""},{"DocComment":" The `lt`, `le`, `gt`, and `ge` methods of this trait can be called using the `<`, `<=`, `>`, and"},{"DocComment":" `>=` operators, respectively."},{"DocComment":""},{"DocComment":" This trait should **only** contain the comparison logic for a type **if one plans on only"},{"DocComment":" implementing `PartialOrd` but not [`Ord`]**. Otherwise the comparison logic should be in [`Ord`]"},{"DocComment":" and this trait implemented with `Some(self.cmp(other))`."},{"DocComment":""},{"DocComment":" The methods of this trait must be consistent with each other and with those of [`PartialEq`]."},{"DocComment":" The following conditions must hold:"},{"DocComment":""},{"DocComment":" 1. `a == b` if and only if `partial_cmp(a, b) == Some(Equal)`."},{"DocComment":" 2. `a < b` if and only if `partial_cmp(a, b) == Some(Less)`"},{"DocComment":" 3. `a > b` if and only if `partial_cmp(a, b) == Some(Greater)`"},{"DocComment":" 4. `a <= b` if and only if `a < b || a == b`"},{"DocComment":" 5. `a >= b` if and only if `a > b || a == b`"},{"DocComment":" 6. `a != b` if and only if `!(a == b)`."},{"DocComment":""},{"DocComment":" Conditions 2–5 above are ensured by the default implementation. Condition 6 is already ensured"},{"DocComment":" by [`PartialEq`]."},{"DocComment":""},{"DocComment":" If [`Ord`] is also implemented for `Self` and `Rhs`, it must also be consistent with"},{"DocComment":" `partial_cmp` (see the documentation of that trait for the exact requirements). It's easy to"},{"DocComment":" accidentally make them disagree by deriving some of the traits and manually implementing others."},{"DocComment":""},{"DocComment":" The comparison relations must satisfy the following conditions (for all `a`, `b`, `c` of type"},{"DocComment":" `A`, `B`, `C`):"},{"DocComment":""},{"DocComment":" - **Transitivity**: if `A: PartialOrd` and `B: PartialOrd` and `A: PartialOrd`, then `a"},{"DocComment":" < b` and `b < c` implies `a < c`. The same must hold for both `==` and `>`. This must also"},{"DocComment":" work for longer chains, such as when `A: PartialOrd`, `B: PartialOrd`, `C:"},{"DocComment":" PartialOrd`, and `A: PartialOrd` all exist."},{"DocComment":" - **Duality**: if `A: PartialOrd` and `B: PartialOrd`, then `a < b` if and only if `b >"},{"DocComment":" a`."},{"DocComment":""},{"DocComment":" Note that the `B: PartialOrd` (dual) and `A: PartialOrd` (transitive) impls are not forced"},{"DocComment":" to exist, but these requirements apply whenever they do exist."},{"DocComment":""},{"DocComment":" Violating these requirements is a logic error. The behavior resulting from a logic error is not"},{"DocComment":" specified, but users of the trait must ensure that such logic errors do *not* result in"},{"DocComment":" undefined behavior. This means that `unsafe` code **must not** rely on the correctness of these"},{"DocComment":" methods."},{"DocComment":""},{"DocComment":" ## Cross-crate considerations"},{"DocComment":""},{"DocComment":" Upholding the requirements stated above can become tricky when one crate implements `PartialOrd`"},{"DocComment":" for a type of another crate (i.e., to allow comparing one of its own types with a type from the"},{"DocComment":" standard library). The recommendation is to never implement this trait for a foreign type. In"},{"DocComment":" other words, such a crate should do `impl PartialOrd for LocalType`, but it should"},{"DocComment":" *not* do `impl PartialOrd for ForeignType`."},{"DocComment":""},{"DocComment":" This avoids the problem of transitive chains that criss-cross crate boundaries: for all local"},{"DocComment":" types `T`, you may assume that no other crate will add `impl`s that allow comparing `T < U`. In"},{"DocComment":" other words, if other crates add `impl`s that allow building longer transitive chains `U1 < ..."},{"DocComment":" < T < V1 < ...`, then all the types that appear to the right of `T` must be types that the crate"},{"DocComment":" defining `T` already knows about. This rules out transitive chains where downstream crates can"},{"DocComment":" add new `impl`s that \"stitch together\" comparisons of foreign types in ways that violate"},{"DocComment":" transitivity."},{"DocComment":""},{"DocComment":" Not having such foreign `impl`s also avoids forward compatibility issues where one crate adding"},{"DocComment":" more `PartialOrd` implementations can cause build failures in downstream crates."},{"DocComment":""},{"DocComment":" ## Corollaries"},{"DocComment":""},{"DocComment":" The following corollaries follow from the above requirements:"},{"DocComment":""},{"DocComment":" - irreflexivity of `<` and `>`: `!(a < a)`, `!(a > a)`"},{"DocComment":" - transitivity of `>`: if `a > b` and `b > c` then `a > c`"},{"DocComment":" - duality of `partial_cmp`: `partial_cmp(a, b) == partial_cmp(b, a).map(Ordering::reverse)`"},{"DocComment":""},{"DocComment":" ## Strict and non-strict partial orders"},{"DocComment":""},{"DocComment":" The `<` and `>` operators behave according to a *strict* partial order. However, `<=` and `>=`"},{"DocComment":" do **not** behave according to a *non-strict* partial order. That is because mathematically, a"},{"DocComment":" non-strict partial order would require reflexivity, i.e. `a <= a` would need to be true for"},{"DocComment":" every `a`. This isn't always the case for types that implement `PartialOrd`, for example:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let a = f64::NAN;"},{"DocComment":" assert_eq!(a <= a, false);"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" ## Derivable"},{"DocComment":""},{"DocComment":" This trait can be used with `#[derive]`."},{"DocComment":""},{"DocComment":" When `derive`d on structs, it will produce a"},{"DocComment":" [lexicographic](https://en.wikipedia.org/wiki/Lexicographic_order) ordering based on the"},{"DocComment":" top-to-bottom declaration order of the struct's members."},{"DocComment":""},{"DocComment":" When `derive`d on enums, variants are primarily ordered by their discriminants. Secondarily,"},{"DocComment":" they are ordered by their fields. By default, the discriminant is smallest for variants at the"},{"DocComment":" top, and largest for variants at the bottom. Here's an example:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" #[derive(PartialEq, PartialOrd)]"},{"DocComment":" enum E {"},{"DocComment":" Top,"},{"DocComment":" Bottom,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" assert!(E::Top < E::Bottom);"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" However, manually setting the discriminants can override this default behavior:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" #[derive(PartialEq, PartialOrd)]"},{"DocComment":" enum E {"},{"DocComment":" Top = 2,"},{"DocComment":" Bottom = 1,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" assert!(E::Bottom < E::Top);"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" ## How can I implement `PartialOrd`?"},{"DocComment":""},{"DocComment":" `PartialOrd` only requires implementation of the [`partial_cmp`] method, with the others"},{"DocComment":" generated from default implementations."},{"DocComment":""},{"DocComment":" However it remains possible to implement the others separately for types which do not have a"},{"DocComment":" total order. For example, for floating point numbers, `NaN < 0 == false` and `NaN >= 0 == false`"},{"DocComment":" (cf. IEEE 754-2008 section 5.11)."},{"DocComment":""},{"DocComment":" `PartialOrd` requires your type to be [`PartialEq`]."},{"DocComment":""},{"DocComment":" If your type is [`Ord`], you can implement [`partial_cmp`] by using [`cmp`]:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" use std::cmp::Ordering;"},{"DocComment":""},{"DocComment":" struct Person {"},{"DocComment":" id: u32,"},{"DocComment":" name: String,"},{"DocComment":" height: u32,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl PartialOrd for Person {"},{"DocComment":" fn partial_cmp(&self, other: &Self) -> Option {"},{"DocComment":" Some(self.cmp(other))"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl Ord for Person {"},{"DocComment":" fn cmp(&self, other: &Self) -> Ordering {"},{"DocComment":" self.height.cmp(&other.height)"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl PartialEq for Person {"},{"DocComment":" fn eq(&self, other: &Self) -> bool {"},{"DocComment":" self.height == other.height"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl Eq for Person {}"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" You may also find it useful to use [`partial_cmp`] on your type's fields. Here is an example of"},{"DocComment":" `Person` types who have a floating-point `height` field that is the only field to be used for"},{"DocComment":" sorting:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" use std::cmp::Ordering;"},{"DocComment":""},{"DocComment":" struct Person {"},{"DocComment":" id: u32,"},{"DocComment":" name: String,"},{"DocComment":" height: f64,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl PartialOrd for Person {"},{"DocComment":" fn partial_cmp(&self, other: &Self) -> Option {"},{"DocComment":" self.height.partial_cmp(&other.height)"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl PartialEq for Person {"},{"DocComment":" fn eq(&self, other: &Self) -> bool {"},{"DocComment":" self.height == other.height"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" ## Examples of incorrect `PartialOrd` implementations"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" use std::cmp::Ordering;"},{"DocComment":""},{"DocComment":" #[derive(PartialEq, Debug)]"},{"DocComment":" struct Character {"},{"DocComment":" health: u32,"},{"DocComment":" experience: u32,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl PartialOrd for Character {"},{"DocComment":" fn partial_cmp(&self, other: &Self) -> Option {"},{"DocComment":" Some(self.health.cmp(&other.health))"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" let a = Character {"},{"DocComment":" health: 10,"},{"DocComment":" experience: 5,"},{"DocComment":" };"},{"DocComment":" let b = Character {"},{"DocComment":" health: 10,"},{"DocComment":" experience: 77,"},{"DocComment":" };"},{"DocComment":""},{"DocComment":" // Mistake: `PartialEq` and `PartialOrd` disagree with each other."},{"DocComment":""},{"DocComment":" assert_eq!(a.partial_cmp(&b).unwrap(), Ordering::Equal); // a == b according to `PartialOrd`."},{"DocComment":" assert_ne!(a, b); // a != b according to `PartialEq`."},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let x: u32 = 0;"},{"DocComment":" let y: u32 = 1;"},{"DocComment":""},{"DocComment":" assert_eq!(x < y, true);"},{"DocComment":" assert_eq!(x.lt(&y), true);"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" [`partial_cmp`]: PartialOrd::partial_cmp"},{"DocComment":" [`cmp`]: Ord::cmp"},{"Unknown":{"path":"rustc_on_unimplemented","args":"message = \"can't compare `{Self}` with `{Rhs}`\", label =\n\"no implementation for `{Self} < {Rhs}` and `{Self} > {Rhs}`\",\nappend_const_msg"}}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"partial_ord"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"},{"index":1,"name":"Rhs"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":46,"beg":{"line":1359,"col":4},"end":{"line":1359,"col":26}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":22,"generics":{"regions":[],"types":[{"Deduplicated":240},{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[],"methods":[{"params":{"regions":[{"index":0,"name":null,"mutability":"Unknown"},{"index":1,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"partial_cmp","attr_info":{"attributes":[{"DocComment":" This method returns an ordering between `self` and `other` values if one exists."},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" use std::cmp::Ordering;"},{"DocComment":""},{"DocComment":" let result = 1.0.partial_cmp(&2.0);"},{"DocComment":" assert_eq!(result, Some(Ordering::Less));"},{"DocComment":""},{"DocComment":" let result = 1.0.partial_cmp(&1.0);"},{"DocComment":" assert_eq!(result, Some(Ordering::Equal));"},{"DocComment":""},{"DocComment":" let result = 2.0.partial_cmp(&1.0);"},{"DocComment":" assert_eq!(result, Some(Ordering::Greater));"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" When comparison is impossible:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let result = f64::NAN.partial_cmp(&1.0);"},{"DocComment":" assert_eq!(result, None);"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":2345},{"HashConsedValue":[6000,{"Ref":[{"Var":{"Bound":[0,1]}},{"Deduplicated":2139},"Shared"]}]}],"output":{"Deduplicated":4463}},"item":{"id":302,"generics":{"regions":[{"Var":{"Bound":[0,0]}},{"Var":{"Bound":[0,1]}}],"types":[{"Deduplicated":240},{"Deduplicated":2139}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6921,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":21,"generics":{"regions":[],"types":[{"Deduplicated":2165},{"Deduplicated":2737}],"const_generics":[],"trait_refs":[]}}}}]}]}}},"kind":{"TraitMethod":[21,0]}},null,null,null,null,null,null,null,null],"vtable":{"id":{"Adt":55},"generics":{"regions":[],"types":[{"Deduplicated":2143}],"const_generics":[],"trait_refs":[]}}},{"def_id":22,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["PartialEq",0]}],"span":{"data":{"file_id":46,"beg":{"line":251,"col":0},"end":{"line":251,"col":65}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Trait for comparisons using the equality operator."},{"DocComment":""},{"DocComment":" Implementing this trait for types provides the `==` and `!=` operators for"},{"DocComment":" those types."},{"DocComment":""},{"DocComment":" `x.eq(y)` can also be written `x == y`, and `x.ne(y)` can be written `x != y`."},{"DocComment":" We use the easier-to-read infix notation in the remainder of this documentation."},{"DocComment":""},{"DocComment":" This trait allows for comparisons using the equality operator, for types"},{"DocComment":" that do not have a full equivalence relation. For example, in floating point"},{"DocComment":" numbers `NaN != NaN`, so floating point types implement `PartialEq` but not"},{"DocComment":" [`trait@Eq`]. Formally speaking, when `Rhs == Self`, this trait corresponds"},{"DocComment":" to a [partial equivalence relation]."},{"DocComment":""},{"DocComment":" [partial equivalence relation]: https://en.wikipedia.org/wiki/Partial_equivalence_relation"},{"DocComment":""},{"DocComment":" Implementations must ensure that `eq` and `ne` are consistent with each other:"},{"DocComment":""},{"DocComment":" - `a != b` if and only if `!(a == b)`."},{"DocComment":""},{"DocComment":" The default implementation of `ne` provides this consistency and is almost"},{"DocComment":" always sufficient. It should not be overridden without very good reason."},{"DocComment":""},{"DocComment":" If [`PartialOrd`] or [`Ord`] are also implemented for `Self` and `Rhs`, their methods must also"},{"DocComment":" be consistent with `PartialEq` (see the documentation of those traits for the exact"},{"DocComment":" requirements). It's easy to accidentally make them disagree by deriving some of the traits and"},{"DocComment":" manually implementing others."},{"DocComment":""},{"DocComment":" The equality relation `==` must satisfy the following conditions"},{"DocComment":" (for all `a`, `b`, `c` of type `A`, `B`, `C`):"},{"DocComment":""},{"DocComment":" - **Symmetry**: if `A: PartialEq` and `B: PartialEq`, then **`a == b`"},{"DocComment":" implies `b == a`**; and"},{"DocComment":""},{"DocComment":" - **Transitivity**: if `A: PartialEq` and `B: PartialEq` and `A:"},{"DocComment":" PartialEq`, then **`a == b` and `b == c` implies `a == c`**."},{"DocComment":" This must also work for longer chains, such as when `A: PartialEq`, `B: PartialEq`,"},{"DocComment":" `C: PartialEq`, and `A: PartialEq` all exist."},{"DocComment":""},{"DocComment":" Note that the `B: PartialEq` (symmetric) and `A: PartialEq`"},{"DocComment":" (transitive) impls are not forced to exist, but these requirements apply"},{"DocComment":" whenever they do exist."},{"DocComment":""},{"DocComment":" Violating these requirements is a logic error. The behavior resulting from a logic error is not"},{"DocComment":" specified, but users of the trait must ensure that such logic errors do *not* result in"},{"DocComment":" undefined behavior. This means that `unsafe` code **must not** rely on the correctness of these"},{"DocComment":" methods."},{"DocComment":""},{"DocComment":" ## Cross-crate considerations"},{"DocComment":""},{"DocComment":" Upholding the requirements stated above can become tricky when one crate implements `PartialEq`"},{"DocComment":" for a type of another crate (i.e., to allow comparing one of its own types with a type from the"},{"DocComment":" standard library). The recommendation is to never implement this trait for a foreign type. In"},{"DocComment":" other words, such a crate should do `impl PartialEq for LocalType`, but it should"},{"DocComment":" *not* do `impl PartialEq for ForeignType`."},{"DocComment":""},{"DocComment":" This avoids the problem of transitive chains that criss-cross crate boundaries: for all local"},{"DocComment":" types `T`, you may assume that no other crate will add `impl`s that allow comparing `T == U`. In"},{"DocComment":" other words, if other crates add `impl`s that allow building longer transitive chains `U1 == ..."},{"DocComment":" == T == V1 == ...`, then all the types that appear to the right of `T` must be types that the"},{"DocComment":" crate defining `T` already knows about. This rules out transitive chains where downstream crates"},{"DocComment":" can add new `impl`s that \"stitch together\" comparisons of foreign types in ways that violate"},{"DocComment":" transitivity."},{"DocComment":""},{"DocComment":" Not having such foreign `impl`s also avoids forward compatibility issues where one crate adding"},{"DocComment":" more `PartialEq` implementations can cause build failures in downstream crates."},{"DocComment":""},{"DocComment":" ## Derivable"},{"DocComment":""},{"DocComment":" This trait can be used with `#[derive]`. When `derive`d on structs, two"},{"DocComment":" instances are equal if all fields are equal, and not equal if any fields"},{"DocComment":" are not equal. When `derive`d on enums, two instances are equal if they"},{"DocComment":" are the same variant and all fields are equal."},{"DocComment":""},{"DocComment":" ## How can I implement `PartialEq`?"},{"DocComment":""},{"DocComment":" An example implementation for a domain in which two books are considered"},{"DocComment":" the same book if their ISBN matches, even if the formats differ:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" enum BookFormat {"},{"DocComment":" Paperback,"},{"DocComment":" Hardback,"},{"DocComment":" Ebook,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" struct Book {"},{"DocComment":" isbn: i32,"},{"DocComment":" format: BookFormat,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl PartialEq for Book {"},{"DocComment":" fn eq(&self, other: &Self) -> bool {"},{"DocComment":" self.isbn == other.isbn"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" let b1 = Book { isbn: 3, format: BookFormat::Paperback };"},{"DocComment":" let b2 = Book { isbn: 3, format: BookFormat::Ebook };"},{"DocComment":" let b3 = Book { isbn: 10, format: BookFormat::Paperback };"},{"DocComment":""},{"DocComment":" assert!(b1 == b2);"},{"DocComment":" assert!(b1 != b3);"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" ## How can I compare two different types?"},{"DocComment":""},{"DocComment":" The type you can compare with is controlled by `PartialEq`'s type parameter."},{"DocComment":" For example, let's tweak our previous code a bit:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" // The derive implements == comparisons"},{"DocComment":" #[derive(PartialEq)]"},{"DocComment":" enum BookFormat {"},{"DocComment":" Paperback,"},{"DocComment":" Hardback,"},{"DocComment":" Ebook,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" struct Book {"},{"DocComment":" isbn: i32,"},{"DocComment":" format: BookFormat,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" // Implement == comparisons"},{"DocComment":" impl PartialEq for Book {"},{"DocComment":" fn eq(&self, other: &BookFormat) -> bool {"},{"DocComment":" self.format == *other"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" // Implement == comparisons"},{"DocComment":" impl PartialEq for BookFormat {"},{"DocComment":" fn eq(&self, other: &Book) -> bool {"},{"DocComment":" *self == other.format"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" let b1 = Book { isbn: 3, format: BookFormat::Paperback };"},{"DocComment":""},{"DocComment":" assert!(b1 == BookFormat::Paperback);"},{"DocComment":" assert!(BookFormat::Ebook != b1);"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" By changing `impl PartialEq for Book` to `impl PartialEq for Book`,"},{"DocComment":" we allow `BookFormat`s to be compared with `Book`s."},{"DocComment":""},{"DocComment":" A comparison like the one above, which ignores some fields of the struct,"},{"DocComment":" can be dangerous. It can easily lead to an unintended violation of the"},{"DocComment":" requirements for a partial equivalence relation. For example, if we kept"},{"DocComment":" the above implementation of `PartialEq` for `BookFormat` and added an"},{"DocComment":" implementation of `PartialEq` for `Book` (either via a `#[derive]` or"},{"DocComment":" via the manual implementation from the first example) then the result would"},{"DocComment":" violate transitivity:"},{"DocComment":""},{"DocComment":" ```should_panic"},{"DocComment":" #[derive(PartialEq)]"},{"DocComment":" enum BookFormat {"},{"DocComment":" Paperback,"},{"DocComment":" Hardback,"},{"DocComment":" Ebook,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" #[derive(PartialEq)]"},{"DocComment":" struct Book {"},{"DocComment":" isbn: i32,"},{"DocComment":" format: BookFormat,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl PartialEq for Book {"},{"DocComment":" fn eq(&self, other: &BookFormat) -> bool {"},{"DocComment":" self.format == *other"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl PartialEq for BookFormat {"},{"DocComment":" fn eq(&self, other: &Book) -> bool {"},{"DocComment":" *self == other.format"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" fn main() {"},{"DocComment":" let b1 = Book { isbn: 1, format: BookFormat::Paperback };"},{"DocComment":" let b2 = Book { isbn: 2, format: BookFormat::Paperback };"},{"DocComment":""},{"DocComment":" assert!(b1 == BookFormat::Paperback);"},{"DocComment":" assert!(BookFormat::Paperback == b2);"},{"DocComment":""},{"DocComment":" // The following should hold by transitivity but doesn't."},{"DocComment":" assert!(b1 == b2); // <-- PANICS"},{"DocComment":" }"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" let x: u32 = 0;"},{"DocComment":" let y: u32 = 1;"},{"DocComment":""},{"DocComment":" assert_eq!(x == y, false);"},{"DocComment":" assert_eq!(x.eq(&y), false);"},{"DocComment":" ```"},{"DocComment":""},{"DocComment":" [`eq`]: PartialEq::eq"},{"DocComment":" [`ne`]: PartialEq::ne"},{"Unknown":{"path":"rustc_on_unimplemented","args":"message = \"can't compare `{Self}` with `{Rhs}`\", label =\n\"no implementation for `{Self} == {Rhs}`\", append_const_msg"}}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"eq"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"},{"index":1,"name":"Rhs"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[],"consts":[],"types":[],"methods":[{"params":{"regions":[{"index":0,"name":null,"mutability":"Unknown"},{"index":1,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"eq","attr_info":{"attributes":[{"DocComment":" Tests for `self` and `other` values to be equal, and is used by `==`."}],"inline":null,"rename":null,"public":true},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":2345},{"Deduplicated":6000}],"output":{"Deduplicated":287}},"item":{"id":311,"generics":{"regions":[{"Var":{"Bound":[0,0]}},{"Var":{"Bound":[0,1]}}],"types":[{"Deduplicated":240},{"Deduplicated":2139}],"const_generics":[],"trait_refs":[{"HashConsedValue":[7506,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":22,"generics":{"regions":[],"types":[{"Deduplicated":2165},{"Deduplicated":2737}],"const_generics":[],"trait_refs":[]}}}}]}]}}},"kind":{"TraitMethod":[22,0]}},null],"vtable":{"id":{"Adt":56},"generics":{"regions":[],"types":[{"Deduplicated":2143}],"const_generics":[],"trait_refs":[]}}},{"def_id":23,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["adapters",0]},{"Ident":["zip",0]},{"Ident":["TrustedRandomAccessNoCoerce",0]}],"span":{"data":{"file_id":24,"beg":{"line":585,"col":0},"end":{"line":585,"col":51}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Like [`TrustedRandomAccess`] but without any of the requirements / guarantees around"},{"DocComment":" coercions to supertypes after `__iterator_get_unchecked` (they aren’t allowed here!), and"},{"DocComment":" without the requirement that subtypes / supertypes implement `TrustedRandomAccessNoCoerce`."},{"DocComment":""},{"DocComment":" This trait was created in PR #85874 to fix soundness issue #85873 without performance regressions."},{"DocComment":" It is subject to change as we might want to build a more generally useful (for performance"},{"DocComment":" optimizations) and more sophisticated trait or trait hierarchy that replaces or extends"},{"DocComment":" [`TrustedRandomAccess`] and `TrustedRandomAccessNoCoerce`."}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":24,"beg":{"line":585,"col":46},"end":{"line":585,"col":51}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"consts":[{"name":"MAY_HAVE_SIDE_EFFECT","attr_info":{"attributes":[{"DocComment":" `true` if getting an iterator element may have side effects."},{"DocComment":" Remember to take inner iterators into account."}],"inline":null,"rename":null,"public":true},"ty":{"Deduplicated":287},"default":null}],"types":[],"methods":[null],"vtable":null},{"def_id":24,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["ops",0]},{"Ident":["try_trait",0]},{"Ident":["FromResidual",0]}],"span":{"data":{"file_id":42,"beg":{"line":310,"col":0},"end":{"line":310,"col":57}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Used to specify which residuals can be converted into which [`crate::ops::Try`] types."},{"DocComment":""},{"DocComment":" Every `Try` type needs to be recreatable from its own associated"},{"DocComment":" `Residual` type, but can also have additional `FromResidual` implementations"},{"DocComment":" to support interconversion with other `Try` types."},{"Unknown":{"path":"rustc_on_unimplemented","args":"on(all(from_desugaring = \"QuestionMark\", Self = \"core::result::Result\",\nR = \"core::option::Option\",), message =\n\"the `?` operator can only be used on `Result`s, not `Option`s, \\\n in {ItemContext} that returns `Result`\",\nlabel = \"use `.ok_or(...)?` to provide an error compatible with `{Self}`\",\nparent_label = \"this function returns a `Result`\"),\non(all(from_desugaring = \"QuestionMark\", Self =\n\"core::result::Result\",), message =\n\"the `?` operator can only be used on `Result`s \\\n in {ItemContext} that returns `Result`\",\nlabel = \"this `?` produces `{R}`, which is incompatible with `{Self}`\",\nparent_label = \"this function returns a `Result`\"),\non(all(from_desugaring = \"QuestionMark\", Self = \"core::option::Option\", R =\n\"core::result::Result\",), message =\n\"the `?` operator can only be used on `Option`s, not `Result`s, \\\n in {ItemContext} that returns `Option`\",\nlabel = \"use `.ok()?` if you want to discard the `{R}` error information\",\nparent_label = \"this function returns an `Option`\"),\non(all(from_desugaring = \"QuestionMark\", Self = \"core::option::Option\",),\nmessage =\n\"the `?` operator can only be used on `Option`s \\\n in {ItemContext} that returns `Option`\",\nlabel = \"this `?` produces `{R}`, which is incompatible with `{Self}`\",\nparent_label = \"this function returns an `Option`\"),\non(all(from_desugaring = \"QuestionMark\", Self =\n\"core::ops::control_flow::ControlFlow\", R =\n\"core::ops::control_flow::ControlFlow\",), message =\n\"the `?` operator in {ItemContext} that returns `ControlFlow` \\\n can only be used on other `ControlFlow`s (with the same Break type)\",\nlabel = \"this `?` produces `{R}`, which is incompatible with `{Self}`\",\nparent_label = \"this function returns a `ControlFlow`\", note =\n\"unlike `Result`, there's no `From`-conversion performed for `ControlFlow`\"),\non(all(from_desugaring = \"QuestionMark\", Self =\n\"core::ops::control_flow::ControlFlow\",), message =\n\"the `?` operator can only be used on `ControlFlow`s \\\n in {ItemContext} that returns `ControlFlow`\",\nlabel = \"this `?` produces `{R}`, which is incompatible with `{Self}`\",\nparent_label = \"this function returns a `ControlFlow`\",),\non(all(from_desugaring = \"QuestionMark\"), message =\n\"the `?` operator can only be used in {ItemContext} \\\n that returns `Result` or `Option` \\\n (or another type that implements `{This}`)\",\nlabel = \"cannot use the `?` operator in {ItemContext} that returns `{Self}`\",\nparent_label =\n\"this function should return `Result` or `Option` to accept `?`\"),"}}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"FromResidual"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"},{"index":1,"name":"R"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":42,"beg":{"line":310,"col":0},"end":{"line":334,"col":1}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":42,"beg":{"line":310,"col":29},"end":{"line":310,"col":56}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[],"methods":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"from_residual","attr_info":{"attributes":[{"DocComment":" Constructs the type from a compatible `Residual` type."},{"DocComment":""},{"DocComment":" This should be implemented consistently with the `branch` method such"},{"DocComment":" that applying the `?` operator will get back an equivalent residual:"},{"DocComment":" `FromResidual::from_residual(r).branch() --> ControlFlow::Break(r)`."},{"DocComment":" (The residual is not mandated to be *identical* when interconversion is involved.)"},{"DocComment":""},{"DocComment":" # Examples"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" #![feature(try_trait_v2)]"},{"DocComment":" use std::ops::{ControlFlow, FromResidual};"},{"DocComment":""},{"DocComment":" assert_eq!(Result::::from_residual(Err(3_u8)), Err(3));"},{"DocComment":" assert_eq!(Option::::from_residual(None), None);"},{"DocComment":" assert_eq!("},{"DocComment":" ControlFlow::<_, String>::from_residual(ControlFlow::Break(5)),"},{"DocComment":" ControlFlow::Break(5),"},{"DocComment":" );"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":2139}],"output":{"Deduplicated":240}},"item":{"id":314,"generics":{"regions":[],"types":[{"Deduplicated":240},{"Deduplicated":2139}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6923,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":24,"generics":{"regions":[],"types":[{"Deduplicated":2165},{"Deduplicated":2737}],"const_generics":[],"trait_refs":[]}}}}]}]}}},"kind":{"TraitMethod":[24,0]}}],"vtable":null},{"def_id":25,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["Tuple",0]}],"span":{"data":{"file_id":1,"beg":{"line":1074,"col":0},"end":{"line":1074,"col":15}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" A marker for tuple types."},{"DocComment":""},{"DocComment":" The implementation of this trait is built-in and cannot be implemented"},{"DocComment":" for any user type."},{"Unknown":{"path":"diagnostic::on_unimplemented","args":"message = \"`{Self}` is not a tuple\""}}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"tuple_trait"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":1,"beg":{"line":1074,"col":0},"end":{"line":1074,"col":18}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[],"methods":[],"vtable":null},{"def_id":26,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["alloc",0]},{"Ident":["Allocator",0]}],"span":{"data":{"file_id":56,"beg":{"line":106,"col":0},"end":{"line":106,"col":32}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" An implementation of `Allocator` can allocate, grow, shrink, and deallocate arbitrary blocks of"},{"DocComment":" data described via [`Layout`][]."},{"DocComment":""},{"DocComment":" `Allocator` is designed to be implemented on ZSTs, references, or smart pointers."},{"DocComment":" An allocator for `MyAlloc([u8; N])` cannot be moved, without updating the pointers to the"},{"DocComment":" allocated memory."},{"DocComment":""},{"DocComment":" In contrast to [`GlobalAlloc`][], `Allocator` allows zero-sized allocations. If an underlying"},{"DocComment":" allocator does not support this (like jemalloc) or responds by returning a null pointer"},{"DocComment":" (such as `libc::malloc`), this must be caught by the implementation."},{"DocComment":""},{"DocComment":" ### Currently allocated memory"},{"DocComment":""},{"DocComment":" Some of the methods require that a memory block is *currently allocated* by an allocator."},{"DocComment":" This means that:"},{"DocComment":" * the starting address for that memory block was previously"},{"DocComment":" returned by [`allocate`], [`grow`], or [`shrink`], and"},{"DocComment":" * the memory block has not subsequently been deallocated."},{"DocComment":""},{"DocComment":" A memory block is deallocated by a call to [`deallocate`],"},{"DocComment":" or by a call to [`grow`] or [`shrink`] that returns `Ok`."},{"DocComment":" A call to `grow` or `shrink` that returns `Err`,"},{"DocComment":" does not deallocate the memory block passed to it."},{"DocComment":""},{"DocComment":" [`allocate`]: Allocator::allocate"},{"DocComment":" [`grow`]: Allocator::grow"},{"DocComment":" [`shrink`]: Allocator::shrink"},{"DocComment":" [`deallocate`]: Allocator::deallocate"},{"DocComment":""},{"DocComment":" ### Memory fitting"},{"DocComment":""},{"DocComment":" Some of the methods require that a `layout` *fit* a memory block or vice versa. This means that the"},{"DocComment":" following conditions must hold:"},{"DocComment":" * the memory block must be *currently allocated* with alignment of [`layout.align()`], and"},{"DocComment":" * [`layout.size()`] must fall in the range `min ..= max`, where:"},{"DocComment":" - `min` is the size of the layout used to allocate the block, and"},{"DocComment":" - `max` is the actual size returned from [`allocate`], [`grow`], or [`shrink`]."},{"DocComment":""},{"DocComment":" [`layout.align()`]: Layout::align"},{"DocComment":" [`layout.size()`]: Layout::size"},{"DocComment":""},{"DocComment":" # Safety"},{"DocComment":""},{"DocComment":" Memory blocks that are [*currently allocated*] by an allocator,"},{"DocComment":" must point to valid memory, and retain their validity until either:"},{"DocComment":" - the memory block is deallocated, or"},{"DocComment":" - the allocator is dropped."},{"DocComment":""},{"DocComment":" Copying, cloning, or moving the allocator must not invalidate memory blocks returned from it."},{"DocComment":" A copied or cloned allocator must behave like the original allocator."},{"DocComment":""},{"DocComment":" A memory block which is [*currently allocated*] may be passed to"},{"DocComment":" any method of the allocator that accepts such an argument."},{"DocComment":""},{"DocComment":" [*currently allocated*]: #currently-allocated-memory"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":56,"beg":{"line":106,"col":0},"end":{"line":369,"col":1}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[],"methods":[{"params":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"allocate","attr_info":{"attributes":[{"DocComment":" Attempts to allocate a block of memory."},{"DocComment":""},{"DocComment":" On success, returns a [`NonNull<[u8]>`][NonNull] meeting the size and alignment guarantees of `layout`."},{"DocComment":""},{"DocComment":" The returned block may have a larger size than specified by `layout.size()`, and may or may"},{"DocComment":" not have its contents initialized."},{"DocComment":""},{"DocComment":" The returned block of memory remains valid as long as it is [*currently allocated*] and the shorter of:"},{"DocComment":" - the borrow-checker lifetime of the allocator type itself."},{"DocComment":" - as long as the allocator and all its clones have not been dropped."},{"DocComment":""},{"DocComment":" [*currently allocated*]: #currently-allocated-memory"},{"DocComment":""},{"DocComment":" # Errors"},{"DocComment":""},{"DocComment":" Returning `Err` indicates that either memory is exhausted or `layout` does not meet"},{"DocComment":" allocator's size or alignment constraints."},{"DocComment":""},{"DocComment":" Implementations are encouraged to return `Err` on memory exhaustion rather than panicking or"},{"DocComment":" aborting, but this is not a strict requirement. (Specifically: it is *legal* to implement"},{"DocComment":" this trait atop an underlying native allocation library that aborts on memory exhaustion.)"},{"DocComment":""},{"DocComment":" Clients wishing to abort computation in response to an allocation error are encouraged to"},{"DocComment":" call the [`handle_alloc_error`] function, rather than directly invoking `panic!` or similar."},{"DocComment":""},{"DocComment":" [`handle_alloc_error`]: ../../alloc/alloc/fn.handle_alloc_error.html"}],"inline":null,"rename":null,"public":true},"signature":{"is_unsafe":false,"inputs":[{"Deduplicated":2345},{"Deduplicated":6208}],"output":{"Deduplicated":6213}},"item":{"id":315,"generics":{"regions":[{"Var":{"Bound":[0,0]}}],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6214,{"kind":"SelfId","trait_decl_ref":{"regions":[],"skip_binder":{"id":26,"generics":{"regions":[],"types":[{"Deduplicated":2165}],"const_generics":[],"trait_refs":[]}}}}]}]}}},"kind":{"TraitMethod":[26,0]}},null,{"params":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"name":"deallocate","attr_info":{"attributes":[{"DocComment":" Deallocates the memory referenced by `ptr`."},{"DocComment":""},{"DocComment":" # Safety"},{"DocComment":""},{"DocComment":" * `ptr` must denote a block of memory [*currently allocated*] via this allocator, and"},{"DocComment":" * `layout` must [*fit*] that block of memory."},{"DocComment":""},{"DocComment":" [*currently allocated*]: #currently-allocated-memory"},{"DocComment":" [*fit*]: #memory-fitting"}],"inline":null,"rename":null,"public":true},"signature":{"is_unsafe":true,"inputs":[{"Deduplicated":2345},{"Deduplicated":6228},{"Deduplicated":6208}],"output":{"Deduplicated":297}},"item":{"id":317,"generics":{"regions":[{"Var":{"Bound":[0,0]}}],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[{"Deduplicated":6214}]}}},"kind":{"TraitMethod":[26,2]}},null,null,null,null],"vtable":{"id":{"Adt":57},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}},{"def_id":27,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["num",0]},{"Ident":["nonzero",0]},{"Ident":["private",0]},{"Ident":["Sealed",0]}],"span":{"data":{"file_id":19,"beg":{"line":46,"col":12},"end":{"line":46,"col":28}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":null},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":19,"beg":{"line":46,"col":12},"end":{"line":46,"col":31}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[],"methods":[],"vtable":{"id":{"Adt":61},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}},{"def_id":28,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["cmp",0]},{"Ident":["Eq",0]}],"span":{"data":{"file_id":46,"beg":{"line":338,"col":0},"end":{"line":338,"col":58}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[{"DocComment":" Trait for comparisons corresponding to [equivalence relations]("},{"DocComment":" https://en.wikipedia.org/wiki/Equivalence_relation)."},{"DocComment":""},{"DocComment":" The primary difference to [`PartialEq`] is the additional requirement for reflexivity. A type"},{"DocComment":" that implements [`PartialEq`] guarantees that for all `a`, `b` and `c`:"},{"DocComment":""},{"DocComment":" - symmetric: `a == b` implies `b == a` and `a != b` implies `!(a == b)`"},{"DocComment":" - transitive: `a == b` and `b == c` implies `a == c`"},{"DocComment":""},{"DocComment":" `Eq`, which builds on top of [`PartialEq`] also implies:"},{"DocComment":""},{"DocComment":" - reflexive: `a == a`"},{"DocComment":""},{"DocComment":" This property cannot be checked by the compiler, and therefore `Eq` is a trait without methods."},{"DocComment":""},{"DocComment":" Violating this property is a logic error. The behavior resulting from a logic error is not"},{"DocComment":" specified, but users of the trait must ensure that such logic errors do *not* result in"},{"DocComment":" undefined behavior. This means that `unsafe` code **must not** rely on the correctness of these"},{"DocComment":" methods."},{"DocComment":""},{"DocComment":" Floating point types such as [`f32`] and [`f64`] implement only [`PartialEq`] but *not* `Eq`"},{"DocComment":" because `NaN` != `NaN`."},{"DocComment":""},{"DocComment":" ## Derivable"},{"DocComment":""},{"DocComment":" This trait can be used with `#[derive]`. When `derive`d, because `Eq` has no extra methods, it"},{"DocComment":" is only informing the compiler that this is an equivalence relation rather than a partial"},{"DocComment":" equivalence relation. Note that the `derive` strategy requires all fields are `Eq`, which isn't"},{"DocComment":" always desired."},{"DocComment":""},{"DocComment":" ## How can I implement `Eq`?"},{"DocComment":""},{"DocComment":" If you cannot use the `derive` strategy, specify that your type implements `Eq`, which has no"},{"DocComment":" extra methods:"},{"DocComment":""},{"DocComment":" ```"},{"DocComment":" enum BookFormat {"},{"DocComment":" Paperback,"},{"DocComment":" Hardback,"},{"DocComment":" Ebook,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" struct Book {"},{"DocComment":" isbn: i32,"},{"DocComment":" format: BookFormat,"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl PartialEq for Book {"},{"DocComment":" fn eq(&self, other: &Self) -> bool {"},{"DocComment":" self.isbn == other.isbn"},{"DocComment":" }"},{"DocComment":" }"},{"DocComment":""},{"DocComment":" impl Eq for Book {}"},{"DocComment":" ```"}],"inline":null,"rename":null,"public":true},"is_local":false,"opacity":"Foreign","lang_item":"Eq"},"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_clauses":[{"clause_id":0,"span":{"data":{"file_id":46,"beg":{"line":338,"col":20},"end":{"line":338,"col":43}},"generated_from_span":null},"origin":"WhereClauseOnTrait","trait_":{"regions":[],"skip_binder":{"id":22,"generics":{"regions":[],"types":[{"Deduplicated":240},{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"consts":[],"types":[],"methods":[null],"vtable":null}],"trait_impls":[{"def_id":0,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":0}}],"span":{"data":{"file_id":4,"beg":{"line":21,"col":0},"end":{"line":21,"col":36}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"opacity":"Foreign","lang_item":null},"impl_trait":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":2156}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[{"index":0,"name":"'a","mutability":"Unknown"}],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":4,"beg":{"line":21,"col":9},"end":{"line":21,"col":10}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[{"HashConsedValue":[7514,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"HashConsedValue":[7513,{"Ref":["Erased",{"HashConsedValue":[2157,{"Slice":{"Deduplicated":240}}]},"Shared"]}]}],"const_generics":[],"trait_refs":[]}}}}]},{"HashConsedValue":[6733,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"Deduplicated":6682}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":6681}],"const_generics":[],"trait_refs":[]}}}}]},{"HashConsedValue":[7515,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6399,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"HashConsedValue":[6398,{"Adt":{"id":{"Adt":11},"generics":{"regions":["Erased"],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[{"HashConsedValue":[2171,{"kind":{"Clause":{"Bound":[1,0]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2165}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":6398}],"const_generics":[],"trait_refs":[]}}}}]},{"HashConsedValue":[7516,{"kind":{"TraitImpl":{"id":1,"generics":{"regions":["Erased"],"types":[{"Deduplicated":272}],"const_generics":[],"trait_refs":[{"Deduplicated":275}]}}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":6398}],"const_generics":[],"trait_refs":[]}}}}]}],"consts":[],"types":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"value":{"Deduplicated":2164},"implied_trait_refs":[]},"kind":{"TraitType":[6,0]}},{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"value":{"HashConsedValue":[2172,{"Adt":{"id":{"Adt":11},"generics":{"regions":[{"Var":{"Bound":[1,0]}}],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[{"Deduplicated":2171}]}}}]},"implied_trait_refs":[]},"kind":{"TraitType":[6,1]}}],"methods":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"id":19,"generics":{"regions":[{"Var":{"Bound":[1,0]}}],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[{"Deduplicated":2171}]}},"kind":{"TraitMethod":[6,0]}}],"vtable":{"id":3,"generics":{"regions":[{"Var":{"Bound":[0,0]}}],"types":[{"Deduplicated":272}],"const_generics":[],"trait_refs":[{"Deduplicated":275}]}}},{"def_id":1,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["slice",0]},{"Ident":["iter",0]},{"Impl":{"Trait":1}}],"span":{"data":{"file_id":7,"beg":{"line":153,"col":8},"end":{"line":153,"col":45}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"opacity":"Foreign","lang_item":null},"impl_trait":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":2179}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[{"index":0,"name":"'a","mutability":"Unknown"}],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":7,"beg":{"line":153,"col":17},"end":{"line":153,"col":18}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[{"Deduplicated":6399},{"Deduplicated":6733}],"consts":[],"types":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"value":{"Deduplicated":2164},"implied_trait_refs":[]},"kind":{"TraitType":[3,0]}}],"methods":[{"params":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"id":20,"generics":{"regions":[{"Var":{"Bound":[1,0]}},{"Var":{"Bound":[0,0]}}],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[{"Deduplicated":2171}]}},"kind":{"TraitMethod":[3,0]}},null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"vtable":{"id":4,"generics":{"regions":[{"Var":{"Bound":[0,0]}}],"types":[{"Deduplicated":272}],"const_generics":[],"trait_refs":[{"Deduplicated":275}]}}},{"def_id":2,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":2}}],"span":{"data":{"file_id":8,"beg":{"line":39,"col":0},"end":{"line":39,"col":47}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"opacity":"Foreign","lang_item":null},"impl_trait":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":5047}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[{"index":0,"name":"N","ty":{"Deduplicated":827}}],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":8,"beg":{"line":39,"col":5},"end":{"line":39,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[{"HashConsedValue":[7523,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"HashConsedValue":[5048,{"Array":[{"Deduplicated":240},{"kind":{"Var":{"Bound":[1,0]}},"ty":{"Deduplicated":827}}]}]}],"const_generics":[],"trait_refs":[]}}}}]},{"Deduplicated":275},{"HashConsedValue":[7524,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[6403,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"HashConsedValue":[5055,{"Adt":{"id":{"Adt":13},"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[{"kind":{"Var":{"Bound":[1,0]}},"ty":{"Deduplicated":827}}],"trait_refs":[{"Deduplicated":2171}]}}}]}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":5055}],"const_generics":[],"trait_refs":[]}}}}]},{"HashConsedValue":[7525,{"kind":{"TraitImpl":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":272}],"const_generics":[{"kind":{"Var":{"Bound":[0,0]}},"ty":{"Deduplicated":827}}],"trait_refs":[{"Deduplicated":275}]}}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":5055}],"const_generics":[],"trait_refs":[]}}}}]}],"consts":[],"types":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"value":{"Deduplicated":240},"implied_trait_refs":[]},"kind":{"TraitType":[6,0]}},{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"value":{"Deduplicated":5055},"implied_trait_refs":[]},"kind":{"TraitType":[6,1]}}],"methods":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"id":21,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[{"kind":{"Var":{"Bound":[1,0]}},"ty":{"Deduplicated":827}}],"trait_refs":[{"Deduplicated":2171}]}},"kind":{"TraitMethod":[6,0]}}],"vtable":{"id":5,"generics":{"regions":[],"types":[{"Deduplicated":272}],"const_generics":[{"kind":{"Var":{"Bound":[0,0]}},"ty":{"Deduplicated":827}}],"trait_refs":[{"Deduplicated":275}]}}},{"def_id":3,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Impl":{"Trait":3}}],"span":{"data":{"file_id":8,"beg":{"line":235,"col":0},"end":{"line":235,"col":51}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"opacity":"Foreign","lang_item":null},"impl_trait":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":5060}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[{"index":0,"name":"N","ty":{"Deduplicated":827}}],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":8,"beg":{"line":235,"col":5},"end":{"line":235,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[{"Deduplicated":6403},{"Deduplicated":275}],"consts":[],"types":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"value":{"Deduplicated":240},"implied_trait_refs":[]},"kind":{"TraitType":[3,0]}}],"methods":[{"params":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"id":22,"generics":{"regions":[{"Var":{"Bound":[0,0]}}],"types":[{"Deduplicated":240}],"const_generics":[{"kind":{"Var":{"Bound":[1,0]}},"ty":{"Deduplicated":827}}],"trait_refs":[{"Deduplicated":2171}]}},"kind":{"TraitMethod":[3,0]}},null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"vtable":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":272}],"const_generics":[{"kind":{"Var":{"Bound":[0,0]}},"ty":{"Deduplicated":827}}],"trait_refs":[{"Deduplicated":275}]}}},{"def_id":4,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["array",0]},{"Ident":["iter",0]},{"Ident":["IntoIter",0]},{"Impl":{"Trait":4}}],"span":{"data":{"file_id":8,"beg":{"line":20,"col":0},"end":{"line":20,"col":38}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"opacity":"Foreign","lang_item":null},"impl_trait":{"id":2,"generics":{"regions":[],"types":[{"Deduplicated":5060}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[{"index":0,"name":"N","ty":{"Deduplicated":827}}],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":8,"beg":{"line":20,"col":20},"end":{"line":20,"col":21}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[],"consts":[],"types":[],"methods":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"id":266,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[{"kind":{"Var":{"Bound":[1,0]}},"ty":{"Deduplicated":827}}],"trait_refs":[{"Deduplicated":2171}]}},"kind":{"TraitMethod":[2,0]}}],"vtable":null},{"def_id":5,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["iter",0]},{"Ident":["traits",0]},{"Ident":["collect",0]},{"Impl":{"Trait":5}}],"span":{"data":{"file_id":13,"beg":{"line":317,"col":0},"end":{"line":317,"col":50}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"opacity":"Foreign","lang_item":null},"impl_trait":{"id":6,"generics":{"regions":[],"types":[{"Deduplicated":272}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[],"types":[{"index":0,"name":"I"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":13,"beg":{"line":317,"col":5},"end":{"line":317,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":13,"beg":{"line":317,"col":8},"end":{"line":317,"col":24}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":3,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[{"Deduplicated":5284},{"HashConsedValue":[7532,{"kind":{"ParentClause":[{"Deduplicated":5282},1]},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":5288}],"const_generics":[],"trait_refs":[]}}}}]},{"Deduplicated":275},{"Deduplicated":5282}],"consts":[],"types":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"value":{"Deduplicated":5288},"implied_trait_refs":[]},"kind":{"TraitType":[6,0]}},{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"value":{"Deduplicated":240},"implied_trait_refs":[]},"kind":{"TraitType":[6,1]}}],"methods":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"id":25,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[{"Deduplicated":2171},{"Deduplicated":5287}]}},"kind":{"TraitMethod":[6,0]}}],"vtable":{"id":7,"generics":{"regions":[],"types":[{"Deduplicated":272}],"const_generics":[],"trait_refs":[{"Deduplicated":275},{"Deduplicated":5282}]}}},{"def_id":6,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["result",0]},{"Impl":{"Trait":6}}],"span":{"data":{"file_id":3,"beg":{"line":2162,"col":0},"end":{"line":2162,"col":42}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"opacity":"Foreign","lang_item":null},"impl_trait":{"id":11,"generics":{"regions":[],"types":[{"Deduplicated":5294}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[],"types":[{"index":0,"name":"T"},{"index":1,"name":"E"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":3,"beg":{"line":2162,"col":5},"end":{"line":2162,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":3,"beg":{"line":2162,"col":8},"end":{"line":2162,"col":9}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[{"HashConsedValue":[7535,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"HashConsedValue":[5295,{"Adt":{"id":{"Adt":10},"generics":{"regions":[],"types":[{"Deduplicated":240},{"Deduplicated":2139}],"const_generics":[],"trait_refs":[{"Deduplicated":2171},{"Deduplicated":3155}]}}}]}],"const_generics":[],"trait_refs":[]}}}}]},{"HashConsedValue":[7537,{"kind":{"TraitImpl":{"id":7,"generics":{"regions":[],"types":[{"Deduplicated":272},{"Deduplicated":2143},{"Deduplicated":2143}],"const_generics":[],"trait_refs":[{"Deduplicated":275},{"Deduplicated":2766},{"Deduplicated":2766},{"HashConsedValue":[7536,{"kind":{"TraitImpl":{"id":8,"generics":{"regions":[],"types":[{"Deduplicated":2143}],"const_generics":[],"trait_refs":[{"Deduplicated":2766}]}}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":4,"generics":{"regions":[],"types":[{"Deduplicated":2139},{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}]}]}}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":24,"generics":{"regions":[],"types":[{"Deduplicated":5295},{"Deduplicated":5300}],"const_generics":[],"trait_refs":[]}}}}]},{"Deduplicated":275},{"Deduplicated":5316}],"consts":[],"types":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"value":{"Deduplicated":240},"implied_trait_refs":[]},"kind":{"TraitType":[11,0]}},{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"value":{"Deduplicated":5300},"implied_trait_refs":[]},"kind":{"TraitType":[11,1]}}],"methods":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"id":267,"generics":{"regions":[],"types":[{"Deduplicated":240},{"Deduplicated":2139}],"const_generics":[],"trait_refs":[{"Deduplicated":2171},{"Deduplicated":3155}]}},"kind":{"TraitMethod":[11,0]}},{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"id":26,"generics":{"regions":[],"types":[{"Deduplicated":240},{"Deduplicated":2139}],"const_generics":[],"trait_refs":[{"Deduplicated":2171},{"Deduplicated":3155}]}},"kind":{"TraitMethod":[11,1]}}],"vtable":null},{"def_id":7,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["result",0]},{"Impl":{"Trait":7}}],"span":{"data":{"file_id":3,"beg":{"line":2182,"col":0},"end":{"line":2183,"col":20}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"opacity":"Foreign","lang_item":null},"impl_trait":{"id":24,"generics":{"regions":[],"types":[{"Deduplicated":5318},{"Deduplicated":5314}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[],"types":[{"index":0,"name":"T"},{"index":1,"name":"E"},{"index":2,"name":"F"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":3,"beg":{"line":2182,"col":5},"end":{"line":2182,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":3,"beg":{"line":2182,"col":8},"end":{"line":2182,"col":9}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":2,"span":{"data":{"file_id":3,"beg":{"line":2182,"col":11},"end":{"line":2182,"col":12}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":3117}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":3,"span":{"data":{"file_id":3,"beg":{"line":2182,"col":14},"end":{"line":2182,"col":29}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":4,"generics":{"regions":[],"types":[{"Deduplicated":3117},{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[{"HashConsedValue":[7538,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"HashConsedValue":[5321,{"Adt":{"id":{"Adt":10},"generics":{"regions":[],"types":[{"Deduplicated":240},{"Deduplicated":3117}],"const_generics":[],"trait_refs":[{"Deduplicated":2171},{"HashConsedValue":[5320,{"kind":{"Clause":{"Bound":[1,2]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":3121}],"const_generics":[],"trait_refs":[]}}}}]}]}}}]}],"const_generics":[],"trait_refs":[]}}}}]},{"Deduplicated":5316}],"consts":[],"types":[],"methods":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"id":27,"generics":{"regions":[],"types":[{"Deduplicated":240},{"Deduplicated":2139},{"Deduplicated":3117}],"const_generics":[],"trait_refs":[{"Deduplicated":2171},{"Deduplicated":3155},{"Deduplicated":5320},{"HashConsedValue":[7539,{"kind":{"Clause":{"Bound":[1,3]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":4,"generics":{"regions":[],"types":[{"Deduplicated":3121},{"Deduplicated":2737}],"const_generics":[],"trait_refs":[]}}}}]}]}},"kind":{"TraitMethod":[24,0]}}],"vtable":null},{"def_id":8,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["convert",0]},{"Impl":{"Trait":8}}],"span":{"data":{"file_id":12,"beg":{"line":785,"col":0},"end":{"line":785,"col":27}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"opacity":"Foreign","lang_item":null},"impl_trait":{"id":4,"generics":{"regions":[],"types":[{"Deduplicated":272},{"Deduplicated":272}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":12,"beg":{"line":785,"col":5},"end":{"line":785,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[{"Deduplicated":275},{"Deduplicated":275}],"consts":[],"types":[],"methods":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"id":269,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[{"Deduplicated":2171}]}},"kind":{"TraitMethod":[4,0]}}],"vtable":null},{"def_id":9,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["bool_then_closure",0]},{"Impl":{"Trait":9}}],"span":{"data":{"file_id":0,"beg":{"line":126,"col":11},"end":{"line":126,"col":19}},"generated_from_span":null},"source_text":"|| x + 1","attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":true,"opacity":"Transparent","lang_item":null},"impl_trait":{"id":5,"generics":{"regions":[],"types":[{"Deduplicated":5334},{"Deduplicated":297}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[{"HashConsedValue":[7543,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"HashConsedValue":[6937,{"Adt":{"id":{"Adt":16},"generics":{"regions":[{"Var":{"Bound":[1,0]}}],"types":[],"const_generics":[],"trait_refs":[]}}}]}],"const_generics":[],"trait_refs":[]}}}}]},{"HashConsedValue":[2463,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[2462,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":297}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":297}],"const_generics":[],"trait_refs":[]}}}}]},{"HashConsedValue":[7544,{"kind":{"BuiltinOrAuto":{"builtin_data":"Tuple","parent_trait_refs":[{"Deduplicated":2462}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":25,"generics":{"regions":[],"types":[{"Deduplicated":297}],"const_generics":[],"trait_refs":[]}}}}]},{"Deduplicated":408}],"consts":[],"types":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"value":{"Deduplicated":283},"implied_trait_refs":[]},"kind":{"TraitType":[5,0]}}],"methods":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"id":270,"generics":{"regions":[{"Var":{"Bound":[1,0]}}],"types":[],"const_generics":[],"trait_refs":[]}},"kind":{"TraitMethod":[5,0]}}],"vtable":null},{"def_id":10,"item_meta":{"name":[{"Ident":["charon_corpus",0]},{"Ident":["bool_then_closure",0]},{"Ident":["closure",0]},{"Impl":{"Trait":10}}],"span":{"data":{"file_id":0,"beg":{"line":126,"col":11},"end":{"line":126,"col":19}},"generated_from_span":null},"source_text":"|| x + 1","attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":true,"opacity":"Transparent","lang_item":null},"impl_trait":{"id":2,"generics":{"regions":[],"types":[{"Deduplicated":5334}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[],"consts":[],"types":[],"methods":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"id":272,"generics":{"regions":[{"Var":{"Bound":[1,0]}}],"types":[],"const_generics":[],"trait_refs":[]}},"kind":{"TraitMethod":[2,0]}}],"vtable":null},{"def_id":11,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["option",0]},{"Impl":{"Trait":11}}],"span":{"data":{"file_id":6,"beg":{"line":2755,"col":0},"end":{"line":2755,"col":36}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"opacity":"Foreign","lang_item":null},"impl_trait":{"id":11,"generics":{"regions":[],"types":[{"Deduplicated":3852}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":6,"beg":{"line":2755,"col":5},"end":{"line":2755,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[{"HashConsedValue":[5352,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"HashConsedValue":[2886,{"Adt":{"id":{"Adt":12},"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[{"Deduplicated":2171}]}}}]}],"const_generics":[],"trait_refs":[]}}}}]},{"HashConsedValue":[7547,{"kind":{"TraitImpl":{"id":12,"generics":{"regions":[],"types":[{"Deduplicated":272}],"const_generics":[],"trait_refs":[{"Deduplicated":275}]}}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":24,"generics":{"regions":[],"types":[{"Deduplicated":2886},{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}}}}]},{"Deduplicated":275},{"Deduplicated":2025}],"consts":[],"types":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"value":{"Deduplicated":240},"implied_trait_refs":[]},"kind":{"TraitType":[11,0]}},{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"value":{"Deduplicated":2023},"implied_trait_refs":[]},"kind":{"TraitType":[11,1]}}],"methods":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"id":273,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[{"Deduplicated":2171}]}},"kind":{"TraitMethod":[11,0]}},{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"id":30,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[{"Deduplicated":2171}]}},"kind":{"TraitMethod":[11,1]}}],"vtable":null},{"def_id":12,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["option",0]},{"Impl":{"Trait":12}}],"span":{"data":{"file_id":6,"beg":{"line":2777,"col":0},"end":{"line":2777,"col":74}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"opacity":"Foreign","lang_item":null},"impl_trait":{"id":24,"generics":{"regions":[],"types":[{"Deduplicated":3852},{"Deduplicated":2023}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":6,"beg":{"line":2777,"col":5},"end":{"line":2777,"col":6}},"generated_from_span":null},"origin":"WhereClauseOnImpl","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[{"Deduplicated":5352},{"Deduplicated":2025}],"consts":[],"types":[],"methods":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"id":31,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[{"Deduplicated":2171}]}},"kind":{"TraitMethod":[24,0]}}],"vtable":null},{"def_id":13,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["num",0]},{"Ident":["nonzero",0]},{"Impl":{"Trait":13}}],"span":{"data":{"file_id":19,"beg":{"line":62,"col":12},"end":{"line":62,"col":56}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"opacity":"Foreign","lang_item":null},"impl_trait":{"id":7,"generics":{"regions":[],"types":[{"Deduplicated":827}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[{"HashConsedValue":[2347,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[2346,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":827}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":827}],"const_generics":[],"trait_refs":[]}}}}]},{"HashConsedValue":[7549,{"kind":{"TraitImpl":{"id":16,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":18,"generics":{"regions":[],"types":[{"Deduplicated":827}],"const_generics":[],"trait_refs":[]}}}}]},{"HashConsedValue":[7550,{"kind":{"TraitImpl":{"id":17,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":27,"generics":{"regions":[],"types":[{"Deduplicated":827}],"const_generics":[],"trait_refs":[]}}}}]},{"HashConsedValue":[5602,{"kind":{"BuiltinOrAuto":{"builtin_data":"Sized","parent_trait_refs":[{"HashConsedValue":[5601,{"kind":{"BuiltinOrAuto":{"builtin_data":"MetaSized","parent_trait_refs":[],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":5600}],"const_generics":[],"trait_refs":[]}}}}]}],"types":[]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":5600}],"const_generics":[],"trait_refs":[]}}}}]},{"HashConsedValue":[7551,{"kind":{"TraitImpl":{"id":18,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":18,"generics":{"regions":[],"types":[{"Deduplicated":5600}],"const_generics":[],"trait_refs":[]}}}}]}],"consts":[],"types":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"value":{"Deduplicated":5600},"implied_trait_refs":[]},"kind":{"TraitType":[7,0]}}],"methods":[],"vtable":null},{"def_id":14,"item_meta":{"name":[{"Ident":["alloc",0]},{"Ident":["alloc",0]},{"Impl":{"Trait":14}}],"span":{"data":{"file_id":55,"beg":{"line":425,"col":0},"end":{"line":425,"col":38}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"opacity":"Foreign","lang_item":null},"impl_trait":{"id":26,"generics":{"regions":[],"types":[{"Deduplicated":5432}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[{"Deduplicated":5433}],"consts":[],"types":[],"methods":[{"params":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"id":322,"generics":{"regions":[{"Var":{"Bound":[0,0]}}],"types":[],"const_generics":[],"trait_refs":[]}},"kind":{"TraitMethod":[26,0]}},null,{"params":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"id":324,"generics":{"regions":[{"Var":{"Bound":[0,0]}}],"types":[],"const_generics":[],"trait_refs":[]}},"kind":{"TraitMethod":[26,2]}},null,null,null,null],"vtable":{"id":8,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}},{"def_id":15,"item_meta":{"name":[{"Ident":["alloc",0]},{"Ident":["boxed",0]},{"Ident":["Box",0]},{"Impl":{"Trait":15}}],"span":{"data":{"file_id":53,"beg":{"line":234,"col":0},"end":{"line":237,"col":1}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"opacity":"Foreign","lang_item":null},"impl_trait":{"id":2,"generics":{"regions":[],"types":[{"Deduplicated":6281}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[],"types":[{"index":0,"name":"T"},{"index":1,"name":"A"}],"const_generics":[],"trait_clauses":[{"clause_id":0,"span":{"data":{"file_id":53,"beg":{"line":235,"col":4},"end":{"line":235,"col":5}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":240}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":1,"span":{"data":{"file_id":53,"beg":{"line":236,"col":60},"end":{"line":236,"col":81}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":0,"generics":{"regions":[],"types":[{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}},{"clause_id":2,"span":{"data":{"file_id":53,"beg":{"line":236,"col":63},"end":{"line":236,"col":72}},"generated_from_span":null},"origin":"WhereClauseOnType","trait_":{"regions":[],"skip_binder":{"id":26,"generics":{"regions":[],"types":[{"Deduplicated":2139}],"const_generics":[],"trait_refs":[]}}}}],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[],"consts":[],"types":[],"methods":[{"params":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"id":329,"generics":{"regions":[],"types":[{"Deduplicated":240},{"Deduplicated":2139}],"const_generics":[],"trait_refs":[{"HashConsedValue":[6944,{"kind":{"Clause":{"Bound":[1,0]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":1,"generics":{"regions":[],"types":[{"Deduplicated":2165}],"const_generics":[],"trait_refs":[]}}}}]},{"Deduplicated":3155},{"HashConsedValue":[6945,{"kind":{"Clause":{"Bound":[1,2]}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":26,"generics":{"regions":[],"types":[{"Deduplicated":2737}],"const_generics":[],"trait_refs":[]}}}}]}]}},"kind":{"TraitMethod":[2,0]}}],"vtable":null},{"def_id":16,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Impl":{"Trait":16}}],"span":{"data":{"file_id":1,"beg":{"line":60,"col":25},"end":{"line":60,"col":62}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"opacity":"Foreign","lang_item":null},"impl_trait":{"id":18,"generics":{"regions":[],"types":[{"Deduplicated":827}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[{"Deduplicated":2346},{"HashConsedValue":[7552,{"kind":{"TraitImpl":{"id":19,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":8,"generics":{"regions":[],"types":[{"Deduplicated":827}],"const_generics":[],"trait_refs":[]}}}}]}],"consts":[],"types":[],"methods":[],"vtable":null},{"def_id":17,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["num",0]},{"Ident":["nonzero",0]},{"Impl":{"Trait":17}}],"span":{"data":{"file_id":19,"beg":{"line":55,"col":12},"end":{"line":55,"col":47}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"opacity":"Foreign","lang_item":null},"impl_trait":{"id":27,"generics":{"regions":[],"types":[{"Deduplicated":827}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[{"Deduplicated":2346}],"consts":[],"types":[],"methods":[],"vtable":{"id":9,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}},{"def_id":18,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["num",0]},{"Ident":["niche_types",0]},{"Impl":{"Trait":18}}],"span":{"data":{"file_id":57,"beg":{"line":17,"col":24},"end":{"line":17,"col":28}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"opacity":"Foreign","lang_item":null},"impl_trait":{"id":18,"generics":{"regions":[],"types":[{"Deduplicated":5600}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[{"Deduplicated":5601},{"HashConsedValue":[7553,{"kind":{"TraitImpl":{"id":20,"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}},"trait_decl_ref":{"regions":[],"skip_binder":{"id":8,"generics":{"regions":[],"types":[{"Deduplicated":5600}],"const_generics":[],"trait_refs":[]}}}}]}],"consts":[],"types":[],"methods":[],"vtable":null},{"def_id":19,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["clone",0]},{"Ident":["impls",0]},{"Impl":{"Trait":19}}],"span":{"data":{"file_id":25,"beg":{"line":612,"col":16},"end":{"line":612,"col":39}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"opacity":"Foreign","lang_item":null},"impl_trait":{"id":8,"generics":{"regions":[],"types":[{"Deduplicated":827}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[{"Deduplicated":2347}],"consts":[],"types":[],"methods":[{"params":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"id":331,"generics":{"regions":[{"Var":{"Bound":[0,0]}}],"types":[],"const_generics":[],"trait_refs":[]}},"kind":{"TraitMethod":[8,0]}},null],"vtable":null},{"def_id":20,"item_meta":{"name":[{"Ident":["core",0]},{"Ident":["num",0]},{"Ident":["niche_types",0]},{"Impl":{"Trait":20}}],"span":{"data":{"file_id":57,"beg":{"line":17,"col":17},"end":{"line":17,"col":22}},"generated_from_span":null},"source_text":null,"attr_info":{"attributes":[],"inline":null,"rename":null,"public":false},"is_local":false,"opacity":"Foreign","lang_item":null},"impl_trait":{"id":8,"generics":{"regions":[],"types":[{"Deduplicated":5600}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"implied_trait_refs":[{"Deduplicated":5602}],"consts":[],"types":[],"methods":[{"params":{"regions":[{"index":0,"name":null,"mutability":"Unknown"}],"types":[],"const_generics":[],"trait_clauses":[],"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"skip_binder":{"id":333,"generics":{"regions":[{"Var":{"Bound":[0,0]}}],"types":[],"const_generics":[],"trait_refs":[]}},"kind":{"TraitMethod":[8,0]}},null],"vtable":null}],"ordered_decls":[{"Type":{"NonRec":58}},{"Type":{"NonRec":60}},{"TraitDecl":{"NonRec":1}},{"TraitDecl":{"NonRec":0}},{"Type":{"NonRec":10}},{"Type":{"NonRec":59}},{"TraitDecl":{"NonRec":26}},{"Fun":{"NonRec":315}},{"Fun":{"NonRec":317}},{"Type":{"NonRec":13}},{"Fun":{"NonRec":266}},{"Fun":{"NonRec":21}},{"Type":{"NonRec":12}},{"Fun":{"NonRec":22}},{"TraitDecl":{"NonRec":2}},{"Fun":{"NonRec":29}},{"TraitDecl":{"NonRec":25}},{"TraitDecl":{"NonRec":5}},{"Fun":{"NonRec":28}},{"TraitDecl":{"NonRec":4}},{"Fun":{"NonRec":268}},{"Fun":{"NonRec":269}},{"TraitImpl":{"NonRec":8}},{"Type":{"NonRec":15}},{"TraitDecl":{"NonRec":3}},{"Fun":{"NonRec":25}},{"Fun":{"NonRec":44}},{"Fun":{"NonRec":23}},{"Type":{"NonRec":14}},{"Fun":{"NonRec":271}},{"Fun":{"NonRec":30}},{"Fun":{"NonRec":31}},{"Fun":{"NonRec":26}},{"Fun":{"NonRec":27}},{"Type":{"NonRec":11}},{"Fun":{"NonRec":20}},{"TraitImpl":{"NonRec":1}},{"Fun":{"NonRec":19}},{"Fun":{"NonRec":24}},{"Type":{"NonRec":49}},{"Fun":{"NonRec":324}},{"Fun":{"NonRec":322}},{"TraitImpl":{"NonRec":14}},{"Type":{"NonRec":48}},{"Fun":{"NonRec":329}},{"Fun":{"NonRec":274}},{"Fun":{"NonRec":275}},{"Type":{"NonRec":0}},{"Fun":{"NonRec":0}},{"Fun":{"NonRec":1}},{"Fun":{"NonRec":2}},{"Fun":{"NonRec":3}},{"Type":{"NonRec":1}},{"Fun":{"NonRec":4}},{"Type":{"NonRec":2}},{"Fun":{"NonRec":5}},{"Fun":{"NonRec":6}},{"Fun":{"NonRec":7}},{"Type":{"NonRec":16}},{"Fun":{"NonRec":272}},{"TraitImpl":{"NonRec":10}},{"Fun":{"NonRec":270}},{"TraitImpl":{"NonRec":9}},{"Fun":{"NonRec":8}},{"Fun":{"NonRec":9}},{"Fun":{"NonRec":10}},{"Fun":{"NonRec":11}},{"Type":{"NonRec":3}},{"Type":{"NonRec":4}},{"Type":{"NonRec":5}},{"Type":{"NonRec":6}},{"Type":{"NonRec":7}},{"Fun":{"NonRec":32}},{"Global":{"NonRec":0}},{"Fun":{"NonRec":33}},{"Global":{"NonRec":1}},{"Fun":{"NonRec":34}},{"Fun":{"NonRec":35}},{"Fun":{"NonRec":12}},{"Fun":{"NonRec":13}},{"Fun":{"NonRec":14}},{"Fun":{"NonRec":15}},{"Fun":{"NonRec":16}},{"Fun":{"NonRec":36}},{"Global":{"NonRec":2}},{"Type":{"NonRec":8}},{"Type":{"NonRec":9}},{"Fun":{"NonRec":17}},{"Fun":{"NonRec":18}}]},"has_errors":false} \ No newline at end of file diff --git a/majit/charon-corpus/src/lib.rs b/majit/charon-corpus/src/lib.rs index 71e80b8401a..775a1663cb9 100644 --- a/majit/charon-corpus/src/lib.rs +++ b/majit/charon-corpus/src/lib.rs @@ -149,6 +149,155 @@ pub fn option_question_mark(keep: bool, value: i64, addend: i64) -> Option Some(v + addend) } +// 8. Header-first object model +// +// 1. `(*w).ob_type` off a `*mut ObjectHeader` — a `FieldRead` preceded by +// a `__pyre_cast_instance/` narrow, not a classdef-less read. +// 2. `lltype::malloc_typed(Leaf { ob_header: .., payload })` — one +// by-value argument, header written before the call, so +// `fuse_boxing_alloc` mints `NewWithVtable` with a real vtable. +// 3. `if ta == &CLS { concrete(..) }` — the arm body a `FunctionPath` +// call, i.e. inlinable, rather than an indirect one. +// 4. an `_immutable_fields_` marker const, so the payload read +// can fold to a pure getfield. +// +// `TypeOnlyHeader` matches RPython's root `OBJECT`, whose only data field is +// `typeptr`. `ObjectHeader` additionally represents an object model with a +// per-instance class word. Both allocation shapes must fuse. + +#[repr(C)] +pub struct ClassObject { + pub name: &'static str, + pub kind: u8, +} + +#[repr(C)] +pub struct ObjectHeader { + pub ob_type: *const ClassObject, + pub w_class: *const ClassObject, +} + +/// The one-word header: `ob_type` and nothing else. +/// +/// `fuse_boxing_alloc`'s substitution asks whether the per-instance class +/// word agrees with `ob_type`; where the header declares no such word the +/// question has no subject, and `model.rs`'s `header_declares_no_class_word` +/// arm admits the cluster on the layout alone. That arm is unreachable from +/// any fixture whose header declares the field, so it gets its own. +#[repr(C)] +pub struct TypeOnlyHeader { + pub ob_type: *const ClassObject, +} + +#[repr(C)] +#[allow(non_camel_case_types)] +pub struct W_IntObject { + pub ob_header: ObjectHeader, + pub intval: i64, +} + +#[repr(C)] +#[allow(non_camel_case_types)] +pub struct W_TypeOnlyIntObject { + pub ob_header: TypeOnlyHeader, + pub intval: i64, +} + +pub static INT_CLASS: ClassObject = ClassObject { + name: "int", + kind: 1, +}; +pub static DOUBLE_CLASS: ClassObject = ClassObject { + name: "double", + kind: 2, +}; + +/// The allocation entry point. `is_malloc_typed` keys on the trailing path +/// segments `lltype::malloc_typed`, and `fuse_boxing_alloc` requires the +/// single by-value argument — an alloc-then-init spelling matches nothing +/// and degrades in silence. +pub mod lltype { + #[inline(never)] + pub fn malloc_typed(value: T) -> *mut T { + Box::into_raw(Box::new(value)) + } +} + +/// Minimal stand-in for the class-instantiation lookup whose result the +/// class word is stored from. +/// +/// `model.rs`'s `get_instantiate_arg_addr` matches the three-segment path +/// suffix `["pyre_object", "pyobject", "get_instantiate"]` literally, so any +/// other spelling would not exercise that recognizer. +pub mod pyre_object { + pub mod pyobject { + use crate::ClassObject; + + #[inline(never)] + pub fn get_instantiate(tp: &ClassObject) -> *const ClassObject { + tp + } + } +} + +/// Premise 1: the header read. +#[inline(never)] +pub fn w_object_type(w: *mut ObjectHeader) -> *const ClassObject { + unsafe { (*w).ob_type } +} + +/// Premise 2: the boxing cluster — header store, payload store, then one +/// by-value `malloc_typed`. +#[inline(never)] +pub fn w_new_int(x: i64) -> *mut W_IntObject { + lltype::malloc_typed(W_IntObject { + ob_header: ObjectHeader { + ob_type: &INT_CLASS, + w_class: pyre_object::pyobject::get_instantiate(&INT_CLASS), + }, + intval: x, + }) +} + +/// Premise 2, second header shape: the same cluster over a header that +/// declares no class word, so the fuse has to admit it on the layout alone. +/// The `get_instantiate` call has no subject here and is absent. +#[inline(never)] +pub fn w_new_type_only_int(x: i64) -> *mut W_TypeOnlyIntObject { + lltype::malloc_typed(W_TypeOnlyIntObject { + ob_header: TypeOnlyHeader { + ob_type: &INT_CLASS, + }, + intval: x, + }) +} + +#[inline(never)] +fn w_int_add(a: *mut W_IntObject, b: *mut W_IntObject) -> i64 { + unsafe { (*a).intval + (*b).intval } +} + +/// Premise 3: the narrowing chain. `descroperation.py` `binop_impl` +/// (`type(w_obj1) is type(w_obj2)`, then the per-class shortcut) +/// transliterated — the shape that lowers each arm to a direct call. +#[inline(never)] +pub fn w_number_add(a: *mut ObjectHeader, b: *mut ObjectHeader) -> i64 { + let ta = unsafe { (*a).ob_type }; + let tb = unsafe { (*b).ob_type }; + if ta == tb && ta == (&INT_CLASS as *const ClassObject) { + return w_int_add(a as *mut W_IntObject, b as *mut W_IntObject); + } + 0 +} + +/// Premise 4: the immutability marker `harvest_immutable_fields_from_llbcs` +/// reads (`front/llbc_hints.rs:148` `_immutable_fields_` prefix). Written by +/// hand rather than through `#[jit_immutable_fields]` so the corpus keeps +/// its zero-dependency manifest. +#[allow(non_upper_case_globals)] +pub const _immutable_fields_W_IntObject: &str = "intval"; + + // A host-registered callback table. /// The callback a host installs at run time. A bare `fn` pointer, so the set diff --git a/majit/majit-charon-reader/tests/corpus.rs b/majit/majit-charon-reader/tests/corpus.rs index b2740c92866..99624fcab14 100644 --- a/majit/majit-charon-reader/tests/corpus.rs +++ b/majit/majit-charon-reader/tests/corpus.rs @@ -26,13 +26,19 @@ fn loads_fixture_corpus() { // + `option_source` and `option_question_mark` (the Option `?` fixture) // + `bool_then_some` (the eager `then_some` sibling, no closure). // + // + 10 for the header-first object model: `w_object_type`, `w_new_int`, + // `w_new_type_only_int`, `w_number_add`, `w_int_add`, + // `lltype::malloc_typed`, the fixture's `pyobject::get_instantiate`, and + // the initializer bodies for `INT_CLASS`, `DOUBLE_CLASS`, and + // `_immutable_fields_W_IntObject`. + // // + 2 for the host-registered callback table: `host_registry_dispatch` // and `host_registry_dispatch_optional`. `HostCallback` is a type alias, // not an item, so it contributes no body. // // + 2 for the iterator element-kind pair, `slice_of_refs_sum` and // `array_of_refs_sum`. - assert_eq!(local_count, 16, "16 local fns expected"); + assert_eq!(local_count, 26, "26 local fns expected"); } #[test] diff --git a/majit/majit-translate/src/model.rs b/majit/majit-translate/src/model.rs index f1d97e4db21..166b146a440 100644 --- a/majit/majit-translate/src/model.rs +++ b/majit/majit-translate/src/model.rs @@ -3072,29 +3072,40 @@ pub fn fuse_boxing_alloc( owner: &str, struct_field_attrs: &std::collections::HashMap>, ) -> Option> { - let rows = if let Some(exact) = struct_field_attrs.get(owner) { - exact - } else { - let mut leaf_matches = struct_field_attrs - .iter() - .filter(|(k, _)| k.rsplit("::").next() == Some(owner)); - let (_, only) = leaf_matches.next()?; - if leaf_matches.next().is_some() { - // The layout owner is ambiguous. As with an unknown owner, - // leave malloc_typed residual instead of choosing one map row - // by HashMap iteration order. - return None; - } - only - }; Some( - rows.iter() + registered_layout(owner, struct_field_attrs)? + .iter() .filter(|(name, _)| !is_header_field(name)) .cloned() .collect(), ) } + /// `owner`'s registered field layout, in struct-declaration order. + /// + /// The ctor carries the bare struct leaf (`W_FloatObject`) while the map is + /// keyed by the crate-stripped qualified path (`floatobject::W_FloatObject`), + /// so fall back to a leaf match when the exact key misses. + fn registered_layout<'a>( + owner: &str, + struct_field_attrs: &'a std::collections::HashMap>, + ) -> Option<&'a Vec<(String, ValueType)>> { + if let Some(exact) = struct_field_attrs.get(owner) { + return Some(exact); + } + let mut leaf_matches = struct_field_attrs + .iter() + .filter(|(k, _)| k.rsplit("::").next() == Some(owner)); + let (_, only) = leaf_matches.next()?; + if leaf_matches.next().is_some() { + // The layout owner is ambiguous. As with an unknown owner, leave + // `malloc_typed` residual instead of choosing one map row by + // HashMap iteration order. + return None; + } + Some(only) + } + let is_malloc_typed = |target: &CallTarget| -> bool { matches!(target, CallTarget::FunctionPath { segments } if segments.len() >= 2 @@ -3302,6 +3313,35 @@ pub fn fuse_boxing_alloc( _ => None, }) } + /// Whether the header named by `root` declares no class word in its layout. + /// + /// `root` is a `SyntheticTransparentCtor` result, so the header struct is + /// the ctor's own name. An unresolvable owner or an unregistered layout + /// answers `false`: neither is evidence that a field is missing. Callers + /// separately reject a `w_class` store that contradicts this layout. + fn header_declares_no_class_word( + graph: &FunctionGraph, + root: &Variable, + struct_field_attrs: &std::collections::HashMap>, + ) -> bool { + let owner = graph + .blocks + .iter() + .flat_map(|b| &b.operations) + .find_map(|op| match (&op.result, &op.kind) { + ( + Some(r), + OpKind::Call { + target: CallTarget::SyntheticTransparentCtor { name, .. }, + .. + }, + ) if r == root => Some(name.clone()), + _ => None, + }); + let Some(owner) = owner else { return false }; + registered_layout(&owner, struct_field_attrs) + .is_some_and(|rows| rows.iter().all(|(name, _)| name != "w_class")) + } struct Payload { field: FieldDescriptor, value: LinkArg, @@ -3343,14 +3383,28 @@ pub fn fuse_boxing_alloc( for root in &roots { let vtable = store_value(graph, root, "ob_type") .and_then(|obtype| const_ref_addr(graph, &obtype, 8))?; - // A header with no `w_class` store leaves nothing to keep and - // nothing that proves the vtable stands for it, so it declines. - let (field, value, ty) = unique_store(graph, root, "w_class")?; - let folds = value - .as_variable() - .and_then(|value| get_instantiate_arg_addr(graph, value, 8)) - == Some(vtable); - let store = (!folds).then(|| (field.clone(), value.clone(), ty.clone())); + let declares_no_class_word = + header_declares_no_class_word(graph, root, struct_field_attrs); + let store = match unique_store(graph, root, "w_class") { + // A store to a field absent from the registered layout makes + // the layout evidence self-contradictory, so keep the original + // allocation rather than guessing which source is correct. + Some(_) if declares_no_class_word => return None, + Some((field, value, ty)) => { + let folds = value + .as_variable() + .and_then(|value| get_instantiate_arg_addr(graph, value, 8)) + == Some(vtable); + (!folds).then(|| (field.clone(), value.clone(), ty.clone())) + } + // RPython's root OBJECT declares only `typeptr`. With no + // per-instance class word, there is nothing that can disagree + // with the vtable carried by `NewWithVtable`. + None if declares_no_class_word => None, + // A layout that declares `w_class` still needs a unique store + // proving that the vtable stands for that per-instance class. + None => return None, + }; match &w_class { None => w_class = Some(store), // Predecessors disagreeing about the class — one folding into @@ -8873,6 +8927,237 @@ mod tests { ); } + #[test] + fn fuse_boxing_alloc_lowers_a_header_that_declares_no_class_word() { + // Fusion normally proves that the per-instance `w_class` agrees with + // `ob_type`. A layout without that field has no class word to compare, + // so its type pointer is sufficient. The table also verifies that a + // declared-but-unstored class word and a store contradicting the layout + // both fail closed. + type Var = crate::flowspace::model::Variable; + const CLASS_ADDR: i64 = 4357049520; + const OTHER_CLASS_ADDR: i64 = 4357049600; + + /// What the cluster's header stores into `w_class`, if anything. + enum WClass { + /// No `w_class` store at all — the one-word header shape. + Unstored, + /// `get_instantiate(&T)` for the type at this address. + Instantiate(i64), + /// A class read back off the shadow stack: a store whose value the + /// vtable cannot be compared against, the spelling + /// `w_bytes_subclass_from_bytes` (bytesobject.rs) uses. + ShadowStack, + } + + fn call(graph: &mut FunctionGraph, blk: BlockId, path: &[&str], args: Vec) -> Var { + graph + .push_op_var( + blk, + OpKind::Call { + target: CallTarget::FunctionPath { + segments: path.iter().map(|s| (*s).to_string()).collect(), + }, + args, + result_ty: ValueType::Ref(Some("object".into())), + }, + true, + ) + .unwrap() + } + /// A one-payload `W_IntObject` cluster whose header is a `header_owner` + /// ctor storing `ob_type: &CLASS_ADDR` beside the `w_class` shape. + fn cluster(header_owner: &str, w_class: &WClass) -> FunctionGraph { + let field = |base: &Var, name: &str, owner: &str, value: &Var| OpKind::FieldWrite { + base: base.clone(), + field: FieldDescriptor { + name: name.into(), + owner_root: Some(owner.into()), + owner_id: None, + base_is_deref: None, + taken_by_address: false, + }, + value: LinkArg::Value(value.clone()), + ty: ValueType::Ref(None), + }; + let mut graph = FunctionGraph::new("test"); + let entry = graph.startblock; + let payload = graph.push_op_var(entry, OpKind::ConstInt(7), true).unwrap(); + let ob_type = graph + .push_op_var(entry, OpKind::ConstRefAddr(CLASS_ADDR), true) + .unwrap(); + let header = graph + .push_op_var( + entry, + OpKind::Call { + target: CallTarget::synthetic_transparent_ctor(header_owner), + args: vec![], + result_ty: ValueType::Ref(Some(header_owner.into())), + }, + true, + ) + .unwrap(); + graph.push_op_var( + entry, + field(&header, "ob_type", header_owner, &ob_type), + false, + ); + let stored = match w_class { + WClass::Unstored => None, + WClass::Instantiate(addr) => { + let arg = graph + .push_op_var(entry, OpKind::ConstRefAddr(*addr), true) + .unwrap(); + Some(call( + &mut graph, + entry, + &["pyre_object", "pyobject", "get_instantiate"], + vec![arg], + )) + } + WClass::ShadowStack => { + let base = graph.push_op_var(entry, OpKind::ConstInt(0), true).unwrap(); + Some(call( + &mut graph, + entry, + &["pyre_object", "gc_roots", "shadow_stack_get"], + vec![base], + )) + } + }; + if let Some(value) = stored { + graph.push_op_var( + entry, + field(&header, "w_class", header_owner, &value), + false, + ); + } + let agg = graph + .push_op_var( + entry, + OpKind::Call { + target: CallTarget::synthetic_transparent_ctor("W_IntObject"), + args: vec![], + result_ty: ValueType::Ref(Some("W_IntObject".into())), + }, + true, + ) + .unwrap(); + graph.push_op_var( + entry, + field(&agg, "ob_header", "W_IntObject", &header), + false, + ); + graph.push_op_var(entry, field(&agg, "intval", "W_IntObject", &payload), false); + let ret = call( + &mut graph, + entry, + &["pyre_object", "lltype", "malloc_typed"], + vec![agg], + ); + graph.set_return(entry, Some(ret)); + graph + } + + // The header layouts are keyed by their crate-stripped qualified path + // while the ctor carries the bare leaf, so every row also exercises + // `registered_layout`'s leaf fallback. + let one_word: &[&str] = &["ob_type"]; + let two_word: &[&str] = &["ob_type", "w_class"]; + let rows: [(&str, &str, Option<&[&str]>, WClass, usize); 6] = [ + ( + "a one-word header declaring no class word", + "TypeOnlyHeader", + Some(one_word), + WClass::Unstored, + 1, + ), + ( + "a two-word header storing its class word", + "PyObject", + Some(two_word), + WClass::Instantiate(CLASS_ADDR), + 1, + ), + ( + "a two-word header leaving its class word unstored", + "PyObject", + Some(two_word), + WClass::Unstored, + 0, + ), + ( + "a header whose layout is not registered at all", + "TypeOnlyHeader", + None, + WClass::Unstored, + 0, + ), + ( + "a one-word layout contradicted by a class-word store", + "TypeOnlyHeader", + Some(one_word), + WClass::ShadowStack, + 0, + ), + ( + "a one-word layout storing another type's class word", + "TypeOnlyHeader", + Some(one_word), + WClass::Instantiate(OTHER_CLASS_ADDR), + 0, + ), + ]; + for (label, header_owner, layout, w_class, expected) in rows { + let mut graph = cluster(header_owner, &w_class); + let entry = graph.startblock; + let mut attrs = std::collections::HashMap::from([( + "intobject::W_IntObject".to_string(), + vec![ + ("ob_header".to_string(), ValueType::Ref(None)), + ("intval".to_string(), ValueType::Int), + ], + )]); + if let Some(names) = layout { + attrs.insert( + format!("object::{header_owner}"), + names + .iter() + .map(|name| ((*name).to_string(), ValueType::Ref(None))) + .collect(), + ); + } + assert_eq!( + fuse_boxing_alloc(&mut graph, &attrs), + expected, + "{label}: wrong number of fused clusters" + ); + let ops = &graph.block(entry).operations; + let residual = ops.iter().any(|op| { + matches!( + &op.kind, + OpKind::Call { target: CallTarget::FunctionPath { segments }, .. } + if segments.last().map(String::as_str) == Some("malloc_typed") + ) + }); + assert_eq!( + residual, + expected == 0, + "{label}: malloc_typed residual must survive exactly when the cluster declines" + ); + if expected == 1 { + assert!( + ops.iter().any(|op| matches!( + &op.kind, + OpKind::NewWithVtable { owner, vtable } + if owner == "W_IntObject" && *vtable == CLASS_ADDR + )), + "{label}: the fused allocation must carry the resolved ob_type address" + ); + } + } + } + #[test] fn prune_dead_boxing_remnants_keeps_cast_used_as_live_store_base() { // The malloc-removal exemption (a store's base is not rooted) must be diff --git a/majit/majit-translate/src/translator/rtyper/cutover.rs b/majit/majit-translate/src/translator/rtyper/cutover.rs index b184dbb2e5f..9514c5bbb49 100644 --- a/majit/majit-translate/src/translator/rtyper/cutover.rs +++ b/majit/majit-translate/src/translator/rtyper/cutover.rs @@ -1409,289 +1409,347 @@ fn compare_real_against_legacy( /// /// PyPy `bookkeeper.py:108-127` propagates fixpoint failures uncaught; /// pyre's dual-gate Skip defers exactly the categories enumerated -/// above. Once every category is implemented, every match returns -/// `false`, the legacy walker fallback at +/// above. Once every category is implemented, every message returns +/// `None`, the legacy walker fallback at /// `codewriter.rs::dual_gate_type_state` becomes dead code, and the /// predicate retires entirely. -pub(crate) fn is_known_unported(msg: &str) -> bool { - msg.contains("not registered in PyreCallRegistry") - || msg.contains("translate_op: undefined operand") - || msg.contains("unimplemented operation") - || msg.contains("variable ") - && msg.contains(" used before definition") - // `normalize_unary_op_name: pyre UnaryOp` and - // `normalize_binop_name: pyre BinOp` are not Skip-classified: - // the `not` / `deref` / `same_as` / `invert` surfaces are - // desugared by the MIR front-end (rustc lowers `!`/`*` and the - // `&&`/`||` short-circuits into MIR branches/calls before - // lowering), and the bitwise `and` / `or` labels normalize to - // the flowspace `and_` / `or_` registrations. Synthetic - // graphs that inject unported ops (anchor tests in - // `cutover.rs::tests::anchor_unary_*_surfaces_*`) call - // `specialize_legacy_graph` directly and never reach - // `is_known_unported`, so the absence of these substring - // matches does not affect them. Any production reach surfaces - // as a dual-gate divergence panic — the parity-correct outcome. - // Field / method dispatch on a `SomeInstance(classdef=None)` - // — pyre's `Ref` ValueType currently lifts to a classdef-less - // SomeInstance, so `find_attribute` - // (`rclass.py:556+find_attribute_or_None`) cannot route the - // dispatch. `InstanceRepr::rtype_getattr` - // (`rclass.py`) routes through `getclsfield`, which - // surfaces the upstream-orthodox `MissingRTypeAttribute(attr)` - // when find_attribute returns None. The `"no method ... on - // Instance("` substring (`rmodel.rs` default - // `rtype_getattr` find_method failure path) is not classified - // here: every SomeInstance dispatch goes through the - // InstanceRepr override, so the default fn never fires for - // `Instance(...)`-shaped operands. The MissingRTypeAttribute - // entry stays until typed-Ref ClassDef projection lands and - // field/method dispatch starts succeeding. - || msg.contains("MissingRTypeAttribute") - // Variable's `.annotation` slot empty at `bindingrepr` - // lookup time — `ValueType::Unknown` has no - // annotation-stage shell and `valuetype_to_someshell` returns - // `None` for it (intentionally fail-loud for "annotation gap" - // so producers know which slot missed seeding, see - // `seed_variable` at `flowspace_adapter.rs`). Closing - // the gap means tightening the front-end / annotator - // producers so every slot has a non-`Unknown` annotation; the - // gate skips until then. The mergeinputargs-side flavour of - // this gap (raising subjects' `follow_raise_link` reaching an - // unannotated exceptblock seed) was resolved 2026-05-31 via - // `setbinding(Impossible)` pre-registration in - // `specialize_legacy_graph_with_registry_returning_value_to_var`; - // the remaining producer is the rtyper-side `bindingrepr` - // gap on synthesized `current_sp`-like graphs. - || msg.contains("KeyError: no binding for arg") - // `cast_ptr_to_int` reached the typer with a non-`Ptr` - // operand — the front-end could not lower a real pointer for - // the source of an `expr as i64` cast. The canonical hitter - // is `stack_check::current_sp` (`&probe as *const usize as - // usize`): taking the address of a stack local is a - // target-specific raw-SP read that `front::mir` lowers with - // the local's *value* (`Int(0)`) rather than its address, so - // `rtype_cast_ptr_to_int`'s late `InstanceRepr→PtrRepr` swap - // fallback finds `Signed` where it needs `Ptr(...)`. The - // legacy walker handles these graphs; skip until the - // address-of-local lowering lands a typed pointer operand. - || msg.contains("rtype_cast_ptr_to_int: operand concretetype must be Ptr") - // Unported per-annotation Repr families. `rmodel.rs` - // `rtyper_makerepr` fail-louds with this message shape for the - // SomeValue kinds whose upstream Repr port has not landed - // (rrange.py iterator reprs plus annotator/model.py SomeObject - // and SomeProperty cases; rlist.py ListRepr, rdict.py DictRepr, - // and rbytearray.py have since landed). Reached once a graph - // annotates such a value past the exc-edge and classdef walls; - // the legacy walker keeps handling these graphs until each Repr - // is ported. - || msg.contains("rtyper_makerepr — port") - // TODO(annotator-fixpoint-fail-loud) — STRICT-PARITY REGRESSION - // vs main / PyPy. `bookkeeper.py:108-127` propagates fixpoint - // exceptions uncaught and `annrpython.py:643` lets - // `AnnotatorError` reach the caller; absorbing the four - // patterns below is a deviation that hides real - // annotator/rtyper parity gaps as "known unported". Direct - // removal breaks `pyre-jit-trace` `build.rs` at every reachable - // hitter - // (`make_green_key`, `Frame::load_fast`, `PyFrame::locals_w_mut`, - // `::record_for_iter_guard`, - // `pyjitpl_step::Cannot find attribute`); production cannot - // compile until each underlying real-path gap is closed - // (classdef-less SomeInstance dispatch + `PyreCallRegistry:: - // ensure_session` coverage — every analyser body routes through - // per-touch `arg_at` rather than an eager-prefix concrete - // walk). Until each gap-hitter is - // ported, this Skip stays as documented divergence and the - // codewriter falls back to the legacy walker for production. - || msg.contains("compute_at_fixpoint failed") - || msg.contains("complete_pending_blocks failed") - || msg.contains("Cannot find attribute ") - || msg.contains("AnnotatorError:") - // `rtyper.py convertvar` — no conversion path between - // the two reprs. The production hitter is the generic-ADT - // payload attribute (`core.result.Result.Ok.__pos_0` etc.): - // pyre collapses every `Result` instantiation onto ONE - // classdef, so the attribute's merged annotation unions - // unrelated payload classes (unit-tuple placeholder `Adt`, - // `core.option.Option.None`, …) and `pairtype(InstanceRepr, - // InstanceRepr).convert_from_to` (rclass.py) - // correctly finds no common base. Upstream never faces this - // shape — RPython has no generics, so each class attribute - // carries a single annotated type. Skip until - // per-instantiation classdef specialization lands. - || msg.contains("don't know how to convert from") - // Annotation-stage flavour of the convertvar entry above - // (`annrpython.py mergeinputargs` → `UnionError`): two - // `SomeInstance`s with no common base meet at a block merge - // because pyre collapses every generic-ADT instantiation onto - // one classdef, so unrelated payload classes union at the phi. - // Upstream propagates the UnionError uncaught; the dual gate - // skips to the legacy walker until per-instantiation classdef - // specialization lands. - || msg.contains("cannot unify instances with no common base class") - // The union fallback marker — no arm handles this pair. Upstream - // RAISES for the pairs that reach here: `pair(SomeObject, SomeObject) - // .union()` raises (binaryop.py), `pair(SomePtr, SomeObject)` - // raises (llannotation.py:118-120). So a hit is a pyre PRODUCER - // divergence — a boxed `*mut PyObject` lifted as `SomePtr` where - // RPython carries `SomeInstance`, making a `SomeInstance ∪ SomePtr` - // phi RPython never constructs — not a missing union handler. Skip - // to the legacy walker until the pointer values lift as instances - // (typed-Ref ClassDef projection). - || msg.contains("no upstream pair(s1, s2).union() handler in current subset") - // `InstanceRepr.getfield` walking the `rbase` chain before the - // repr's deferred `setup()` ran (upstream drains pending - // setups via `call_all_setups`, rtyper.py, after every - // specialized block; pyre's per-subject dual-gate can reach a - // getfield on a freshly minted inner repr first). Also covers - // the `rbase missing — call setup() first` form: host-struct- - // seeded receivers (`*mut PyObject` params with a registry - // classdef) reach class-field reads through reprs minted - // outside the `rtyper.getrepr`/`setup()` queue. Skip until - // the setup-ordering port lands. - || msg.contains("rbase missing") - // `rpbc` calltable row lookup miss at rtype time — the - // method-PBC came from the struct-root class-dict seeding - // (`seed_struct_root_method_members`), whose `simple_call` - // sites do not yet register call shapes into the CallFamily - // the way `bookkeeper.pbc_call` does for ordinary descs - // (pbc_call → getcallfamily row, bookkeeper.py). - // Skip until the seeded-method family registration lands. - || msg.contains("calltable row not found in CallFamily") - // A non-instance constant (e.g. a string literal) reaching - // `InstanceRepr.convert_const` — the receiver field was typed - // by the untyped FORCE_ATTRIBUTES shell (classdef-less - // SomeInstance) because no registry-row projection covered - // it, so a String-valued field rtypes as an instance (hitter: - // PyError.msg via the type_error raise stubs). Skip until - // the typed-Ref field projection covers the remaining rows. - || msg.contains("InstanceRepr.convert_const: expected HostObject or None") - // `rmodel.py rtype_is_` — an `is` (pointer-identity) - // comparison where one side is not a pointer repr. The - // production hitter is `py_type_check`'s `(*obj).ob_type == - // tp` chain when `tp` flowed from a `&STATIC` host address: - // `HostStaticAddrs` annotates the static's address as a - // constant `SomeInteger`, so the comparison pairs - // `InstanceRepr` with `IntegerRepr`. Upstream never faces - // this — a prebuilt instance constant stays `SomeInstance`. - // Skip until host static addresses annotate as typed - // instance pointers. - || msg.contains("is of instances of the non-pointers") - // `dyn Trait` dispatch still enters the real-rtyper flowspace - // adapter as pyre's pre-rtyper `CallTarget::Indirect` shape in - // some registry-prefill paths. The production codewriter's - // jtransform path already runs `rpbc::lower_indirect_calls` - // before consuming these graphs; the real-rtyper cutover path - // cannot yet express the matching rclass/rpbc rewrite before - // adapter input without leaking post-rtyper `VtableMethodPtr` / - // `IndirectCall` ops into flowspace. Treat this as a - // known-unported real-path gap so the dual gate falls back to - // the legacy type walker instead of panicking during registry - // population. - || (msg.contains("Call with CallTarget::Indirect") && msg.contains("rclass")) - // `annrpython.py mergeinputargs` — an inputarg Variable - // has no annotation. Happens when cross-block locals - // threading misses a name in the predecessor link; the - // annotator cannot merge `None` annotations. - || msg.contains("inputarg lacks annotation") - // `BrokenReprTyperError` (`rmodel.py`, ported at - // `rmodel.rs`): a Repr whose `setup()` failed earlier - // is re-requested and refuses to half-initialize. In the - // per-graph census a Skipped subject can leave a shared - // session `ClassRepr` in the BROKEN state; the next graph - // touching the same repr then surfaces this message. It is a - // secondary echo of the root failure (itself Skip-classified - // above), not an independent cause — absorb it so one broken - // repr does not fatal every later graph in the session. - || msg.contains("cannot setup already failed Repr") - // `AnnotatorError: immutablevalue(HostObject` is not - // Skip-classified for `SyntheticTransparentCtor` (Ok/Err/Some/ - // None). The adapter emits `HostObject::new_class(name, [])` - // (`flowspace_adapter.rs`'s `SyntheticTransparentCtor` arm), - // routing through the existing `is_class()` arm in - // [`crate::annotator::bookkeeper::Bookkeeper::immutablevalue_hostobject`] - // (`bookkeeper.py:315-316` parity). No production emit-site of - // `HostObject::new_opaque` remains in `front/`/`translator/rtyper/`, - // so any future `immutablevalue(HostObject` failure is a real - // parity bug — let it surface as a dual-gate divergence panic. - // TODO(post-rtyper-jtransform-variant-leak): retire this Skip - // entry per upstream parity — `jit/codewriter/jtransform.py` - // raises straight through on unexpected opnames. The most - // frequent reach is `OpKind::Abort` emitted by the surface-Rust - // DSL front-end's `lower_expr` `stop_unsupported` / - // `continue_with_unknown` helpers - // when the surface DSL hits an unsupported expression — pyre - // source like `execute_opcode_step` / `eval_loop_jit` carry such - // placeholders. Retiring this entry needs each Abort - // emit-site at the front-end retired (closure - // body, complex match arms, unsupported literals), then - // every other post-rtyper variant (IndirectCall / ResidualCall - // / Vable* / JitMergePoint / LoopHeader / InlineCall / - // RecursiveCall) emitted from `rpbc.rs` / `rclass.rs` ahead - // of the rtyper. Until then the Skip absorbs the placeholder - // leakage; without it `tests::test_codegen_output` / - // `tests::test_recognition_report` and the analyse-pyre-source - // pipeline panic at the first reachable Abort. - || msg.contains("post-rtyper jtransform variant") - // Cross-block body `Input` whose `name` was not threaded - // through `Link.args` / target `inputargs` by the predecessor. - // RPython flowspace has no body-`Input` op — every cross-block - // local reference goes via `flowcontext.py LOAD_FAST` - // (which writes into `self.locals_w`) and the target block's - // pre-allocated `inputargs[]`. Pyre's body-`Input` emission - // (the `OpKind::Input` ops `front::mir` pushes into each block) - // is itself a TODO; when - // cross-block locals threading misses a shape, the adapter - // fails loud with this message instead of silently - // fabricating a fresh Variable (which would hide an - // SSA / alias-shape divergence from PyPy's flowspace). Skip - // until either cross-block locals threading covers every - // shape, or the front-end's - // body-`Input` emission is replaced by a Link.args / inputargs - // threading pass that mirrors RPython. - || msg.contains("adapter cross-block body Input") - // `SomeValue::noneify()` reached a `SomePtr` operand — a block - // merge unioned a `_ptr` with `NoneType`. The raise itself is - // parity-correct: RPython's default `noneify` raises `UnionError` - // (model.py:121-122) and `SomePtr` defines no override, while - // `pair(SomePtr, SomeObject).union` raises too - // (llannotation.py:119-120) — so this Skip catches a *correct* - // raise, it does not paper over a wrong annotation rule. The - // only divergence is upstream of the merge: RPython spells a null - // pointer as `lltype.nullptr(T)`, which annotates as a - // (null-valued) `SomePtr`, so `pair(SomePtr, SomePtr).union` - // (llannotation.py:94-98) keeps it in the pointer lattice and - // `noneify` is never reached. Pyre's `front::mir` still lowers - // some Rust null/`Option<*T>` shapes to a `SomeNone` rather than - // a typed null `SomePtr` (the same null-pointer-typing gap - // tracked by the `LLAddress(Null)` exceptblock work), so the - // merge surfaces `_ptr ∪ NoneType`. CONVERGENCE: lower a typed - // null pointer at the `front::mir` producer; removing this Skip - // without that fix only hard-breaks on the parity-correct raise. - // Until then the legacy walker keeps handling the graphs. - || msg.contains("noneify() not supported") - // `flowspace_adapter::translate_op` rejected an UNFUSED - // `lltype::malloc_typed` `FunctionPath` (the finding's "option (b)" - // fail-closed guard). `fuse_boxing_alloc` rewrites only the three - // numeric boxing structs to `NewWithVtable`; every other mallocable - // GC struct's `malloc_typed` survives with no ported - // `jtransform.rewrite_op_malloc` general lowering, so the adapter - // fails loud rather than matching a wrong residual `simple_call`. - // Skip-classify so the census falls back to the legacy walker until - // the general malloc->new path lands (boxing-lowering epic #134/#142). - || msg.contains("survived fuse_boxing_alloc unfused") - // `OrderedDictRepr::require_direct_compare_key` fail-closed gate - // (rordereddict.rs) — `build_ll_dict_lookup_helper_graph`'s - // `direct_compare_op` hardcodes `ptr_eq` for every `Ptr(_)` key - // lltype, which is wrong for keys whose repr defines a real - // structural equality (`get_ll_eq_function` returning `Some`, e.g. - // `StringRepr::ll_streq`). int/bool/char/unichar keys return `None` - // and proceed; every other key repr (str, instance) hits this - // TyperError instead of silently miscompiling dict getitem/contains - // to pointer-identity comparison. Skip-classify until the - // call-based keyeq branch is ported (#140 DictRepr epic). - || msg.contains("dict key eq function not wired") +/// +/// The returned tag identifies the matching fallback condition. Keeping the +/// category and the boolean decision in one function prevents diagnostic code +/// from maintaining a second, drifting copy of the substring table. Lowering +/// only tests whether the result is `Some`. +pub(crate) fn unported_category(msg: &str) -> Option<&'static str> { + if msg.contains("not registered in PyreCallRegistry") { + return Some("call-registry-miss"); + } + if msg.contains("translate_op: undefined operand") { + return Some("undefined-operand"); + } + if msg.contains("unimplemented operation") { + return Some("unimplemented-operation"); + } + if msg.contains("variable ") && msg.contains(" used before definition") { + return Some("used-before-definition"); + } + // `normalize_unary_op_name: pyre UnaryOp` and + // `normalize_binop_name: pyre BinOp` are not Skip-classified: + // the `not` / `deref` / `same_as` / `invert` surfaces are + // desugared by the MIR front-end (rustc lowers `!`/`*` and the + // `&&`/`||` short-circuits into MIR branches/calls before + // lowering), and the bitwise `and` / `or` labels normalize to + // the flowspace `and_` / `or_` registrations. Synthetic + // graphs that inject unported ops (anchor tests in + // `cutover.rs::tests::anchor_unary_*_surfaces_*`) call + // `specialize_legacy_graph` directly and never reach + // `is_known_unported`, so the absence of these substring + // matches does not affect them. Any production reach surfaces + // as a dual-gate divergence panic — the parity-correct outcome. + // Field / method dispatch on a `SomeInstance(classdef=None)` + // — pyre's `Ref` ValueType currently lifts to a classdef-less + // SomeInstance, so `find_attribute` + // (`rclass.py:556+find_attribute_or_None`) cannot route the + // dispatch. `InstanceRepr::rtype_getattr` + // (`rclass.py`) routes through `getclsfield`, which + // surfaces the upstream-orthodox `MissingRTypeAttribute(attr)` + // when find_attribute returns None. The `"no method ... on + // Instance("` substring (`rmodel.rs:828` default + // `rtype_getattr` find_method failure path) is not classified + // here: every SomeInstance dispatch goes through the + // InstanceRepr override, so the default fn never fires for + // `Instance(...)`-shaped operands. The MissingRTypeAttribute + // entry stays until typed-Ref ClassDef projection lands and + // field/method dispatch starts succeeding. + if msg.contains("MissingRTypeAttribute") { + return Some("missing-rtype-attribute"); + } + // Variable's `.annotation` slot empty at `bindingrepr` + // lookup time — `ValueType::Unknown` has no + // annotation-stage shell and `valuetype_to_someshell` returns + // `None` for it (intentionally fail-loud for "annotation gap" + // so producers know which slot missed seeding, see + // `seed_variable` at `flowspace_adapter.rs:96-115`). Closing + // the gap means tightening the front-end / annotator + // producers so every slot has a non-`Unknown` annotation; the + // gate skips until then. The mergeinputargs-side flavour of + // this gap (raising subjects' `follow_raise_link` reaching an + // unannotated exceptblock seed) was resolved 2026-05-31 via + // `setbinding(Impossible)` pre-registration in + // `specialize_legacy_graph_with_registry_returning_value_to_var`; + // the remaining producer is the rtyper-side `bindingrepr` + // gap on synthesized `current_sp`-like graphs. + if msg.contains("KeyError: no binding for arg") { + return Some("bindingrepr-annotation-gap"); + } + // `cast_ptr_to_int` reached the typer with a non-`Ptr` + // operand — the front-end could not lower a real pointer for + // the source of an `expr as i64` cast. The canonical hitter + // is `stack_check::current_sp` (`&probe as *const usize as + // usize`): taking the address of a stack local is a + // target-specific raw-SP read that `front::mir` lowers with + // the local's *value* (`Int(0)`) rather than its address, so + // `rtype_cast_ptr_to_int`'s late `InstanceRepr→PtrRepr` swap + // fallback finds `Signed` where it needs `Ptr(...)`. The + // legacy walker handles these graphs; skip until the + // address-of-local lowering lands a typed pointer operand. + if msg.contains("rtype_cast_ptr_to_int: operand concretetype must be Ptr") { + return Some("cast-ptr-to-int-non-ptr"); + } + // Unported per-annotation Repr families. `rmodel.rs` + // `rtyper_makerepr` fail-louds with this message shape for the + // SomeValue kinds whose upstream Repr port has not landed + // (rrange.py iterator reprs plus annotator/model.py SomeObject + // and SomeProperty cases; rlist.py ListRepr, rdict.py DictRepr, + // and rbytearray.py have since landed). Reached once a graph + // annotates such a value past the exc-edge and classdef walls; + // the legacy walker keeps handling these graphs until each Repr + // is ported. + if msg.contains("rtyper_makerepr — port") { + return Some("unported-repr-family"); + } + // TODO(annotator-fixpoint-fail-loud) — STRICT-PARITY REGRESSION + // vs main / PyPy. `bookkeeper.py:108-127` propagates fixpoint + // exceptions uncaught and `annrpython.py:643` lets + // `AnnotatorError` reach the caller; absorbing the four + // patterns below is a deviation that hides real + // annotator/rtyper parity gaps as "known unported". Direct + // removal breaks `pyre-jit-trace` `build.rs` at every reachable + // hitter + // (`make_green_key`, `Frame::load_fast`, `PyFrame::locals_w_mut`, + // `::record_for_iter_guard`, + // `pyjitpl_step::Cannot find attribute`); production cannot + // compile until each underlying real-path gap is closed + // (classdef-less SomeInstance dispatch + `PyreCallRegistry:: + // ensure_session` coverage — every analyser body routes through + // per-touch `arg_at` rather than an eager-prefix concrete + // walk). Until each gap-hitter is + // ported, this Skip stays as documented divergence and the + // codewriter falls back to the legacy walker for production. + if msg.contains("compute_at_fixpoint failed") { + return Some("annotator-fixpoint-failed"); + } + if msg.contains("complete_pending_blocks failed") { + return Some("annotator-pending-blocks-failed"); + } + if msg.contains("Cannot find attribute ") { + return Some("cannot-find-attribute"); + } + if msg.contains("AnnotatorError:") { + return Some("annotator-error"); + } + // `rtyper.py convertvar` — no conversion path between + // the two reprs. The production hitter is the generic-ADT + // payload attribute (`core.result.Result.Ok.__pos_0` etc.): + // pyre collapses every `Result` instantiation onto ONE + // classdef, so the attribute's merged annotation unions + // unrelated payload classes (unit-tuple placeholder `Adt`, + // `core.option.Option.None`, …) and `pairtype(InstanceRepr, + // InstanceRepr).convert_from_to` (rclass.py) + // correctly finds no common base. Upstream never faces this + // shape — RPython has no generics, so each class attribute + // carries a single annotated type. Skip until + // per-instantiation classdef specialization lands. + if msg.contains("don't know how to convert from") { + return Some("convertvar-no-path"); + } + // Annotation-stage flavour of the convertvar entry above + // (`annrpython.py mergeinputargs` → `UnionError`): two + // `SomeInstance`s with no common base meet at a block merge + // because pyre collapses every generic-ADT instantiation onto + // one classdef, so unrelated payload classes union at the phi. + // Upstream propagates the UnionError uncaught; the dual gate + // skips to the legacy walker until per-instantiation classdef + // specialization lands. + if msg.contains("cannot unify instances with no common base class") { + return Some("union-no-common-base"); + } + // The union fallback marker — no arm handles this pair. Upstream + // RAISES for the pairs that reach here: `pair(SomeObject, SomeObject) + // .union()` raises (binaryop.py), `pair(SomePtr, SomeObject)` + // raises (llannotation.py:118-120). So a hit is a pyre PRODUCER + // divergence — a boxed `*mut PyObject` lifted as `SomePtr` where + // RPython carries `SomeInstance`, making a `SomeInstance ∪ SomePtr` + // phi RPython never constructs — not a missing union handler. Skip + // to the legacy walker until the pointer values lift as instances + // (typed-Ref ClassDef projection). + if msg.contains("no upstream pair(s1, s2).union() handler in current subset") { + return Some("union-no-handler"); + } + // `InstanceRepr.getfield` walking the `rbase` chain before the + // repr's deferred `setup()` ran (upstream drains pending + // setups via `call_all_setups`, rtyper.py, after every + // specialized block; pyre's per-subject dual-gate can reach a + // getfield on a freshly minted inner repr first). Also covers + // the `rbase missing — call setup() first` form: host-struct- + // seeded receivers (`*mut PyObject` params with a registry + // classdef) reach class-field reads through reprs minted + // outside the `rtyper.getrepr`/`setup()` queue. Skip until + // the setup-ordering port lands. + if msg.contains("rbase missing") { + return Some("repr-setup-ordering"); + } + // `rpbc` calltable row lookup miss at rtype time — the + // method-PBC came from the struct-root class-dict seeding + // (`seed_struct_root_method_members`), whose `simple_call` + // sites do not yet register call shapes into the CallFamily + // the way `bookkeeper.pbc_call` does for ordinary descs + // (pbc_call → getcallfamily row, bookkeeper.py). + // Skip until the seeded-method family registration lands. + if msg.contains("calltable row not found in CallFamily") { + return Some("calltable-row-missing"); + } + // A non-instance constant (e.g. a string literal) reaching + // `InstanceRepr.convert_const` — the receiver field was typed + // by the untyped FORCE_ATTRIBUTES shell (classdef-less + // SomeInstance) because no registry-row projection covered + // it, so a String-valued field rtypes as an instance (hitter: + // PyError.msg via the type_error raise stubs). Skip until + // the typed-Ref field projection covers the remaining rows. + if msg.contains("InstanceRepr.convert_const: expected HostObject or None") { + return Some("convert-const-non-instance"); + } + // `rmodel.py rtype_is_` — an `is` (pointer-identity) + // comparison where one side is not a pointer repr. The + // production hitter is `py_type_check`'s `(*obj).ob_type == + // tp` chain when `tp` flowed from a `&STATIC` host address: + // `HostStaticAddrs` annotates the static's address as a + // constant `SomeInteger`, so the comparison pairs + // `InstanceRepr` with `IntegerRepr`. Upstream never faces + // this — a prebuilt instance constant stays `SomeInstance`. + // Skip until host static addresses annotate as typed + // instance pointers. + if msg.contains("is of instances of the non-pointers") { + return Some("rtype-is-non-pointer"); + } + // `dyn Trait` dispatch still enters the real-rtyper flowspace + // adapter as pyre's pre-rtyper `CallTarget::Indirect` shape in + // some registry-prefill paths. The production codewriter's + // jtransform path already runs `rpbc::lower_indirect_calls` + // before consuming these graphs; the real-rtyper cutover path + // cannot yet express the matching rclass/rpbc rewrite before + // adapter input without leaking post-rtyper `VtableMethodPtr` / + // `IndirectCall` ops into flowspace. Treat this as a + // known-unported real-path gap so the dual gate falls back to + // the legacy type walker instead of panicking during registry + // population. + if msg.contains("Call with CallTarget::Indirect") && msg.contains("rclass") { + return Some("indirect-call-pre-rtyper"); + } + // `annrpython.py mergeinputargs` — an inputarg Variable + // has no annotation. Happens when cross-block locals + // threading misses a name in the predecessor link; the + // annotator cannot merge `None` annotations. + if msg.contains("inputarg lacks annotation") { + return Some("inputarg-lacks-annotation"); + } + // `BrokenReprTyperError` (`rmodel.py`, ported at + // `rmodel.rs:449-456`): a Repr whose `setup()` failed earlier + // is re-requested and refuses to half-initialize. In the + // per-graph census a Skipped subject can leave a shared + // session `ClassRepr` in the BROKEN state; the next graph + // touching the same repr then surfaces this message. It is a + // secondary echo of the root failure (itself Skip-classified + // above), not an independent cause — absorb it so one broken + // repr does not fatal every later graph in the session. + if msg.contains("cannot setup already failed Repr") { + return Some("broken-repr-echo"); + } + // `AnnotatorError: immutablevalue(HostObject` is not + // Skip-classified for `SyntheticTransparentCtor` (Ok/Err/Some/ + // None). The adapter emits `HostObject::new_class(name, [])` + // (`flowspace_adapter.rs:821 SyntheticTransparentCtor` arm), + // routing through the existing `is_class()` arm in + // [`crate::annotator::bookkeeper::Bookkeeper::immutablevalue_hostobject`] + // (`bookkeeper.py:315-316` parity). No production emit-site of + // `HostObject::new_opaque` remains in `front/`/`translator/rtyper/`, + // so any future `immutablevalue(HostObject` failure is a real + // parity bug — let it surface as a dual-gate divergence panic. + // TODO(post-rtyper-jtransform-variant-leak): retire this Skip + // entry per upstream parity — `jit/codewriter/jtransform.py` + // raises straight through on unexpected opnames. The most + // frequent reach is `OpKind::Abort` emitted by the surface-Rust + // DSL front-end's `lower_expr` `stop_unsupported` / + // `continue_with_unknown` helpers + // when the surface DSL hits an unsupported expression — pyre + // source like `execute_opcode_step` / `eval_loop_jit` carry such + // placeholders. Retiring this entry needs each Abort + // emit-site at the front-end retired (closure + // body, complex match arms, unsupported literals), then + // every other post-rtyper variant (IndirectCall / ResidualCall + // / Vable* / JitMergePoint / LoopHeader / InlineCall / + // RecursiveCall) emitted from `rpbc.rs` / `rclass.rs` ahead + // of the rtyper. Until then the Skip absorbs the placeholder + // leakage; without it `tests::test_codegen_output` / + // `tests::test_recognition_report` and the analyse-pyre-source + // pipeline panic at the first reachable Abort. + if msg.contains("post-rtyper jtransform variant") { + return Some("post-rtyper-variant-leak"); + } + // Cross-block body `Input` whose `name` was not threaded + // through `Link.args` / target `inputargs` by the predecessor. + // RPython flowspace has no body-`Input` op — every cross-block + // local reference goes via `flowcontext.py LOAD_FAST` + // (which writes into `self.locals_w`) and the target block's + // pre-allocated `inputargs[]`. Pyre's body-`Input` emission + // (the `OpKind::Input` ops `front::mir` pushes into each block) + // is itself a TODO; when + // cross-block locals threading misses a shape, the adapter + // fails loud with this message instead of silently + // fabricating a fresh Variable (which would hide an + // SSA / alias-shape divergence from PyPy's flowspace). Skip + // until either cross-block locals threading covers every + // shape, or the front-end's + // body-`Input` emission is replaced by a Link.args / inputargs + // threading pass that mirrors RPython. + if msg.contains("adapter cross-block body Input") { + return Some("cross-block-body-input"); + } + // `SomeValue::noneify()` reached a `SomePtr` operand — a block + // merge unioned a `_ptr` with `NoneType`. The raise itself is + // parity-correct: RPython's default `noneify` raises `UnionError` + // (model.py:121-122) and `SomePtr` defines no override, while + // `pair(SomePtr, SomeObject).union` raises too + // (llannotation.py:119-120) — so this Skip catches a *correct* + // raise, it does not paper over a wrong annotation rule. The + // only divergence is upstream of the merge: RPython spells a null + // pointer as `lltype.nullptr(T)`, which annotates as a + // (null-valued) `SomePtr`, so `pair(SomePtr, SomePtr).union` + // (llannotation.py:94-98) keeps it in the pointer lattice and + // `noneify` is never reached. Pyre's `front::mir` still lowers + // some Rust null/`Option<*T>` shapes to a `SomeNone` rather than + // a typed null `SomePtr` (the same null-pointer-typing gap + // tracked by the `LLAddress(Null)` exceptblock work), so the + // merge surfaces `_ptr ∪ NoneType`. CONVERGENCE: lower a typed + // null pointer at the `front::mir` producer; removing this Skip + // without that fix only hard-breaks on the parity-correct raise. + // Until then the legacy walker keeps handling the graphs. + if msg.contains("noneify() not supported") { + return Some("noneify-on-ptr"); + } + // `flowspace_adapter::translate_op` rejected an UNFUSED + // `lltype::malloc_typed` `FunctionPath` (the finding's "option (b)" + // fail-closed guard). `fuse_boxing_alloc` rewrites only the three + // numeric boxing structs to `NewWithVtable`; every other mallocable + // GC struct's `malloc_typed` survives with no ported + // `jtransform.rewrite_op_malloc` general lowering, so the adapter + // fails loud rather than matching a wrong residual `simple_call`. + // Skip-classify so the census falls back to the legacy walker until + // the general malloc->new path lands (boxing-lowering epic #134/#142). + if msg.contains("survived fuse_boxing_alloc unfused") { + return Some("malloc-typed-unfused"); + } + // `OrderedDictRepr::require_direct_compare_key` fail-closed gate + // (rordereddict.rs) — `build_ll_dict_lookup_helper_graph`'s + // `direct_compare_op` hardcodes `ptr_eq` for every `Ptr(_)` key + // lltype, which is wrong for keys whose repr defines a real + // structural equality (`get_ll_eq_function` returning `Some`, e.g. + // `StringRepr::ll_streq`). int/bool/char/unichar keys return `None` + // and proceed; every other key repr (str, instance) hits this + // TyperError instead of silently miscompiling dict getitem/contains + // to pointer-identity comparison. Skip-classify until the + // call-based keyeq branch is ported (#140 DictRepr epic). + if msg.contains("dict key eq function not wired") { + return Some("dict-key-eq-missing"); + } // There is no `normalize_unary_op_name: pyre UnaryOp` Skip entry: // the 13 typed numeric / ptr / Unsigned casts route through // `simple_call(, v)` — reaching @@ -1703,8 +1761,16 @@ pub(crate) fn is_known_unported(msg: &str) -> bool { // accepts `same_as` straight through; any residual fail-loud // surfaces as a dual-gate divergence panic — the parity-correct // outcome. + None } +/// Whether the dual gate should Skip this failure to the legacy walker. +/// +/// The predicate is [`unported_category`] with its answer erased, so there is +/// one list of fallback conditions. +pub(crate) fn is_known_unported(msg: &str) -> bool { + unported_category(msg).is_some() +} /// Populate a `PyreCallRegistry` from a /// `HashMap` (the shape pyre's /// `CallControl::function_graphs()` returns). @@ -3979,10 +4045,12 @@ mod tests { let msg = "translate_op: Call with CallTarget::Indirect at result=Some(v4) \ must be lowered to VtableMethodPtr + IndirectCall by rclass.rs before \ reaching the flowspace adapter"; - assert!( - is_known_unported(msg), - "registry population must skip/fallback on the current indirect-call cutover gap" + assert_eq!( + unported_category(msg), + Some("indirect-call-pre-rtyper"), + "the indirect-call gap keeps its stable fallback category" ); + assert!(is_known_unported(msg)); } #[test] @@ -3992,10 +4060,19 @@ mod tests { // `noneify` raises, `SomePtr` has no override) the dual gate // defers to legacy until `front::mir` lowers a typed null pointer. let msg = "RPython noneify() not supported for this annotation"; - assert!( - is_known_unported(msg), - "noneify-on-ptr merge must skip/fallback on the typed-null-pointer-lowering gap" + assert_eq!( + unported_category(msg), + Some("noneify-on-ptr"), + "the typed-null-pointer gap keeps its stable fallback category" ); + assert!(is_known_unported(msg)); + } + + #[test] + fn unknown_rtyper_failure_is_not_skip_classified() { + let msg = "unexpected rtyper invariant failure"; + assert_eq!(unported_category(msg), None); + assert!(!is_known_unported(msg)); } #[test] diff --git a/majit/majit-translate/tests/test_mir_frontend.rs b/majit/majit-translate/tests/test_mir_frontend.rs index a2af112d56a..0868b1532e3 100644 --- a/majit/majit-translate/tests/test_mir_frontend.rs +++ b/majit/majit-translate/tests/test_mir_frontend.rs @@ -828,3 +828,363 @@ fn option_question_mark_lifts_to_direct_option_switch() { ); assert_eq!(none_ctor, 1, "the None arm builds the normal None return"); } + +/// A field read through a raw object pointer retains the pointee's declared +/// type. The frontend represents the narrowing explicitly so descriptor +/// lookup does not receive a classless instance. +#[test] +fn header_read_narrows_to_a_typed_field_read() { + use majit_translate::model::{CallTarget, OpKind}; + let llbc = load_corpus(); + let graph = lower_function(llbc, "w_object_type").expect("lowering"); + assert_eq!(graph.name, "charon_corpus::w_object_type"); + + let mut narrows = 0usize; + let mut typed_header_reads = 0usize; + let mut untyped_field_reads = 0usize; + for b in &graph.blocks { + for op in &b.operations { + match &op.kind { + OpKind::Call { + target: CallTarget::FunctionPath { segments }, + .. + } if segments.as_slice() + == [ + "__pyre_cast_instance".to_string(), + "ObjectHeader".to_string(), + ] => + { + narrows += 1 + } + OpKind::FieldRead { field, .. } if field.name == "ob_type" => { + if field.owner_root.as_deref() == Some("ObjectHeader") + && field.owner_id.is_some() + { + typed_header_reads += 1; + } else { + untyped_field_reads += 1; + } + } + _ => {} + } + } + } + assert_eq!(narrows, 1, "the deref base is narrowed exactly once"); + assert_eq!(typed_header_reads, 1, "ob_type reads as a typed FieldRead"); + assert_eq!( + untyped_field_reads, 0, + "no classdef-less header read survives the narrow", + ); +} + +/// A boxing allocation becomes `NewWithVtable` only after its class-static +/// address is known. Exercise the fusion directly so the unresolved and +/// resolved cases differ by that input alone. +#[test] +fn boxing_cluster_fuses_once_the_class_address_resolves() { + use majit_translate::model::{CallTarget, OpKind, ValueType}; + + const CLASS_ADDR: i64 = 0x00C0_FFEE; + let attrs = std::collections::HashMap::from([( + "W_IntObject".to_string(), + vec![ + ("ob_header".to_string(), ValueType::Ref(None)), + ("intval".to_string(), ValueType::Int), + ], + )]); + + let llbc = load_corpus(); + + // Without a resolvable class address the cluster is left alone. + let mut graph = lower_function(llbc, "w_new_int").expect("lowering"); + assert_eq!( + majit_translate::model::fuse_boxing_alloc(&mut graph, &attrs), + 0, + "an unresolvable class-static address declines the fuse, silently", + ); + + // Stand in for the driver-supplied static address. + let mut graph = lower_function(llbc, "w_new_int").expect("lowering"); + let mut substituted = 0usize; + for b in &mut graph.blocks { + for op in &mut b.operations { + let is_class_static = matches!( + &op.kind, + OpKind::Call { + target: CallTarget::FunctionPath { segments }, + .. + } if segments.last().map(String::as_str) == Some("INT_CLASS") + ); + if is_class_static { + op.kind = OpKind::ConstRefAddr(CLASS_ADDR); + substituted += 1; + } + } + } + assert_eq!( + substituted, 2, + "ob_type and w_class each read the class static", + ); + + assert_eq!( + majit_translate::model::fuse_boxing_alloc(&mut graph, &attrs), + 1, + "the cluster fuses once the class address is a constant", + ); + + let mut fused = Vec::new(); + let mut payload_stores = 0usize; + let mut residual_mallocs = 0usize; + for b in &graph.blocks { + for op in &b.operations { + match &op.kind { + OpKind::NewWithVtable { owner, vtable } => fused.push((owner.clone(), *vtable)), + OpKind::FieldWrite { field, .. } if field.name == "intval" => payload_stores += 1, + OpKind::Call { + target: CallTarget::FunctionPath { segments }, + .. + } if segments.last().map(String::as_str) == Some("malloc_typed") => { + residual_mallocs += 1 + } + _ => {} + } + } + } + assert_eq!( + fused, + vec![("W_IntObject".to_string(), CLASS_ADDR)], + "one NewWithVtable carrying the real class pointer", + ); + // Two: the re-emitted store after the `NewWithVtable`, plus the original + // aggregate store, which is dead but not yet swept — `fuse_boxing_alloc` + // leaves that to the `remove_dead_aggregates` pass in + // `simplify_lowered_graph`. + assert_eq!(payload_stores, 2, "the intval payload store is re-emitted"); + assert_eq!( + residual_mallocs, 0, + "the malloc_typed call is consumed, not left residual", + ); +} + +/// The production lowering receives class-static addresses through +/// `HostStaticAddrs`. It must both fuse the allocation and preserve the +/// static's declared `ClassObject` root for pointer-identity comparisons. +#[test] +fn boxing_cluster_fuses_from_the_host_supplied_class_address() { + use majit_translate::front::mir::lower_fun_decl_with_static_addrs; + use majit_translate::model::{CallTarget, OpKind, ValueType}; + + const CLASS_ADDR: i64 = 0x00C0_FFEE; + let llbc = load_corpus(); + let static_addrs = majit_translate::HostStaticAddrs { + pytypes: &[("INT_CLASS", CLASS_ADDR)], + ..Default::default() + }; + + let fd = llbc.local_fn("w_new_int").expect("w_new_int in corpus"); + let graph = lower_fun_decl_with_static_addrs(llbc, fd, static_addrs).expect("lowering"); + + let mut fused = Vec::new(); + let mut payload_stores = 0usize; + let mut residual_mallocs = 0usize; + let mut residual_class_reads = 0usize; + for b in &graph.blocks { + for op in &b.operations { + match &op.kind { + OpKind::NewWithVtable { owner, vtable } => fused.push((owner.clone(), *vtable)), + OpKind::FieldWrite { field, .. } if field.name == "intval" => payload_stores += 1, + OpKind::Call { + target: CallTarget::FunctionPath { segments }, + .. + } => match segments.last().map(String::as_str) { + Some("malloc_typed") => residual_mallocs += 1, + Some("INT_CLASS") => residual_class_reads += 1, + _ => {} + }, + _ => {} + } + } + } + assert_eq!( + fused, + vec![("W_IntObject".to_string(), CLASS_ADDR)], + "the real lowering fuses to one NewWithVtable carrying the class pointer", + ); + assert_eq!( + residual_mallocs, 0, + "no residual lltype::malloc_typed survives", + ); + assert_eq!( + residual_class_reads, 0, + "the class-static read resolved to the host address, not a residual call", + ); + // One, not the two the hand-substituted sibling sees: the whole-graph + // lowering runs `remove_dead_aggregates` after the fuse, so the + // orphaned aggregate store is already swept here. + assert_eq!(payload_stores, 1, "the intval payload store is re-emitted"); + + // `w_number_add` keeps the class-static narrowing live after lowering. + // Collect every narrowing so an incorrectly stamped root is reported as + // its own entry rather than disappearing from an expected-root search. + let add = llbc + .local_fn("w_number_add") + .expect("w_number_add in corpus"); + let add_graph = lower_fun_decl_with_static_addrs(llbc, add, static_addrs).expect("lowering"); + let mut narrow_roots = std::collections::BTreeMap::new(); + let mut class_addr_narrowed = 0usize; + for b in &add_graph.blocks { + for op in &b.operations { + let OpKind::Call { + target: CallTarget::FunctionPath { segments }, + args, + result_ty, + } = &op.kind + else { + continue; + }; + if segments.first().map(String::as_str) != Some("__pyre_cast_instance") { + continue; + } + let root = segments.get(1).cloned().unwrap_or_default(); + *narrow_roots.entry(root.clone()).or_insert(0usize) += 1; + assert_eq!( + result_ty, + &ValueType::Ref(Some(root.clone())), + "a narrow's result type is its own root", + ); + // The narrow whose operand is the host-supplied class address + // is the one this test is about. + let narrows_class_addr = add_graph + .blocks + .iter() + .flat_map(|b| &b.operations) + .any(|p| { + p.result.as_ref() == args.first() + && matches!(p.kind, OpKind::ConstRefAddr(a) if a == CLASS_ADDR) + }); + if narrows_class_addr { + class_addr_narrowed += 1; + assert_eq!( + root, "ClassObject", + "the class-static address narrows to the corpus's own class root", + ); + } + } + } + assert_eq!( + class_addr_narrowed, 1, + "the host-supplied class address is narrowed exactly once", + ); + assert_eq!( + narrow_roots, + std::collections::BTreeMap::from([ + ("ClassObject".to_string(), 1usize), + ("ObjectHeader".to_string(), 2), + ("W_IntObject".to_string(), 2), + ]), + "every narrow in the corpus carries a root the corpus itself declares", + ); +} + +/// A header matching RPython's root object layout has a type pointer but no +/// per-instance class word. Lower it through the production metadata path so +/// both layout registration and allocation fusion are covered. +#[test] +fn boxing_cluster_fuses_where_the_header_declares_no_class_word() { + use majit_translate::front::mir::lower_fun_decl_with_static_addrs; + use majit_translate::model::{CallTarget, OpKind}; + + const CLASS_ADDR: i64 = 0x00C0_FFEE; + let llbc = load_corpus(); + let static_addrs = majit_translate::HostStaticAddrs { + pytypes: &[("INT_CLASS", CLASS_ADDR)], + ..Default::default() + }; + + let fd = llbc + .local_fn("w_new_type_only_int") + .expect("w_new_type_only_int in corpus"); + let graph = lower_fun_decl_with_static_addrs(llbc, fd, static_addrs).expect("lowering"); + + let mut fused = Vec::new(); + let mut payload_stores = 0usize; + let mut class_word_stores = 0usize; + let mut residual_mallocs = 0usize; + for b in &graph.blocks { + for op in &b.operations { + match &op.kind { + OpKind::NewWithVtable { owner, vtable } => fused.push((owner.clone(), *vtable)), + OpKind::FieldWrite { field, .. } => match field.name.as_str() { + "intval" => payload_stores += 1, + "w_class" => class_word_stores += 1, + _ => {} + }, + OpKind::Call { + target: CallTarget::FunctionPath { segments }, + .. + } if segments.last().map(String::as_str) == Some("malloc_typed") => { + residual_mallocs += 1 + } + _ => {} + } + } + } + // The premise the arm rests on, asserted rather than assumed: nothing in + // this cluster writes a class word, so a fuse here can only have come + // through the no-class-word arm. + assert_eq!( + class_word_stores, 0, + "the one-word header's cluster stores no class word", + ); + assert_eq!( + fused, + vec![("W_TypeOnlyIntObject".to_string(), CLASS_ADDR)], + "the one-word header's cluster fuses to one NewWithVtable", + ); + assert_eq!( + residual_mallocs, 0, + "no residual lltype::malloc_typed survives", + ); + assert_eq!(payload_stores, 1, "the intval payload store is re-emitted"); +} + +/// A pointer-identity type dispatch keeps its concrete arm as a direct call, +/// allowing graph discovery and inlining to continue through it. +#[test] +fn narrowing_chain_arm_lowers_to_a_direct_call() { + use majit_translate::model::{CallTarget, OpKind}; + let llbc = load_corpus(); + let graph = lower_function(llbc, "w_number_add").expect("lowering"); + + let mut direct_arm_calls = 0usize; + let mut dyn_calls = 0usize; + let mut header_reads = 0usize; + let mut identity_eqs = 0usize; + for b in &graph.blocks { + for op in &b.operations { + match &op.kind { + OpKind::Call { + target: CallTarget::FunctionPath { segments }, + .. + } => match segments.last().map(String::as_str) { + Some("w_int_add") => direct_arm_calls += 1, + Some("__dyn_call") => dyn_calls += 1, + _ => {} + }, + OpKind::FieldRead { field, .. } if field.name == "ob_type" => header_reads += 1, + OpKind::BinOp { op, .. } if op == "eq" => identity_eqs += 1, + _ => {} + } + } + } + assert_eq!(direct_arm_calls, 1, "the taken arm is a direct call"); + assert_eq!( + dyn_calls, 0, + "no arm degrades to the __dyn_call placeholder" + ); + assert_eq!(header_reads, 2, "both receivers' class words are read"); + assert_eq!( + identity_eqs, 2, + "type(a) is type(b), then the per-class shortcut", + ); +} diff --git a/pyre/bench/fib_recursive.cranelift.jitstats b/pyre/bench/fib_recursive.cranelift.jitstats index 09180214fa8..0aedfedfad7 100644 --- a/pyre/bench/fib_recursive.cranelift.jitstats +++ b/pyre/bench/fib_recursive.cranelift.jitstats @@ -1,4 +1,4 @@ -bridges_compiled=8 +bridges_compiled=7 descr_set_absent=0 descr_set_ambiguous=0 descr_set_stale_absent=0 @@ -8,7 +8,7 @@ fbw_rolled_back_with_effects=0 fbw_store_journal_rollback_failed=0 field_pos_attached_misplaced=0 field_pos_spec_misplaced=0 -guard_failures=1645 +guard_failures=1501 internal_compile_panics=0 loops_aborted=0 loops_compiled=1 diff --git a/pyre/bench/fib_recursive.dynasm.jitstats b/pyre/bench/fib_recursive.dynasm.jitstats index 09180214fa8..0aedfedfad7 100644 --- a/pyre/bench/fib_recursive.dynasm.jitstats +++ b/pyre/bench/fib_recursive.dynasm.jitstats @@ -1,4 +1,4 @@ -bridges_compiled=8 +bridges_compiled=7 descr_set_absent=0 descr_set_ambiguous=0 descr_set_stale_absent=0 @@ -8,7 +8,7 @@ fbw_rolled_back_with_effects=0 fbw_store_journal_rollback_failed=0 field_pos_attached_misplaced=0 field_pos_spec_misplaced=0 -guard_failures=1645 +guard_failures=1501 internal_compile_panics=0 loops_aborted=0 loops_compiled=1 From 82ae9b822a1c52bf013c4d4e6791aeab57b5e30b Mon Sep 17 00:00:00 2001 From: Jeong YunWon Date: Sat, 22 Aug 2026 08:45:19 +0900 Subject: [PATCH 2/3] bench: restore fib_recursive's recorded bridge and guard-failure counts The two jitstats snapshots recorded bridges_compiled=7 and guard_failures=1501. check.py run 32499609792 observed 8 and 1645 on ubuntu-24.04, macos-latest and windows-latest, for both backends, and reported the difference as a regression on all three. 8 and 1645 are what `origin/main` and this branch's base record, and what the three hosts measure. Restored from the base. Assisted-by: Claude --- pyre/bench/fib_recursive.cranelift.jitstats | 4 ++-- pyre/bench/fib_recursive.dynasm.jitstats | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pyre/bench/fib_recursive.cranelift.jitstats b/pyre/bench/fib_recursive.cranelift.jitstats index 0aedfedfad7..09180214fa8 100644 --- a/pyre/bench/fib_recursive.cranelift.jitstats +++ b/pyre/bench/fib_recursive.cranelift.jitstats @@ -1,4 +1,4 @@ -bridges_compiled=7 +bridges_compiled=8 descr_set_absent=0 descr_set_ambiguous=0 descr_set_stale_absent=0 @@ -8,7 +8,7 @@ fbw_rolled_back_with_effects=0 fbw_store_journal_rollback_failed=0 field_pos_attached_misplaced=0 field_pos_spec_misplaced=0 -guard_failures=1501 +guard_failures=1645 internal_compile_panics=0 loops_aborted=0 loops_compiled=1 diff --git a/pyre/bench/fib_recursive.dynasm.jitstats b/pyre/bench/fib_recursive.dynasm.jitstats index 0aedfedfad7..09180214fa8 100644 --- a/pyre/bench/fib_recursive.dynasm.jitstats +++ b/pyre/bench/fib_recursive.dynasm.jitstats @@ -1,4 +1,4 @@ -bridges_compiled=7 +bridges_compiled=8 descr_set_absent=0 descr_set_ambiguous=0 descr_set_stale_absent=0 @@ -8,7 +8,7 @@ fbw_rolled_back_with_effects=0 fbw_store_journal_rollback_failed=0 field_pos_attached_misplaced=0 field_pos_spec_misplaced=0 -guard_failures=1501 +guard_failures=1645 internal_compile_panics=0 loops_aborted=0 loops_compiled=1 From 677a59050788a65d991f90e65c9fc69ee966224d Mon Sep 17 00:00:00 2001 From: Jeong YunWon Date: Sat, 22 Aug 2026 09:07:15 +0900 Subject: [PATCH 3/3] bench: size mapdict_frozen_unboxing_fold against the gate minimum The fixture was sized to clear EXEC_TIME_FLOOR_S. The constant that decides whether a ratio is judged is FLOOR_GATE_MIN_BASELINE_S, ten times larger: below it the floor gate declines the baseline as too small while the ceiling still fires, and the comparison table marks the ratio `?`. At N=406399 pypy's execution-only time measures 0.02s -- four times the floor, 2.5x short of the gate minimum. check.py run 32499609792 read 0.01s on ubuntu and failed the fixture at 149.3x against a 63x ceiling while pyre's own time went DOWN; run 32518791576, on an unrelated branch, read 0.07s on the same fixture and passed it at 23.8x. N=2000000 puts pypy at 0.17s. Assisted-by: Claude --- pyre/bench/synth/mapdict_frozen_unboxing_fold.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/pyre/bench/synth/mapdict_frozen_unboxing_fold.py b/pyre/bench/synth/mapdict_frozen_unboxing_fold.py index 11aa7942075..e191e1f4d9e 100644 --- a/pyre/bench/synth/mapdict_frozen_unboxing_fold.py +++ b/pyre/bench/synth/mapdict_frozen_unboxing_fold.py @@ -6,9 +6,14 @@ # (mapdict.py:594-596). A folded read that performs `_prim_direct_read` alone # would skip that migration and leave unboxed and boxed instances mixed under # one promoted-map guard. -# Sized so pypy's own execution clears the measurement floor: below it the -# ratio gate divides by the floor and reads startup rather than this loop. -N = 406399 +# Sized against FLOOR_GATE_MIN_BASELINE_S, not EXEC_TIME_FLOOR_S. The two are a +# factor of ten apart, and it is the larger one that decides whether a ratio is +# judged: below it the floor gate declines the baseline as too small while the +# ceiling still fires, so the fixture is gated on a number the comparison table +# itself marks `?`. At the previous 406399 pypy measured 0.02s -- four times the +# floor, and 2.5x short of the gate minimum -- so whether this fixture passed +# came down to how loaded the runner was. Here pypy measures 0.17s. +N = 2000000 class C: