diff --git a/charon/Cargo.lock b/charon/Cargo.lock index c59c96c05..0a3d0010b 100644 --- a/charon/Cargo.lock +++ b/charon/Cargo.lock @@ -472,7 +472,7 @@ dependencies = [ [[package]] name = "hax-adt-into" version = "0.1.0-pre.1" -source = "git+https://github.com/hacspec/hax?branch=main#bdf0ca7b1ccf6dd67f75e81f27676c9fa76dcb17" +source = "git+https://github.com/hacspec/hax?branch=main#bdd123337ebf800f77255b85ad79df7de6ac18ba" dependencies = [ "itertools 0.11.0", "proc-macro2", @@ -483,7 +483,7 @@ dependencies = [ [[package]] name = "hax-frontend-exporter" version = "0.1.0-pre.1" -source = "git+https://github.com/hacspec/hax?branch=main#bdf0ca7b1ccf6dd67f75e81f27676c9fa76dcb17" +source = "git+https://github.com/hacspec/hax?branch=main#bdd123337ebf800f77255b85ad79df7de6ac18ba" dependencies = [ "extension-traits", "hax-adt-into", @@ -500,7 +500,7 @@ dependencies = [ [[package]] name = "hax-frontend-exporter-options" version = "0.1.0-pre.1" -source = "git+https://github.com/hacspec/hax?branch=main#bdf0ca7b1ccf6dd67f75e81f27676c9fa76dcb17" +source = "git+https://github.com/hacspec/hax?branch=main#bdd123337ebf800f77255b85ad79df7de6ac18ba" dependencies = [ "schemars", "serde", diff --git a/charon/src/ast/names_utils.rs b/charon/src/ast/names_utils.rs index 72c5b259f..4b4e188c6 100644 --- a/charon/src/ast/names_utils.rs +++ b/charon/src/ast/names_utils.rs @@ -197,8 +197,7 @@ impl<'tcx, 'ctx> TranslateCtx<'tcx, 'ctx> { // Translate to hax types let s1 = &hax::State::new_from_state_and_id(&self.hax_state, id); let substs = - rustc_middle::ty::subst::InternalSubsts::identity_for_item(tcx, id) - .sinto(s1); + rustc_middle::ty::GenericArgs::identity_for_item(tcx, id).sinto(s1); // TODO: use the bounds let _bounds: Vec = tcx .predicates_of(id) @@ -206,7 +205,7 @@ impl<'tcx, 'ctx> TranslateCtx<'tcx, 'ctx> { .iter() .map(|(x, _)| x.sinto(s1)) .collect(); - let ty = tcx.type_of(id).subst_identity().sinto(s1); + let ty = tcx.type_of(id).instantiate_identity().sinto(s1); // Translate from hax to LLBC let mut bt_ctx = BodyTransCtx::new(id, self); diff --git a/charon/src/export.rs b/charon/src/export.rs index 572bbd408..e6a8cffa3 100644 --- a/charon/src/export.rs +++ b/charon/src/export.rs @@ -91,7 +91,7 @@ impl GCrateData { // Create the file. let std::io::Result::Ok(outfile) = File::create(target_filename.clone()) else { error!("Could not open: {:?}", target_filename); - return Err(()) + return Err(()); }; // Write to the file. let std::result::Result::Ok(()) = serde_json::to_writer(&outfile, self) else { diff --git a/charon/src/transform/remove_dynamic_checks.rs b/charon/src/transform/remove_dynamic_checks.rs index 3604d21f7..b1d14a146 100644 --- a/charon/src/transform/remove_dynamic_checks.rs +++ b/charon/src/transform/remove_dynamic_checks.rs @@ -16,7 +16,10 @@ fn remove_dynamic_checks(ctx: &mut TransformCtx, block: &mut BlockData) { cond: Operand::Move(cond), expected, target, - } = &block.terminator.content else { return }; + } = &block.terminator.content + else { + return; + }; // We return the statements we want to keep, which must be a prefix of `block.statements`. let statements_to_keep = match block.statements.as_mut_slice() { diff --git a/charon/src/transform/remove_read_discriminant.rs b/charon/src/transform/remove_read_discriminant.rs index 5f88e7336..ec7d50be1 100644 --- a/charon/src/transform/remove_read_discriminant.rs +++ b/charon/src/transform/remove_read_discriminant.rs @@ -66,7 +66,7 @@ impl<'a, 'ctx> Visitor<'a, 'ctx> { content: RawStatement::Nop, meta: st.meta, }; - return + return; }; // We look for a `SwitchInt` just after the discriminant read. @@ -87,8 +87,11 @@ impl<'a, 'ctx> Visitor<'a, 'ctx> { match maybe_switch { Ok((meta2, switch, st3_opt)) => { - let Switch::SwitchInt(Operand::Move(op_p), _int_ty, targets, otherwise) = switch - else { unreachable!() }; + let Switch::SwitchInt(Operand::Move(op_p), _int_ty, targets, otherwise) = + switch + else { + unreachable!() + }; assert!(op_p.projection.is_empty() && op_p.var_id == dest.var_id); // Convert between discriminants and variant indices. Remark: the discriminant can diff --git a/charon/src/translate/translate_constants.rs b/charon/src/translate/translate_constants.rs index 1356cea17..49a83135c 100644 --- a/charon/src/translate/translate_constants.rs +++ b/charon/src/translate/translate_constants.rs @@ -157,7 +157,9 @@ impl<'tcx, 'ctx, 'ctx1> BodyTransCtx<'tcx, 'ctx, 'ctx1> { trait_refs, trait_info, )?; - let SubstFunIdOrPanic::Fun(fn_id) = fn_id else { unreachable!() }; + let SubstFunIdOrPanic::Fun(fn_id) = fn_id else { + unreachable!() + }; RawConstantExpr::FnPtr(fn_id.func) } ConstantExprKind::Todo(msg) => { diff --git a/charon/src/translate/translate_ctx.rs b/charon/src/translate/translate_ctx.rs index ce7b4de22..53602cbb4 100644 --- a/charon/src/translate/translate_ctx.rs +++ b/charon/src/translate/translate_ctx.rs @@ -607,7 +607,6 @@ impl<'tcx, 'ctx> TranslateCtx<'tcx, 'ctx> { | ForeignMod | Generator | GlobalAsm - | ImplTraitPlaceholder | InlineConst | LifetimeParam | OpaqueTy diff --git a/charon/src/translate/translate_functions_to_ullbc.rs b/charon/src/translate/translate_functions_to_ullbc.rs index 9161b3dbf..7c5deeaef 100644 --- a/charon/src/translate/translate_functions_to_ullbc.rs +++ b/charon/src/translate/translate_functions_to_ullbc.rs @@ -603,7 +603,7 @@ impl<'tcx, 'ctx, 'ctx1> BodyTransCtx<'tcx, 'ctx, 'ctx1> { )) } ( - hax::CastKind::Pointer(hax::PointerCast::Unsize), + hax::CastKind::PointerCoercion(hax::PointerCoercion::Unsize), Ty::Ref(_, t1, kind1), Ty::Ref(_, t2, kind2), ) => { @@ -643,7 +643,9 @@ impl<'tcx, 'ctx, 'ctx1> BodyTransCtx<'tcx, 'ctx, 'ctx1> { } } ( - hax::CastKind::Pointer(hax::PointerCast::ClosureFnPointer(unsafety)), + hax::CastKind::PointerCoercion(hax::PointerCoercion::ClosureFnPointer( + unsafety, + )), src_ty @ Ty::Arrow(..), tgt_ty @ Ty::Arrow(..), ) => { @@ -656,7 +658,7 @@ impl<'tcx, 'ctx, 'ctx1> BodyTransCtx<'tcx, 'ctx, 'ctx1> { )) } ( - hax::CastKind::Pointer(hax::PointerCast::ReifyFnPointer), + hax::CastKind::PointerCoercion(hax::PointerCoercion::ReifyFnPointer), src_ty @ Ty::Arrow(..), tgt_ty @ Ty::Arrow(..), ) => { @@ -1207,7 +1209,7 @@ impl<'tcx, 'ctx, 'ctx1> BodyTransCtx<'tcx, 'ctx, 'ctx1> { }, TerminatorKind::Call { fun, - substs, + generics, args, destination, target, @@ -1219,7 +1221,7 @@ impl<'tcx, 'ctx, 'ctx1> BodyTransCtx<'tcx, 'ctx, 'ctx1> { } => self.translate_function_call( span, fun, - substs, + generics, args, destination, target, @@ -1326,7 +1328,7 @@ impl<'tcx, 'ctx, 'ctx1> BodyTransCtx<'tcx, 'ctx, 'ctx1> { &mut self, span: rustc_span::Span, fun: &hax::FunOperand, - substs: &Vec, + generics: &Vec, args: &Vec, destination: &hax::Place, target: &Option, @@ -1352,7 +1354,7 @@ impl<'tcx, 'ctx, 'ctx1> BodyTransCtx<'tcx, 'ctx, 'ctx1> { span, erase_regions, def_id, - substs, + generics, Some(args), trait_refs, trait_info, @@ -1369,7 +1371,7 @@ impl<'tcx, 'ctx, 'ctx1> BodyTransCtx<'tcx, 'ctx, 'ctx1> { } SubstFunIdOrPanic::Fun(fid) => { let next_block = target.unwrap_or_else(|| { - panic!("Expected a next block after the call to {:?}.\n\nSubsts: {:?}\n\nArgs: {:?}:", rust_id, substs, args) + panic!("Expected a next block after the call to {:?}.\n\nSubsts: {:?}\n\nArgs: {:?}:", rust_id, generics, args) }); // Translate the target @@ -1396,7 +1398,7 @@ impl<'tcx, 'ctx, 'ctx1> BodyTransCtx<'tcx, 'ctx, 'ctx1> { // Translate the target let next_block = target.unwrap_or_else(|| { - panic!("Expected a next block after the call to {:?}.\n\nSubsts: {:?}\n\nArgs: {:?}:", p, substs, args) + panic!("Expected a next block after the call to {:?}.\n\nSubsts: {:?}\n\nArgs: {:?}:", p, generics, args) }); let lval = self.translate_place(span, destination)?; let next_block = self.translate_basic_block_id(next_block); @@ -1487,7 +1489,9 @@ impl<'tcx, 'ctx, 'ctx1> BodyTransCtx<'tcx, 'ctx, 'ctx1> { // Retrive the body let Some(body) = get_mir_for_def_id_and_level(tcx, rust_id, self.t_ctx.options.mir_level) - else { return Ok(None) }; + else { + return Ok(None); + }; // Here, we have to create a MIR state, which contains the body let state = hax::state::State::new_from_mir( @@ -1561,7 +1565,7 @@ impl<'tcx, 'ctx, 'ctx1> BodyTransCtx<'tcx, 'ctx, 'ctx1> { ) = if is_closure { // Closures have a peculiar handling in Rust: we can't call // `TyCtxt::fn_sig`. - let fun_type = tcx.type_of(def_id).subst_identity(); + let fun_type = tcx.type_of(def_id).instantiate_identity(); let rsubsts = match fun_type.kind() { ty::TyKind::Closure(_def_id, substs_ref) => substs_ref, _ => { @@ -1575,7 +1579,7 @@ impl<'tcx, 'ctx, 'ctx1> BodyTransCtx<'tcx, 'ctx, 'ctx1> { // Importantly, the type parameters necessarily come from the parents: // the closure can't itself be polymorphic, and the signature of // the closure only quantifies lifetimes. - let substs = closure.parent_substs(); + let substs = closure.parent_args(); trace!("closure.parent_substs: {:?}", substs); let sig = closure.sig(); trace!("closure.sig: {:?}", sig); @@ -1617,10 +1621,10 @@ impl<'tcx, 'ctx, 'ctx1> BodyTransCtx<'tcx, 'ctx, 'ctx1> { // There is an early binder for the early-bound regions, that // we ignore, and a binder for the late-bound regions, that we // keep. - let fn_sig = fn_sig.subst_identity(); + let fn_sig = fn_sig.instantiate_identity(); // Retrieve the early-bound parameters - let fun_type = tcx.type_of(def_id).subst_identity(); + let fun_type = tcx.type_of(def_id).instantiate_identity(); let substs: Vec = match fun_type.kind() { ty::TyKind::FnDef(_def_id, substs_ref) => substs_ref.sinto(&self.hax_state), ty::TyKind::Closure(_, _) => { @@ -1904,7 +1908,7 @@ impl<'tcx, 'ctx> TranslateCtx<'tcx, 'ctx> { let name = bt_ctx.t_ctx.def_id_to_name(rust_id)?; trace!("Translating global type"); - let mir_ty = bt_ctx.t_ctx.tcx.type_of(rust_id).subst_identity(); + let mir_ty = bt_ctx.t_ctx.tcx.type_of(rust_id).instantiate_identity(); let erase_regions = false; // This doesn't matter: there shouldn't be any regions let ty = bt_ctx.translate_ty(span, erase_regions, &mir_ty.sinto(hax_state))?; diff --git a/charon/src/translate/translate_predicates.rs b/charon/src/translate/translate_predicates.rs index b5170af46..11a0ced8a 100644 --- a/charon/src/translate/translate_predicates.rs +++ b/charon/src/translate/translate_predicates.rs @@ -516,9 +516,7 @@ impl<'tcx, 'ctx, 'ctx1> BodyTransCtx<'tcx, 'ctx, 'ctx1> { // directly? For now we just ignore it. Ok(None) } - ClauseKind::WellFormed(_) - | ClauseKind::ConstEvaluatable(_) - | ClauseKind::TypeWellFormedFromEnv(_) => { + ClauseKind::WellFormed(_) | ClauseKind::ConstEvaluatable(_) => { error_or_panic!(self, span, format!("Unsupported clause: {:?}", kind)) } } diff --git a/charon/src/translate/translate_traits.rs b/charon/src/translate/translate_traits.rs index cfc87adea..996cbe5be 100644 --- a/charon/src/translate/translate_traits.rs +++ b/charon/src/translate/translate_traits.rs @@ -21,7 +21,7 @@ impl<'tcx, 'ctx, 'ctx1> BodyTransCtx<'tcx, 'ctx, 'ctx1> { tcx.def_span(item.def_id), erase_regions, &tcx.type_of(item.def_id) - .subst_identity() + .instantiate_identity() .sinto(&self.hax_state), ) } @@ -46,7 +46,7 @@ impl<'tcx, 'ctx, 'ctx1> BodyTransCtx<'tcx, 'ctx, 'ctx1> { let span = tcx.def_span(trait_impl_def_id); // Lookup the trait clauses and substitute - TODO: not sure about the substitution - let subst = rust_impl_trait_ref.substs; + let subst = rust_impl_trait_ref.args; let bounds = tcx.item_bounds(decl_item.def_id); let param_env = tcx.param_env(trait_impl_def_id); let bounds = tcx.subst_and_normalize_erasing_regions(subst, param_env, bounds); @@ -156,7 +156,10 @@ impl<'tcx, 'ctx, 'ctx1> BodyTransCtx<'tcx, 'ctx, 'ctx1> { // Retrieve the trait ref representing "self" let tcx = self.t_ctx.tcx; let rustc_middle::ty::ImplSubject::Trait(trait_ref) = - tcx.impl_subject(def_id).subst_identity() else { unreachable!() }; + tcx.impl_subject(def_id).instantiate_identity() + else { + unreachable!() + }; // Wrap it in a [TraitPredicate] so that when calling [sinto] we retrieve // the parent and item predicates. @@ -335,7 +338,7 @@ impl<'tcx, 'ctx> TranslateCtx<'tcx, 'ctx> { // Translating the predicates { // TODO: this is an ugly manip - let bounds = tcx.item_bounds(item.def_id).subst_identity(); + let bounds = tcx.item_bounds(item.def_id).instantiate_identity(); use crate::rustc_middle::query::Key; let span = bounds.default_span(tcx); let bounds: Vec<_> = bounds @@ -499,7 +502,10 @@ impl<'tcx, 'ctx> TranslateCtx<'tcx, 'ctx> { let trait_id = trait_id.unwrap(); let rustc_middle::ty::ImplSubject::Trait(rust_trait_ref) = - tcx.impl_subject(rust_id).subst_identity() else { unreachable!() }; + tcx.impl_subject(rust_id).instantiate_identity() + else { + unreachable!() + }; let trait_ref = rust_trait_ref.sinto(&bt_ctx.hax_state); let (regions, types, const_generics) = bt_ctx.translate_substs(span, erase_regions, None, &trait_ref.generic_args)?; @@ -508,7 +514,7 @@ impl<'tcx, 'ctx> TranslateCtx<'tcx, 'ctx> { &bt_ctx.hax_state, tcx.param_env(rust_id), rust_trait_ref.def_id, - rust_trait_ref.substs, + rust_trait_ref.args, None, ); let parent_trait_refs: Vec = diff --git a/charon/src/translate/translate_types.rs b/charon/src/translate/translate_types.rs index 74aafda00..8e9b2710b 100644 --- a/charon/src/translate/translate_types.rs +++ b/charon/src/translate/translate_types.rs @@ -655,8 +655,8 @@ impl<'tcx, 'ctx, 'ctx1> BodyTransCtx<'tcx, 'ctx, 'ctx1> { // We could use: TyCtxt::generics_of(DefId) // But using the identity substitution is simpler. For instance, we can // easily retrieve the type for the const parameters. - let substs = rustc_middle::ty::subst::InternalSubsts::identity_for_item(tcx, def_id) - .sinto(&self.hax_state); + let substs = + rustc_middle::ty::GenericArgs::identity_for_item(tcx, def_id).sinto(&self.hax_state); self.translate_generic_params_from_hax(span, &substs) } diff --git a/charon/tests/ui.rs b/charon/tests/ui.rs index aa33eebe1..4f1f66e47 100644 --- a/charon/tests/ui.rs +++ b/charon/tests/ui.rs @@ -68,7 +68,9 @@ fn parse_magic_comments(input_path: &std::path::Path) -> anyhow::Result(@1: core::option::Option) -> bool { let @0: bool; // return let opt@1: core::option::Option; // arg #1 - let self@2: &'_ (core::option::Option); // local - let @3: isize; // anonymous local + let @2: isize; // anonymous local - self@2 := &opt@1 - match *(self@2) { + match opt@1 { 0 => { - @3 := const (0 : isize) + @2 := const (0 : isize) }, 1 => { - @3 := const (1 : isize) + @2 := const (1 : isize) } } - @0 := copy (@3) == const (1 : isize) - drop self@2 + @0 := copy (@2) == const (1 : isize) drop opt@1 return } diff --git a/charon/tests/ui/unsupported/issue-167-self-constructors.out b/charon/tests/ui/unsupported/issue-167-self-constructors.out index ef694030b..e27658a78 100644 --- a/charon/tests/ui/unsupported/issue-167-self-constructors.out +++ b/charon/tests/ui/unsupported/issue-167-self-constructors.out @@ -1,19 +1,9 @@ -[ ERROR charon_lib::ast::names_utils:274] [names_utils::::def_id_to_name]: -Unexpected DefPathData: DisambiguatedDefPathData { data: Ctor, disambiguator: 0 } -thread 'rustc' panicked at 'internal error: entered unreachable code: Unexpected DefPathData: DisambiguatedDefPathData { data: Ctor, disambiguator: 0 }', src/ast/names_utils.rs:275:21 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace -error: Thread panicked when extracting body. - --> tests/ui/unsupported/issue-167-self-constructors.rs:8:5 - | -8 | pub fn b() -> Self { - | ^^^^^^^^^^^^^^^^^^ - error: assertion failure: "user_annotation.is_none()" --> tests/ui/unsupported/issue-167-self-constructors.rs:19:9 | 19 | Self { r } | ^^^^^^^^^^ -error: aborting due to 2 previous errors +error: aborting due to previous error -[ ERROR charon_driver:200] The extraction encountered 2 errors +[ ERROR charon_driver:200] The extraction encountered 1 errors diff --git a/charon/tests/version/example.out b/charon/tests/version/example.out index deaa65e9b..3998f750d 100644 --- a/charon/tests/version/example.out +++ b/charon/tests/version/example.out @@ -1 +1 @@ -{"charon_version":"0.1.2","name":"example","id_to_file":[[{"LocalId":0},{"Local":"tests/version/example.rs"}],[{"VirtualId":0},{"Virtual":"/rustc/5ea66686467d3ec5f8c81570e7f0f16ad8dd8cc3/library/core/src/clone.rs"}],[{"VirtualId":1},{"Virtual":"/rustc/5ea66686467d3ec5f8c81570e7f0f16ad8dd8cc3/library/core/src/default.rs"}],[{"VirtualId":2},{"Virtual":"/rustc/5ea66686467d3ec5f8c81570e7f0f16ad8dd8cc3/library/core/src/marker.rs"}],[{"VirtualId":3},{"Virtual":"/rustc/5ea66686467d3ec5f8c81570e7f0f16ad8dd8cc3/library/core/src/str/mod.rs"}],[{"VirtualId":4},{"Virtual":"/rustc/5ea66686467d3ec5f8c81570e7f0f16ad8dd8cc3/library/core/src/option.rs"}]],"declarations":[{"Type":{"NonRec":0}},{"TraitDecl":{"NonRec":1}},{"TraitDecl":{"NonRec":0}},{"Fun":{"NonRec":0}},{"TraitImpl":{"NonRec":1}},{"TraitImpl":{"NonRec":0}},{"TraitDecl":{"NonRec":3}},{"TraitDecl":{"NonRec":2}},{"Fun":{"NonRec":6}},{"TraitImpl":{"NonRec":3}},{"Fun":{"NonRec":1}},{"TraitImpl":{"NonRec":2}},{"Global":{"NonRec":0}},{"Global":{"NonRec":1}},{"Type":{"NonRec":1}},{"Fun":{"NonRec":3}},{"Fun":{"NonRec":2}},{"Fun":{"NonRec":4}},{"Fun":{"NonRec":5}}],"types":[{"def_id":0,"item_meta":{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":4,"col":0},"end":{"line":4,"col":8}},"generated_from_span":null},"attributes":[],"inline":null,"public":false},"is_local":true,"name":[{"Ident":["example",0]},{"Ident":["Foo",0]}],"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"kind":{"Enum":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":5,"col":4},"end":{"line":5,"col":5}},"generated_from_span":null},"name":"A","fields":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":5,"col":6},"end":{"line":5,"col":9}},"generated_from_span":null},"name":null,"ty":{"Literal":{"Integer":"U32"}}}],"discriminant":{"Isize":"0"}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":6,"col":4},"end":{"line":6,"col":5}},"generated_from_span":null},"name":"B","fields":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":6,"col":8},"end":{"line":6,"col":19}},"generated_from_span":null},"name":"field","ty":{"Literal":"Bool"}}],"discriminant":{"Isize":"1"}}]}},{"def_id":1,"item_meta":{"meta":{"span":{"file_id":{"VirtualId":4},"beg":{"line":563,"col":0},"end":{"line":563,"col":18}},"generated_from_span":null},"attributes":[],"inline":null,"public":true},"is_local":false,"name":[{"Ident":["core",0]},{"Ident":["option",0]},{"Ident":["Option",0]}],"generics":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"kind":{"Enum":[{"meta":{"span":{"file_id":{"VirtualId":4},"beg":{"line":567,"col":4},"end":{"line":567,"col":8}},"generated_from_span":null},"name":"None","fields":[],"discriminant":{"Isize":"0"}},{"meta":{"span":{"file_id":{"VirtualId":4},"beg":{"line":571,"col":4},"end":{"line":571,"col":8}},"generated_from_span":null},"name":"Some","fields":[{"meta":{"span":{"file_id":{"VirtualId":4},"beg":{"line":571,"col":55},"end":{"line":571,"col":56}},"generated_from_span":null},"name":null,"ty":{"TypeVar":0}}],"discriminant":{"Isize":"1"}}]}}],"functions":[{"def_id":0,"item_meta":{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":3,"col":15},"end":{"line":3,"col":20}},"generated_from_span":null},"attributes":["inline"],"inline":"Hint","public":true},"is_local":true,"name":[{"Ident":["example",0]},{"Impl":{"disambiguator":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"kind":{"Trait":{"trait_id":1,"generics":{"regions":[],"types":[{"Adt":[{"Adt":0},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}],"const_generics":[],"trait_refs":[]}}}}},{"Ident":["clone",0]}],"signature":{"is_unsafe":false,"is_closure":false,"closure_info":null,"generics":{"regions":[{"index":0,"name":null}],"types":[],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"parent_params_info":{"num_region_params":0,"num_type_params":0,"num_const_generic_params":0,"num_trait_clauses":0,"num_regions_outlive":0,"num_types_outlive":0,"num_trait_type_constraints":0},"inputs":[{"Ref":[{"BVar":[0,0]},{"Adt":[{"Adt":0},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]},"Shared"]}],"output":{"Adt":[{"Adt":0},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}},"kind":{"TraitItemImpl":{"impl_id":1,"trait_id":1,"item_name":"clone","provided":false}},"body":{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":3,"col":15},"end":{"line":3,"col":20}},"generated_from_span":null},"arg_count":1,"locals":[{"index":0,"name":null,"ty":{"Adt":[{"Adt":0},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}},{"index":1,"name":"self","ty":{"Ref":["Erased",{"Adt":[{"Adt":0},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]},"Shared"]}}],"body":{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":3,"col":15},"end":{"line":3,"col":20}},"generated_from_span":null},"content":{"Sequence":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":3,"col":15},"end":{"line":3,"col":20}},"generated_from_span":null},"content":{"Assign":[{"var_id":0,"projection":[]},{"Use":{"Copy":{"var_id":1,"projection":["Deref"]}}}]}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":3,"col":15},"end":{"line":3,"col":20}},"generated_from_span":null},"content":"Return"}]}}}},{"def_id":1,"item_meta":{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":18,"col":4},"end":{"line":18,"col":23}},"generated_from_span":null},"attributes":[],"inline":null,"public":false},"is_local":true,"name":[{"Ident":["example",0]},{"Impl":{"disambiguator":0,"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"kind":{"Trait":{"trait_id":2,"generics":{"regions":[],"types":[{"Adt":[{"Adt":0},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}],"const_generics":[],"trait_refs":[]}}}}},{"Ident":["method",0]}],"signature":{"is_unsafe":false,"is_closure":false,"closure_info":null,"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"parent_params_info":{"num_region_params":0,"num_type_params":0,"num_const_generic_params":0,"num_trait_clauses":0,"num_regions_outlive":0,"num_types_outlive":0,"num_trait_type_constraints":0},"inputs":[],"output":{"Adt":[{"Adt":0},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}},"kind":{"TraitItemImpl":{"impl_id":2,"trait_id":2,"item_name":"method","provided":false}},"body":{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":18,"col":4},"end":{"line":20,"col":5}},"generated_from_span":null},"arg_count":0,"locals":[{"index":0,"name":null,"ty":{"Adt":[{"Adt":0},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}}],"body":{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":18,"col":4},"end":{"line":20,"col":5}},"generated_from_span":null},"content":{"Sequence":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":18,"col":4},"end":{"line":20,"col":5}},"generated_from_span":null},"content":{"Assign":[{"var_id":0,"projection":[]},{"Aggregate":[{"Adt":[{"Adt":0},0,{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]},[{"Const":{"value":{"Literal":{"Scalar":{"U32":"42"}}},"ty":{"Literal":{"Integer":"U32"}}}}]]}]}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":18,"col":4},"end":{"line":20,"col":5}},"generated_from_span":null},"content":"Return"}]}}}},{"def_id":2,"item_meta":{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":27,"col":9}},"generated_from_span":null},"attributes":[],"inline":null,"public":false},"is_local":true,"name":[{"Ident":["example",0]},{"Ident":["main",0]}],"signature":{"is_unsafe":false,"is_closure":false,"closure_info":null,"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"parent_params_info":null,"inputs":[],"output":{"Adt":["Tuple",{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}},"kind":"Regular","body":{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"arg_count":0,"locals":[{"index":0,"name":null,"ty":{"Adt":["Tuple",{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}},{"index":1,"name":"foo","ty":{"Adt":[{"Adt":0},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}},{"index":2,"name":null,"ty":{"Adt":[{"Adt":1},{"regions":[],"types":[{"Adt":[{"Adt":0},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}],"const_generics":[],"trait_refs":[]}]}},{"index":3,"name":null,"ty":{"Adt":[{"Adt":0},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}},{"index":4,"name":null,"ty":{"Adt":["Tuple",{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}}],"body":{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Sequence":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Call":{"func":{"Regular":{"func":{"Trait":[{"trait_id":{"TraitImpl":2},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"trait_decl_ref":{"trait_id":2,"generics":{"regions":[],"types":[{"Adt":[{"Adt":0},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}],"const_generics":[],"trait_refs":[]}}},"method",3]},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}},"args":[],"dest":{"var_id":1,"projection":[]}}}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Sequence":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"FakeRead":{"var_id":1,"projection":[]}}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Sequence":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":28,"col":4},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Assign":[{"var_id":3,"projection":[]},{"Use":{"Copy":{"var_id":1,"projection":[]}}}]}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Sequence":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":28,"col":4},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Assign":[{"var_id":2,"projection":[]},{"Aggregate":[{"Adt":[{"Adt":1},1,{"regions":[],"types":[{"Adt":[{"Adt":0},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}],"const_generics":[],"trait_refs":[]}]},[{"Move":{"var_id":3,"projection":[]}}]]}]}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Sequence":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":28,"col":4},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Drop":{"var_id":3,"projection":[]}}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Sequence":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":28,"col":4},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"FakeRead":{"var_id":2,"projection":[]}}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Sequence":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Switch":{"Match":[{"var_id":2,"projection":[]},[[[1],{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Switch":{"Match":[{"var_id":2,"projection":[{"Field":[{"ProjAdt":[1,1]},0]}]},[[[1],{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Switch":{"If":[{"Copy":{"var_id":2,"projection":[{"Field":[{"ProjAdt":[1,1]},0]},{"Field":[{"ProjAdt":[0,1]},0]}]}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Sequence":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":28,"col":4},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Assign":[{"var_id":4,"projection":[]},{"Aggregate":[{"Adt":["Tuple",null,{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]},[]]}]}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Sequence":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":28,"col":4},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Assign":[{"var_id":0,"projection":[]},{"Use":{"Move":{"var_id":4,"projection":[]}}}]}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Sequence":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Drop":{"var_id":1,"projection":[]}}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Sequence":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Drop":{"var_id":2,"projection":[]}}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Sequence":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Assign":[{"var_id":0,"projection":[]},{"Aggregate":[{"Adt":["Tuple",null,{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]},[]]}]}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"content":"Return"}]}}]}}]}}]}}]}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":28,"col":4},"end":{"line":33,"col":1}},"generated_from_span":null},"content":"Nop"}]}}}]],{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":28,"col":4},"end":{"line":33,"col":1}},"generated_from_span":null},"content":"Nop"}]}}}]],{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":28,"col":4},"end":{"line":33,"col":1}},"generated_from_span":null},"content":"Nop"}]}}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":28,"col":4},"end":{"line":33,"col":1}},"generated_from_span":null},"content":"Panic"}]}}]}}]}}]}}]}}]}}]}}}},{"def_id":3,"item_meta":{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":13,"col":4},"end":{"line":13,"col":24}},"generated_from_span":null},"attributes":[],"inline":null,"public":false},"is_local":true,"name":[{"Ident":["example",0]},{"Ident":["Trait",0]},{"Ident":["method",0]}],"signature":{"is_unsafe":false,"is_closure":false,"closure_info":null,"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"parent_params_info":{"num_region_params":0,"num_type_params":1,"num_const_generic_params":0,"num_trait_clauses":0,"num_regions_outlive":0,"num_types_outlive":0,"num_trait_type_constraints":0},"inputs":[],"output":{"TypeVar":0}},"kind":{"TraitItemDecl":[2,"method"]},"body":null},{"def_id":4,"item_meta":{"meta":{"span":{"file_id":{"VirtualId":0},"beg":{"line":120,"col":4},"end":{"line":120,"col":28}},"generated_from_span":null},"attributes":[],"inline":null,"public":true},"is_local":false,"name":[{"Ident":["core",0]},{"Ident":["clone",0]},{"Ident":["Clone",0]},{"Ident":["clone",0]}],"signature":{"is_unsafe":false,"is_closure":false,"closure_info":null,"generics":{"regions":[{"index":0,"name":null}],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"parent_params_info":{"num_region_params":0,"num_type_params":1,"num_const_generic_params":0,"num_trait_clauses":0,"num_regions_outlive":0,"num_types_outlive":0,"num_trait_type_constraints":0},"inputs":[{"Ref":[{"BVar":[0,0]},{"TypeVar":0},"Shared"]}],"output":{"TypeVar":0}},"kind":{"TraitItemDecl":[1,"clone"]},"body":null},{"def_id":5,"item_meta":{"meta":{"span":{"file_id":{"VirtualId":1},"beg":{"line":133,"col":4},"end":{"line":133,"col":25}},"generated_from_span":null},"attributes":[],"inline":null,"public":true},"is_local":false,"name":[{"Ident":["core",0]},{"Ident":["default",0]},{"Ident":["Default",0]},{"Ident":["default",0]}],"signature":{"is_unsafe":false,"is_closure":false,"closure_info":null,"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"parent_params_info":{"num_region_params":0,"num_type_params":1,"num_const_generic_params":0,"num_trait_clauses":0,"num_regions_outlive":0,"num_types_outlive":0,"num_trait_type_constraints":0},"inputs":[],"output":{"TypeVar":0}},"kind":{"TraitItemDecl":[3,"default"]},"body":null},{"def_id":6,"item_meta":{"meta":{"span":{"file_id":{"VirtualId":3},"beg":{"line":2592,"col":4},"end":{"line":2592,"col":24}},"generated_from_span":null},"attributes":[],"inline":"Hint","public":true},"is_local":false,"name":[{"Ident":["core",0]},{"Ident":["str",0]},{"Impl":{"disambiguator":2,"generics":{"regions":[{"index":0,"name":null}],"types":[],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"kind":{"Trait":{"trait_id":3,"generics":{"regions":[],"types":[{"Ref":[{"BVar":[0,0]},{"Adt":[{"Assumed":"Str"},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]},"Shared"]}],"const_generics":[],"trait_refs":[]}}}}},{"Ident":["default",0]}],"signature":{"is_unsafe":false,"is_closure":false,"closure_info":null,"generics":{"regions":[{"index":0,"name":null}],"types":[],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"parent_params_info":{"num_region_params":1,"num_type_params":0,"num_const_generic_params":0,"num_trait_clauses":0,"num_regions_outlive":0,"num_types_outlive":0,"num_trait_type_constraints":0},"inputs":[],"output":{"Ref":[{"BVar":[0,0]},{"Adt":[{"Assumed":"Str"},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]},"Shared"]}},"kind":{"TraitItemImpl":{"impl_id":3,"trait_id":3,"item_name":"default","provided":false}},"body":null}],"globals":[{"def_id":0,"item_meta":{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":23,"col":0},"end":{"line":23,"col":18}},"generated_from_span":null},"attributes":[],"inline":null,"public":false},"is_local":true,"name":[{"Ident":["example",0]},{"Ident":["CONST",0]}],"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"ty":{"Literal":{"Integer":"Isize"}},"kind":"Regular","body":{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":23,"col":0},"end":{"line":23,"col":25}},"generated_from_span":null},"arg_count":0,"locals":[{"index":0,"name":null,"ty":{"Literal":{"Integer":"Isize"}}}],"body":{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":23,"col":0},"end":{"line":23,"col":25}},"generated_from_span":null},"content":{"Sequence":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":23,"col":0},"end":{"line":23,"col":25}},"generated_from_span":null},"content":{"Assign":[{"var_id":0,"projection":[]},{"Use":{"Const":{"value":{"Literal":{"Scalar":{"Isize":"128"}}},"ty":{"Literal":{"Integer":"Isize"}}}}}]}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":23,"col":0},"end":{"line":23,"col":25}},"generated_from_span":null},"content":"Return"}]}}}},{"def_id":1,"item_meta":{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":25,"col":0},"end":{"line":25,"col":28}},"generated_from_span":null},"attributes":[],"inline":null,"public":false},"is_local":true,"name":[{"Ident":["example",0]},{"Ident":["STATIC",0]}],"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"ty":{"Ref":["Static",{"Literal":"Bool"},"Shared"]},"kind":"Regular","body":{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":25,"col":0},"end":{"line":25,"col":38}},"generated_from_span":null},"arg_count":0,"locals":[{"index":0,"name":null,"ty":{"Ref":["Erased",{"Literal":"Bool"},"Shared"]}},{"index":1,"name":null,"ty":{"Ref":["Erased",{"Literal":"Bool"},"Shared"]}},{"index":2,"name":null,"ty":{"Literal":"Bool"}}],"body":{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":25,"col":0},"end":{"line":25,"col":38}},"generated_from_span":null},"content":{"Sequence":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":25,"col":0},"end":{"line":25,"col":38}},"generated_from_span":null},"content":{"Assign":[{"var_id":2,"projection":[]},{"Use":{"Const":{"value":{"Literal":{"Bool":false}},"ty":{"Literal":"Bool"}}}}]}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":25,"col":0},"end":{"line":25,"col":38}},"generated_from_span":null},"content":{"Sequence":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":25,"col":0},"end":{"line":25,"col":38}},"generated_from_span":null},"content":{"Assign":[{"var_id":1,"projection":[]},{"Ref":[{"var_id":2,"projection":[]},"Shared"]}]}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":25,"col":0},"end":{"line":25,"col":38}},"generated_from_span":null},"content":{"Sequence":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":25,"col":0},"end":{"line":25,"col":38}},"generated_from_span":null},"content":{"Assign":[{"var_id":0,"projection":[]},{"Ref":[{"var_id":1,"projection":["Deref"]},"Shared"]}]}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":25,"col":0},"end":{"line":25,"col":38}},"generated_from_span":null},"content":{"Sequence":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":25,"col":0},"end":{"line":25,"col":38}},"generated_from_span":null},"content":{"Drop":{"var_id":1,"projection":[]}}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":25,"col":0},"end":{"line":25,"col":38}},"generated_from_span":null},"content":"Return"}]}}]}}]}}]}}}}],"trait_decls":[{"def_id":0,"is_local":false,"item_meta":{"meta":{"span":{"file_id":{"VirtualId":2},"beg":{"line":467,"col":0},"end":{"line":467,"col":21}},"generated_from_span":null},"attributes":[],"inline":null,"public":true},"name":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["Copy",0]}],"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"parent_clauses":[{"clause_id":0,"meta":{"span":{"file_id":{"VirtualId":2},"beg":{"line":467,"col":16},"end":{"line":467,"col":21}},"generated_from_span":null},"trait_id":1,"generics":{"regions":[],"types":[{"TypeVar":0}],"const_generics":[],"trait_refs":[]}}],"consts":[],"types":[],"required_methods":[],"provided_methods":[]},{"def_id":1,"is_local":false,"item_meta":{"meta":{"span":{"file_id":{"VirtualId":0},"beg":{"line":107,"col":0},"end":{"line":107,"col":22}},"generated_from_span":null},"attributes":[],"inline":null,"public":true},"name":[{"Ident":["core",0]},{"Ident":["clone",0]},{"Ident":["Clone",0]}],"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"parent_clauses":[],"consts":[],"types":[],"required_methods":[["clone",4]],"provided_methods":[["clone_from",null]]},{"def_id":2,"is_local":true,"item_meta":{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":11,"col":0},"end":{"line":11,"col":17}},"generated_from_span":null},"attributes":[],"inline":null,"public":false},"name":[{"Ident":["example",0]},{"Ident":["Trait",0]}],"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"parent_clauses":[{"clause_id":0,"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":11,"col":13},"end":{"line":11,"col":17}},"generated_from_span":null},"trait_id":0,"generics":{"regions":[],"types":[{"TypeVar":0}],"const_generics":[],"trait_refs":[]}}],"consts":[],"types":[["AssocType",[[{"clause_id":0,"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"trait_id":3,"generics":{"regions":[],"types":[{"TraitType":[{"trait_id":"SelfId","generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"trait_decl_ref":{"trait_id":2,"generics":{"regions":[],"types":[{"TypeVar":0}],"const_generics":[],"trait_refs":[]}}},"AssocType"]}],"const_generics":[],"trait_refs":[]}}],null]]],"required_methods":[["method",3]],"provided_methods":[]},{"def_id":3,"is_local":false,"item_meta":{"meta":{"span":{"file_id":{"VirtualId":1},"beg":{"line":102,"col":0},"end":{"line":102,"col":24}},"generated_from_span":null},"attributes":[],"inline":null,"public":true},"name":[{"Ident":["core",0]},{"Ident":["default",0]},{"Ident":["Default",0]}],"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"parent_clauses":[],"consts":[],"types":[],"required_methods":[["default",5]],"provided_methods":[]}],"trait_impls":[{"def_id":0,"is_local":true,"name":[{"Ident":["example",0]},{"Impl":{"disambiguator":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"kind":{"Trait":{"trait_id":0,"generics":{"regions":[],"types":[{"Adt":[{"Adt":0},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}],"const_generics":[],"trait_refs":[]}}}}}],"item_meta":{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":3,"col":9},"end":{"line":3,"col":13}},"generated_from_span":null},"attributes":["automatically_derived"],"inline":null,"public":false},"impl_trait":{"trait_id":0,"generics":{"regions":[],"types":[{"Adt":[{"Adt":0},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"parent_trait_refs":[{"trait_id":{"TraitImpl":1},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"trait_decl_ref":{"trait_id":1,"generics":{"regions":[],"types":[{"Adt":[{"Adt":0},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}],"const_generics":[],"trait_refs":[]}}}],"consts":[],"types":[],"required_methods":[],"provided_methods":[]},{"def_id":1,"is_local":true,"name":[{"Ident":["example",0]},{"Impl":{"disambiguator":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"kind":{"Trait":{"trait_id":1,"generics":{"regions":[],"types":[{"Adt":[{"Adt":0},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}],"const_generics":[],"trait_refs":[]}}}}}],"item_meta":{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":3,"col":15},"end":{"line":3,"col":20}},"generated_from_span":null},"attributes":["automatically_derived"],"inline":null,"public":false},"impl_trait":{"trait_id":1,"generics":{"regions":[],"types":[{"Adt":[{"Adt":0},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"parent_trait_refs":[],"consts":[],"types":[],"required_methods":[["clone",0]],"provided_methods":[]},{"def_id":2,"is_local":true,"name":[{"Ident":["example",0]},{"Impl":{"disambiguator":0,"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"kind":{"Trait":{"trait_id":2,"generics":{"regions":[],"types":[{"Adt":[{"Adt":0},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}],"const_generics":[],"trait_refs":[]}}}}}],"item_meta":{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":16,"col":0},"end":{"line":16,"col":18}},"generated_from_span":null},"attributes":[],"inline":null,"public":false},"impl_trait":{"trait_id":2,"generics":{"regions":[],"types":[{"Adt":[{"Adt":0},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"parent_trait_refs":[{"trait_id":{"TraitImpl":0},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"trait_decl_ref":{"trait_id":0,"generics":{"regions":[],"types":[{"Adt":[{"Adt":0},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}],"const_generics":[],"trait_refs":[]}}}],"consts":[],"types":[["AssocType",[[{"trait_id":{"TraitImpl":3},"generics":{"regions":["Erased"],"types":[],"const_generics":[],"trait_refs":[]},"trait_decl_ref":{"trait_id":3,"generics":{"regions":[],"types":[{"Ref":["Erased",{"Adt":[{"Assumed":"Str"},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]},"Shared"]}],"const_generics":[],"trait_refs":[]}}}],{"Ref":["Static",{"Adt":[{"Assumed":"Str"},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]},"Shared"]}]]],"required_methods":[["method",1]],"provided_methods":[]},{"def_id":3,"is_local":false,"name":[{"Ident":["core",0]},{"Ident":["str",0]},{"Impl":{"disambiguator":2,"generics":{"regions":[{"index":0,"name":null}],"types":[],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"kind":{"Trait":{"trait_id":3,"generics":{"regions":[],"types":[{"Ref":[{"BVar":[0,0]},{"Adt":[{"Assumed":"Str"},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]},"Shared"]}],"const_generics":[],"trait_refs":[]}}}}}],"item_meta":{"meta":{"span":{"file_id":{"VirtualId":3},"beg":{"line":2589,"col":0},"end":{"line":2589,"col":21}},"generated_from_span":null},"attributes":[],"inline":null,"public":false},"impl_trait":{"trait_id":3,"generics":{"regions":[],"types":[{"Ref":[{"BVar":[0,0]},{"Adt":[{"Assumed":"Str"},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]},"Shared"]}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[{"index":0,"name":null}],"types":[],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"parent_trait_refs":[],"consts":[],"types":[],"required_methods":[["default",6]],"provided_methods":[]}]} \ No newline at end of file +{"charon_version":"0.1.2","name":"example","id_to_file":[[{"LocalId":0},{"Local":"tests/version/example.rs"}],[{"VirtualId":0},{"Virtual":"/rustc/ad963232d9b987d66a6f8e6ec4141f672b8b9900/library/core/src/clone.rs"}],[{"VirtualId":1},{"Virtual":"/rustc/ad963232d9b987d66a6f8e6ec4141f672b8b9900/library/core/src/default.rs"}],[{"VirtualId":2},{"Virtual":"/rustc/ad963232d9b987d66a6f8e6ec4141f672b8b9900/library/core/src/marker.rs"}],[{"VirtualId":3},{"Virtual":"/rustc/ad963232d9b987d66a6f8e6ec4141f672b8b9900/library/core/src/str/mod.rs"}],[{"VirtualId":4},{"Virtual":"/rustc/ad963232d9b987d66a6f8e6ec4141f672b8b9900/library/core/src/option.rs"}]],"declarations":[{"Type":{"NonRec":0}},{"TraitDecl":{"NonRec":1}},{"TraitDecl":{"NonRec":0}},{"Fun":{"NonRec":0}},{"TraitImpl":{"NonRec":1}},{"TraitImpl":{"NonRec":0}},{"TraitDecl":{"NonRec":3}},{"TraitDecl":{"NonRec":2}},{"Fun":{"NonRec":6}},{"TraitImpl":{"NonRec":3}},{"Fun":{"NonRec":1}},{"TraitImpl":{"NonRec":2}},{"Global":{"NonRec":0}},{"Global":{"NonRec":1}},{"Type":{"NonRec":1}},{"Fun":{"NonRec":3}},{"Fun":{"NonRec":2}},{"Fun":{"NonRec":4}},{"Fun":{"NonRec":5}}],"types":[{"def_id":0,"item_meta":{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":4,"col":0},"end":{"line":4,"col":8}},"generated_from_span":null},"attributes":[],"inline":null,"public":false},"is_local":true,"name":[{"Ident":["example",0]},{"Ident":["Foo",0]}],"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"kind":{"Enum":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":5,"col":4},"end":{"line":5,"col":5}},"generated_from_span":null},"name":"A","fields":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":5,"col":6},"end":{"line":5,"col":9}},"generated_from_span":null},"name":null,"ty":{"Literal":{"Integer":"U32"}}}],"discriminant":{"Isize":"0"}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":6,"col":4},"end":{"line":6,"col":5}},"generated_from_span":null},"name":"B","fields":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":6,"col":8},"end":{"line":6,"col":19}},"generated_from_span":null},"name":"field","ty":{"Literal":"Bool"}}],"discriminant":{"Isize":"1"}}]}},{"def_id":1,"item_meta":{"meta":{"span":{"file_id":{"VirtualId":4},"beg":{"line":563,"col":0},"end":{"line":563,"col":18}},"generated_from_span":null},"attributes":[],"inline":null,"public":true},"is_local":false,"name":[{"Ident":["core",0]},{"Ident":["option",0]},{"Ident":["Option",0]}],"generics":{"regions":[],"types":[{"index":0,"name":"T"}],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"kind":{"Enum":[{"meta":{"span":{"file_id":{"VirtualId":4},"beg":{"line":567,"col":4},"end":{"line":567,"col":8}},"generated_from_span":null},"name":"None","fields":[],"discriminant":{"Isize":"0"}},{"meta":{"span":{"file_id":{"VirtualId":4},"beg":{"line":571,"col":4},"end":{"line":571,"col":8}},"generated_from_span":null},"name":"Some","fields":[{"meta":{"span":{"file_id":{"VirtualId":4},"beg":{"line":571,"col":55},"end":{"line":571,"col":56}},"generated_from_span":null},"name":null,"ty":{"TypeVar":0}}],"discriminant":{"Isize":"1"}}]}}],"functions":[{"def_id":0,"item_meta":{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":3,"col":15},"end":{"line":3,"col":20}},"generated_from_span":null},"attributes":["inline"],"inline":"Hint","public":true},"is_local":true,"name":[{"Ident":["example",0]},{"Impl":{"disambiguator":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"kind":{"Trait":{"trait_id":1,"generics":{"regions":[],"types":[{"Adt":[{"Adt":0},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}],"const_generics":[],"trait_refs":[]}}}}},{"Ident":["clone",0]}],"signature":{"is_unsafe":false,"is_closure":false,"closure_info":null,"generics":{"regions":[{"index":0,"name":null}],"types":[],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"parent_params_info":{"num_region_params":0,"num_type_params":0,"num_const_generic_params":0,"num_trait_clauses":0,"num_regions_outlive":0,"num_types_outlive":0,"num_trait_type_constraints":0},"inputs":[{"Ref":[{"BVar":[0,0]},{"Adt":[{"Adt":0},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]},"Shared"]}],"output":{"Adt":[{"Adt":0},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}},"kind":{"TraitItemImpl":{"impl_id":1,"trait_id":1,"item_name":"clone","provided":false}},"body":{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":3,"col":15},"end":{"line":3,"col":20}},"generated_from_span":null},"arg_count":1,"locals":[{"index":0,"name":null,"ty":{"Adt":[{"Adt":0},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}},{"index":1,"name":"self","ty":{"Ref":["Erased",{"Adt":[{"Adt":0},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]},"Shared"]}}],"body":{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":3,"col":15},"end":{"line":3,"col":20}},"generated_from_span":null},"content":{"Sequence":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":3,"col":15},"end":{"line":3,"col":20}},"generated_from_span":null},"content":{"Assign":[{"var_id":0,"projection":[]},{"Use":{"Copy":{"var_id":1,"projection":["Deref"]}}}]}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":3,"col":15},"end":{"line":3,"col":20}},"generated_from_span":null},"content":"Return"}]}}}},{"def_id":1,"item_meta":{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":18,"col":4},"end":{"line":18,"col":23}},"generated_from_span":null},"attributes":[],"inline":null,"public":false},"is_local":true,"name":[{"Ident":["example",0]},{"Impl":{"disambiguator":0,"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"kind":{"Trait":{"trait_id":2,"generics":{"regions":[],"types":[{"Adt":[{"Adt":0},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}],"const_generics":[],"trait_refs":[]}}}}},{"Ident":["method",0]}],"signature":{"is_unsafe":false,"is_closure":false,"closure_info":null,"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"parent_params_info":{"num_region_params":0,"num_type_params":0,"num_const_generic_params":0,"num_trait_clauses":0,"num_regions_outlive":0,"num_types_outlive":0,"num_trait_type_constraints":0},"inputs":[],"output":{"Adt":[{"Adt":0},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}},"kind":{"TraitItemImpl":{"impl_id":2,"trait_id":2,"item_name":"method","provided":false}},"body":{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":18,"col":4},"end":{"line":20,"col":5}},"generated_from_span":null},"arg_count":0,"locals":[{"index":0,"name":null,"ty":{"Adt":[{"Adt":0},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}}],"body":{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":18,"col":4},"end":{"line":20,"col":5}},"generated_from_span":null},"content":{"Sequence":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":18,"col":4},"end":{"line":20,"col":5}},"generated_from_span":null},"content":{"Assign":[{"var_id":0,"projection":[]},{"Aggregate":[{"Adt":[{"Adt":0},0,{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]},[{"Const":{"value":{"Literal":{"Scalar":{"U32":"42"}}},"ty":{"Literal":{"Integer":"U32"}}}}]]}]}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":18,"col":4},"end":{"line":20,"col":5}},"generated_from_span":null},"content":"Return"}]}}}},{"def_id":2,"item_meta":{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":27,"col":9}},"generated_from_span":null},"attributes":[],"inline":null,"public":false},"is_local":true,"name":[{"Ident":["example",0]},{"Ident":["main",0]}],"signature":{"is_unsafe":false,"is_closure":false,"closure_info":null,"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"parent_params_info":null,"inputs":[],"output":{"Adt":["Tuple",{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}},"kind":"Regular","body":{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"arg_count":0,"locals":[{"index":0,"name":null,"ty":{"Adt":["Tuple",{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}},{"index":1,"name":"foo","ty":{"Adt":[{"Adt":0},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}},{"index":2,"name":null,"ty":{"Adt":[{"Adt":1},{"regions":[],"types":[{"Adt":[{"Adt":0},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}],"const_generics":[],"trait_refs":[]}]}},{"index":3,"name":null,"ty":{"Adt":[{"Adt":0},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}},{"index":4,"name":null,"ty":{"Adt":["Tuple",{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}}],"body":{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Sequence":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Call":{"func":{"Regular":{"func":{"Trait":[{"trait_id":{"TraitImpl":2},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"trait_decl_ref":{"trait_id":2,"generics":{"regions":[],"types":[{"Adt":[{"Adt":0},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}],"const_generics":[],"trait_refs":[]}}},"method",3]},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}}},"args":[],"dest":{"var_id":1,"projection":[]}}}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Sequence":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"FakeRead":{"var_id":1,"projection":[]}}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Sequence":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":28,"col":4},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Assign":[{"var_id":3,"projection":[]},{"Use":{"Copy":{"var_id":1,"projection":[]}}}]}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Sequence":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":28,"col":4},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Assign":[{"var_id":2,"projection":[]},{"Aggregate":[{"Adt":[{"Adt":1},1,{"regions":[],"types":[{"Adt":[{"Adt":0},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}],"const_generics":[],"trait_refs":[]}]},[{"Move":{"var_id":3,"projection":[]}}]]}]}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Sequence":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":28,"col":4},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Drop":{"var_id":3,"projection":[]}}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Sequence":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":28,"col":4},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"FakeRead":{"var_id":2,"projection":[]}}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Sequence":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Switch":{"Match":[{"var_id":2,"projection":[]},[[[1],{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Switch":{"Match":[{"var_id":2,"projection":[{"Field":[{"ProjAdt":[1,1]},0]}]},[[[1],{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Switch":{"If":[{"Copy":{"var_id":2,"projection":[{"Field":[{"ProjAdt":[1,1]},0]},{"Field":[{"ProjAdt":[0,1]},0]}]}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Sequence":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":28,"col":4},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Assign":[{"var_id":4,"projection":[]},{"Aggregate":[{"Adt":["Tuple",null,{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]},[]]}]}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Sequence":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":28,"col":4},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Assign":[{"var_id":0,"projection":[]},{"Use":{"Move":{"var_id":4,"projection":[]}}}]}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Sequence":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Drop":{"var_id":1,"projection":[]}}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Sequence":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Drop":{"var_id":2,"projection":[]}}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Sequence":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"content":{"Assign":[{"var_id":0,"projection":[]},{"Aggregate":[{"Adt":["Tuple",null,{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]},[]]}]}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":27,"col":0},"end":{"line":33,"col":1}},"generated_from_span":null},"content":"Return"}]}}]}}]}}]}}]}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":28,"col":4},"end":{"line":33,"col":1}},"generated_from_span":null},"content":"Nop"}]}}}]],{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":28,"col":4},"end":{"line":33,"col":1}},"generated_from_span":null},"content":"Nop"}]}}}]],{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":28,"col":4},"end":{"line":33,"col":1}},"generated_from_span":null},"content":"Nop"}]}}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":28,"col":4},"end":{"line":33,"col":1}},"generated_from_span":null},"content":"Panic"}]}}]}}]}}]}}]}}]}}]}}}},{"def_id":3,"item_meta":{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":13,"col":4},"end":{"line":13,"col":24}},"generated_from_span":null},"attributes":[],"inline":null,"public":false},"is_local":true,"name":[{"Ident":["example",0]},{"Ident":["Trait",0]},{"Ident":["method",0]}],"signature":{"is_unsafe":false,"is_closure":false,"closure_info":null,"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"parent_params_info":{"num_region_params":0,"num_type_params":1,"num_const_generic_params":0,"num_trait_clauses":0,"num_regions_outlive":0,"num_types_outlive":0,"num_trait_type_constraints":0},"inputs":[],"output":{"TypeVar":0}},"kind":{"TraitItemDecl":[2,"method"]},"body":null},{"def_id":4,"item_meta":{"meta":{"span":{"file_id":{"VirtualId":0},"beg":{"line":120,"col":4},"end":{"line":120,"col":28}},"generated_from_span":null},"attributes":[],"inline":null,"public":true},"is_local":false,"name":[{"Ident":["core",0]},{"Ident":["clone",0]},{"Ident":["Clone",0]},{"Ident":["clone",0]}],"signature":{"is_unsafe":false,"is_closure":false,"closure_info":null,"generics":{"regions":[{"index":0,"name":null}],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"parent_params_info":{"num_region_params":0,"num_type_params":1,"num_const_generic_params":0,"num_trait_clauses":0,"num_regions_outlive":0,"num_types_outlive":0,"num_trait_type_constraints":0},"inputs":[{"Ref":[{"BVar":[0,0]},{"TypeVar":0},"Shared"]}],"output":{"TypeVar":0}},"kind":{"TraitItemDecl":[1,"clone"]},"body":null},{"def_id":5,"item_meta":{"meta":{"span":{"file_id":{"VirtualId":1},"beg":{"line":133,"col":4},"end":{"line":133,"col":25}},"generated_from_span":null},"attributes":[],"inline":null,"public":true},"is_local":false,"name":[{"Ident":["core",0]},{"Ident":["default",0]},{"Ident":["Default",0]},{"Ident":["default",0]}],"signature":{"is_unsafe":false,"is_closure":false,"closure_info":null,"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"parent_params_info":{"num_region_params":0,"num_type_params":1,"num_const_generic_params":0,"num_trait_clauses":0,"num_regions_outlive":0,"num_types_outlive":0,"num_trait_type_constraints":0},"inputs":[],"output":{"TypeVar":0}},"kind":{"TraitItemDecl":[3,"default"]},"body":null},{"def_id":6,"item_meta":{"meta":{"span":{"file_id":{"VirtualId":3},"beg":{"line":2552,"col":4},"end":{"line":2552,"col":24}},"generated_from_span":null},"attributes":[],"inline":"Hint","public":true},"is_local":false,"name":[{"Ident":["core",0]},{"Ident":["str",0]},{"Impl":{"disambiguator":2,"generics":{"regions":[{"index":0,"name":null}],"types":[],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"kind":{"Trait":{"trait_id":3,"generics":{"regions":[],"types":[{"Ref":[{"BVar":[0,0]},{"Adt":[{"Assumed":"Str"},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]},"Shared"]}],"const_generics":[],"trait_refs":[]}}}}},{"Ident":["default",0]}],"signature":{"is_unsafe":false,"is_closure":false,"closure_info":null,"generics":{"regions":[{"index":0,"name":null}],"types":[],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"parent_params_info":{"num_region_params":1,"num_type_params":0,"num_const_generic_params":0,"num_trait_clauses":0,"num_regions_outlive":0,"num_types_outlive":0,"num_trait_type_constraints":0},"inputs":[],"output":{"Ref":[{"BVar":[0,0]},{"Adt":[{"Assumed":"Str"},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]},"Shared"]}},"kind":{"TraitItemImpl":{"impl_id":3,"trait_id":3,"item_name":"default","provided":false}},"body":null}],"globals":[{"def_id":0,"item_meta":{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":23,"col":0},"end":{"line":23,"col":18}},"generated_from_span":null},"attributes":[],"inline":null,"public":false},"is_local":true,"name":[{"Ident":["example",0]},{"Ident":["CONST",0]}],"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"ty":{"Literal":{"Integer":"Isize"}},"kind":"Regular","body":{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":23,"col":0},"end":{"line":23,"col":25}},"generated_from_span":null},"arg_count":0,"locals":[{"index":0,"name":null,"ty":{"Literal":{"Integer":"Isize"}}}],"body":{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":23,"col":0},"end":{"line":23,"col":25}},"generated_from_span":null},"content":{"Sequence":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":23,"col":0},"end":{"line":23,"col":25}},"generated_from_span":null},"content":{"Assign":[{"var_id":0,"projection":[]},{"Use":{"Const":{"value":{"Literal":{"Scalar":{"Isize":"128"}}},"ty":{"Literal":{"Integer":"Isize"}}}}}]}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":23,"col":0},"end":{"line":23,"col":25}},"generated_from_span":null},"content":"Return"}]}}}},{"def_id":1,"item_meta":{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":25,"col":0},"end":{"line":25,"col":28}},"generated_from_span":null},"attributes":[],"inline":null,"public":false},"is_local":true,"name":[{"Ident":["example",0]},{"Ident":["STATIC",0]}],"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"ty":{"Ref":["Static",{"Literal":"Bool"},"Shared"]},"kind":"Regular","body":{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":25,"col":0},"end":{"line":25,"col":38}},"generated_from_span":null},"arg_count":0,"locals":[{"index":0,"name":null,"ty":{"Ref":["Erased",{"Literal":"Bool"},"Shared"]}},{"index":1,"name":null,"ty":{"Ref":["Erased",{"Literal":"Bool"},"Shared"]}},{"index":2,"name":null,"ty":{"Literal":"Bool"}}],"body":{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":25,"col":0},"end":{"line":25,"col":38}},"generated_from_span":null},"content":{"Sequence":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":25,"col":0},"end":{"line":25,"col":38}},"generated_from_span":null},"content":{"Assign":[{"var_id":2,"projection":[]},{"Use":{"Const":{"value":{"Literal":{"Bool":false}},"ty":{"Literal":"Bool"}}}}]}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":25,"col":0},"end":{"line":25,"col":38}},"generated_from_span":null},"content":{"Sequence":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":25,"col":0},"end":{"line":25,"col":38}},"generated_from_span":null},"content":{"Assign":[{"var_id":1,"projection":[]},{"Ref":[{"var_id":2,"projection":[]},"Shared"]}]}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":25,"col":0},"end":{"line":25,"col":38}},"generated_from_span":null},"content":{"Sequence":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":25,"col":0},"end":{"line":25,"col":38}},"generated_from_span":null},"content":{"Assign":[{"var_id":0,"projection":[]},{"Ref":[{"var_id":1,"projection":["Deref"]},"Shared"]}]}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":25,"col":0},"end":{"line":25,"col":38}},"generated_from_span":null},"content":{"Sequence":[{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":25,"col":0},"end":{"line":25,"col":38}},"generated_from_span":null},"content":{"Drop":{"var_id":1,"projection":[]}}},{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":25,"col":0},"end":{"line":25,"col":38}},"generated_from_span":null},"content":"Return"}]}}]}}]}}]}}}}],"trait_decls":[{"def_id":0,"is_local":false,"item_meta":{"meta":{"span":{"file_id":{"VirtualId":2},"beg":{"line":465,"col":0},"end":{"line":465,"col":21}},"generated_from_span":null},"attributes":[],"inline":null,"public":true},"name":[{"Ident":["core",0]},{"Ident":["marker",0]},{"Ident":["Copy",0]}],"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"parent_clauses":[{"clause_id":0,"meta":{"span":{"file_id":{"VirtualId":2},"beg":{"line":465,"col":16},"end":{"line":465,"col":21}},"generated_from_span":null},"trait_id":1,"generics":{"regions":[],"types":[{"TypeVar":0}],"const_generics":[],"trait_refs":[]}}],"consts":[],"types":[],"required_methods":[],"provided_methods":[]},{"def_id":1,"is_local":false,"item_meta":{"meta":{"span":{"file_id":{"VirtualId":0},"beg":{"line":107,"col":0},"end":{"line":107,"col":22}},"generated_from_span":null},"attributes":[],"inline":null,"public":true},"name":[{"Ident":["core",0]},{"Ident":["clone",0]},{"Ident":["Clone",0]}],"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"parent_clauses":[],"consts":[],"types":[],"required_methods":[["clone",4]],"provided_methods":[["clone_from",null]]},{"def_id":2,"is_local":true,"item_meta":{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":11,"col":0},"end":{"line":11,"col":17}},"generated_from_span":null},"attributes":[],"inline":null,"public":false},"name":[{"Ident":["example",0]},{"Ident":["Trait",0]}],"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"parent_clauses":[{"clause_id":0,"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":11,"col":13},"end":{"line":11,"col":17}},"generated_from_span":null},"trait_id":0,"generics":{"regions":[],"types":[{"TypeVar":0}],"const_generics":[],"trait_refs":[]}}],"consts":[],"types":[["AssocType",[[{"clause_id":0,"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":1,"col":0},"end":{"line":1,"col":0}},"generated_from_span":null},"trait_id":3,"generics":{"regions":[],"types":[{"TraitType":[{"trait_id":"SelfId","generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"trait_decl_ref":{"trait_id":2,"generics":{"regions":[],"types":[{"TypeVar":0}],"const_generics":[],"trait_refs":[]}}},"AssocType"]}],"const_generics":[],"trait_refs":[]}}],null]]],"required_methods":[["method",3]],"provided_methods":[]},{"def_id":3,"is_local":false,"item_meta":{"meta":{"span":{"file_id":{"VirtualId":1},"beg":{"line":102,"col":0},"end":{"line":102,"col":24}},"generated_from_span":null},"attributes":[],"inline":null,"public":true},"name":[{"Ident":["core",0]},{"Ident":["default",0]},{"Ident":["Default",0]}],"generics":{"regions":[],"types":[{"index":0,"name":"Self"}],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"parent_clauses":[],"consts":[],"types":[],"required_methods":[["default",5]],"provided_methods":[]}],"trait_impls":[{"def_id":0,"is_local":true,"name":[{"Ident":["example",0]},{"Impl":{"disambiguator":1,"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"kind":{"Trait":{"trait_id":0,"generics":{"regions":[],"types":[{"Adt":[{"Adt":0},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}],"const_generics":[],"trait_refs":[]}}}}}],"item_meta":{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":3,"col":9},"end":{"line":3,"col":13}},"generated_from_span":null},"attributes":["automatically_derived"],"inline":null,"public":false},"impl_trait":{"trait_id":0,"generics":{"regions":[],"types":[{"Adt":[{"Adt":0},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"parent_trait_refs":[{"trait_id":{"TraitImpl":1},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"trait_decl_ref":{"trait_id":1,"generics":{"regions":[],"types":[{"Adt":[{"Adt":0},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}],"const_generics":[],"trait_refs":[]}}}],"consts":[],"types":[],"required_methods":[],"provided_methods":[]},{"def_id":1,"is_local":true,"name":[{"Ident":["example",0]},{"Impl":{"disambiguator":2,"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"kind":{"Trait":{"trait_id":1,"generics":{"regions":[],"types":[{"Adt":[{"Adt":0},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}],"const_generics":[],"trait_refs":[]}}}}}],"item_meta":{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":3,"col":15},"end":{"line":3,"col":20}},"generated_from_span":null},"attributes":["automatically_derived"],"inline":null,"public":false},"impl_trait":{"trait_id":1,"generics":{"regions":[],"types":[{"Adt":[{"Adt":0},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"parent_trait_refs":[],"consts":[],"types":[],"required_methods":[["clone",0]],"provided_methods":[]},{"def_id":2,"is_local":true,"name":[{"Ident":["example",0]},{"Impl":{"disambiguator":0,"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"kind":{"Trait":{"trait_id":2,"generics":{"regions":[],"types":[{"Adt":[{"Adt":0},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}],"const_generics":[],"trait_refs":[]}}}}}],"item_meta":{"meta":{"span":{"file_id":{"LocalId":0},"beg":{"line":16,"col":0},"end":{"line":16,"col":18}},"generated_from_span":null},"attributes":[],"inline":null,"public":false},"impl_trait":{"trait_id":2,"generics":{"regions":[],"types":[{"Adt":[{"Adt":0},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[],"types":[],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"parent_trait_refs":[{"trait_id":{"TraitImpl":0},"generics":{"regions":[],"types":[],"const_generics":[],"trait_refs":[]},"trait_decl_ref":{"trait_id":0,"generics":{"regions":[],"types":[{"Adt":[{"Adt":0},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]}],"const_generics":[],"trait_refs":[]}}}],"consts":[],"types":[["AssocType",[[{"trait_id":{"TraitImpl":3},"generics":{"regions":["Erased"],"types":[],"const_generics":[],"trait_refs":[]},"trait_decl_ref":{"trait_id":3,"generics":{"regions":[],"types":[{"Ref":["Erased",{"Adt":[{"Assumed":"Str"},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]},"Shared"]}],"const_generics":[],"trait_refs":[]}}}],{"Ref":["Static",{"Adt":[{"Assumed":"Str"},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]},"Shared"]}]]],"required_methods":[["method",1]],"provided_methods":[]},{"def_id":3,"is_local":false,"name":[{"Ident":["core",0]},{"Ident":["str",0]},{"Impl":{"disambiguator":2,"generics":{"regions":[{"index":0,"name":null}],"types":[],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"kind":{"Trait":{"trait_id":3,"generics":{"regions":[],"types":[{"Ref":[{"BVar":[0,0]},{"Adt":[{"Assumed":"Str"},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]},"Shared"]}],"const_generics":[],"trait_refs":[]}}}}}],"item_meta":{"meta":{"span":{"file_id":{"VirtualId":3},"beg":{"line":2549,"col":0},"end":{"line":2549,"col":21}},"generated_from_span":null},"attributes":[],"inline":null,"public":false},"impl_trait":{"trait_id":3,"generics":{"regions":[],"types":[{"Ref":[{"BVar":[0,0]},{"Adt":[{"Assumed":"Str"},{"regions":[],"types":[],"const_generics":[],"trait_refs":[]}]},"Shared"]}],"const_generics":[],"trait_refs":[]}},"generics":{"regions":[{"index":0,"name":null}],"types":[],"const_generics":[],"trait_clauses":[]},"preds":{"regions_outlive":[],"types_outlive":[],"trait_type_constraints":[]},"parent_trait_refs":[],"consts":[],"types":[],"required_methods":[["default",6]],"provided_methods":[]}]} \ No newline at end of file diff --git a/flake.nix b/flake.nix index db0ef9061..7b38ebb38 100644 --- a/flake.nix +++ b/flake.nix @@ -90,7 +90,7 @@ > $out ''; # The rustc commit we use to get the tests. This should stay equal to `toolchain_commit`. - tests_commit = "5ea66686467d3ec5f8c81570e7f0f16ad8dd8cc3"; + tests_commit = "ad963232d9b987d66a6f8e6ec4141f672b8b9900"; rustc_tests = pkgs.runCommand "rustc-tests" { src = pkgs.fetchFromGitHub { diff --git a/rust-toolchain b/rust-toolchain index 771815656..3f5842bf6 100644 --- a/rust-toolchain +++ b/rust-toolchain @@ -1,3 +1,3 @@ [toolchain] -channel = "nightly-2023-06-28" +channel = "nightly-2023-07-15" components = [ "rustc-dev", "llvm-tools-preview" ] diff --git a/tests/src/betree/Cargo.lock b/tests/src/betree/Cargo.lock index 397128dcd..1bd274ada 100644 --- a/tests/src/betree/Cargo.lock +++ b/tests/src/betree/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "aho-corasick" -version = "1.0.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" dependencies = [ "memchr", ] @@ -32,12 +32,6 @@ dependencies = [ "serde_json", ] -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - [[package]] name = "env_logger" version = "0.8.4" @@ -68,54 +62,51 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "itoa" -version = "1.0.5" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "libc" -version = "0.2.147" +version = "0.2.155" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" +checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" [[package]] name = "log" -version = "0.4.17" +version = "0.4.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" -dependencies = [ - "cfg-if", -] +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" [[package]] name = "memchr" -version = "2.5.0" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" [[package]] name = "proc-macro2" -version = "1.0.49" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57a8eca9f9c4ffde41714334dee777596264c7825420f521abc92b5b5deb63a5" +checksum = "0b33eb56c327dec362a9e55b3ad14f9d2f0904fb5a5b03b513ab5465399e9f43" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.23" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] [[package]] name = "regex" -version = "1.9.1" +version = "1.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575" +checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" dependencies = [ "aho-corasick", "memchr", @@ -125,9 +116,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.3.2" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83d3daa6976cffb758ec878f108ba0e062a45b2d6ca3a2cca965338855476caf" +checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" dependencies = [ "aho-corasick", "memchr", @@ -136,30 +127,30 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.7.4" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2" +checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" [[package]] name = "ryu" -version = "1.0.12" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" [[package]] name = "serde" -version = "1.0.152" +version = "1.0.202" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb" +checksum = "226b61a0d411b2ba5ff6d7f73a476ac4f8bb900373459cd00fab8512828ba395" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.152" +version = "1.0.202" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e" +checksum = "6048858004bcff69094cd972ed40a32500f153bd3be9f716b2eed2e8217c4838" dependencies = [ "proc-macro2", "quote", @@ -168,9 +159,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.91" +version = "1.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877c235533714907a8c2464236f5c4b2a17262ef1bd71f38f35ea592c8da6883" +checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" dependencies = [ "itoa", "ryu", @@ -179,9 +170,9 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.107" +version = "2.0.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5" +checksum = "d2863d96a84c6439701d7a38f9de935ec562c8832cc55d1dde0f513b52fad106" dependencies = [ "proc-macro2", "quote", @@ -190,18 +181,18 @@ dependencies = [ [[package]] name = "termcolor" -version = "1.2.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" dependencies = [ "winapi-util", ] [[package]] name = "unicode-ident" -version = "1.0.6" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "winapi" @@ -221,11 +212,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.5" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" dependencies = [ - "winapi", + "windows-sys", ] [[package]] @@ -233,3 +224,76 @@ name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-targets" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_gnullvm", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"