From 139cfb381002193c2730523b8cb620b5d010e77c Mon Sep 17 00:00:00 2001 From: ssyram Date: Wed, 3 Sep 2025 15:21:14 +0800 Subject: [PATCH 01/12] registration template --- .../translate/translate_bodies.rs | 29 +++++++++++++++---- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/charon/src/bin/charon-driver/translate/translate_bodies.rs b/charon/src/bin/charon-driver/translate/translate_bodies.rs index 16e30359b..45c4eeb45 100644 --- a/charon/src/bin/charon-driver/translate/translate_bodies.rs +++ b/charon/src/bin/charon-driver/translate/translate_bodies.rs @@ -512,11 +512,30 @@ impl BodyTransCtx<'_, '_, '_> { ), ); } - // TODO(dyn): more ways of registering vtable instance? - _ => { - trace!( - "impl_expr not triggering registering vtable: {:?}", - impl_expr + hax::ImplExprAtom::Builtin { .. } => { + // Handle built-in implementations, including closures + todo!("HANDLE BUILT-IN IMPL VTABLE REGISTRATION") + } + hax::ImplExprAtom::LocalBound { .. } => { + // No need to register anything here as there is no concrete impl + // This results in that: the vtable instance in generic case might not exist + // But this case should not happen in the monomorphized case + if self.monomorphize() { + raise_error!( + self.i_ctx, + span, + "Unexpected `LocalBound` in monomorphized context" + ) + } + } + hax::ImplExprAtom::Dyn | hax::ImplExprAtom::Error(..) => { + // No need to register anything for these cases + } + hax::ImplExprAtom::SelfImpl { .. } => { + raise_error!( + self.i_ctx, + span, + "`SelfImpl` should not appear in the function body" ) } }; From e6224581e0ac611c3b600e6bf50113bffbe775bf Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 3 Sep 2025 08:01:30 +0000 Subject: [PATCH 02/12] Initial plan From bdeccc47c8e963144ea923970fe1f5ea240b964e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 3 Sep 2025 08:11:08 +0000 Subject: [PATCH 03/12] Implement Phase 1: Add closure vtable registration in translate_bodies.rs Co-authored-by: ssyram <23273765+ssyram@users.noreply.github.com> --- .../translate/translate_bodies.rs | 31 ++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/charon/src/bin/charon-driver/translate/translate_bodies.rs b/charon/src/bin/charon-driver/translate/translate_bodies.rs index 45c4eeb45..98067862d 100644 --- a/charon/src/bin/charon-driver/translate/translate_bodies.rs +++ b/charon/src/bin/charon-driver/translate/translate_bodies.rs @@ -514,7 +514,36 @@ impl BodyTransCtx<'_, '_, '_> { } hax::ImplExprAtom::Builtin { .. } => { // Handle built-in implementations, including closures - todo!("HANDLE BUILT-IN IMPL VTABLE REGISTRATION") + let tref = &impl_expr.r#trait; + let hax_state = self.hax_state_with_id(); + let trait_def = self.hax_def( + &tref.hax_skip_binder_ref().erase(&hax_state) + )?; + let closure_kind = trait_def.lang_item.as_deref().and_then(|lang| match lang { + "fn_once" => Some(ClosureKind::FnOnce), + "fn_mut" => Some(ClosureKind::FnMut), + "r#fn" => Some(ClosureKind::Fn), + _ => None, + }); + + // Check if this is a closure trait implementation + if let Some(closure_kind) = closure_kind + && let Some(hax::GenericArg::Type(closure_ty)) = impl_expr + .r#trait + .hax_skip_binder_ref() + .generic_args + .first() + && let hax::TyKind::Closure(closure_args) = closure_ty.kind() + { + // Register the closure vtable instance + let _: GlobalDeclId = self.register_item( + span, + &closure_args.item, + TransItemSourceKind::VTableInstance( + TraitImplSource::Closure(closure_kind), + ), + ); + } } hax::ImplExprAtom::LocalBound { .. } => { // No need to register anything here as there is no concrete impl From c39c011e2fd5ae048948f8ef2dee874eafcd0bbd Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 3 Sep 2025 08:16:50 +0000 Subject: [PATCH 04/12] Implement Phase 2: Add closure support in translate_trait_objects.rs Co-authored-by: ssyram <23273765+ssyram@users.noreply.github.com> --- .../translate/translate_trait_objects.rs | 164 ++++++++++++++++++ 1 file changed, 164 insertions(+) diff --git a/charon/src/bin/charon-driver/translate/translate_trait_objects.rs b/charon/src/bin/charon-driver/translate/translate_trait_objects.rs index f2e915fd9..101c29b3c 100644 --- a/charon/src/bin/charon-driver/translate/translate_trait_objects.rs +++ b/charon/src/bin/charon-driver/translate/translate_trait_objects.rs @@ -475,6 +475,25 @@ impl ItemTransCtx<'_, '_> { ) -> Result<(TraitImplRef, TraitDeclRef, TypeDeclRef), Error> { let implemented_trait = match impl_def.kind() { hax::FullDefKind::TraitImpl { trait_pred, .. } => &trait_pred.trait_ref, + hax::FullDefKind::Closure { + fn_once_impl, + fn_mut_impl, + fn_impl, + .. + } => { + // For closures, get the trait implementation based on the closure kind + let closure_trait_impl = match impl_kind { + TraitImplSource::Closure(ClosureKind::FnOnce) => fn_once_impl, + TraitImplSource::Closure(ClosureKind::FnMut) => { + fn_mut_impl.as_ref().expect("FnMut impl should exist") + } + TraitImplSource::Closure(ClosureKind::Fn) => { + fn_impl.as_ref().expect("Fn impl should exist") + } + _ => unreachable!("Expected closure trait impl source"), + }; + &closure_trait_impl.trait_pred.trait_ref + } _ => unreachable!(), }; let vtable_struct_ref = self @@ -797,6 +816,146 @@ impl ItemTransCtx<'_, '_> { })) } + fn gen_closure_vtable_instance_init_body( + &mut self, + span: Span, + impl_def: &hax::FullDef, + vtable_struct_ref: TypeDeclRef, + closure_kind: ClosureKind, + ) -> Result { + let mut locals = Locals { + arg_count: 0, + locals: Vector::new(), + }; + let ret_ty = Ty::new(TyKind::Adt(vtable_struct_ref.clone())); + let ret_place = locals.new_var(Some("ret".into()), ret_ty.clone()); + + let hax::FullDefKind::Closure { + fn_once_impl, + fn_mut_impl, + fn_impl, + .. + } = impl_def.kind() + else { + unreachable!() + }; + + // Get the appropriate trait implementation for this closure kind + let trait_impl = match closure_kind { + ClosureKind::FnOnce => fn_once_impl, + ClosureKind::FnMut => fn_mut_impl.as_ref().expect("FnMut impl should exist"), + ClosureKind::Fn => fn_impl.as_ref().expect("Fn impl should exist"), + }; + + let trait_ref = self.translate_trait_ref(span, &trait_impl.trait_pred.trait_ref)?; + let self_ty = trait_ref.generics.types[0].clone(); // This should be the closure type + + // Create a simplified dyn trait type (we'll use the closure type as self for now) + let dyn_self = self_ty.clone(); // For closures, we use the closure type itself + + // Retreive the expected field types from the struct definition. This avoids complicated + // substitutions. + let field_tys = { + let vtable_decl_id = vtable_struct_ref.id.as_adt().unwrap().clone(); + let AnyTransItem::Type(vtable_def) = + self.t_ctx.get_or_translate(vtable_decl_id.into())? + else { + unreachable!() + }; + let TypeDeclKind::Struct(fields) = &vtable_def.kind else { + unreachable!() + }; + fields + .iter() + .map(|f| &f.ty) + .cloned() + .map(|ty| ty.substitute(&vtable_struct_ref.generics)) + .collect_vec() + }; + + let mut statements = vec![]; + let mut aggregate_fields = vec![]; + // For each vtable field, assign the desired value to a new local. + let mut field_ty_iter = field_tys.into_iter(); + let mut next_ty = || field_ty_iter.next().unwrap(); + let mut mk_field = |kind, ty| { + aggregate_fields.push(Operand::Const(Box::new(ConstantExpr { value: kind, ty }))); + }; + + // Add the standard vtable metadata fields (size, align, drop) + mk_field( + RawConstantExpr::Opaque("closure size".to_string()), + next_ty(), + ); + mk_field( + RawConstantExpr::Opaque("closure align".to_string()), + next_ty(), + ); + mk_field( + RawConstantExpr::Opaque("closure drop".to_string()), + next_ty(), + ); + + // Add the closure method (call, call_mut, or call_once) + let closure_method_shim = self.generate_closure_method_shim( + span, + impl_def, + &self_ty, + &dyn_self, + closure_kind, + )?; + mk_field(closure_method_shim, next_ty()); + + // Create the aggregate for the vtable struct + let ret_rvalue = Rvalue::Aggregate( + AggregateKind::Adt(vtable_struct_ref.clone(), None, None), + aggregate_fields, + ); + statements.push(Statement::new( + span, + RawStatement::Assign(ret_place.clone(), ret_rvalue), + )); + + let block = BlockData { + statements, + terminator: Terminator { + span, + content: RawTerminator::Return, + comments_before: Vec::new(), + }, + }; + + Ok(Body::Unstructured(GExprBody { + span, + locals, + comments: Vec::new(), + body: [block].into(), + })) + } + + fn generate_closure_method_shim( + &mut self, + span: Span, + impl_def: &hax::FullDef, + self_ty: &Ty, + dyn_self: &Ty, + _closure_kind: ClosureKind, + ) -> Result { + // Register the closure method shim + let shim_id: FunDeclId = self.register_item( + span, + impl_def.this(), + TransItemSourceKind::VTableMethod(self_ty.clone(), dyn_self.clone()), + ); + + // Create function pointer to the shim + let fn_ptr = FnPtr { + func: Box::new(shim_id.into()), + generics: Box::new(GenericArgs::empty()), // TODO: Handle generics properly + }; + Ok(RawConstantExpr::FnPtr(fn_ptr)) + } + fn check_concretization_ty_match( &self, span: Span, @@ -886,6 +1045,11 @@ impl ItemTransCtx<'_, '_> { let body = self.gen_vtable_instance_init_body(span, impl_def, vtable_struct_ref)?; Ok(body) } + TraitImplSource::Closure(closure_kind) => { + // For closures, we need to generate the vtable init body differently + let body = self.gen_closure_vtable_instance_init_body(span, impl_def, vtable_struct_ref, *closure_kind)?; + Ok(body) + } _ => { raise_error!( self, From 4f6707bd97301ffa260cc220e5bf954b863b5656 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 3 Sep 2025 08:19:42 +0000 Subject: [PATCH 05/12] WIP Phase 3: Simplify closure vtable generation to avoid type resolution issues Co-authored-by: ssyram <23273765+ssyram@users.noreply.github.com> --- .../translate/translate_trait_objects.rs | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/charon/src/bin/charon-driver/translate/translate_trait_objects.rs b/charon/src/bin/charon-driver/translate/translate_trait_objects.rs index 101c29b3c..6509aaf11 100644 --- a/charon/src/bin/charon-driver/translate/translate_trait_objects.rs +++ b/charon/src/bin/charon-driver/translate/translate_trait_objects.rs @@ -892,19 +892,16 @@ impl ItemTransCtx<'_, '_> { next_ty(), ); mk_field( - RawConstantExpr::Opaque("closure drop".to_string()), + RawConstantExpr::Opaque("closure drop - no-op".to_string()), next_ty(), ); // Add the closure method (call, call_mut, or call_once) - let closure_method_shim = self.generate_closure_method_shim( - span, - impl_def, - &self_ty, - &dyn_self, - closure_kind, - )?; - mk_field(closure_method_shim, next_ty()); + // For now, use a placeholder - we'll improve this later + mk_field( + RawConstantExpr::Opaque(format!("closure {} method", closure_kind.method_name())), + next_ty(), + ); // Create the aggregate for the vtable struct let ret_rvalue = Rvalue::Aggregate( From 7b4253973254c25ea0ba22e973c5cf71ae5e74b9 Mon Sep 17 00:00:00 2001 From: ssyram Date: Wed, 3 Sep 2025 20:44:55 +0800 Subject: [PATCH 06/12] fixed panick from double translation --- .../translate/translate_items.rs | 4 ++++ .../tests/ui/monomorphization/dyn-trait.out | 2 +- .../unsatisfied-method-bounds.out | 6 ++--- charon/tests/ui/simple/dyn-fn.out | 23 +++++++++++++++++++ 4 files changed, 31 insertions(+), 4 deletions(-) diff --git a/charon/src/bin/charon-driver/translate/translate_items.rs b/charon/src/bin/charon-driver/translate/translate_items.rs index f6d2c70a5..43442b471 100644 --- a/charon/src/bin/charon-driver/translate/translate_items.rs +++ b/charon/src/bin/charon-driver/translate/translate_items.rs @@ -190,6 +190,10 @@ impl<'tcx, 'ctx> TranslateCtx<'tcx> { let span = self.def_span(item_source.def_id()); raise_error!(self, span, "Failed to translate item {id:?}.") } + // This prevents re-translating of the same item in the usual queue processing loop. + // If this is not present, if the function is called before the usual processing loop, + // `processed` does not record the item as processed, and we end up translating it again. + self.processed.insert(item_source); } let item = self.translated.get_item(id); Ok(item.unwrap()) diff --git a/charon/tests/ui/monomorphization/dyn-trait.out b/charon/tests/ui/monomorphization/dyn-trait.out index 7ca3196c9..3b5a9729c 100644 --- a/charon/tests/ui/monomorphization/dyn-trait.out +++ b/charon/tests/ui/monomorphization/dyn-trait.out @@ -124,7 +124,7 @@ note: the error occurred when translating `core::marker::MetaSized::, bound_vars: [] }` in the current context: `Unimplemented` - --> /Users/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/drop.rs:208:1 + --> /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/drop.rs:208:1 | 208 | pub trait Drop { | ^^^^^^^^^^^^^^ @@ -67,7 +67,7 @@ warning[E9999]: Could not find a clause for `Binder { value: , bound_vars: [] }` in the current context: `Unimplemented` - --> /Users/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/drop.rs:241:5 + --> /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/drop.rs:241:5 | 241 | fn drop(&mut self); | ^^^^^^^^^^^^^^^^^^^ @@ -77,7 +77,7 @@ warning[E9999]: Could not find a clause for `Binder { value: , bound_vars: [] }` in the current context: `Unimplemented` - --> /Users/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-apple-darwin/lib/rustlib/src/rust/library/core/src/marker.rs:179:1 + --> /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/marker.rs:179:1 | 179 | pub trait MetaSized: PointeeSized { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/charon/tests/ui/simple/dyn-fn.out b/charon/tests/ui/simple/dyn-fn.out index 36fa4fe0e..f593f307d 100644 --- a/charon/tests/ui/simple/dyn-fn.out +++ b/charon/tests/ui/simple/dyn-fn.out @@ -249,5 +249,28 @@ fn gives_fn() return } +fn {{impl Fn<(&'_ mut (u32))> for closure}}::{vtable}::{drop_method}<'_0, '_1>(@1: &'_0 mut ((dyn exists<_dyn> [@TraitClause0]: Fn<_dyn, (&'_ mut (u32))> + _dyn : '_ + @TraitClause1_0::parent_clause1::parent_clause1::Output = bool))) +{ + let ret@0: (); // return + let self@1: &'_0 mut ((dyn exists<_dyn> [@TraitClause0]: Fn<_dyn, (&'_ mut (u32))> + _dyn : '_ + @TraitClause1_0::parent_clause1::parent_clause1::Output = bool)); // arg #1 + let concrete@2: &'_0 mut (closure); // local + + storage_live(concrete@2) + concrete@2 := concretize<&'_0 mut ((dyn exists<_dyn> [@TraitClause0]: Fn<_dyn, (&'_ mut (u32))> + _dyn : '_ + @TraitClause1_0::parent_clause1::parent_clause1::Output = bool)), &'_0 mut (closure)>(move (self@1)) + panic +} + +// Full name: test_crate::gives_fn::{impl Fn<(&'_ mut (u32))> for closure}::{vtable} +fn {impl Fn<(&'_ mut (u32))> for closure}::{vtable}() -> core::ops::function::Fn::{vtable}<(&'_ mut (u32)), bool> +{ + let ret@0: core::ops::function::Fn::{vtable}<(&'_ mut (u32)), bool>; // return + + ret@0 := core::ops::function::Fn::{vtable} { size: const (0 : usize), align: const (1 : usize), drop: const ({{impl Fn<(&'_ mut (u32))> for closure}}::{vtable}::{drop_method}<'_, type_error("Unexpected error: could not find the type variable "), type_error("Unexpected error: could not find the type variable "), type_error("Unexpected error: could not find the type variable ")>), method_call: const (Opaque(closure call method)) } + return +} + +// Full name: test_crate::gives_fn::{impl Fn<(&'_ mut (u32))> for closure}::{vtable} +static {impl Fn<(&'_ mut (u32))> for closure}::{vtable}: core::ops::function::Fn::{vtable}<(&'_ mut (u32)), bool> = {impl Fn<(&'_ mut (u32))> for closure}::{vtable}() + From f10e71a6681cce053d56badc992e7124024bfd63 Mon Sep 17 00:00:00 2001 From: ssyram Date: Thu, 4 Sep 2025 16:12:50 +0800 Subject: [PATCH 07/12] format --- .../translate/translate_bodies.rs | 31 +++++++++++-------- .../translate/translate_trait_objects.rs | 9 ++++-- .../tests/ui/monomorphization/dyn-trait.out | 2 +- .../unsatisfied-method-bounds.out | 6 ++-- 4 files changed, 29 insertions(+), 19 deletions(-) diff --git a/charon/src/bin/charon-driver/translate/translate_bodies.rs b/charon/src/bin/charon-driver/translate/translate_bodies.rs index 98067862d..43dc011d1 100644 --- a/charon/src/bin/charon-driver/translate/translate_bodies.rs +++ b/charon/src/bin/charon-driver/translate/translate_bodies.rs @@ -517,23 +517,28 @@ impl BodyTransCtx<'_, '_, '_> { let tref = &impl_expr.r#trait; let hax_state = self.hax_state_with_id(); let trait_def = self.hax_def( - &tref.hax_skip_binder_ref().erase(&hax_state) + &tref.hax_skip_binder_ref().erase(&hax_state), )?; - let closure_kind = trait_def.lang_item.as_deref().and_then(|lang| match lang { - "fn_once" => Some(ClosureKind::FnOnce), - "fn_mut" => Some(ClosureKind::FnMut), - "r#fn" => Some(ClosureKind::Fn), - _ => None, - }); + let closure_kind = + trait_def.lang_item.as_deref().and_then(|lang| { + match lang { + "fn_once" => Some(ClosureKind::FnOnce), + "fn_mut" => Some(ClosureKind::FnMut), + "fn" | "r#fn" => Some(ClosureKind::Fn), + _ => None, + } + }); // Check if this is a closure trait implementation if let Some(closure_kind) = closure_kind - && let Some(hax::GenericArg::Type(closure_ty)) = impl_expr - .r#trait - .hax_skip_binder_ref() - .generic_args - .first() - && let hax::TyKind::Closure(closure_args) = closure_ty.kind() + && let Some(hax::GenericArg::Type(closure_ty)) = + impl_expr + .r#trait + .hax_skip_binder_ref() + .generic_args + .first() + && let hax::TyKind::Closure(closure_args) = + closure_ty.kind() { // Register the closure vtable instance let _: GlobalDeclId = self.register_item( diff --git a/charon/src/bin/charon-driver/translate/translate_trait_objects.rs b/charon/src/bin/charon-driver/translate/translate_trait_objects.rs index 6509aaf11..79eb72c51 100644 --- a/charon/src/bin/charon-driver/translate/translate_trait_objects.rs +++ b/charon/src/bin/charon-driver/translate/translate_trait_objects.rs @@ -892,7 +892,7 @@ impl ItemTransCtx<'_, '_> { next_ty(), ); mk_field( - RawConstantExpr::Opaque("closure drop - no-op".to_string()), + RawConstantExpr::Opaque("closure drop".to_string()), next_ty(), ); @@ -1044,7 +1044,12 @@ impl ItemTransCtx<'_, '_> { } TraitImplSource::Closure(closure_kind) => { // For closures, we need to generate the vtable init body differently - let body = self.gen_closure_vtable_instance_init_body(span, impl_def, vtable_struct_ref, *closure_kind)?; + let body = self.gen_closure_vtable_instance_init_body( + span, + impl_def, + vtable_struct_ref, + *closure_kind, + )?; Ok(body) } _ => { diff --git a/charon/tests/ui/monomorphization/dyn-trait.out b/charon/tests/ui/monomorphization/dyn-trait.out index 3b5a9729c..7ca3196c9 100644 --- a/charon/tests/ui/monomorphization/dyn-trait.out +++ b/charon/tests/ui/monomorphization/dyn-trait.out @@ -124,7 +124,7 @@ note: the error occurred when translating `core::marker::MetaSized::, bound_vars: [] }` in the current context: `Unimplemented` - --> /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/drop.rs:208:1 + --> /Users/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/drop.rs:208:1 | 208 | pub trait Drop { | ^^^^^^^^^^^^^^ @@ -67,7 +67,7 @@ warning[E9999]: Could not find a clause for `Binder { value: , bound_vars: [] }` in the current context: `Unimplemented` - --> /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/drop.rs:241:5 + --> /Users/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/drop.rs:241:5 | 241 | fn drop(&mut self); | ^^^^^^^^^^^^^^^^^^^ @@ -77,7 +77,7 @@ warning[E9999]: Could not find a clause for `Binder { value: , bound_vars: [] }` in the current context: `Unimplemented` - --> /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/marker.rs:179:1 + --> /Users/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-apple-darwin/lib/rustlib/src/rust/library/core/src/marker.rs:179:1 | 179 | pub trait MetaSized: PointeeSized { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ From 4f1e16712e7f6c8da65a3b9cdc0bc031d13ff9aa Mon Sep 17 00:00:00 2001 From: ssyram Date: Thu, 4 Sep 2025 18:08:19 +0800 Subject: [PATCH 08/12] partial debug --- .../translate/translate_bodies.rs | 6 +++++ .../translate/translate_trait_objects.rs | 26 ++++++++++++------- charon/tests/ui/simple/dyn-fn.out | 2 +- 3 files changed, 23 insertions(+), 11 deletions(-) diff --git a/charon/src/bin/charon-driver/translate/translate_bodies.rs b/charon/src/bin/charon-driver/translate/translate_bodies.rs index 43dc011d1..565c18514 100644 --- a/charon/src/bin/charon-driver/translate/translate_bodies.rs +++ b/charon/src/bin/charon-driver/translate/translate_bodies.rs @@ -548,6 +548,12 @@ impl BodyTransCtx<'_, '_, '_> { TraitImplSource::Closure(closure_kind), ), ); + } else { + raise_error!( + self.i_ctx, + span, + "Handle non-closure virtual trait implementations." + ); } } hax::ImplExprAtom::LocalBound { .. } => { diff --git a/charon/src/bin/charon-driver/translate/translate_trait_objects.rs b/charon/src/bin/charon-driver/translate/translate_trait_objects.rs index 79eb72c51..dce51e335 100644 --- a/charon/src/bin/charon-driver/translate/translate_trait_objects.rs +++ b/charon/src/bin/charon-driver/translate/translate_trait_objects.rs @@ -470,15 +470,19 @@ impl ItemTransCtx<'_, '_> { fn get_vtable_instance_info<'a>( &mut self, span: Span, - impl_def: &'a hax::FullDef, + def: &'a hax::FullDef, impl_kind: &TraitImplSource, ) -> Result<(TraitImplRef, TraitDeclRef, TypeDeclRef), Error> { - let implemented_trait = match impl_def.kind() { - hax::FullDefKind::TraitImpl { trait_pred, .. } => &trait_pred.trait_ref, + let (implemented_trait, impl_ref) = match def.kind() { + hax::FullDefKind::TraitImpl { trait_pred, .. } => ( + &trait_pred.trait_ref, + self.translate_item(span, def.this(), TransItemSourceKind::TraitImpl(*impl_kind))?, + ), hax::FullDefKind::Closure { fn_once_impl, fn_mut_impl, fn_impl, + args, .. } => { // For closures, get the trait implementation based on the closure kind @@ -492,7 +496,15 @@ impl ItemTransCtx<'_, '_> { } _ => unreachable!("Expected closure trait impl source"), }; - &closure_trait_impl.trait_pred.trait_ref + let target_kind = match impl_kind { + TraitImplSource::Closure(kind) => *kind, + _ => unreachable!(), + }; + ( + &closure_trait_impl.trait_pred.trait_ref, + self.translate_closure_bound_impl_ref(span, args, target_kind)? + .erase(), + ) } _ => unreachable!(), }; @@ -500,11 +512,6 @@ impl ItemTransCtx<'_, '_> { .translate_vtable_struct_ref(span, implemented_trait)? .expect("trait should be dyn-compatible"); let implemented_trait = self.translate_trait_decl_ref(span, implemented_trait)?; - let impl_ref = self.translate_item( - span, - impl_def.this(), - TransItemSourceKind::TraitImpl(*impl_kind), - )?; Ok((impl_ref, implemented_trait, vtable_struct_ref)) } @@ -749,7 +756,6 @@ impl ItemTransCtx<'_, '_> { aggregate_fields.push(Operand::Const(Box::new(ConstantExpr { value: kind, ty }))); }; - // TODO(dyn): provide values mk_field( RawConstantExpr::Opaque("unknown size".to_string()), next_ty(), diff --git a/charon/tests/ui/simple/dyn-fn.out b/charon/tests/ui/simple/dyn-fn.out index f593f307d..5f83d8996 100644 --- a/charon/tests/ui/simple/dyn-fn.out +++ b/charon/tests/ui/simple/dyn-fn.out @@ -265,7 +265,7 @@ fn {impl Fn<(&'_ mut (u32))> for closure}::{vtable}() -> core::ops::function::Fn { let ret@0: core::ops::function::Fn::{vtable}<(&'_ mut (u32)), bool>; // return - ret@0 := core::ops::function::Fn::{vtable} { size: const (0 : usize), align: const (1 : usize), drop: const ({{impl Fn<(&'_ mut (u32))> for closure}}::{vtable}::{drop_method}<'_, type_error("Unexpected error: could not find the type variable "), type_error("Unexpected error: could not find the type variable "), type_error("Unexpected error: could not find the type variable ")>), method_call: const (Opaque(closure call method)) } + ret@0 := core::ops::function::Fn::{vtable} { size: const (0 : usize), align: const (1 : usize), drop: const ({{impl Fn<(&'_ mut (u32))> for closure}}::{vtable}::{drop_method}<'_, '_>), method_call: const (Opaque(closure call method)) } return } From 679321e63d08266a9a457c3433e100883d1e1d2f Mon Sep 17 00:00:00 2001 From: ssyram Date: Fri, 5 Sep 2025 14:37:09 +0800 Subject: [PATCH 09/12] fixed ML issue Now all tests passed, but the methods & parent pointers are still placeholders to be generated. --- .../translate/translate_trait_objects.rs | 35 +++++++++++++++---- charon/tests/ui/simple/dyn-fn.out | 2 +- 2 files changed, 30 insertions(+), 7 deletions(-) diff --git a/charon/src/bin/charon-driver/translate/translate_trait_objects.rs b/charon/src/bin/charon-driver/translate/translate_trait_objects.rs index dce51e335..a0b7dc867 100644 --- a/charon/src/bin/charon-driver/translate/translate_trait_objects.rs +++ b/charon/src/bin/charon-driver/translate/translate_trait_objects.rs @@ -635,12 +635,30 @@ impl ItemTransCtx<'_, '_> { mut next_ty: impl FnMut() -> Ty, mut mk_field: impl FnMut(RawConstantExpr, Ty), ) -> Result<(), Error> { - let hax::FullDefKind::TraitImpl { - implied_impl_exprs, .. - } = impl_def.kind() - else { - unreachable!() + let implied_impl_exprs = match impl_def.kind() { + hax::FullDefKind::TraitImpl { + implied_impl_exprs, .. + } => implied_impl_exprs, + hax::FullDefKind::Closure { fn_once_impl, fn_mut_impl, fn_impl, .. } => { + match trait_def.lang_item { + Some("fn") | Some("r#fn") => &fn_impl.as_ref().unwrap().implied_impl_exprs, + Some("fn_once") => &fn_once_impl.as_ref().implied_impl_exprs, + Some("fn_mut") => &fn_mut_impl.as_ref().unwrap().implied_impl_exprs, + _ => unreachable!(), + } + }, + kind => raise_error!( + self, + span, + "TODO: Unknown type of impl full def: {kind:?}" + ), }; + // let hax::FullDefKind::TraitImpl { + // implied_impl_exprs, .. + // } = impl_def.kind() + // else { + // unreachable!() + // }; let hax::FullDefKind::Trait { implied_predicates, .. } = trait_def.kind() @@ -756,6 +774,7 @@ impl ItemTransCtx<'_, '_> { aggregate_fields.push(Operand::Const(Box::new(ConstantExpr { value: kind, ty }))); }; + // The metadata will be provided later in the `compute_vtable_metadata` pass mk_field( RawConstantExpr::Opaque("unknown size".to_string()), next_ty(), @@ -889,6 +908,7 @@ impl ItemTransCtx<'_, '_> { }; // Add the standard vtable metadata fields (size, align, drop) + // like usual instance, the value will be provided in a pass later mk_field( RawConstantExpr::Opaque("closure size".to_string()), next_ty(), @@ -905,10 +925,13 @@ impl ItemTransCtx<'_, '_> { // Add the closure method (call, call_mut, or call_once) // For now, use a placeholder - we'll improve this later mk_field( - RawConstantExpr::Opaque(format!("closure {} method", closure_kind.method_name())), + RawConstantExpr::Opaque(format!("closure exec {} method", closure_kind.method_name())), next_ty(), ); + let trait_def = self.hax_def(&trait_impl.trait_pred.trait_ref)?; + self.add_supertraits_to_vtable_value(span, &trait_def, impl_def, next_ty, mk_field)?; + // Create the aggregate for the vtable struct let ret_rvalue = Rvalue::Aggregate( AggregateKind::Adt(vtable_struct_ref.clone(), None, None), diff --git a/charon/tests/ui/simple/dyn-fn.out b/charon/tests/ui/simple/dyn-fn.out index 5f83d8996..027888566 100644 --- a/charon/tests/ui/simple/dyn-fn.out +++ b/charon/tests/ui/simple/dyn-fn.out @@ -265,7 +265,7 @@ fn {impl Fn<(&'_ mut (u32))> for closure}::{vtable}() -> core::ops::function::Fn { let ret@0: core::ops::function::Fn::{vtable}<(&'_ mut (u32)), bool>; // return - ret@0 := core::ops::function::Fn::{vtable} { size: const (0 : usize), align: const (1 : usize), drop: const ({{impl Fn<(&'_ mut (u32))> for closure}}::{vtable}::{drop_method}<'_, '_>), method_call: const (Opaque(closure call method)) } + ret@0 := core::ops::function::Fn::{vtable} { size: const (0 : usize), align: const (1 : usize), drop: const ({{impl Fn<(&'_ mut (u32))> for closure}}::{vtable}::{drop_method}<'_, '_>), method_call: const (Opaque(closure exec call method)), super_trait_0: const (Opaque(missing supertrait vtable)), super_trait_1: const (Opaque(missing supertrait vtable)) } return } From 64bd3c509d757fd1936b187d3def8e5debc1f470 Mon Sep 17 00:00:00 2001 From: ssyram Date: Fri, 5 Sep 2025 18:02:39 +0800 Subject: [PATCH 10/12] impl done --- .../translate/translate_closures.rs | 2 +- .../translate/translate_crate.rs | 2 +- .../translate/translate_items.rs | 4 +- .../translate/translate_trait_objects.rs | 95 ++++++++++++++++--- charon/tests/ui/simple/dyn-fn.out | 19 +++- 5 files changed, 103 insertions(+), 19 deletions(-) diff --git a/charon/src/bin/charon-driver/translate/translate_closures.rs b/charon/src/bin/charon-driver/translate/translate_closures.rs index fa0f1a01b..99ff68576 100644 --- a/charon/src/bin/charon-driver/translate/translate_closures.rs +++ b/charon/src/bin/charon-driver/translate/translate_closures.rs @@ -283,7 +283,7 @@ impl ItemTransCtx<'_, '_> { /// Given an item that is a closure, generate the signature of the /// `call_once`/`call_mut`/`call` method (depending on `target_kind`). - fn translate_closure_method_sig( + pub fn translate_closure_method_sig( &mut self, def: &hax::FullDef, span: Span, diff --git a/charon/src/bin/charon-driver/translate/translate_crate.rs b/charon/src/bin/charon-driver/translate/translate_crate.rs index 6ffcd2ddb..6e2b8701f 100644 --- a/charon/src/bin/charon-driver/translate/translate_crate.rs +++ b/charon/src/bin/charon-driver/translate/translate_crate.rs @@ -72,7 +72,7 @@ pub enum TransItemSourceKind { /// /// For technical reasons, it takes the `self_type` and `dyn_self_type`: /// the former is the type being implemented now while the latter is the `dyn Trait<...>` type. - VTableMethod(Ty, Ty), + VTableMethod(Ty, Ty, TraitImplSource), } /// The kind of a [`TransItemSourceKind::TraitImpl`]. diff --git a/charon/src/bin/charon-driver/translate/translate_items.rs b/charon/src/bin/charon-driver/translate/translate_items.rs index 43442b471..48b223320 100644 --- a/charon/src/bin/charon-driver/translate/translate_items.rs +++ b/charon/src/bin/charon-driver/translate/translate_items.rs @@ -166,12 +166,12 @@ impl<'tcx, 'ctx> TranslateCtx<'tcx> { bt_ctx.translate_vtable_instance_init(id, item_meta, &def, impl_kind)?; self.translated.fun_decls.set_slot(id, fun_decl); } - TransItemSourceKind::VTableMethod(self_ty, dyn_self) => { + TransItemSourceKind::VTableMethod(self_ty, dyn_self, impl_kind) => { let Some(AnyTransId::Fun(id)) = trans_id else { unreachable!() }; let fun_decl = - bt_ctx.translate_vtable_shim(id, item_meta, &self_ty, &dyn_self, &def)?; + bt_ctx.translate_vtable_shim(id, item_meta, &self_ty, &dyn_self, &def, impl_kind)?; self.translated.fun_decls.set_slot(id, fun_decl); } } diff --git a/charon/src/bin/charon-driver/translate/translate_trait_objects.rs b/charon/src/bin/charon-driver/translate/translate_trait_objects.rs index a0b7dc867..7b52ba3b5 100644 --- a/charon/src/bin/charon-driver/translate/translate_trait_objects.rs +++ b/charon/src/bin/charon-driver/translate/translate_trait_objects.rs @@ -1,3 +1,4 @@ + use super::{ translate_crate::TransItemSourceKind, translate_ctx::*, translate_generics::BindingLevel, translate_predicates::PredicateLocation, @@ -587,7 +588,7 @@ impl ItemTransCtx<'_, '_> { let mut shim_ref: FnPtr = self.translate_item( span, &item_ref, - TransItemSourceKind::VTableMethod(self_ty.clone(), dyn_self.clone()), + TransItemSourceKind::VTableMethod(self_ty.clone(), dyn_self.clone(), TraitImplSource::Normal), )?; let ty = next_ty(); match ty.kind() { @@ -875,9 +876,6 @@ impl ItemTransCtx<'_, '_> { let trait_ref = self.translate_trait_ref(span, &trait_impl.trait_pred.trait_ref)?; let self_ty = trait_ref.generics.types[0].clone(); // This should be the closure type - // Create a simplified dyn trait type (we'll use the closure type as self for now) - let dyn_self = self_ty.clone(); // For closures, we use the closure type itself - // Retreive the expected field types from the struct definition. This avoids complicated // substitutions. let field_tys = { @@ -922,11 +920,19 @@ impl ItemTransCtx<'_, '_> { next_ty(), ); + let call_method_ty = next_ty(); + let dyn_self = self.compute_closure_dyn_self(span, &call_method_ty, &vtable_struct_ref)?; + // Add the closure method (call, call_mut, or call_once) // For now, use a placeholder - we'll improve this later - mk_field( - RawConstantExpr::Opaque(format!("closure exec {} method", closure_kind.method_name())), - next_ty(), + mk_field(self.generate_closure_method_shim_ref( + span, + impl_def, + &self_ty, + &dyn_self, + closure_kind, + )?, + call_method_ty, ); let trait_def = self.hax_def(&trait_impl.trait_pred.trait_ref)?; @@ -959,26 +965,64 @@ impl ItemTransCtx<'_, '_> { })) } - fn generate_closure_method_shim( + /// Rebuild the `dyn_self` type from the `call_method_ty` and the args from the final `vtable-ref` + /// The `call_method_ty` will have form: `([&'_0] [mut] dyn Fn[Once|Mut]<...>, Args) -> Output` + /// While the actual `Args` & `Output` types are recorded in the vtable-ref + /// The `vtable_struct_ref` is `{vtable}` + fn compute_closure_dyn_self(&self, _span: Span, call_method_ty: &Ty, vtable_struct_ref: &TypeDeclRef) -> Result { + let raw_dyn_self = match call_method_ty.kind() { + TyKind::FnPtr(binder) => { + let receiver = &binder.clone().erase().0[0]; + match receiver.kind() { + TyKind::Ref(_, inner, _) => { + assert!(matches!(inner.kind(), TyKind::DynTrait(_))); + inner.clone() + }, + TyKind::DynTrait(_) => receiver.clone(), + _ => unreachable!(), + } + }, + _ => unreachable!(), + }; + Ok(raw_dyn_self.substitute(&vtable_struct_ref.generics)) + } + + fn generate_closure_method_shim_ref( &mut self, span: Span, impl_def: &hax::FullDef, self_ty: &Ty, dyn_self: &Ty, - _closure_kind: ClosureKind, + closure_kind: ClosureKind, ) -> Result { // Register the closure method shim let shim_id: FunDeclId = self.register_item( span, impl_def.this(), - TransItemSourceKind::VTableMethod(self_ty.clone(), dyn_self.clone()), + TransItemSourceKind::VTableMethod(self_ty.clone(), dyn_self.clone(), TraitImplSource::Closure(closure_kind)), ); + let mut generics = Box::new(self.the_only_binder().params.identity_args()); + + // Add the arguments for region binders of the closure + let hax::FullDefKind::Closure { args, .. } = impl_def.kind() else { + unreachable!() + }; + // The signature can only contain region binders + let sig = &args.fn_sig; + for _ in &sig.bound_vars { + // The late-bound region binders are at last, for the whole closure, as per `translate_closures`, use push + generics.regions.push(Region::Erased); + } + // Finally, one more region for the receiver, this is at first, as it is the region of the function itself, use insert at head + generics.regions.insert_and_shift_ids(RegionId::ZERO, Region::Erased); + // Create function pointer to the shim let fn_ptr = FnPtr { func: Box::new(shim_id.into()), - generics: Box::new(GenericArgs::empty()), // TODO: Handle generics properly + generics, }; + Ok(RawConstantExpr::FnPtr(fn_ptr)) } @@ -1123,6 +1167,7 @@ impl ItemTransCtx<'_, '_> { target_receiver: &Ty, shim_signature: &FunSig, impl_func_def: &hax::FullDef, + impl_kind: &TraitImplSource, ) -> Result { let mut locals = Locals { arg_count: shim_signature.inputs.len(), @@ -1151,7 +1196,15 @@ impl ItemTransCtx<'_, '_> { self.generate_concretization(span, &mut statements, &shim_self, &target_self)?; let call = { - let fun_id = self.register_item(span, &impl_func_def.this(), TransItemSourceKind::Fun); + let fun_id = self.register_item( + span, + &impl_func_def.this(), + match impl_kind { + TraitImplSource::Normal => TransItemSourceKind::Fun, + TraitImplSource::Closure(kind) => TransItemSourceKind::ClosureMethod(*kind), + _ => unreachable!(), + }, + ); let generics = Box::new(self.outermost_binder().params.identity_args()); Call { func: FnOperand::Regular(FnPtr { @@ -1211,17 +1264,31 @@ impl ItemTransCtx<'_, '_> { self_ty: &Ty, dyn_self: &Ty, impl_func_def: &hax::FullDef, + impl_kind: &TraitImplSource, ) -> Result { let span = item_meta.span; // compute the correct signature for the shim - let mut signature = self.translate_function_signature(impl_func_def, &item_meta)?; + let mut signature = match impl_kind { + TraitImplSource::Normal => self.translate_function_signature(impl_func_def, &item_meta)?, + TraitImplSource::Closure(kind) => { + self.translate_def_generics(span, impl_func_def)?; + let hax::FullDefKind::Closure { args, .. } = impl_func_def.kind() else { + unreachable!() + }; + // Following practice in `translate_closures`, add the new param + self.innermost_binder_mut() + .push_params_from_binder(args.fn_sig.rebind(()))?; + self.translate_closure_method_sig(impl_func_def, span, args, *kind)? + }, + _ => raise_error!(&self, item_meta.span, "vtable shims for non-closure virtual impls aren't supported, actual kind: {impl_kind:?}") + }; let target_receiver = signature.inputs[0].clone(); // dynify the receiver type, e.g., &T -> &dyn Trait when `impl ... for T` // Pin> -> Pin> when `impl ... for i32` signature.inputs[0].substitute_ty(self_ty, dyn_self); let body = - self.translate_vtable_shim_body(span, &target_receiver, &signature, impl_func_def)?; + self.translate_vtable_shim_body(span, &target_receiver, &signature, impl_func_def, impl_kind)?; Ok(FunDecl { def_id: fun_id, diff --git a/charon/tests/ui/simple/dyn-fn.out b/charon/tests/ui/simple/dyn-fn.out index 027888566..970c1628b 100644 --- a/charon/tests/ui/simple/dyn-fn.out +++ b/charon/tests/ui/simple/dyn-fn.out @@ -260,12 +260,29 @@ fn {{impl Fn<(&'_ mut (u32))> for closure}}::{vtable}::{drop_method}<'_0, '_1>(@ panic } +// Full name: test_crate::gives_fn::closure::{vtable_method} +fn {vtable_method}<'_0, '_1>(@1: &'_1 ((dyn exists<_dyn> [@TraitClause0]: Fn<_dyn, (&'_ mut (u32))> + _dyn : '_ + @TraitClause1_0::parent_clause1::parent_clause1::Output = bool)), @2: (&'_0 mut (u32))) -> bool +{ + let @0: bool; // return + let @1: &'_1 ((dyn exists<_dyn> [@TraitClause0]: Fn<_dyn, (&'_ mut (u32))> + _dyn : '_ + @TraitClause1_0::parent_clause1::parent_clause1::Output = bool)); // arg #1 + let @2: (&'_0 mut (u32)); // arg #2 + let @3: &'_1 (closure); // anonymous local + + storage_live(@0) + storage_live(@1) + storage_live(@2) + storage_live(@3) + @3 := concretize<&'_1 ((dyn exists<_dyn> [@TraitClause0]: Fn<_dyn, (&'_ mut (u32))> + _dyn : '_ + @TraitClause1_0::parent_clause1::parent_clause1::Output = bool)), &'_1 (closure)>(move (@1)) + @0 := {impl Fn<(&'_ mut (u32))> for closure}::call<'_0, '_1>(move (@3), move (@2)) + return +} + // Full name: test_crate::gives_fn::{impl Fn<(&'_ mut (u32))> for closure}::{vtable} fn {impl Fn<(&'_ mut (u32))> for closure}::{vtable}() -> core::ops::function::Fn::{vtable}<(&'_ mut (u32)), bool> { let ret@0: core::ops::function::Fn::{vtable}<(&'_ mut (u32)), bool>; // return - ret@0 := core::ops::function::Fn::{vtable} { size: const (0 : usize), align: const (1 : usize), drop: const ({{impl Fn<(&'_ mut (u32))> for closure}}::{vtable}::{drop_method}<'_, '_>), method_call: const (Opaque(closure exec call method)), super_trait_0: const (Opaque(missing supertrait vtable)), super_trait_1: const (Opaque(missing supertrait vtable)) } + ret@0 := core::ops::function::Fn::{vtable} { size: const (0 : usize), align: const (1 : usize), drop: const ({{impl Fn<(&'_ mut (u32))> for closure}}::{vtable}::{drop_method}<'_, '_>), method_call: const ({vtable_method}<'_, '_>), super_trait_0: const (Opaque(missing supertrait vtable)), super_trait_1: const (Opaque(missing supertrait vtable)) } return } From cb5cdf37b22877b352eb1ba98b3240a079aefc4d Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Fri, 5 Sep 2025 23:05:13 +0800 Subject: [PATCH 11/12] Translating Super Traits * Initial plan * Initial analysis: Identify missing supertrait vtable registration issue Co-authored-by: ssyram <23273765+ssyram@users.noreply.github.com> * Partial fix: Successfully handle closure supertrait vtables Co-authored-by: ssyram <23273765+ssyram@users.noreply.github.com> * Complete fix: Handle both closure and marker trait supertrait vtables Co-authored-by: ssyram <23273765+ssyram@users.noreply.github.com> * parent traits done --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: ssyram <23273765+ssyram@users.noreply.github.com> Co-authored-by: ssyram --- .../translate/translate_trait_objects.rs | 147 ++- .../tests/ui/monomorphization/dyn-trait.out | 41 +- .../unsatisfied-method-bounds.out | 1079 ++++++++++++++++- charon/tests/ui/simple/dyn-fn.out | 96 +- .../simple/fewer-clauses-in-method-impl.out | 113 +- charon/tests/ui/simple/gat-default.out | 211 +++- .../unsupported/advanced-const-generics.out | 206 +++- charon/tests/ui/vtable-simple.out | 5 +- charon/tests/ui/vtables.out | 74 +- charon/tests/ui/vtables.rs | 15 + 10 files changed, 1931 insertions(+), 56 deletions(-) diff --git a/charon/src/bin/charon-driver/translate/translate_trait_objects.rs b/charon/src/bin/charon-driver/translate/translate_trait_objects.rs index 7b52ba3b5..c39247afa 100644 --- a/charon/src/bin/charon-driver/translate/translate_trait_objects.rs +++ b/charon/src/bin/charon-driver/translate/translate_trait_objects.rs @@ -232,6 +232,18 @@ impl ItemTransCtx<'_, '_> { else { return Ok(()); }; + // The `FnOnce::call_once` is not compatible with the dyn-compatibility as described in: + // https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility + // But the Rustc offers a special backdoor for this and allows this method to be `vtable_safe`. + // The only way to call such a function seems to be with `Box`. + // The implementation of `Box::call_once` is a special case and should translate specially with some special magic. + // TODO(ssyram): in the future we may implement the function with type `fn call_once(self: Box, Args) -> Output` + // This function is the vtable-specific version of the `call_once` method. + // A very special case that the type signature differs from the original signature. + // Anyway, if we allow this to happen, there will be a severe breakage in that we can perform concretization on `dyn FnOnce`, + // This will make the life in backend tools, especially Eurydice much harder. + // Likewise, we skip translation of the `call_once` method below in the instance. + if trait_def.lang_item == Some("fn_once".into()) { return Ok(()); } let item_name = self.t_ctx.translate_trait_item_name(item_def_id)?; // It's ok to translate the method signature in the context of the trait because @@ -507,7 +519,7 @@ impl ItemTransCtx<'_, '_> { .erase(), ) } - _ => unreachable!(), + _ => panic!("Unknown type of impl full def: {:?}", def.kind()), }; let vtable_struct_ref = self .translate_vtable_struct_ref(span, implemented_trait)? @@ -697,8 +709,107 @@ impl ItemTransCtx<'_, '_> { }); RawConstantExpr::Ref(global) } - // TODO(dyn): builtin impls - _ => RawConstantExpr::Opaque("missing supertrait vtable".into()), + hax::ImplExprAtom::Builtin { trait_data, .. } => { + // Handle built-in implementations, including closures + let tref = &impl_expr.r#trait; + let hax_state = self.hax_state_with_id(); + let trait_def = self.hax_def( + &tref.hax_skip_binder_ref().erase(&hax_state), + )?; + + trace!("Processing builtin impl for trait {:?}, lang_item: {:?}, trait_data: {:?}", + trait_def.def_id(), trait_def.lang_item, trait_data); + + let closure_kind = + trait_def.lang_item.as_deref().and_then(|lang| { + match lang { + "fn_once" => Some(ClosureKind::FnOnce), + "fn_mut" => Some(ClosureKind::FnMut), + "fn" | "r#fn" => Some(ClosureKind::Fn), + _ => None, + } + }); + + // Check if this is a closure trait implementation + if let Some(closure_kind) = closure_kind + && let Some(hax::GenericArg::Type(closure_ty)) = + impl_expr + .r#trait + .hax_skip_binder_ref() + .generic_args + .first() + && let hax::TyKind::Closure(closure_args) = + closure_ty.kind() + { + // Register the closure vtable instance + let vtable_instance_ref: GlobalDeclRef = self.translate_item( + span, + &closure_args.item, + TransItemSourceKind::VTableInstance( + TraitImplSource::Closure(closure_kind), + ), + )?; + let global = Box::new(ConstantExpr { + value: RawConstantExpr::Global(vtable_instance_ref), + ty: fn_ptr_ty, + }); + RawConstantExpr::Ref(global) + } else if self.translate_vtable_struct_ref(span, impl_expr.r#trait.hax_skip_binder_ref())?.is_some() + { + // For other builtin traits that are dyn-compatible, try to create a vtable instance + trace!("Handling dyn-compatible builtin trait: {:?}", trait_def.lang_item); + + // TODO(ssyram): for now, we don't know how to translate other kinds of built-in traits, just take their names + // The challenge is that we need an impl_ref, but builtin traits don't have concrete impls + // Let's try using the trait reference itself as the impl reference + // A simple case would be that they are all marker traits like `core::marker::MetaSized` + let trait_ref = impl_expr.r#trait.hax_skip_binder_ref(); + let mut vtable_instance_ref: GlobalDeclRef = self.translate_item_no_enqueue( + span, + trait_ref, + TransItemSourceKind::VTableInstance( + TraitImplSource::Normal, // Builtin traits are normal impls + ), + )?; + // Remove the first `Self` argument + vtable_instance_ref.generics.types.remove_and_shift_ids(TypeVarId::ZERO); + let global = Box::new(ConstantExpr { + value: RawConstantExpr::Global(vtable_instance_ref), + ty: fn_ptr_ty, + }); + RawConstantExpr::Ref(global) + } else { + // For non-dyn-compatible builtin traits, we don't need vtable instances + trace!("Non-dyn-compatible builtin trait: {:?}", trait_def.lang_item); + RawConstantExpr::Opaque(format!("non-dyn-compatible builtin trait {:?}", + trait_def.lang_item.as_deref().unwrap_or("unknown")).into()) + } + } + hax::ImplExprAtom::LocalBound { .. } => { + // No need to register anything here as there is no concrete impl + // This results in that: the vtable instance in generic case might not exist + // But this case should not happen in the monomorphized case + if self.monomorphize() { + raise_error!( + self, + span, + "Unexpected `LocalBound` in monomorphized context" + ) + } else { + RawConstantExpr::Opaque("generic supertrait vtable".into()) + } + } + hax::ImplExprAtom::Dyn | hax::ImplExprAtom::Error(..) => { + // No need to register anything for these cases + RawConstantExpr::Opaque("dyn or error supertrait vtable".into()) + } + hax::ImplExprAtom::SelfImpl { .. } => { + raise_error!( + self, + span, + "`SelfImpl` should not appear in vtable construction" + ) + } }; mk_field(kind, next_ty()); } @@ -920,20 +1031,22 @@ impl ItemTransCtx<'_, '_> { next_ty(), ); - let call_method_ty = next_ty(); - let dyn_self = self.compute_closure_dyn_self(span, &call_method_ty, &vtable_struct_ref)?; + // Add the closure method (call, call_mut) + // We do not translate `call_once` for the reason discussed above -- the function is not dyn-compatible + if closure_kind != ClosureKind::FnOnce { + let call_method_ty = next_ty(); + let dyn_self = self.compute_closure_dyn_self(span, &call_method_ty, &vtable_struct_ref)?; - // Add the closure method (call, call_mut, or call_once) - // For now, use a placeholder - we'll improve this later - mk_field(self.generate_closure_method_shim_ref( - span, - impl_def, - &self_ty, - &dyn_self, - closure_kind, - )?, - call_method_ty, - ); + mk_field(self.generate_closure_method_shim_ref( + span, + impl_def, + &self_ty, + &dyn_self, + closure_kind, + )?, + call_method_ty, + ); + } let trait_def = self.hax_def(&trait_impl.trait_pred.trait_ref)?; self.add_supertraits_to_vtable_value(span, &trait_def, impl_def, next_ty, mk_field)?; @@ -982,7 +1095,7 @@ impl ItemTransCtx<'_, '_> { _ => unreachable!(), } }, - _ => unreachable!(), + _ => panic!("Unexpected call method type for closure: {}, Raw: {call_method_ty:?}", call_method_ty.with_ctx(&self.into_fmt())), }; Ok(raw_dyn_self.substitute(&vtable_struct_ref.generics)) } diff --git a/charon/tests/ui/monomorphization/dyn-trait.out b/charon/tests/ui/monomorphization/dyn-trait.out index 7ca3196c9..9b2b8eff3 100644 --- a/charon/tests/ui/monomorphization/dyn-trait.out +++ b/charon/tests/ui/monomorphization/dyn-trait.out @@ -124,9 +124,46 @@ note: the error occurred when translating `core::marker::MetaSized::>::index + at /home/ssyram/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/index_vec-0.1.4/src/indexing.rs:128:10 + 4: index_vec::indexing:: for index_vec::idxslice::IndexSlice>::index + at /home/ssyram/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/index_vec-0.1.4/src/indexing.rs:218:15 + 5: as core::ops::index::Index>::index + at ./src/ids/vector.rs:357:20 + 6: charon_driver::translate::translate_trait_objects::::gen_vtable_instance_init_body + at ./src/bin/charon-driver/translate/translate_trait_objects.rs:857:47 + 7: charon_driver::translate::translate_trait_objects::::translate_vtable_instance_init + at ./src/bin/charon-driver/translate/translate_trait_objects.rs:1228:33 + 8: charon_driver::translate::translate_items::::translate_item_aux + at ./src/bin/charon-driver/translate/translate_items.rs:166:28 + 9: charon_driver::translate::translate_items::::translate_item::{{closure}}::{{closure}} + at ./src/bin/charon-driver/translate/translate_items.rs:37:54 + 10: std::panicking::catch_unwind::do_call + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 + 11: __rust_try + 12: std::panicking::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 + 13: std::panic::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 + 14: charon_driver::translate::translate_items::::translate_item::{{closure}} + at ./src/bin/charon-driver/translate/translate_items.rs:37:17 + 15: charon_driver::translate::translate_ctx::TranslateCtx::with_def_id + at ./src/bin/charon-driver/translate/translate_ctx.rs:162:19 + 16: charon_driver::translate::translate_items::::translate_item + at ./src/bin/charon-driver/translate/translate_items.rs:31:14 + 17: charon_driver::translate::translate_crate::translate + at ./src/bin/charon-driver/translate/translate_crate.rs:668:17 + 18: ::after_expansion + at ./src/bin/charon-driver/driver.rs:157:29 + 19: rustc_interface::passes::create_and_enter_global_ctxt::, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0} + 20: rustc_interface::interface::run_compiler::<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1} +note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace. error: Thread panicked when extracting item `alloc::string::{impl#23}`. --> /rustc/library/alloc/src/string.rs:2623:1 diff --git a/charon/tests/ui/monomorphization/unsatisfied-method-bounds.out b/charon/tests/ui/monomorphization/unsatisfied-method-bounds.out index 6b136259d..88a4f7dfa 100644 --- a/charon/tests/ui/monomorphization/unsatisfied-method-bounds.out +++ b/charon/tests/ui/monomorphization/unsatisfied-method-bounds.out @@ -1,4 +1,194 @@ -disabled backtrace + 0: hax_frontend_exporter::traits::solve_trait::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/utils/error_macros.rs:29:29 + 1: hax_frontend_exporter::traits::resolution::PredicateSearcher::resolve::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits/resolution.rs:457:13 + 2: hax_frontend_exporter::traits::resolution::PredicateSearcher::resolve + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits/resolution.rs:646:24 + 3: hax_frontend_exporter::traits::solve_trait::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:232:65 + 4: hax_frontend_exporter::state::WithItemCacheExt::with_predicate_searcher::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/state.rs:312:13 + 5: hax_frontend_exporter::state::WithGlobalCacheExt::with_item_cache::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/state.rs:299:40 + 6: hax_frontend_exporter::state::WithGlobalCacheExt::with_global_cache + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/state.rs:294:9 + 7: hax_frontend_exporter::state::WithGlobalCacheExt::with_item_cache + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/state.rs:299:14 + 8: hax_frontend_exporter::state::WithItemCacheExt::with_cache + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/state.rs:308:14 + 9: hax_frontend_exporter::state::WithItemCacheExt::with_predicate_searcher + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/state.rs:311:14 + 10: hax_frontend_exporter::traits::solve_trait + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:232:11 + 11: hax_frontend_exporter::traits::solve_item_traits_inner::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:321:26 + 12: core::ops::function::impls:: for &mut F>::call_once + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:305:21 + 13: core::option::Option::map + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:1146:29 + 14: as core::iter::traits::iterator::Iterator>::next + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:107:26 + 15: alloc::vec::Vec::extend_desugared + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3633:44 + 16: as alloc::vec::spec_extend::SpecExtend>::spec_extend + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_extend.rs:19:14 + 17: as alloc::vec::spec_from_iter_nested::SpecFromIterNested>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:42:9 + 18: as alloc::vec::spec_from_iter::SpecFromIter>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:34:9 + 19: as core::iter::traits::collect::FromIterator>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3525:9 + 20: core::iter::traits::iterator::Iterator::collect + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2027:9 + 21: hax_frontend_exporter::traits::solve_item_traits_inner + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:322:10 + 22: hax_frontend_exporter::traits::solve_item_required_traits::{{closure}}::accumulate + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:278:27 + 23: hax_frontend_exporter::traits::solve_item_required_traits::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:281:5 + 24: hax_frontend_exporter::traits::solve_item_required_traits + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:256:1 + 25: hax_frontend_exporter::types::ty::ItemRef::translate + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:532:30 + 26: hax_frontend_exporter::traits::translate_item_ref::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:249:5 + 27: hax_frontend_exporter::traits::translate_item_ref + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:243:1 + 28: hax_frontend_exporter::types::ty::_:: for rustc_type_ir::ty_kind::TyKind>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1115:68 + 29: hax_frontend_exporter::types::ty:: for rustc_middle::ty::Ty>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1057:40 + 30: hax_frontend_exporter::types::ty::_:: for rustc_type_ir::ty_kind::FnSig>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1372:27 + 31: hax_frontend_exporter::types::ty::> for rustc_type_ir::binder::Binder>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1639:41 + 32: hax_frontend_exporter::types::new::full_def::translate_full_def_kind::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:632:54 + 33: core::iter::adapters::map::map_fold::{{closure}} + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:88:28 + 34: core::iter::adapters::map::map_fold::{{closure}} + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:88:21 + 35: core::iter::adapters::map::map_fold::{{closure}} + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:88:21 + 36: as core::iter::traits::iterator::Iterator>::fold + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:255:27 + 37: as core::iter::traits::iterator::Iterator>::fold + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:128:19 + 38: as core::iter::traits::iterator::Iterator>::fold + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:128:19 + 39: as core::iter::traits::iterator::Iterator>::fold + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:128:19 + 40: core::iter::traits::iterator::Iterator::for_each + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:827:14 + 41: alloc::vec::Vec::extend_trusted + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3666:26 + 42: as alloc::vec::spec_extend::SpecExtend>::spec_extend + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_extend.rs:29:14 + 43: as alloc::vec::spec_from_iter_nested::SpecFromIterNested>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:62:16 + 44: as alloc::vec::spec_from_iter::SpecFromIter>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:34:9 + 45: as core::iter::traits::collect::FromIterator>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3525:9 + 46: core::iter::traits::iterator::Iterator::collect + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2027:9 + 47: hax_frontend_exporter::types::new::full_def::translate_full_def_kind + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:653:26 + 48: hax_frontend_exporter::types::new::full_def::translate_full_def + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:62:20 + 49: hax_frontend_exporter::types::new::full_def::::full_def_maybe_instantiated + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:182:28 + 50: hax_frontend_exporter::types::new::full_def::::instantiated_full_def + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:203:21 + 51: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item::{{closure}} + at ./src/bin/charon-driver/translate/translate_ctx.rs:144:51 + 52: std::panicking::catch_unwind::do_call + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 + 53: __rust_try + 54: std::panicking::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 + 55: std::panic::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 + 56: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item + at ./src/bin/charon-driver/translate/translate_ctx.rs:142:9 + 57: charon_driver::translate::translate_meta::::name_for_item + at ./src/bin/charon-driver/translate/translate_meta.rs:304:28 + 58: charon_driver::translate::translate_meta::::name_for_src + at ./src/bin/charon-driver/translate/translate_meta.rs:332:18 + 59: charon_driver::translate::translate_meta::::translate_name + at ./src/bin/charon-driver/translate/translate_meta.rs:378:29 + 60: charon_driver::translate::translate_crate::::register_no_enqueue + at ./src/bin/charon-driver/translate/translate_crate.rs:293:40 + 61: charon_driver::translate::translate_crate::::register_and_enqueue + at ./src/bin/charon-driver/translate/translate_crate.rs:311:23 + 62: charon_driver::translate::translate_crate::::register_and_enqueue + at ./src/bin/charon-driver/translate/translate_crate.rs:385:20 + 63: charon_driver::translate::translate_crate::::register_item_maybe_enqueue + at ./src/bin/charon-driver/translate/translate_crate.rs:412:18 + 64: charon_driver::translate::translate_crate::::translate_item_maybe_enqueue + at ./src/bin/charon-driver/translate/translate_crate.rs:446:35 + 65: charon_driver::translate::translate_crate::::translate_item + at ./src/bin/charon-driver/translate/translate_crate.rs:466:14 + 66: charon_driver::translate::translate_crate::::translate_trait_impl_ref + at ./src/bin/charon-driver/translate/translate_crate.rs:576:14 + 67: charon_driver::translate::translate_predicates::::translate_trait_impl_expr_aux + at ./src/bin/charon-driver/translate/translate_predicates.rs:208:26 + 68: charon_driver::translate::translate_predicates::::translate_trait_impl_expr + at ./src/bin/charon-driver/translate/translate_predicates.rs:183:20 + 69: charon_driver::translate::translate_crate::::translate_fn_ptr + at ./src/bin/charon-driver/translate/translate_crate.rs:539:38 + 70: charon_driver::translate::translate_bodies::BodyTransCtx::translate_function_call + at ./src/bin/charon-driver/translate/translate_bodies.rs:1071:39 + 71: charon_driver::translate::translate_bodies::BodyTransCtx::translate_terminator + at ./src/bin/charon-driver/translate/translate_bodies.rs:910:23 + 72: charon_driver::translate::translate_bodies::BodyTransCtx::translate_basic_block + at ./src/bin/charon-driver/translate/translate_bodies.rs:199:31 + 73: charon_driver::translate::translate_bodies::BodyTransCtx::translate_body_aux + at ./src/bin/charon-driver/translate/translate_bodies.rs:1241:30 + 74: charon_driver::translate::translate_bodies::BodyTransCtx::translate_body::{{closure}} + at ./src/bin/charon-driver/translate/translate_bodies.rs:1206:52 + 75: std::panicking::catch_unwind::do_call + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 + 76: __rust_try + 77: std::panicking::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 + 78: std::panic::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 + 79: charon_driver::translate::translate_bodies::BodyTransCtx::translate_body + at ./src/bin/charon-driver/translate/translate_bodies.rs:1206:19 + 80: charon_driver::translate::translate_bodies::BodyTransCtx::translate_def_body + at ./src/bin/charon-driver/translate/translate_bodies.rs:1194:14 + 81: charon_driver::translate::translate_items::::translate_function + at ./src/bin/charon-driver/translate/translate_items.rs:429:26 + 82: charon_driver::translate::translate_items::::translate_item_aux + at ./src/bin/charon-driver/translate/translate_items.rs:92:39 + 83: charon_driver::translate::translate_items::::translate_item::{{closure}}::{{closure}} + at ./src/bin/charon-driver/translate/translate_items.rs:37:54 + 84: std::panicking::catch_unwind::do_call + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 + 85: __rust_try + 86: std::panicking::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 + 87: std::panic::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 + 88: charon_driver::translate::translate_items::::translate_item::{{closure}} + at ./src/bin/charon-driver/translate/translate_items.rs:37:17 + 89: charon_driver::translate::translate_ctx::TranslateCtx::with_def_id + at ./src/bin/charon-driver/translate/translate_ctx.rs:162:19 + 90: charon_driver::translate::translate_items::::translate_item + at ./src/bin/charon-driver/translate/translate_items.rs:31:14 + 91: charon_driver::translate::translate_crate::translate + at ./src/bin/charon-driver/translate/translate_crate.rs:668:17 + 92: ::after_expansion + at ./src/bin/charon-driver/driver.rs:157:29 + 93: rustc_interface::passes::create_and_enter_global_ctxt::, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0} + 94: rustc_interface::interface::run_compiler::<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1} + 95: std::sys::backtrace::__rust_begin_short_backtrace::::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()> + 96: <::spawn_unchecked_::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} + 97: std::sys::pal::unix::thread::Thread::new::thread_start + 98: + 99: + warning[E9999]: Could not find a clause for `Binder { value: , bound_vars: [] }` in the current context: `Unimplemented` --> tests/ui/monomorphization/unsatisfied-method-bounds.rs:21:1 | @@ -8,7 +198,122 @@ warning[E9999]: Could not find a clause for `Binder { value: for &mut F>::call_once + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:305:21 + 13: core::option::Option::map + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:1146:29 + 14: as core::iter::traits::iterator::Iterator>::next + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:107:26 + 15: alloc::vec::Vec::extend_desugared + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3633:44 + 16: as alloc::vec::spec_extend::SpecExtend>::spec_extend + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_extend.rs:19:14 + 17: as alloc::vec::spec_from_iter_nested::SpecFromIterNested>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:42:9 + 18: as alloc::vec::spec_from_iter::SpecFromIter>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:34:9 + 19: as core::iter::traits::collect::FromIterator>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3525:9 + 20: core::iter::traits::iterator::Iterator::collect + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2027:9 + 21: hax_frontend_exporter::traits::solve_item_traits_inner + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:322:10 + 22: hax_frontend_exporter::traits::solve_item_required_traits::{{closure}}::accumulate + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:278:27 + 23: hax_frontend_exporter::traits::solve_item_required_traits::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:281:5 + 24: hax_frontend_exporter::traits::solve_item_required_traits + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:256:1 + 25: hax_frontend_exporter::types::ty::ItemRef::translate + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:532:30 + 26: hax_frontend_exporter::traits::translate_item_ref::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:249:5 + 27: hax_frontend_exporter::traits::translate_item_ref + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:243:1 + 28: hax_frontend_exporter::types::ty::_:: for rustc_type_ir::ty_kind::TyKind>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1115:68 + 29: hax_frontend_exporter::types::ty:: for rustc_middle::ty::Ty>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1057:40 + 30: hax_frontend_exporter::types::ty::_:: for rustc_type_ir::ty_kind::FnSig>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1372:27 + 31: hax_frontend_exporter::types::ty::> for rustc_type_ir::binder::Binder>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1639:41 + 32: hax_frontend_exporter::types::new::full_def::translate_full_def_kind + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:690:72 + 33: hax_frontend_exporter::types::new::full_def::translate_full_def + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:62:20 + 34: hax_frontend_exporter::types::new::full_def::::full_def_maybe_instantiated + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:182:28 + 35: hax_frontend_exporter::types::new::full_def::::instantiated_full_def + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:203:21 + 36: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item::{{closure}} + at ./src/bin/charon-driver/translate/translate_ctx.rs:144:51 + 37: std::panicking::catch_unwind::do_call + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 + 38: __rust_try + 39: std::panicking::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 + 40: std::panic::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 + 41: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item + at ./src/bin/charon-driver/translate/translate_ctx.rs:142:9 + 42: charon_driver::translate::translate_ctx::ItemTransCtx::hax_def + at ./src/bin/charon-driver/translate/translate_ctx.rs:215:20 + 43: charon_driver::translate::translate_items::::translate_trait_decl + at ./src/bin/charon-driver/translate/translate_items.rs:588:41 + 44: charon_driver::translate::translate_items::::translate_item_aux + at ./src/bin/charon-driver/translate/translate_items.rs:106:41 + 45: charon_driver::translate::translate_items::::translate_item::{{closure}}::{{closure}} + at ./src/bin/charon-driver/translate/translate_items.rs:37:54 + 46: std::panicking::catch_unwind::do_call + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 + 47: __rust_try + 48: std::panicking::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 + 49: std::panic::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 + 50: charon_driver::translate::translate_items::::translate_item::{{closure}} + at ./src/bin/charon-driver/translate/translate_items.rs:37:17 + 51: charon_driver::translate::translate_ctx::TranslateCtx::with_def_id + at ./src/bin/charon-driver/translate/translate_ctx.rs:162:19 + 52: charon_driver::translate::translate_items::::translate_item + at ./src/bin/charon-driver/translate/translate_items.rs:31:14 + 53: charon_driver::translate::translate_crate::translate + at ./src/bin/charon-driver/translate/translate_crate.rs:668:17 + 54: ::after_expansion + at ./src/bin/charon-driver/driver.rs:157:29 + 55: rustc_interface::passes::create_and_enter_global_ctxt::, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0} + 56: rustc_interface::interface::run_compiler::<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1} + 57: std::sys::backtrace::__rust_begin_short_backtrace::::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()> + 58: <::spawn_unchecked_::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} + 59: std::sys::pal::unix::thread::Thread::new::thread_start + 60: + 61: + warning[E9999]: Could not find a clause for `Binder { value: , bound_vars: [] }` in the current context: `Unimplemented` --> tests/ui/monomorphization/unsatisfied-method-bounds.rs:9:5 | @@ -21,7 +326,174 @@ warning[E9999]: Could not find a clause for `Binder { value: for &mut F>::call_once + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:305:21 + 13: core::option::Option::map + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:1146:29 + 14: as core::iter::traits::iterator::Iterator>::next + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:107:26 + 15: alloc::vec::Vec::extend_desugared + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3633:44 + 16: as alloc::vec::spec_extend::SpecExtend>::spec_extend + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_extend.rs:19:14 + 17: as alloc::vec::spec_from_iter_nested::SpecFromIterNested>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:42:9 + 18: as alloc::vec::spec_from_iter::SpecFromIter>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:34:9 + 19: as core::iter::traits::collect::FromIterator>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3525:9 + 20: core::iter::traits::iterator::Iterator::collect + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2027:9 + 21: hax_frontend_exporter::traits::solve_item_traits_inner + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:322:10 + 22: hax_frontend_exporter::traits::solve_item_required_traits::{{closure}}::accumulate + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:278:27 + 23: hax_frontend_exporter::traits::solve_item_required_traits::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:281:5 + 24: hax_frontend_exporter::traits::solve_item_required_traits + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:256:1 + 25: hax_frontend_exporter::types::ty::ItemRef::translate + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:532:30 + 26: hax_frontend_exporter::traits::translate_item_ref::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:249:5 + 27: hax_frontend_exporter::traits::translate_item_ref + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:243:1 + 28: hax_frontend_exporter::types::ty::_:: for rustc_type_ir::ty_kind::TyKind>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1115:68 + 29: hax_frontend_exporter::types::ty:: for rustc_middle::ty::Ty>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1057:40 + 30: hax_frontend_exporter::types::ty::> for rustc_middle::ty::Ty>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1020:23 + 31: hax_frontend_exporter::types::ty::_:: for rustc_type_ir::ty_kind::TyKind>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1122:12 + 32: hax_frontend_exporter::types::ty:: for rustc_middle::ty::Ty>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1057:40 + 33: hax_frontend_exporter::types::mir::_:: for rustc_middle::mir::LocalDecl>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/mir.rs:22:13 + 34: hax_frontend_exporter::types::mir::_::> for rustc_middle::mir::Body>::sinto::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/mir.rs:315:45 + 35: core::iter::adapters::map::map_fold::{{closure}} + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:88:28 + 36: core::iter::adapters::map::map_fold::{{closure}} + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:88:21 + 37: as core::iter::traits::iterator::Iterator>::fold::enumerate::{{closure}} + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/enumerate.rs:140:27 + 38: as core::iter::traits::iterator::Iterator>::fold + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:255:27 + 39: as core::iter::traits::iterator::Iterator>::fold + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/enumerate.rs:146:19 + 40: as core::iter::traits::iterator::Iterator>::fold + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:128:19 + 41: as core::iter::traits::iterator::Iterator>::fold + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:128:19 + 42: core::iter::traits::iterator::Iterator::for_each + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:827:14 + 43: alloc::vec::Vec::extend_trusted + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3666:26 + 44: as alloc::vec::spec_extend::SpecExtend>::spec_extend + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_extend.rs:29:14 + 45: as alloc::vec::spec_from_iter_nested::SpecFromIterNested>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:62:16 + 46: as alloc::vec::spec_from_iter::SpecFromIter>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:34:9 + 47: as core::iter::traits::collect::FromIterator>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3525:9 + 48: as core::iter::traits::collect::FromIterator>::from_iter + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/index_vec.rs:67:18 + 49: core::iter::traits::iterator::Iterator::collect + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2027:9 + 50: hax_frontend_exporter::types::mir::_::> for rustc_middle::mir::Body>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/mir.rs:318:12 + 51: hax_frontend_exporter::body::module::implementations::>::from_mir + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/body.rs:244:27 + 52: hax_frontend_exporter::types::new::full_def::get_drop_glue_shim + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:1106:16 + 53: hax_frontend_exporter::types::new::full_def::translate_full_def_kind + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:476:28 + 54: hax_frontend_exporter::types::new::full_def::translate_full_def + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:62:20 + 55: hax_frontend_exporter::types::new::full_def::::full_def_maybe_instantiated + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:182:28 + 56: hax_frontend_exporter::types::new::full_def::::instantiated_full_def + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:203:21 + 57: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item::{{closure}} + at ./src/bin/charon-driver/translate/translate_ctx.rs:144:51 + 58: std::panicking::catch_unwind::do_call + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 + 59: __rust_try + 60: std::panicking::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 + 61: std::panic::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 + 62: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item + at ./src/bin/charon-driver/translate/translate_ctx.rs:142:9 + 63: charon_driver::translate::translate_ctx::ItemTransCtx::hax_def + at ./src/bin/charon-driver/translate/translate_ctx.rs:215:20 + 64: charon_driver::translate::translate_types::::recognize_builtin_type + at ./src/bin/charon-driver/translate/translate_types.rs:354:24 + 65: charon_driver::translate::translate_crate::::translate_type_decl_ref + at ./src/bin/charon-driver/translate/translate_crate.rs:485:20 + 66: charon_driver::translate::translate_types::::translate_ty_inner + at ./src/bin/charon-driver/translate/translate_types.rs:135:33 + 67: charon_driver::translate::translate_types::::translate_ty + at ./src/bin/charon-driver/translate/translate_types.rs:87:14 + 68: charon_driver::translate::translate_functions::::translate_function_signature + at ./src/bin/charon-driver/translate/translate_functions.rs:75:27 + 69: charon_driver::translate::translate_items::::translate_function + at ./src/bin/charon-driver/translate/translate_items.rs:383:30 + 70: charon_driver::translate::translate_items::::translate_item_aux + at ./src/bin/charon-driver/translate/translate_items.rs:92:39 + 71: charon_driver::translate::translate_items::::translate_item::{{closure}}::{{closure}} + at ./src/bin/charon-driver/translate/translate_items.rs:37:54 + 72: std::panicking::catch_unwind::do_call + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 + 73: __rust_try + 74: std::panicking::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 + 75: std::panic::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 + 76: charon_driver::translate::translate_items::::translate_item::{{closure}} + at ./src/bin/charon-driver/translate/translate_items.rs:37:17 + 77: charon_driver::translate::translate_ctx::TranslateCtx::with_def_id + at ./src/bin/charon-driver/translate/translate_ctx.rs:162:19 + 78: charon_driver::translate::translate_items::::translate_item + at ./src/bin/charon-driver/translate/translate_items.rs:31:14 + 79: charon_driver::translate::translate_crate::translate + at ./src/bin/charon-driver/translate/translate_crate.rs:668:17 + 80: ::after_expansion + at ./src/bin/charon-driver/driver.rs:157:29 + 81: rustc_interface::passes::create_and_enter_global_ctxt::, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0} + 82: rustc_interface::interface::run_compiler::<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1} + 83: std::sys::backtrace::__rust_begin_short_backtrace::::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()> + 84: <::spawn_unchecked_::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} + 85: std::sys::pal::unix::thread::Thread::new::thread_start + 86: + 87: + warning[E9999]: Could not find a clause for `Binder { value: , bound_vars: [] }` in the current context: `Unimplemented` --> tests/ui/monomorphization/unsatisfied-method-bounds.rs:18:1 | @@ -55,9 +527,196 @@ error: Error during trait resolution: Could not find a clause for `Binder { valu 18 | struct Flatten>(I); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -disabled backtrace + 0: hax_frontend_exporter::traits::solve_trait::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/utils/error_macros.rs:29:29 + 1: hax_frontend_exporter::traits::resolution::PredicateSearcher::resolve::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits/resolution.rs:457:13 + 2: hax_frontend_exporter::traits::resolution::PredicateSearcher::resolve + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits/resolution.rs:646:24 + 3: hax_frontend_exporter::traits::solve_trait::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:232:65 + 4: hax_frontend_exporter::state::WithItemCacheExt::with_predicate_searcher::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/state.rs:312:13 + 5: hax_frontend_exporter::state::WithGlobalCacheExt::with_item_cache::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/state.rs:299:40 + 6: hax_frontend_exporter::state::WithGlobalCacheExt::with_global_cache + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/state.rs:294:9 + 7: hax_frontend_exporter::state::WithGlobalCacheExt::with_item_cache + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/state.rs:299:14 + 8: hax_frontend_exporter::state::WithItemCacheExt::with_cache + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/state.rs:308:14 + 9: hax_frontend_exporter::state::WithItemCacheExt::with_predicate_searcher + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/state.rs:311:14 + 10: hax_frontend_exporter::traits::solve_trait + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:232:11 + 11: hax_frontend_exporter::traits::solve_item_traits_inner::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:321:26 + 12: core::ops::function::impls:: for &mut F>::call_once + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:305:21 + 13: core::option::Option::map + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:1146:29 + 14: as core::iter::traits::iterator::Iterator>::next + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:107:26 + 15: alloc::vec::Vec::extend_desugared + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3633:44 + 16: as alloc::vec::spec_extend::SpecExtend>::spec_extend + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_extend.rs:19:14 + 17: as alloc::vec::spec_from_iter_nested::SpecFromIterNested>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:42:9 + 18: as alloc::vec::spec_from_iter::SpecFromIter>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:34:9 + 19: as core::iter::traits::collect::FromIterator>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3525:9 + 20: core::iter::traits::iterator::Iterator::collect + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2027:9 + 21: hax_frontend_exporter::traits::solve_item_traits_inner + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:322:10 + 22: hax_frontend_exporter::traits::solve_item_required_traits::{{closure}}::accumulate + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:278:27 + 23: hax_frontend_exporter::traits::solve_item_required_traits::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:281:5 + 24: hax_frontend_exporter::traits::solve_item_required_traits + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:256:1 + 25: hax_frontend_exporter::types::ty::ItemRef::translate + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:532:30 + 26: hax_frontend_exporter::traits::translate_item_ref::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:249:5 + 27: hax_frontend_exporter::traits::translate_item_ref + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:243:1 + 28: hax_frontend_exporter::types::ty::_:: for rustc_type_ir::ty_kind::TyKind>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1115:68 + 29: hax_frontend_exporter::types::ty:: for rustc_middle::ty::Ty>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1057:40 + 30: hax_frontend_exporter::types::ty::_:: for rustc_type_ir::generic_arg::GenericArgKind>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:444:10 + 31: hax_frontend_exporter::types::ty:: for rustc_middle::ty::generic_args::GenericArg>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:681:21 + 32: hax_frontend_exporter::types::ty::> for rustc_middle::ty::list::RawList<(),T>>::sinto::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:842:31 + 33: core::iter::adapters::map::map_fold::{{closure}} + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:88:28 + 34: as core::iter::traits::iterator::Iterator>::fold + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:255:27 + 35: as core::iter::traits::iterator::Iterator>::fold + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:128:19 + 36: core::iter::traits::iterator::Iterator::for_each + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:827:14 + 37: alloc::vec::Vec::extend_trusted + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3666:26 + 38: as alloc::vec::spec_extend::SpecExtend>::spec_extend + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_extend.rs:29:14 + 39: as alloc::vec::spec_from_iter_nested::SpecFromIterNested>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:62:16 + 40: as alloc::vec::spec_from_iter::SpecFromIter>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:34:9 + 41: as core::iter::traits::collect::FromIterator>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3525:9 + 42: core::iter::traits::iterator::Iterator::collect + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2027:9 + 43: hax_frontend_exporter::types::ty::> for rustc_middle::ty::list::RawList<(),T>>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:842:41 + 44: hax_frontend_exporter::types::ty::ItemRef::translate + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:533:41 + 45: hax_frontend_exporter::traits::translate_item_ref::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:249:5 + 46: hax_frontend_exporter::traits::translate_item_ref + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:243:1 + 47: hax_frontend_exporter::types::ty:: for rustc_type_ir::predicate::TraitRef>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1392:9 + 48: hax_frontend_exporter::types::ty::_:: for rustc_type_ir::predicate::TraitPredicate>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1402:20 + 49: hax_frontend_exporter::types::ty::_:: for rustc_type_ir::predicate_kind::ClauseKind>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1502:11 + 50: hax_frontend_exporter::types::ty::> for rustc_type_ir::binder::Binder>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1639:41 + 51: hax_frontend_exporter::types::ty:: for rustc_middle::ty::predicate::Clause>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1525:32 + 52: <(L,R) as hax_frontend_exporter::sinto::SInto>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/sinto.rs:64:17 + 53: <[T] as hax_frontend_exporter::sinto::SInto>>::sinto::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/sinto.rs:93:31 + 54: core::iter::adapters::map::map_fold::{{closure}} + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:88:28 + 55: as core::iter::traits::iterator::Iterator>::fold + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:255:27 + 56: as core::iter::traits::iterator::Iterator>::fold + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:128:19 + 57: core::iter::traits::iterator::Iterator::for_each + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:827:14 + 58: alloc::vec::Vec::extend_trusted + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3666:26 + 59: as alloc::vec::spec_extend::SpecExtend>::spec_extend + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_extend.rs:29:14 + 60: as alloc::vec::spec_from_iter_nested::SpecFromIterNested>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:62:16 + 61: as alloc::vec::spec_from_iter::SpecFromIter>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:34:9 + 62: as core::iter::traits::collect::FromIterator>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3525:9 + 63: core::iter::traits::iterator::Iterator::collect + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2027:9 + 64: <[T] as hax_frontend_exporter::sinto::SInto>>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/sinto.rs:93:41 + 65: hax_frontend_exporter::types::ty:: for alloc::borrow::Cow<[(rustc_middle::ty::predicate::Clause,rustc_span::span_encoding::Span)]>>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1625:39 + 66: hax_frontend_exporter::types::new::full_def::get_implied_predicates + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:1168:24 + 67: hax_frontend_exporter::types::new::full_def::translate_full_def_kind + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:507:33 + 68: hax_frontend_exporter::types::new::full_def::translate_full_def + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:62:20 + 69: hax_frontend_exporter::types::new::full_def::::full_def_maybe_instantiated + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:182:28 + 70: hax_frontend_exporter::types::new::full_def::::instantiated_full_def + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:203:21 + 71: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item::{{closure}} + at ./src/bin/charon-driver/translate/translate_ctx.rs:144:51 + 72: std::panicking::catch_unwind::do_call + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 + 73: __rust_try + 74: std::panicking::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 + 75: std::panic::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 + 76: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item + at ./src/bin/charon-driver/translate/translate_ctx.rs:142:9 + 77: charon_driver::translate::translate_ctx::ItemTransCtx::hax_def + at ./src/bin/charon-driver/translate/translate_ctx.rs:215:20 + 78: charon_driver::translate::translate_items::::translate_virtual_trait_impl + at ./src/bin/charon-driver/translate/translate_items.rs:1054:30 + 79: charon_driver::translate::translate_drops::::translate_drop_impl + at ./src/bin/charon-driver/translate/translate_drops.rs:121:30 + 80: charon_driver::translate::translate_items::::translate_item_aux + at ./src/bin/charon-driver/translate/translate_items.rs:121:57 + 81: charon_driver::translate::translate_items::::translate_item::{{closure}}::{{closure}} + at ./src/bin/charon-driver/translate/translate_items.rs:37:54 + 82: std::panicking::catch_unwind::do_call + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 + 83: __rust_try + 84: std::panicking::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 + 85: std::panic::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 + 86: charon_driver::translate::translate_items::::translate_item::{{closure}} + at ./src/bin/charon-driver/translate/translate_items.rs:37:17 + 87: charon_driver::translate::translate_ctx::TranslateCtx::with_def_id + at ./src/bin/charon-driver/translate/translate_ctx.rs:162:19 + 88: charon_driver::translate::translate_items::::translate_item + at ./src/bin/charon-driver/translate/translate_items.rs:31:14 + 89: charon_driver::translate::translate_crate::translate + at ./src/bin/charon-driver/translate/translate_crate.rs:668:17 + 90: ::after_expansion + at ./src/bin/charon-driver/driver.rs:157:29 + 91: rustc_interface::passes::create_and_enter_global_ctxt::, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0} + 92: rustc_interface::interface::run_compiler::<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1} + 93: std::sys::backtrace::__rust_begin_short_backtrace::::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()> + 94: <::spawn_unchecked_::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} + 95: std::sys::pal::unix::thread::Thread::new::thread_start + 96: + 97: + warning[E9999]: Could not find a clause for `Binder { value: , bound_vars: [] }` in the current context: `Unimplemented` - --> /Users/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/drop.rs:208:1 + --> /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/drop.rs:208:1 | 208 | pub trait Drop { | ^^^^^^^^^^^^^^ @@ -65,9 +724,190 @@ warning[E9999]: Could not find a clause for `Binder { value: for &mut F>::call_once + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:305:21 + 13: core::option::Option::map + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:1146:29 + 14: as core::iter::traits::iterator::Iterator>::next + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:107:26 + 15: alloc::vec::Vec::extend_desugared + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3633:44 + 16: as alloc::vec::spec_extend::SpecExtend>::spec_extend + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_extend.rs:19:14 + 17: as alloc::vec::spec_from_iter_nested::SpecFromIterNested>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:42:9 + 18: as alloc::vec::spec_from_iter::SpecFromIter>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:34:9 + 19: as core::iter::traits::collect::FromIterator>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3525:9 + 20: core::iter::traits::iterator::Iterator::collect + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2027:9 + 21: hax_frontend_exporter::traits::solve_item_traits_inner + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:322:10 + 22: hax_frontend_exporter::traits::solve_item_required_traits::{{closure}}::accumulate + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:278:27 + 23: hax_frontend_exporter::traits::solve_item_required_traits::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:281:5 + 24: hax_frontend_exporter::traits::solve_item_required_traits + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:256:1 + 25: hax_frontend_exporter::types::ty::ItemRef::translate + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:532:30 + 26: hax_frontend_exporter::traits::translate_item_ref::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:249:5 + 27: hax_frontend_exporter::traits::translate_item_ref + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:243:1 + 28: hax_frontend_exporter::types::ty::_:: for rustc_type_ir::ty_kind::TyKind>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1115:68 + 29: hax_frontend_exporter::types::ty:: for rustc_middle::ty::Ty>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1057:40 + 30: hax_frontend_exporter::types::ty::_:: for rustc_type_ir::generic_arg::GenericArgKind>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:444:10 + 31: hax_frontend_exporter::types::ty:: for rustc_middle::ty::generic_args::GenericArg>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:681:21 + 32: hax_frontend_exporter::types::ty::> for rustc_middle::ty::list::RawList<(),T>>::sinto::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:842:31 + 33: core::iter::adapters::map::map_fold::{{closure}} + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:88:28 + 34: as core::iter::traits::iterator::Iterator>::fold + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:255:27 + 35: as core::iter::traits::iterator::Iterator>::fold + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:128:19 + 36: core::iter::traits::iterator::Iterator::for_each + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:827:14 + 37: alloc::vec::Vec::extend_trusted + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3666:26 + 38: as alloc::vec::spec_extend::SpecExtend>::spec_extend + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_extend.rs:29:14 + 39: as alloc::vec::spec_from_iter_nested::SpecFromIterNested>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:62:16 + 40: as alloc::vec::spec_from_iter::SpecFromIter>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:34:9 + 41: as core::iter::traits::collect::FromIterator>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3525:9 + 42: core::iter::traits::iterator::Iterator::collect + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2027:9 + 43: hax_frontend_exporter::types::ty::> for rustc_middle::ty::list::RawList<(),T>>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:842:41 + 44: hax_frontend_exporter::types::ty::ItemRef::translate + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:533:41 + 45: hax_frontend_exporter::traits::translate_item_ref::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:249:5 + 46: hax_frontend_exporter::traits::translate_item_ref + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:243:1 + 47: hax_frontend_exporter::types::ty:: for rustc_type_ir::predicate::TraitRef>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1392:9 + 48: hax_frontend_exporter::types::ty::AssocItem::sfrom_instantiated + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1785:84 + 49: hax_frontend_exporter::types::new::full_def::translate_full_def_kind::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:520:21 + 50: core::iter::adapters::map::map_fold::{{closure}} + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:88:28 + 51: core::iter::adapters::map::map_fold::{{closure}} + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:88:21 + 52: core::iter::adapters::map::map_fold::{{closure}} + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:88:21 + 53: as core::iter::traits::iterator::Iterator>::fold + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:255:27 + 54: as core::iter::traits::iterator::Iterator>::fold + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:128:19 + 55: as core::iter::traits::iterator::Iterator>::fold + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:128:19 + 56: as core::iter::traits::iterator::Iterator>::fold + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:128:19 + 57: core::iter::traits::iterator::Iterator::for_each + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:827:14 + 58: alloc::vec::Vec::extend_trusted + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3666:26 + 59: as alloc::vec::spec_extend::SpecExtend>::spec_extend + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_extend.rs:29:14 + 60: as alloc::vec::spec_from_iter_nested::SpecFromIterNested>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:62:16 + 61: as alloc::vec::spec_from_iter::SpecFromIter>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:34:9 + 62: as core::iter::traits::collect::FromIterator>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3525:9 + 63: core::iter::traits::iterator::Iterator::collect + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2027:9 + 64: hax_frontend_exporter::types::new::full_def::translate_full_def_kind + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:522:18 + 65: hax_frontend_exporter::types::new::full_def::translate_full_def + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:62:20 + 66: hax_frontend_exporter::types::new::full_def::::full_def_maybe_instantiated + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:182:28 + 67: hax_frontend_exporter::types::new::full_def::::instantiated_full_def + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:203:21 + 68: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item::{{closure}} + at ./src/bin/charon-driver/translate/translate_ctx.rs:144:51 + 69: std::panicking::catch_unwind::do_call + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 + 70: __rust_try + 71: std::panicking::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 + 72: std::panic::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 + 73: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item + at ./src/bin/charon-driver/translate/translate_ctx.rs:142:9 + 74: charon_driver::translate::translate_ctx::ItemTransCtx::hax_def + at ./src/bin/charon-driver/translate/translate_ctx.rs:215:20 + 75: charon_driver::translate::translate_items::::translate_virtual_trait_impl + at ./src/bin/charon-driver/translate/translate_items.rs:1054:30 + 76: charon_driver::translate::translate_drops::::translate_drop_impl + at ./src/bin/charon-driver/translate/translate_drops.rs:121:30 + 77: charon_driver::translate::translate_items::::translate_item_aux + at ./src/bin/charon-driver/translate/translate_items.rs:121:57 + 78: charon_driver::translate::translate_items::::translate_item::{{closure}}::{{closure}} + at ./src/bin/charon-driver/translate/translate_items.rs:37:54 + 79: std::panicking::catch_unwind::do_call + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 + 80: __rust_try + 81: std::panicking::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 + 82: std::panic::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 + 83: charon_driver::translate::translate_items::::translate_item::{{closure}} + at ./src/bin/charon-driver/translate/translate_items.rs:37:17 + 84: charon_driver::translate::translate_ctx::TranslateCtx::with_def_id + at ./src/bin/charon-driver/translate/translate_ctx.rs:162:19 + 85: charon_driver::translate::translate_items::::translate_item + at ./src/bin/charon-driver/translate/translate_items.rs:31:14 + 86: charon_driver::translate::translate_crate::translate + at ./src/bin/charon-driver/translate/translate_crate.rs:668:17 + 87: ::after_expansion + at ./src/bin/charon-driver/driver.rs:157:29 + 88: rustc_interface::passes::create_and_enter_global_ctxt::, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0} + 89: rustc_interface::interface::run_compiler::<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1} + 90: std::sys::backtrace::__rust_begin_short_backtrace::::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()> + 91: <::spawn_unchecked_::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} + 92: std::sys::pal::unix::thread::Thread::new::thread_start + 93: + 94: + warning[E9999]: Could not find a clause for `Binder { value: , bound_vars: [] }` in the current context: `Unimplemented` - --> /Users/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/drop.rs:241:5 + --> /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/drop.rs:241:5 | 241 | fn drop(&mut self); | ^^^^^^^^^^^^^^^^^^^ @@ -75,9 +915,230 @@ warning[E9999]: Could not find a clause for `Binder { value: for &mut F>::call_once + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:305:21 + 13: core::option::Option::map + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:1146:29 + 14: as core::iter::traits::iterator::Iterator>::next + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:107:26 + 15: alloc::vec::Vec::extend_desugared + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3633:44 + 16: as alloc::vec::spec_extend::SpecExtend>::spec_extend + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_extend.rs:19:14 + 17: as alloc::vec::spec_from_iter_nested::SpecFromIterNested>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:42:9 + 18: as alloc::vec::spec_from_iter::SpecFromIter>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:34:9 + 19: as core::iter::traits::collect::FromIterator>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3525:9 + 20: core::iter::traits::iterator::Iterator::collect + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2027:9 + 21: hax_frontend_exporter::traits::solve_item_traits_inner + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:322:10 + 22: hax_frontend_exporter::traits::solve_item_required_traits::{{closure}}::accumulate + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:278:27 + 23: hax_frontend_exporter::traits::solve_item_required_traits::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:281:5 + 24: hax_frontend_exporter::traits::solve_item_required_traits + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:256:1 + 25: hax_frontend_exporter::types::ty::ItemRef::translate + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:532:30 + 26: hax_frontend_exporter::traits::translate_item_ref::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:249:5 + 27: hax_frontend_exporter::traits::translate_item_ref + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:243:1 + 28: hax_frontend_exporter::types::ty::_:: for rustc_type_ir::ty_kind::TyKind>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1115:68 + 29: hax_frontend_exporter::types::ty:: for rustc_middle::ty::Ty>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1057:40 + 30: hax_frontend_exporter::types::ty::_:: for rustc_type_ir::generic_arg::GenericArgKind>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:444:10 + 31: hax_frontend_exporter::types::ty:: for rustc_middle::ty::generic_args::GenericArg>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:681:21 + 32: hax_frontend_exporter::types::ty::> for rustc_middle::ty::list::RawList<(),T>>::sinto::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:842:31 + 33: core::iter::adapters::map::map_fold::{{closure}} + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:88:28 + 34: as core::iter::traits::iterator::Iterator>::fold + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:255:27 + 35: as core::iter::traits::iterator::Iterator>::fold + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:128:19 + 36: core::iter::traits::iterator::Iterator::for_each + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:827:14 + 37: alloc::vec::Vec::extend_trusted + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3666:26 + 38: as alloc::vec::spec_extend::SpecExtend>::spec_extend + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_extend.rs:29:14 + 39: as alloc::vec::spec_from_iter_nested::SpecFromIterNested>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:62:16 + 40: as alloc::vec::spec_from_iter::SpecFromIter>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:34:9 + 41: as core::iter::traits::collect::FromIterator>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3525:9 + 42: core::iter::traits::iterator::Iterator::collect + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2027:9 + 43: hax_frontend_exporter::types::ty::> for rustc_middle::ty::list::RawList<(),T>>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:842:41 + 44: hax_frontend_exporter::types::ty::ItemRef::translate + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:533:41 + 45: hax_frontend_exporter::traits::translate_item_ref::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:249:5 + 46: hax_frontend_exporter::traits::translate_item_ref + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:243:1 + 47: hax_frontend_exporter::types::ty:: for rustc_type_ir::predicate::TraitRef>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1392:9 + 48: hax_frontend_exporter::types::ty::_:: for rustc_type_ir::predicate::TraitPredicate>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1402:20 + 49: hax_frontend_exporter::types::new::full_def::get_self_predicate + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:1014:10 + 50: hax_frontend_exporter::types::new::full_def::translate_full_def_kind + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:508:29 + 51: hax_frontend_exporter::types::new::full_def::translate_full_def + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:62:20 + 52: hax_frontend_exporter::types::new::full_def::::full_def_maybe_instantiated + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:182:28 + 53: hax_frontend_exporter::types::new::full_def::::instantiated_full_def + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:203:21 + 54: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item::{{closure}} + at ./src/bin/charon-driver/translate/translate_ctx.rs:144:51 + 55: std::panicking::catch_unwind::do_call + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 + 56: __rust_try + 57: std::panicking::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 + 58: std::panic::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 + 59: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item + at ./src/bin/charon-driver/translate/translate_ctx.rs:142:9 + 60: charon_driver::translate::translate_meta::::name_for_item + at ./src/bin/charon-driver/translate/translate_meta.rs:304:28 + 61: charon_driver::translate::translate_meta::::name_for_src + at ./src/bin/charon-driver/translate/translate_meta.rs:332:18 + 62: charon_driver::translate::translate_meta::::translate_name + at ./src/bin/charon-driver/translate/translate_meta.rs:378:29 + 63: charon_driver::translate::translate_crate::::register_no_enqueue + at ./src/bin/charon-driver/translate/translate_crate.rs:293:40 + 64: charon_driver::translate::translate_crate::::register_and_enqueue + at ./src/bin/charon-driver/translate/translate_crate.rs:311:23 + 65: charon_driver::translate::translate_crate::::register_and_enqueue + at ./src/bin/charon-driver/translate/translate_crate.rs:385:20 + 66: charon_driver::translate::translate_crate::::register_item_maybe_enqueue + at ./src/bin/charon-driver/translate/translate_crate.rs:412:18 + 67: charon_driver::translate::translate_crate::::translate_item_maybe_enqueue + at ./src/bin/charon-driver/translate/translate_crate.rs:446:35 + 68: charon_driver::translate::translate_crate::::translate_item + at ./src/bin/charon-driver/translate/translate_crate.rs:466:14 + 69: charon_driver::translate::translate_crate::::translate_trait_decl_ref + at ./src/bin/charon-driver/translate/translate_crate.rs:567:14 + 70: charon_driver::translate::translate_predicates::::translate_trait_ref + at ./src/bin/charon-driver/translate/translate_predicates.rs:79:14 + 71: charon_driver::translate::translate_predicates::::translate_poly_trait_ref::{{closure}} + at ./src/bin/charon-driver/translate/translate_predicates.rs:50:17 + 72: charon_driver::translate::translate_generics::::translate_region_binder + at ./src/bin/charon-driver/translate/translate_generics.rs:543:19 + 73: charon_driver::translate::translate_predicates::::translate_poly_trait_ref + at ./src/bin/charon-driver/translate/translate_predicates.rs:49:14 + 74: charon_driver::translate::translate_predicates::::translate_trait_impl_expr + at ./src/bin/charon-driver/translate/translate_predicates.rs:181:35 + 75: charon_driver::translate::translate_predicates::::translate_trait_impl_exprs::{{closure}} + at ./src/bin/charon-driver/translate/translate_predicates.rs:171:27 + 76: core::iter::adapters::map::map_try_fold::{{closure}} + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:95:28 + 77: core::iter::traits::iterator::Iterator::try_fold + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2426:21 + 78: as core::iter::traits::iterator::Iterator>::try_fold + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:121:19 + 79: as core::iter::traits::iterator::Iterator>::try_fold + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/by_ref_sized.rs:54:9 + 80: as core::iter::traits::iterator::Iterator>::try_fold + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/mod.rs:192:14 + 81: core::iter::traits::iterator::Iterator::try_for_each + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2487:14 + 82: as core::iter::traits::iterator::Iterator>::next + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/mod.rs:174:14 + 83: as core::iter::traits::iterator::Iterator>::next + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/inspect.rs:78:30 + 84: as core::iter::traits::iterator::Iterator>::next + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:107:19 + 85: as alloc::vec::spec_from_iter_nested::SpecFromIterNested>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:25:41 + 86: as alloc::vec::spec_from_iter::SpecFromIter>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:34:9 + 87: as core::iter::traits::collect::FromIterator>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3525:9 + 88: as core::iter::traits::collect::FromIterator>::from_iter + at /home/ssyram/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/index_vec-0.1.4/src/lib.rs:543:18 + 89: as core::iter::traits::collect::FromIterator>::from_iter + at ./src/ids/vector.rs:415:22 + 90: core::iter::traits::iterator::Iterator::collect + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2027:9 + 91: core::iter::traits::iterator::Iterator::try_collect::{{closure}} + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2107:45 + 92: core::iter::adapters::try_process + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/mod.rs:160:17 + 93: core::iter::traits::iterator::Iterator::try_collect + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2107:9 + 94: charon_driver::translate::translate_predicates::::translate_trait_impl_exprs + at ./src/bin/charon-driver/translate/translate_predicates.rs:172:14 + 95: charon_driver::translate::translate_items::::translate_virtual_trait_impl + at ./src/bin/charon-driver/translate/translate_items.rs:1063:38 + 96: charon_driver::translate::translate_drops::::translate_drop_impl + at ./src/bin/charon-driver/translate/translate_drops.rs:121:30 + 97: charon_driver::translate::translate_items::::translate_item_aux + at ./src/bin/charon-driver/translate/translate_items.rs:121:57 + 98: charon_driver::translate::translate_items::::translate_item::{{closure}}::{{closure}} + at ./src/bin/charon-driver/translate/translate_items.rs:37:54 + 99: std::panicking::catch_unwind::do_call + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 + 100: __rust_try + 101: std::panicking::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 + 102: std::panic::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 + 103: charon_driver::translate::translate_items::::translate_item::{{closure}} + at ./src/bin/charon-driver/translate/translate_items.rs:37:17 + 104: charon_driver::translate::translate_ctx::TranslateCtx::with_def_id + at ./src/bin/charon-driver/translate/translate_ctx.rs:162:19 + 105: charon_driver::translate::translate_items::::translate_item + at ./src/bin/charon-driver/translate/translate_items.rs:31:14 + 106: charon_driver::translate::translate_crate::translate + at ./src/bin/charon-driver/translate/translate_crate.rs:668:17 + 107: ::after_expansion + at ./src/bin/charon-driver/driver.rs:157:29 + 108: rustc_interface::passes::create_and_enter_global_ctxt::, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0} + 109: rustc_interface::interface::run_compiler::<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1} + 110: std::sys::backtrace::__rust_begin_short_backtrace::::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()> + 111: <::spawn_unchecked_::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} + 112: std::sys::pal::unix::thread::Thread::new::thread_start + 113: + 114: + warning[E9999]: Could not find a clause for `Binder { value: , bound_vars: [] }` in the current context: `Unimplemented` - --> /Users/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-apple-darwin/lib/rustlib/src/rust/library/core/src/marker.rs:179:1 + --> /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/marker.rs:179:1 | 179 | pub trait MetaSized: PointeeSized { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/charon/tests/ui/simple/dyn-fn.out b/charon/tests/ui/simple/dyn-fn.out index 970c1628b..b2978bce0 100644 --- a/charon/tests/ui/simple/dyn-fn.out +++ b/charon/tests/ui/simple/dyn-fn.out @@ -47,6 +47,13 @@ pub trait FnOnce vtable: core::ops::function::FnOnce::{vtable} } +struct core::ops::function::FnOnce::{vtable} { + size: usize, + align: usize, + drop: fn<'_0>(&'_0_0 mut ((dyn exists<_dyn> [@TraitClause0]: FnOnce<_dyn, Args> + _dyn : '_ + @TraitClause1_0::Output = Ty0))), + super_trait_0: &'static (core::marker::MetaSized::{vtable}), +} + // Full name: core::ops::function::FnMut #[lang_item("fn_mut")] pub trait FnMut @@ -59,6 +66,15 @@ pub trait FnMut vtable: core::ops::function::FnMut::{vtable} } +struct core::ops::function::FnMut::{vtable} { + size: usize, + align: usize, + drop: fn<'_0>(&'_0_0 mut ((dyn exists<_dyn> [@TraitClause0]: FnMut<_dyn, Args> + _dyn : '_ + @TraitClause1_0::parent_clause1::Output = Ty0))), + method_call_mut: fn<'_0>(&'_0_0 mut ((dyn exists<_dyn> [@TraitClause0]: FnMut<_dyn, Args> + _dyn : '_ + @TraitClause1_0::parent_clause1::Output = Ty0)), Args) -> FnMut<(dyn exists<_dyn> [@TraitClause0]: FnMut<_dyn, Args> + _dyn : '_ + @TraitClause1_0::parent_clause1::Output = Ty0), Args>::parent_clause1::Output, + super_trait_0: &'static (core::marker::MetaSized::{vtable}), + super_trait_1: &'static (core::ops::function::FnOnce::{vtable} [@TraitClause0]: FnMut<_dyn, Args> + _dyn : '_ + @TraitClause1_0::parent_clause1::Output = Ty0), Args>::parent_clause1::Output>), +} + struct core::ops::function::Fn::{vtable} { size: usize, align: usize, @@ -249,6 +265,78 @@ fn gives_fn() return } +fn {{impl FnOnce<(&'_ mut (u32))> for closure}}::{vtable}::{drop_method}<'_0, '_1>(@1: &'_0 mut ((dyn exists<_dyn> [@TraitClause0]: FnOnce<_dyn, (&'_ mut (u32))> + _dyn : '_ + @TraitClause1_0::Output = bool))) +{ + let ret@0: (); // return + let self@1: &'_0 mut ((dyn exists<_dyn> [@TraitClause0]: FnOnce<_dyn, (&'_ mut (u32))> + _dyn : '_ + @TraitClause1_0::Output = bool)); // arg #1 + let concrete@2: &'_0 mut (closure); // local + + storage_live(concrete@2) + concrete@2 := concretize<&'_0 mut ((dyn exists<_dyn> [@TraitClause0]: FnOnce<_dyn, (&'_ mut (u32))> + _dyn : '_ + @TraitClause1_0::Output = bool)), &'_0 mut (closure)>(move (self@1)) + panic +} + +// Full name: test_crate::gives_fn::{impl FnOnce<(&'_ mut (u32))> for closure}::{vtable} +fn {impl FnOnce<(&'_ mut (u32))> for closure}::{vtable}() -> core::ops::function::FnOnce::{vtable}<(&'_ mut (u32)), bool> +{ + let ret@0: core::ops::function::FnOnce::{vtable}<(&'_ mut (u32)), bool>; // return + let @1: &'static (core::marker::MetaSized::{vtable}); // anonymous local + + storage_live(@1) + @1 := &core::marker::MetaSized::{vtable} + ret@0 := core::ops::function::FnOnce::{vtable} { size: const (0 : usize), align: const (1 : usize), drop: const ({{impl FnOnce<(&'_ mut (u32))> for closure}}::{vtable}::{drop_method}<'_, '_>), super_trait_0: move (@1) } + return +} + +// Full name: test_crate::gives_fn::{impl FnOnce<(&'_ mut (u32))> for closure}::{vtable} +static {impl FnOnce<(&'_ mut (u32))> for closure}::{vtable}: core::ops::function::FnOnce::{vtable}<(&'_ mut (u32)), bool> = {impl FnOnce<(&'_ mut (u32))> for closure}::{vtable}() + +fn {{impl FnMut<(&'_ mut (u32))> for closure}}::{vtable}::{drop_method}<'_0, '_1>(@1: &'_0 mut ((dyn exists<_dyn> [@TraitClause0]: FnMut<_dyn, (&'_ mut (u32))> + _dyn : '_ + @TraitClause1_0::parent_clause1::Output = bool))) +{ + let ret@0: (); // return + let self@1: &'_0 mut ((dyn exists<_dyn> [@TraitClause0]: FnMut<_dyn, (&'_ mut (u32))> + _dyn : '_ + @TraitClause1_0::parent_clause1::Output = bool)); // arg #1 + let concrete@2: &'_0 mut (closure); // local + + storage_live(concrete@2) + concrete@2 := concretize<&'_0 mut ((dyn exists<_dyn> [@TraitClause0]: FnMut<_dyn, (&'_ mut (u32))> + _dyn : '_ + @TraitClause1_0::parent_clause1::Output = bool)), &'_0 mut (closure)>(move (self@1)) + panic +} + +// Full name: test_crate::gives_fn::closure::{vtable_method} +fn {vtable_method}<'_0, '_1>(@1: &'_1 mut ((dyn exists<_dyn> [@TraitClause0]: FnMut<_dyn, (&'_ mut (u32))> + _dyn : '_ + @TraitClause1_0::parent_clause1::Output = bool)), @2: (&'_0 mut (u32))) -> bool +{ + let @0: bool; // return + let @1: &'_1 mut ((dyn exists<_dyn> [@TraitClause0]: FnMut<_dyn, (&'_ mut (u32))> + _dyn : '_ + @TraitClause1_0::parent_clause1::Output = bool)); // arg #1 + let @2: (&'_0 mut (u32)); // arg #2 + let @3: &'_1 mut (closure); // anonymous local + + storage_live(@0) + storage_live(@1) + storage_live(@2) + storage_live(@3) + @3 := concretize<&'_1 mut ((dyn exists<_dyn> [@TraitClause0]: FnMut<_dyn, (&'_ mut (u32))> + _dyn : '_ + @TraitClause1_0::parent_clause1::Output = bool)), &'_1 mut (closure)>(move (@1)) + @0 := {impl FnMut<(&'_ mut (u32))> for closure}::call_mut<'_0, '_1>(move (@3), move (@2)) + return +} + +// Full name: test_crate::gives_fn::{impl FnMut<(&'_ mut (u32))> for closure}::{vtable} +fn {impl FnMut<(&'_ mut (u32))> for closure}::{vtable}() -> core::ops::function::FnMut::{vtable}<(&'_ mut (u32)), bool> +{ + let ret@0: core::ops::function::FnMut::{vtable}<(&'_ mut (u32)), bool>; // return + let @1: &'static (core::marker::MetaSized::{vtable}); // anonymous local + let @2: &'static (core::ops::function::FnOnce::{vtable}<(&'_ mut (u32)), FnMut<(dyn exists<_dyn> [@TraitClause0]: FnMut<_dyn, (&'_ mut (u32))> + _dyn : '_ + @TraitClause1_0::parent_clause1::Output = bool), (&'_ mut (u32))>::parent_clause1::Output>); // anonymous local + + storage_live(@1) + storage_live(@2) + @1 := &core::marker::MetaSized::{vtable} + @2 := &{impl FnOnce<(&'_ mut (u32))> for closure}::{vtable} + ret@0 := core::ops::function::FnMut::{vtable} { size: const (0 : usize), align: const (1 : usize), drop: const ({{impl FnMut<(&'_ mut (u32))> for closure}}::{vtable}::{drop_method}<'_, '_>), method_call_mut: const ({vtable_method}<'_, '_>), super_trait_0: move (@1), super_trait_1: move (@2) } + return +} + +// Full name: test_crate::gives_fn::{impl FnMut<(&'_ mut (u32))> for closure}::{vtable} +static {impl FnMut<(&'_ mut (u32))> for closure}::{vtable}: core::ops::function::FnMut::{vtable}<(&'_ mut (u32)), bool> = {impl FnMut<(&'_ mut (u32))> for closure}::{vtable}() + fn {{impl Fn<(&'_ mut (u32))> for closure}}::{vtable}::{drop_method}<'_0, '_1>(@1: &'_0 mut ((dyn exists<_dyn> [@TraitClause0]: Fn<_dyn, (&'_ mut (u32))> + _dyn : '_ + @TraitClause1_0::parent_clause1::parent_clause1::Output = bool))) { let ret@0: (); // return @@ -281,8 +369,14 @@ fn {vtable_method}<'_0, '_1>(@1: &'_1 ((dyn exists<_dyn> [@TraitClause0]: Fn<_dy fn {impl Fn<(&'_ mut (u32))> for closure}::{vtable}() -> core::ops::function::Fn::{vtable}<(&'_ mut (u32)), bool> { let ret@0: core::ops::function::Fn::{vtable}<(&'_ mut (u32)), bool>; // return + let @1: &'static (core::marker::MetaSized::{vtable}); // anonymous local + let @2: &'static (core::ops::function::FnMut::{vtable}<(&'_ mut (u32)), Fn<(dyn exists<_dyn> [@TraitClause0]: Fn<_dyn, (&'_ mut (u32))> + _dyn : '_ + @TraitClause1_0::parent_clause1::parent_clause1::Output = bool), (&'_ mut (u32))>::parent_clause1::parent_clause1::Output>); // anonymous local - ret@0 := core::ops::function::Fn::{vtable} { size: const (0 : usize), align: const (1 : usize), drop: const ({{impl Fn<(&'_ mut (u32))> for closure}}::{vtable}::{drop_method}<'_, '_>), method_call: const ({vtable_method}<'_, '_>), super_trait_0: const (Opaque(missing supertrait vtable)), super_trait_1: const (Opaque(missing supertrait vtable)) } + storage_live(@1) + storage_live(@2) + @1 := &core::marker::MetaSized::{vtable} + @2 := &{impl FnMut<(&'_ mut (u32))> for closure}::{vtable} + ret@0 := core::ops::function::Fn::{vtable} { size: const (0 : usize), align: const (1 : usize), drop: const ({{impl Fn<(&'_ mut (u32))> for closure}}::{vtable}::{drop_method}<'_, '_>), method_call: const ({vtable_method}<'_, '_>), super_trait_0: move (@1), super_trait_1: move (@2) } return } diff --git a/charon/tests/ui/simple/fewer-clauses-in-method-impl.out b/charon/tests/ui/simple/fewer-clauses-in-method-impl.out index 6794e218c..c34eb1ef1 100644 --- a/charon/tests/ui/simple/fewer-clauses-in-method-impl.out +++ b/charon/tests/ui/simple/fewer-clauses-in-method-impl.out @@ -1,4 +1,115 @@ -disabled backtrace + 0: hax_frontend_exporter::traits::solve_trait::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/utils/error_macros.rs:29:29 + 1: hax_frontend_exporter::traits::resolution::PredicateSearcher::resolve::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits/resolution.rs:457:13 + 2: hax_frontend_exporter::traits::resolution::PredicateSearcher::resolve + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits/resolution.rs:646:24 + 3: hax_frontend_exporter::traits::solve_trait::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:232:65 + 4: hax_frontend_exporter::state::WithItemCacheExt::with_predicate_searcher::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/state.rs:312:13 + 5: hax_frontend_exporter::state::WithGlobalCacheExt::with_item_cache::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/state.rs:299:40 + 6: hax_frontend_exporter::state::WithGlobalCacheExt::with_global_cache + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/state.rs:294:9 + 7: hax_frontend_exporter::state::WithGlobalCacheExt::with_item_cache + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/state.rs:299:14 + 8: hax_frontend_exporter::state::WithItemCacheExt::with_cache + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/state.rs:308:14 + 9: hax_frontend_exporter::state::WithItemCacheExt::with_predicate_searcher + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/state.rs:311:14 + 10: hax_frontend_exporter::traits::solve_trait + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:232:11 + 11: hax_frontend_exporter::traits::solve_item_traits_inner::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:321:26 + 12: core::ops::function::impls:: for &mut F>::call_once + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:305:21 + 13: core::option::Option::map + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:1146:29 + 14: as core::iter::traits::iterator::Iterator>::next + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:107:26 + 15: alloc::vec::Vec::extend_desugared + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3633:44 + 16: as alloc::vec::spec_extend::SpecExtend>::spec_extend + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_extend.rs:19:14 + 17: as alloc::vec::spec_from_iter_nested::SpecFromIterNested>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:42:9 + 18: as alloc::vec::spec_from_iter::SpecFromIter>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:34:9 + 19: as core::iter::traits::collect::FromIterator>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3525:9 + 20: core::iter::traits::iterator::Iterator::collect + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2027:9 + 21: hax_frontend_exporter::traits::solve_item_traits_inner + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:322:10 + 22: hax_frontend_exporter::traits::solve_item_required_traits::{{closure}}::accumulate + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:278:27 + 23: hax_frontend_exporter::traits::solve_item_required_traits::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:281:5 + 24: hax_frontend_exporter::traits::solve_item_required_traits + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:256:1 + 25: hax_frontend_exporter::types::ty::ItemRef::translate + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:532:30 + 26: hax_frontend_exporter::traits::translate_item_ref::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:249:5 + 27: hax_frontend_exporter::traits::translate_item_ref + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:243:1 + 28: hax_frontend_exporter::types::ty::AssocItem::sfrom_instantiated + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1795:50 + 29: hax_frontend_exporter::types::new::full_def::translate_full_def_kind + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:686:34 + 30: hax_frontend_exporter::types::new::full_def::translate_full_def + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:62:20 + 31: hax_frontend_exporter::types::new::full_def::::full_def_maybe_instantiated + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:182:28 + 32: hax_frontend_exporter::types::new::full_def::::full_def + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:161:14 + 33: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item::{{closure}} + at ./src/bin/charon-driver/translate/translate_ctx.rs:143:47 + 34: std::panicking::catch_unwind::do_call + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 + 35: __rust_try + 36: std::panicking::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 + 37: std::panic::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 + 38: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item + at ./src/bin/charon-driver/translate/translate_ctx.rs:142:9 + 39: charon_driver::translate::translate_ctx::TranslateCtx::poly_hax_def + at ./src/bin/charon-driver/translate/translate_ctx.rs:127:14 + 40: charon_driver::translate::translate_ctx::ItemTransCtx::poly_hax_def + at ./src/bin/charon-driver/translate/translate_ctx.rs:219:20 + 41: charon_driver::translate::translate_items::::translate_trait_impl + at ./src/bin/charon-driver/translate/translate_items.rs:803:38 + 42: charon_driver::translate::translate_items::::translate_item_aux + at ./src/bin/charon-driver/translate/translate_items.rs:114:55 + 43: charon_driver::translate::translate_items::::translate_item::{{closure}}::{{closure}} + at ./src/bin/charon-driver/translate/translate_items.rs:37:54 + 44: std::panicking::catch_unwind::do_call + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 + 45: __rust_try + 46: std::panicking::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 + 47: std::panic::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 + 48: charon_driver::translate::translate_items::::translate_item::{{closure}} + at ./src/bin/charon-driver/translate/translate_items.rs:37:17 + 49: charon_driver::translate::translate_ctx::TranslateCtx::with_def_id + at ./src/bin/charon-driver/translate/translate_ctx.rs:162:19 + 50: charon_driver::translate::translate_items::::translate_item + at ./src/bin/charon-driver/translate/translate_items.rs:31:14 + 51: charon_driver::translate::translate_crate::translate + at ./src/bin/charon-driver/translate/translate_crate.rs:668:17 + 52: ::after_expansion + at ./src/bin/charon-driver/driver.rs:157:29 + 53: rustc_interface::passes::create_and_enter_global_ctxt::, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0} + 54: rustc_interface::interface::run_compiler::<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1} + 55: std::sys::backtrace::__rust_begin_short_backtrace::::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()> + 56: <::spawn_unchecked_::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} + 57: std::sys::pal::unix::thread::Thread::new::thread_start + 58: + 59: + warning[E9999]: Could not find a clause for `Binder { value: , bound_vars: [] }` in the current context: `Unimplemented` --> tests/ui/simple/fewer-clauses-in-method-impl.rs:8:5 | diff --git a/charon/tests/ui/simple/gat-default.out b/charon/tests/ui/simple/gat-default.out index 1c747e7d6..aabf5d752 100644 --- a/charon/tests/ui/simple/gat-default.out +++ b/charon/tests/ui/simple/gat-default.out @@ -1,7 +1,115 @@ thread 'rustc' panicked at /rustc-dev/a2d45f73c70d9dec57140c9412f83586eda895f8/compiler/rustc_type_ir/src/binder.rs:764:9: type parameter `U/#1` (U/#1/1) out of range when instantiating, args=[()] -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace +stack backtrace: + 0: __rustc::rust_begin_unwind + 1: core::panicking::panic_fmt + 2: >::type_param_out_of_range + 3: rustc_type_ir::binder::ArgFolder::ty_for_param + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_type_ir/src/binder.rs:742:26 + 4: as rustc_type_ir::fold::TypeFolder>::fold_ty + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_type_ir/src/binder.rs:713:34 + 5: rustc_middle::ty::structural_impls:: for rustc_middle::ty::Ty>::fold_with + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/structural_impls.rs:373:16 + 6: >::fold_with + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/generic_args.rs:353:44 + 7: rustc_middle::ty::generic_args:: for &rustc_middle::ty::list::RawList<(),rustc_middle::ty::generic_args::GenericArg>>::fold_with + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/generic_args.rs:638:38 + 8: rustc_middle::ty::structural_impls:: for rustc_middle::ty::Ty>::super_fold_with + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/structural_impls.rs:439:53 + 9: as rustc_type_ir::fold::TypeFolder>::fold_ty + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_type_ir/src/binder.rs:714:20 + 10: rustc_middle::ty::structural_impls:: for rustc_middle::ty::Ty>::fold_with + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/structural_impls.rs:373:16 + 11: rustc_type_ir::binder::EarlyBinder::instantiate + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_type_ir/src/binder.rs:637:20 + 12: hax_frontend_exporter::types::new::full_def::translate_full_def_kind::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:619:50 + 13: core::iter::adapters::map::map_fold::{{closure}} + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:88:28 + 14: core::iter::adapters::map::map_fold::{{closure}} + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:88:21 + 15: core::iter::adapters::map::map_fold::{{closure}} + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:88:21 + 16: as core::iter::traits::iterator::Iterator>::fold + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:255:27 + 17: as core::iter::traits::iterator::Iterator>::fold + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:128:19 + 18: as core::iter::traits::iterator::Iterator>::fold + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:128:19 + 19: as core::iter::traits::iterator::Iterator>::fold + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:128:19 + 20: core::iter::traits::iterator::Iterator::for_each + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:827:14 + 21: alloc::vec::Vec::extend_trusted + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3666:26 + 22: as alloc::vec::spec_extend::SpecExtend>::spec_extend + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_extend.rs:29:14 + 23: as alloc::vec::spec_from_iter_nested::SpecFromIterNested>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:62:16 + 24: as alloc::vec::spec_from_iter::SpecFromIter>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:34:9 + 25: as core::iter::traits::collect::FromIterator>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3525:9 + 26: core::iter::traits::iterator::Iterator::collect + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2027:9 + 27: hax_frontend_exporter::types::new::full_def::translate_full_def_kind + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:653:26 + 28: hax_frontend_exporter::types::new::full_def::translate_full_def + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:62:20 + 29: hax_frontend_exporter::types::new::full_def::::full_def_maybe_instantiated + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:182:28 + 30: hax_frontend_exporter::types::new::full_def::::full_def + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:161:14 + 31: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item::{{closure}} + at ./src/bin/charon-driver/translate/translate_ctx.rs:143:47 + 32: std::panicking::catch_unwind::do_call + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 + 33: __rust_try + 34: std::panicking::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 + 35: std::panic::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 + 36: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item + at ./src/bin/charon-driver/translate/translate_ctx.rs:142:9 + 37: charon_driver::translate::translate_meta::::name_for_item + at ./src/bin/charon-driver/translate/translate_meta.rs:304:28 + 38: charon_driver::translate::translate_meta::::name_for_src + at ./src/bin/charon-driver/translate/translate_meta.rs:332:18 + 39: charon_driver::translate::translate_meta::::translate_name + at ./src/bin/charon-driver/translate/translate_meta.rs:378:29 + 40: charon_driver::translate::translate_crate::::register_no_enqueue + at ./src/bin/charon-driver/translate/translate_crate.rs:293:40 + 41: charon_driver::translate::translate_crate::::register_and_enqueue + at ./src/bin/charon-driver/translate/translate_crate.rs:311:23 + 42: charon_driver::translate::translate_crate::::enqueue_module_item + at ./src/bin/charon-driver/translate/translate_crate.rs:260:42 + 43: charon_driver::translate::translate_items::::register_module + at ./src/bin/charon-driver/translate/translate_items.rs:220:32 + 44: charon_driver::translate::translate_items::::translate_item_aux + at ./src/bin/charon-driver/translate/translate_items.rs:79:24 + 45: charon_driver::translate::translate_items::::translate_item::{{closure}}::{{closure}} + at ./src/bin/charon-driver/translate/translate_items.rs:37:54 + 46: std::panicking::catch_unwind::do_call + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 + 47: __rust_try + 48: std::panicking::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 + 49: std::panic::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 + 50: charon_driver::translate::translate_items::::translate_item::{{closure}} + at ./src/bin/charon-driver/translate/translate_items.rs:37:17 + 51: charon_driver::translate::translate_ctx::TranslateCtx::with_def_id + at ./src/bin/charon-driver/translate/translate_ctx.rs:162:19 + 52: charon_driver::translate::translate_items::::translate_item + at ./src/bin/charon-driver/translate/translate_items.rs:31:14 + 53: charon_driver::translate::translate_crate::translate + at ./src/bin/charon-driver/translate/translate_crate.rs:668:17 + 54: ::after_expansion + at ./src/bin/charon-driver/driver.rs:157:29 + 55: rustc_interface::passes::create_and_enter_global_ctxt::, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0} + 56: rustc_interface::interface::run_compiler::<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1} +note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace. error: Hax panicked when translating `test_crate::{impl#0}`. --> tests/ui/simple/gat-default.rs:9:1 | @@ -23,6 +131,107 @@ error: Item `test_crate::Collection` caused errors; ignoring. thread 'rustc' panicked at /rustc-dev/a2d45f73c70d9dec57140c9412f83586eda895f8/compiler/rustc_type_ir/src/binder.rs:764:9: type parameter `U/#1` (U/#1/1) out of range when instantiating, args=[()] +stack backtrace: + 0: __rustc::rust_begin_unwind + 1: core::panicking::panic_fmt + 2: >::type_param_out_of_range + 3: rustc_type_ir::binder::ArgFolder::ty_for_param + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_type_ir/src/binder.rs:742:26 + 4: as rustc_type_ir::fold::TypeFolder>::fold_ty + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_type_ir/src/binder.rs:713:34 + 5: rustc_middle::ty::structural_impls:: for rustc_middle::ty::Ty>::fold_with + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/structural_impls.rs:373:16 + 6: >::fold_with + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/generic_args.rs:353:44 + 7: rustc_middle::ty::generic_args:: for &rustc_middle::ty::list::RawList<(),rustc_middle::ty::generic_args::GenericArg>>::fold_with + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/generic_args.rs:638:38 + 8: rustc_middle::ty::structural_impls:: for rustc_middle::ty::Ty>::super_fold_with + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/structural_impls.rs:439:53 + 9: as rustc_type_ir::fold::TypeFolder>::fold_ty + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_type_ir/src/binder.rs:714:20 + 10: rustc_middle::ty::structural_impls:: for rustc_middle::ty::Ty>::fold_with + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/structural_impls.rs:373:16 + 11: rustc_type_ir::binder::EarlyBinder::instantiate + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_type_ir/src/binder.rs:637:20 + 12: hax_frontend_exporter::types::new::full_def::translate_full_def_kind::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:619:50 + 13: core::iter::adapters::map::map_fold::{{closure}} + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:88:28 + 14: core::iter::adapters::map::map_fold::{{closure}} + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:88:21 + 15: core::iter::adapters::map::map_fold::{{closure}} + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:88:21 + 16: as core::iter::traits::iterator::Iterator>::fold + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:255:27 + 17: as core::iter::traits::iterator::Iterator>::fold + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:128:19 + 18: as core::iter::traits::iterator::Iterator>::fold + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:128:19 + 19: as core::iter::traits::iterator::Iterator>::fold + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:128:19 + 20: core::iter::traits::iterator::Iterator::for_each + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:827:14 + 21: alloc::vec::Vec::extend_trusted + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3666:26 + 22: as alloc::vec::spec_extend::SpecExtend>::spec_extend + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_extend.rs:29:14 + 23: as alloc::vec::spec_from_iter_nested::SpecFromIterNested>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:62:16 + 24: as alloc::vec::spec_from_iter::SpecFromIter>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:34:9 + 25: as core::iter::traits::collect::FromIterator>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3525:9 + 26: core::iter::traits::iterator::Iterator::collect + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2027:9 + 27: hax_frontend_exporter::types::new::full_def::translate_full_def_kind + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:653:26 + 28: hax_frontend_exporter::types::new::full_def::translate_full_def + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:62:20 + 29: hax_frontend_exporter::types::new::full_def::::full_def_maybe_instantiated + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:182:28 + 30: hax_frontend_exporter::types::new::full_def::::full_def + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:161:14 + 31: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item::{{closure}} + at ./src/bin/charon-driver/translate/translate_ctx.rs:143:47 + 32: std::panicking::catch_unwind::do_call + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 + 33: __rust_try + 34: std::panicking::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 + 35: std::panic::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 + 36: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item + at ./src/bin/charon-driver/translate/translate_ctx.rs:142:9 + 37: charon_driver::translate::translate_meta::::name_for_item + at ./src/bin/charon-driver/translate/translate_meta.rs:304:28 + 38: charon_driver::translate::translate_meta::::name_for_src + at ./src/bin/charon-driver/translate/translate_meta.rs:332:18 + 39: charon_driver::translate::translate_meta::::translate_name + at ./src/bin/charon-driver/translate/translate_meta.rs:378:29 + 40: charon_driver::translate::translate_items::::translate_item_aux + at ./src/bin/charon-driver/translate/translate_items.rs:63:25 + 41: charon_driver::translate::translate_items::::translate_item::{{closure}}::{{closure}} + at ./src/bin/charon-driver/translate/translate_items.rs:37:54 + 42: std::panicking::catch_unwind::do_call + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 + 43: __rust_try + 44: std::panicking::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 + 45: std::panic::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 + 46: charon_driver::translate::translate_items::::translate_item::{{closure}} + at ./src/bin/charon-driver/translate/translate_items.rs:37:17 + 47: charon_driver::translate::translate_ctx::TranslateCtx::with_def_id + at ./src/bin/charon-driver/translate/translate_ctx.rs:162:19 + 48: charon_driver::translate::translate_items::::translate_item + at ./src/bin/charon-driver/translate/translate_items.rs:31:14 + 49: charon_driver::translate::translate_crate::translate + at ./src/bin/charon-driver/translate/translate_crate.rs:668:17 + 50: ::after_expansion + at ./src/bin/charon-driver/driver.rs:157:29 + 51: rustc_interface::passes::create_and_enter_global_ctxt::, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0} + 52: rustc_interface::interface::run_compiler::<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1} +note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace. error: Hax panicked when translating `test_crate::{impl#0}`. --> tests/ui/simple/gat-default.rs:9:1 | diff --git a/charon/tests/ui/unsupported/advanced-const-generics.out b/charon/tests/ui/unsupported/advanced-const-generics.out index 83062949f..2e5533f3c 100644 --- a/charon/tests/ui/unsupported/advanced-const-generics.out +++ b/charon/tests/ui/unsupported/advanced-const-generics.out @@ -1,4 +1,109 @@ -disabled backtrace + 0: hax_frontend_exporter::constant_utils::uneval::> for rustc_middle::ty::consts::Const>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/utils/error_macros.rs:29:29 + 1: hax_frontend_exporter::types::ty::_:: for rustc_type_ir::ty_kind::TyKind>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1120:37 + 2: hax_frontend_exporter::types::ty:: for rustc_middle::ty::Ty>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1057:40 + 3: hax_frontend_exporter::types::ty:: for rustc_middle::ty::Term>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1451:45 + 4: hax_frontend_exporter::types::ty::_:: for rustc_type_ir::predicate_kind::ClauseKind>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1507:16 + 5: hax_frontend_exporter::types::ty::> for rustc_type_ir::binder::Binder>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1639:41 + 6: hax_frontend_exporter::types::ty:: for rustc_middle::ty::predicate::Clause>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1525:32 + 7: <(L,R) as hax_frontend_exporter::sinto::SInto>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/sinto.rs:64:17 + 8: <[T] as hax_frontend_exporter::sinto::SInto>>::sinto::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/sinto.rs:93:31 + 9: core::iter::adapters::map::map_fold::{{closure}} + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:88:28 + 10: as core::iter::traits::iterator::Iterator>::fold + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:255:27 + 11: as core::iter::traits::iterator::Iterator>::fold + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:128:19 + 12: core::iter::traits::iterator::Iterator::for_each + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:827:14 + 13: alloc::vec::Vec::extend_trusted + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3666:26 + 14: as alloc::vec::spec_extend::SpecExtend>::spec_extend + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_extend.rs:29:14 + 15: as alloc::vec::spec_from_iter_nested::SpecFromIterNested>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:62:16 + 16: as alloc::vec::spec_from_iter::SpecFromIter>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:34:9 + 17: as core::iter::traits::collect::FromIterator>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3525:9 + 18: core::iter::traits::iterator::Iterator::collect + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2027:9 + 19: <[T] as hax_frontend_exporter::sinto::SInto>>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/sinto.rs:93:41 + 20: hax_frontend_exporter::types::ty:: for alloc::borrow::Cow<[(rustc_middle::ty::predicate::Clause,rustc_span::span_encoding::Span)]>>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1625:39 + 21: hax_frontend_exporter::types::new::full_def::get_param_env + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:1129:18 + 22: hax_frontend_exporter::types::new::full_def::translate_full_def_kind + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:666:24 + 23: hax_frontend_exporter::types::new::full_def::translate_full_def + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:62:20 + 24: hax_frontend_exporter::types::new::full_def::::full_def_maybe_instantiated + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:182:28 + 25: hax_frontend_exporter::types::new::full_def::::full_def + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:161:14 + 26: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item::{{closure}} + at ./src/bin/charon-driver/translate/translate_ctx.rs:143:47 + 27: std::panicking::catch_unwind::do_call + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 + 28: __rust_try + 29: std::panicking::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 + 30: std::panic::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 + 31: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item + at ./src/bin/charon-driver/translate/translate_ctx.rs:142:9 + 32: charon_driver::translate::translate_meta::::name_for_item + at ./src/bin/charon-driver/translate/translate_meta.rs:304:28 + 33: charon_driver::translate::translate_meta::::name_for_src + at ./src/bin/charon-driver/translate/translate_meta.rs:332:18 + 34: charon_driver::translate::translate_meta::::translate_name + at ./src/bin/charon-driver/translate/translate_meta.rs:378:29 + 35: charon_driver::translate::translate_crate::::register_no_enqueue + at ./src/bin/charon-driver/translate/translate_crate.rs:293:40 + 36: charon_driver::translate::translate_crate::::register_and_enqueue + at ./src/bin/charon-driver/translate/translate_crate.rs:311:23 + 37: charon_driver::translate::translate_crate::::enqueue_module_item + at ./src/bin/charon-driver/translate/translate_crate.rs:260:42 + 38: charon_driver::translate::translate_items::::register_module + at ./src/bin/charon-driver/translate/translate_items.rs:220:32 + 39: charon_driver::translate::translate_items::::translate_item_aux + at ./src/bin/charon-driver/translate/translate_items.rs:79:24 + 40: charon_driver::translate::translate_items::::translate_item::{{closure}}::{{closure}} + at ./src/bin/charon-driver/translate/translate_items.rs:37:54 + 41: std::panicking::catch_unwind::do_call + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 + 42: __rust_try + 43: std::panicking::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 + 44: std::panic::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 + 45: charon_driver::translate::translate_items::::translate_item::{{closure}} + at ./src/bin/charon-driver/translate/translate_items.rs:37:17 + 46: charon_driver::translate::translate_ctx::TranslateCtx::with_def_id + at ./src/bin/charon-driver/translate/translate_ctx.rs:162:19 + 47: charon_driver::translate::translate_items::::translate_item + at ./src/bin/charon-driver/translate/translate_items.rs:31:14 + 48: charon_driver::translate::translate_crate::translate + at ./src/bin/charon-driver/translate/translate_crate.rs:668:17 + 49: ::after_expansion + at ./src/bin/charon-driver/driver.rs:157:29 + 50: rustc_interface::passes::create_and_enter_global_ctxt::, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0} + 51: rustc_interface::interface::run_compiler::<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1} + 52: std::sys::backtrace::__rust_begin_short_backtrace::::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()> + 53: <::spawn_unchecked_::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} + 54: std::sys::pal::unix::thread::Thread::new::thread_start + 55: + 56: + error[E9999]: Supposely unreachable place in the Rust AST. The label is "TranslateUneval". This error report happend because some assumption about the Rust AST was broken. @@ -40,7 +145,104 @@ error: Item `test_crate::foo` caused errors; ignoring. 14 | fn foo() -> Foo { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -disabled backtrace + 0: hax_frontend_exporter::constant_utils::uneval::> for rustc_middle::ty::consts::Const>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/utils/error_macros.rs:29:29 + 1: hax_frontend_exporter::types::ty::_:: for rustc_type_ir::ty_kind::TyKind>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1120:37 + 2: hax_frontend_exporter::types::ty:: for rustc_middle::ty::Ty>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1057:40 + 3: hax_frontend_exporter::types::ty:: for rustc_middle::ty::Term>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1451:45 + 4: hax_frontend_exporter::types::ty::_:: for rustc_type_ir::predicate_kind::ClauseKind>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1507:16 + 5: hax_frontend_exporter::types::ty::> for rustc_type_ir::binder::Binder>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1639:41 + 6: hax_frontend_exporter::types::ty:: for rustc_middle::ty::predicate::Clause>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1525:32 + 7: <(L,R) as hax_frontend_exporter::sinto::SInto>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/sinto.rs:64:17 + 8: <[T] as hax_frontend_exporter::sinto::SInto>>::sinto::{{closure}} + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/sinto.rs:93:31 + 9: core::iter::adapters::map::map_fold::{{closure}} + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:88:28 + 10: as core::iter::traits::iterator::Iterator>::fold + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:255:27 + 11: as core::iter::traits::iterator::Iterator>::fold + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:128:19 + 12: core::iter::traits::iterator::Iterator::for_each + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:827:14 + 13: alloc::vec::Vec::extend_trusted + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3666:26 + 14: as alloc::vec::spec_extend::SpecExtend>::spec_extend + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_extend.rs:29:14 + 15: as alloc::vec::spec_from_iter_nested::SpecFromIterNested>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:62:16 + 16: as alloc::vec::spec_from_iter::SpecFromIter>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:34:9 + 17: as core::iter::traits::collect::FromIterator>::from_iter + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3525:9 + 18: core::iter::traits::iterator::Iterator::collect + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2027:9 + 19: <[T] as hax_frontend_exporter::sinto::SInto>>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/sinto.rs:93:41 + 20: hax_frontend_exporter::types::ty:: for alloc::borrow::Cow<[(rustc_middle::ty::predicate::Clause,rustc_span::span_encoding::Span)]>>::sinto + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1625:39 + 21: hax_frontend_exporter::types::new::full_def::get_param_env + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:1129:18 + 22: hax_frontend_exporter::types::new::full_def::translate_full_def_kind + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:666:24 + 23: hax_frontend_exporter::types::new::full_def::translate_full_def + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:62:20 + 24: hax_frontend_exporter::types::new::full_def::::full_def_maybe_instantiated + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:182:28 + 25: hax_frontend_exporter::types::new::full_def::::full_def + at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:161:14 + 26: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item::{{closure}} + at ./src/bin/charon-driver/translate/translate_ctx.rs:143:47 + 27: std::panicking::catch_unwind::do_call + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 + 28: __rust_try + 29: std::panicking::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 + 30: std::panic::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 + 31: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item + at ./src/bin/charon-driver/translate/translate_ctx.rs:142:9 + 32: charon_driver::translate::translate_meta::::name_for_item + at ./src/bin/charon-driver/translate/translate_meta.rs:304:28 + 33: charon_driver::translate::translate_meta::::name_for_src + at ./src/bin/charon-driver/translate/translate_meta.rs:332:18 + 34: charon_driver::translate::translate_meta::::translate_name + at ./src/bin/charon-driver/translate/translate_meta.rs:378:29 + 35: charon_driver::translate::translate_items::::translate_item_aux + at ./src/bin/charon-driver/translate/translate_items.rs:63:25 + 36: charon_driver::translate::translate_items::::translate_item::{{closure}}::{{closure}} + at ./src/bin/charon-driver/translate/translate_items.rs:37:54 + 37: std::panicking::catch_unwind::do_call + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 + 38: __rust_try + 39: std::panicking::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 + 40: std::panic::catch_unwind + at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 + 41: charon_driver::translate::translate_items::::translate_item::{{closure}} + at ./src/bin/charon-driver/translate/translate_items.rs:37:17 + 42: charon_driver::translate::translate_ctx::TranslateCtx::with_def_id + at ./src/bin/charon-driver/translate/translate_ctx.rs:162:19 + 43: charon_driver::translate::translate_items::::translate_item + at ./src/bin/charon-driver/translate/translate_items.rs:31:14 + 44: charon_driver::translate::translate_crate::translate + at ./src/bin/charon-driver/translate/translate_crate.rs:668:17 + 45: ::after_expansion + at ./src/bin/charon-driver/driver.rs:157:29 + 46: rustc_interface::passes::create_and_enter_global_ctxt::, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0} + 47: rustc_interface::interface::run_compiler::<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1} + 48: std::sys::backtrace::__rust_begin_short_backtrace::::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()> + 49: <::spawn_unchecked_::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} + 50: std::sys::pal::unix::thread::Thread::new::thread_start + 51: + 52: + error: Hax panicked when translating `test_crate::bar`. --> tests/ui/unsupported/advanced-const-generics.rs:18:1 | diff --git a/charon/tests/ui/vtable-simple.out b/charon/tests/ui/vtable-simple.out index 9fb9d89c8..ff231c96b 100644 --- a/charon/tests/ui/vtable-simple.out +++ b/charon/tests/ui/vtable-simple.out @@ -126,8 +126,11 @@ where [@TraitClause1]: Clone, { let ret@0: test_crate::Modifiable::{vtable}; // return + let @1: &'static (core::marker::MetaSized::{vtable}); // anonymous local - ret@0 := test_crate::Modifiable::{vtable} { size: const (4 : usize), align: const (4 : usize), drop: const ({{impl Modifiable for i32}}::{vtable}::{drop_method}<'_, T>[@TraitClause0, @TraitClause1]), method_modify: const ({vtable_method}<'_, '_, T>[@TraitClause0, @TraitClause1]), super_trait_0: const (Opaque(missing supertrait vtable)) } + storage_live(@1) + @1 := &core::marker::MetaSized::{vtable} + ret@0 := test_crate::Modifiable::{vtable} { size: const (4 : usize), align: const (4 : usize), drop: const ({{impl Modifiable for i32}}::{vtable}::{drop_method}<'_, T>[@TraitClause0, @TraitClause1]), method_modify: const ({vtable_method}<'_, '_, T>[@TraitClause0, @TraitClause1]), super_trait_0: move (@1) } return } diff --git a/charon/tests/ui/vtables.out b/charon/tests/ui/vtables.out index 955ec5dbd..e87a3b51e 100644 --- a/charon/tests/ui/vtables.out +++ b/charon/tests/ui/vtables.out @@ -386,11 +386,14 @@ fn {impl Checkable for i32}::check::{vtable_method}<'_0>(@1: &'_0 ((dyn exi fn {impl Checkable for i32}::{vtable}() -> test_crate::Checkable::{vtable} { let ret@0: test_crate::Checkable::{vtable}; // return - let @1: &'static (test_crate::Super::{vtable} [@TraitClause0]: Checkable<_dyn, i32> + _dyn : '_ + @TraitClause1_0::parent_clause1::Output = i32), i32>::parent_clause1::Output>); // anonymous local + let @1: &'static (core::marker::MetaSized::{vtable}); // anonymous local + let @2: &'static (test_crate::Super::{vtable} [@TraitClause0]: Checkable<_dyn, i32> + _dyn : '_ + @TraitClause1_0::parent_clause1::Output = i32), i32>::parent_clause1::Output>); // anonymous local storage_live(@1) - @1 := &{impl Super for i32}::{vtable} - ret@0 := test_crate::Checkable::{vtable} { size: const (4 : usize), align: const (4 : usize), drop: const ({{impl Checkable for i32}}::{vtable}::{drop_method}<'_>), method_check: const ({impl Checkable for i32}::check::{vtable_method}<'_>), super_trait_0: const (Opaque(missing supertrait vtable)), super_trait_1: move (@1) } + storage_live(@2) + @1 := &core::marker::MetaSized::{vtable} + @2 := &{impl Super for i32}::{vtable} + ret@0 := test_crate::Checkable::{vtable} { size: const (4 : usize), align: const (4 : usize), drop: const ({{impl Checkable for i32}}::{vtable}::{drop_method}<'_>), method_check: const ({impl Checkable for i32}::check::{vtable_method}<'_>), super_trait_0: move (@1), super_trait_1: move (@2) } return } @@ -519,11 +522,14 @@ fn {impl Checkable for String}::check::{vtable_method}<'_0>(@1: &'_0 ((dyn fn {impl Checkable for String}::{vtable}() -> test_crate::Checkable::{vtable} { let ret@0: test_crate::Checkable::{vtable}; // return - let @1: &'static (test_crate::Super::{vtable} [@TraitClause0]: Checkable<_dyn, i32> + _dyn : '_ + @TraitClause1_0::parent_clause1::Output = i32), i32>::parent_clause1::Output>); // anonymous local + let @1: &'static (core::marker::MetaSized::{vtable}); // anonymous local + let @2: &'static (test_crate::Super::{vtable} [@TraitClause0]: Checkable<_dyn, i32> + _dyn : '_ + @TraitClause1_0::parent_clause1::Output = i32), i32>::parent_clause1::Output>); // anonymous local storage_live(@1) - @1 := &{impl Super for String}::{vtable} - ret@0 := test_crate::Checkable::{vtable} { size: const (24 : usize), align: const (8 : usize), drop: const ({{impl Checkable for String}}::{vtable}::{drop_method}<'_>), method_check: const ({impl Checkable for String}::check::{vtable_method}<'_>), super_trait_0: const (Opaque(missing supertrait vtable)), super_trait_1: move (@1) } + storage_live(@2) + @1 := &core::marker::MetaSized::{vtable} + @2 := &{impl Super for String}::{vtable} + ret@0 := test_crate::Checkable::{vtable} { size: const (24 : usize), align: const (8 : usize), drop: const ({{impl Checkable for String}}::{vtable}::{drop_method}<'_>), method_check: const ({impl Checkable for String}::check::{vtable_method}<'_>), super_trait_0: move (@1), super_trait_1: move (@2) } return } @@ -681,11 +687,14 @@ fn {impl Checkable for Array}::check::{vtable_meth fn {impl Checkable for Array}::{vtable}() -> test_crate::Checkable::{vtable} { let ret@0: test_crate::Checkable::{vtable}; // return - let @1: &'static (test_crate::Super::{vtable} [@TraitClause0]: Checkable<_dyn, i32> + _dyn : '_ + @TraitClause1_0::parent_clause1::Output = i32), i32>::parent_clause1::Output>); // anonymous local + let @1: &'static (core::marker::MetaSized::{vtable}); // anonymous local + let @2: &'static (test_crate::Super::{vtable} [@TraitClause0]: Checkable<_dyn, i32> + _dyn : '_ + @TraitClause1_0::parent_clause1::Output = i32), i32>::parent_clause1::Output>); // anonymous local storage_live(@1) - @1 := &{impl Super for Array}::{vtable} - ret@0 := test_crate::Checkable::{vtable} { size: const (Opaque(Layout not available: No instant available const generic value or wrong format value: @ConstGeneric0_0)), align: const (Opaque(Layout not available: No instant available const generic value or wrong format value: @ConstGeneric0_0)), drop: const ({{impl Checkable for Array}}::{vtable}::{drop_method}<'_, const N : usize>), method_check: const ({impl Checkable for Array}::check::{vtable_method}<'_, const N : usize>), super_trait_0: const (Opaque(missing supertrait vtable)), super_trait_1: move (@1) } + storage_live(@2) + @1 := &core::marker::MetaSized::{vtable} + @2 := &{impl Super for Array}::{vtable} + ret@0 := test_crate::Checkable::{vtable} { size: const (Opaque(Layout not available: No instant available const generic value or wrong format value: @ConstGeneric0_0)), align: const (Opaque(Layout not available: No instant available const generic value or wrong format value: @ConstGeneric0_0)), drop: const ({{impl Checkable for Array}}::{vtable}::{drop_method}<'_, const N : usize>), method_check: const ({impl Checkable for Array}::check::{vtable_method}<'_, const N : usize>), super_trait_0: move (@1), super_trait_1: move (@2) } return } @@ -805,11 +814,14 @@ fn {impl Checkable for (i32, String)}::check::{vtable_method}<'_0>(@1: &'_0 fn {impl Checkable for (i32, String)}::{vtable}() -> test_crate::Checkable::{vtable} { let ret@0: test_crate::Checkable::{vtable}; // return - let @1: &'static (test_crate::Super::{vtable} [@TraitClause0]: Checkable<_dyn, i32> + _dyn : '_ + @TraitClause1_0::parent_clause1::Output = i32), i32>::parent_clause1::Output>); // anonymous local + let @1: &'static (core::marker::MetaSized::{vtable}); // anonymous local + let @2: &'static (test_crate::Super::{vtable} [@TraitClause0]: Checkable<_dyn, i32> + _dyn : '_ + @TraitClause1_0::parent_clause1::Output = i32), i32>::parent_clause1::Output>); // anonymous local storage_live(@1) - @1 := &{impl Super for (i32, String)}::{vtable} - ret@0 := test_crate::Checkable::{vtable} { size: const (32 : usize), align: const (8 : usize), drop: const ({{impl Checkable for (i32, String)}}::{vtable}::{drop_method}<'_>), method_check: const ({impl Checkable for (i32, String)}::check::{vtable_method}<'_>), super_trait_0: const (Opaque(missing supertrait vtable)), super_trait_1: move (@1) } + storage_live(@2) + @1 := &core::marker::MetaSized::{vtable} + @2 := &{impl Super for (i32, String)}::{vtable} + ret@0 := test_crate::Checkable::{vtable} { size: const (32 : usize), align: const (8 : usize), drop: const ({{impl Checkable for (i32, String)}}::{vtable}::{drop_method}<'_>), method_check: const ({impl Checkable for (i32, String)}::check::{vtable_method}<'_>), super_trait_0: move (@1), super_trait_1: move (@2) } return } @@ -1089,8 +1101,11 @@ fn {impl NoParam for alloc::boxed::Box[MetaSized, Sized]}::dum fn {impl NoParam for alloc::boxed::Box[MetaSized, Sized]}::{vtable}() -> test_crate::NoParam::{vtable} { let ret@0: test_crate::NoParam::{vtable}; // return + let @1: &'static (core::marker::MetaSized::{vtable}); // anonymous local - ret@0 := test_crate::NoParam::{vtable} { size: const (Opaque(Layout not available: TODO: handle Box with ptr-metadata)), align: const (Opaque(Layout not available: TODO: handle Box with ptr-metadata)), drop: const ({{impl NoParam for alloc::boxed::Box[MetaSized, Sized]}}::{vtable}::{drop_method}<'_>), method_dummy: const ({impl NoParam for alloc::boxed::Box[MetaSized, Sized]}::dummy::{vtable_method}<'_>), super_trait_0: const (Opaque(missing supertrait vtable)) } + storage_live(@1) + @1 := &core::marker::MetaSized::{vtable} + ret@0 := test_crate::NoParam::{vtable} { size: const (Opaque(Layout not available: TODO: handle Box with ptr-metadata)), align: const (Opaque(Layout not available: TODO: handle Box with ptr-metadata)), drop: const ({{impl NoParam for alloc::boxed::Box[MetaSized, Sized]}}::{vtable}::{drop_method}<'_>), method_dummy: const ({impl NoParam for alloc::boxed::Box[MetaSized, Sized]}::dummy::{vtable_method}<'_>), super_trait_0: move (@1) } return } @@ -1166,8 +1181,11 @@ fn {impl NoParam for (i32, i32)}::dummy::{vtable_method}<'_0>(@1: &'_0 ((dyn exi fn {impl NoParam for (i32, i32)}::{vtable}() -> test_crate::NoParam::{vtable} { let ret@0: test_crate::NoParam::{vtable}; // return + let @1: &'static (core::marker::MetaSized::{vtable}); // anonymous local - ret@0 := test_crate::NoParam::{vtable} { size: const (8 : usize), align: const (4 : usize), drop: const ({{impl NoParam for (i32, i32)}}::{vtable}::{drop_method}<'_>), method_dummy: const ({impl NoParam for (i32, i32)}::dummy::{vtable_method}<'_>), super_trait_0: const (Opaque(missing supertrait vtable)) } + storage_live(@1) + @1 := &core::marker::MetaSized::{vtable} + ret@0 := test_crate::NoParam::{vtable} { size: const (8 : usize), align: const (4 : usize), drop: const ({{impl NoParam for (i32, i32)}}::{vtable}::{drop_method}<'_>), method_dummy: const ({impl NoParam for (i32, i32)}::dummy::{vtable_method}<'_>), super_trait_0: move (@1) } return } @@ -1265,8 +1283,11 @@ fn {impl NoParam for Array}::dummy::{vtable_method}<'_0>(@1: &' fn {impl NoParam for Array}::{vtable}() -> test_crate::NoParam::{vtable} { let ret@0: test_crate::NoParam::{vtable}; // return + let @1: &'static (core::marker::MetaSized::{vtable}); // anonymous local - ret@0 := test_crate::NoParam::{vtable} { size: const (40 : usize), align: const (4 : usize), drop: const ({{impl NoParam for Array}}::{vtable}::{drop_method}<'_>), method_dummy: const ({impl NoParam for Array}::dummy::{vtable_method}<'_>), super_trait_0: const (Opaque(missing supertrait vtable)) } + storage_live(@1) + @1 := &core::marker::MetaSized::{vtable} + ret@0 := test_crate::NoParam::{vtable} { size: const (40 : usize), align: const (4 : usize), drop: const ({{impl NoParam for Array}}::{vtable}::{drop_method}<'_>), method_dummy: const ({impl NoParam for Array}::dummy::{vtable_method}<'_>), super_trait_0: move (@1) } return } @@ -1384,8 +1405,11 @@ fn {impl NoParam for Array<(String, Array<(i32, i32), const M : usize>, Array<(i fn {impl NoParam for Array<(String, Array<(i32, i32), const M : usize>, Array<(i32, String), const M : usize>), const N : usize>}::{vtable}() -> test_crate::NoParam::{vtable} { let ret@0: test_crate::NoParam::{vtable}; // return + let @1: &'static (core::marker::MetaSized::{vtable}); // anonymous local - ret@0 := test_crate::NoParam::{vtable} { size: const (Opaque(Layout not available: No instant available const generic value or wrong format value: @ConstGeneric0_1)), align: const (Opaque(Layout not available: No instant available const generic value or wrong format value: @ConstGeneric0_1)), drop: const ({{impl NoParam for Array<(String, Array<(i32, i32), const M : usize>, Array<(i32, String), const M : usize>), const N : usize>}}::{vtable}::{drop_method}<'_, const N : usize, const M : usize>), method_dummy: const ({impl NoParam for Array<(String, Array<(i32, i32), const M : usize>, Array<(i32, String), const M : usize>), const N : usize>}::dummy::{vtable_method}<'_, const N : usize, const M : usize>), super_trait_0: const (Opaque(missing supertrait vtable)) } + storage_live(@1) + @1 := &core::marker::MetaSized::{vtable} + ret@0 := test_crate::NoParam::{vtable} { size: const (Opaque(Layout not available: No instant available const generic value or wrong format value: @ConstGeneric0_1)), align: const (Opaque(Layout not available: No instant available const generic value or wrong format value: @ConstGeneric0_1)), drop: const ({{impl NoParam for Array<(String, Array<(i32, i32), const M : usize>, Array<(i32, String), const M : usize>), const N : usize>}}::{vtable}::{drop_method}<'_, const N : usize, const M : usize>), method_dummy: const ({impl NoParam for Array<(String, Array<(i32, i32), const M : usize>, Array<(i32, String), const M : usize>), const N : usize>}::dummy::{vtable_method}<'_, const N : usize, const M : usize>), super_trait_0: move (@1) } return } @@ -1650,8 +1674,11 @@ where [@TraitClause1]: Clone, { let ret@0: test_crate::Modifiable::{vtable}; // return + let @1: &'static (core::marker::MetaSized::{vtable}); // anonymous local - ret@0 := test_crate::Modifiable::{vtable} { size: const (4 : usize), align: const (4 : usize), drop: const ({{impl Modifiable for i32}}::{vtable}::{drop_method}<'_, T>[@TraitClause0, @TraitClause1]), method_modify: const ({impl Modifiable for i32}::modify::{vtable_method}<'_, '_, T>[@TraitClause0, @TraitClause1]), super_trait_0: const (Opaque(missing supertrait vtable)) } + storage_live(@1) + @1 := &core::marker::MetaSized::{vtable} + ret@0 := test_crate::Modifiable::{vtable} { size: const (4 : usize), align: const (4 : usize), drop: const ({{impl Modifiable for i32}}::{vtable}::{drop_method}<'_, T>[@TraitClause0, @TraitClause1]), method_modify: const ({impl Modifiable for i32}::modify::{vtable_method}<'_, '_, T>[@TraitClause0, @TraitClause1]), super_trait_0: move (@1) } return } @@ -1926,14 +1953,17 @@ fn {{impl Both32And64 for i32}}::{vtable}::{drop_method}<'_0>(@1: &'_0 mut ((dyn fn {impl Both32And64 for i32}::{vtable}() -> test_crate::Both32And64::{vtable} { let ret@0: test_crate::Both32And64::{vtable}; // return - let @1: &'static (test_crate::BaseOn::{vtable}); // anonymous local - let @2: &'static (test_crate::BaseOn::{vtable}); // anonymous local + let @1: &'static (core::marker::MetaSized::{vtable}); // anonymous local + let @2: &'static (test_crate::BaseOn::{vtable}); // anonymous local + let @3: &'static (test_crate::BaseOn::{vtable}); // anonymous local storage_live(@1) storage_live(@2) - @1 := &{impl BaseOn for i32}::{vtable} - @2 := &{impl BaseOn for i32}::{vtable} - ret@0 := test_crate::Both32And64::{vtable} { size: const (4 : usize), align: const (4 : usize), drop: const ({{impl Both32And64 for i32}}::{vtable}::{drop_method}<'_>), method_both_operate: const (Opaque(shim for default methods aren't yet supported)), super_trait_0: const (Opaque(missing supertrait vtable)), super_trait_1: move (@1), super_trait_2: move (@2) } + storage_live(@3) + @1 := &core::marker::MetaSized::{vtable} + @2 := &{impl BaseOn for i32}::{vtable} + @3 := &{impl BaseOn for i32}::{vtable} + ret@0 := test_crate::Both32And64::{vtable} { size: const (4 : usize), align: const (4 : usize), drop: const ({{impl Both32And64 for i32}}::{vtable}::{drop_method}<'_>), method_both_operate: const (Opaque(shim for default methods aren't yet supported)), super_trait_0: move (@1), super_trait_1: move (@2), super_trait_2: move (@3) } return } diff --git a/charon/tests/ui/vtables.rs b/charon/tests/ui/vtables.rs index 99df124eb..64daad57d 100644 --- a/charon/tests/ui/vtables.rs +++ b/charon/tests/ui/vtables.rs @@ -108,6 +108,21 @@ fn to_dyn_obj(arg: &T) -> &dyn NoParam { arg } +// #[derive(Clone)] +// struct MyStruct { +// a: i32, +// b: String, +// } + +// fn ok_clone(arg: &T) -> T { +// arg.clone() +// } +// fn use_ok_clone(arg: &String) -> String { +// ok_clone(arg); +// let s = MyStruct { a: 10, b: String::from("Hello") }; +// ok_clone(&s).b +// } + trait Modifiable { fn modify(&mut self, arg: &T) -> T; } From 21b8cb94c0ba39d28be4f4cc88d270da5c4647c1 Mon Sep 17 00:00:00 2001 From: ssyram Date: Fri, 5 Sep 2025 23:39:13 +0800 Subject: [PATCH 12/12] Debug drop shim --- .../src/transform/compute_vtable_metadata.rs | 23 +- .../tests/ui/monomorphization/dyn-trait.out | 39 +- .../unsatisfied-method-bounds.out | 1073 +---------------- charon/tests/ui/simple/dyn-fn.out | 18 +- .../simple/fewer-clauses-in-method-impl.out | 113 +- charon/tests/ui/simple/gat-default.out | 211 +--- .../unsupported/advanced-const-generics.out | 206 +--- 7 files changed, 31 insertions(+), 1652 deletions(-) diff --git a/charon/src/transform/compute_vtable_metadata.rs b/charon/src/transform/compute_vtable_metadata.rs index 85c7d5764..380718124 100644 --- a/charon/src/transform/compute_vtable_metadata.rs +++ b/charon/src/transform/compute_vtable_metadata.rs @@ -436,15 +436,19 @@ impl<'a> VtableMetadataComputer<'a> { TypeId::Builtin(BuiltinTy::Array) => self.analyze_array_drop_case(type_decl_ref), TypeId::Tuple => self.analyze_tuple_drop_case(type_decl_ref), TypeId::Builtin(builtin_ty) => self.analyze_builtin_drop_case(builtin_ty, concrete_ty), - TypeId::Adt(_) => { - trace!("[ANALYZE] Found ADT type, looking for direct drop implementation"); - if let Some(fun_ref) = self.find_direct_drop_impl(concrete_ty)? { - Ok(DropCase::Direct(fun_ref)) - } else { - Ok(DropCase::Panic(format!( - "Drop implementation for {:?} not found or not translated", - concrete_ty - ))) + TypeId::Adt(ty_id) => { + let decl = self.ctx.translated.type_decls.get(*ty_id).unwrap(); + match &decl.drop_glue { + Some(impl_ref) => { + match self.ctx.translated.trait_impls.get(impl_ref.id) { + Some(timpl) => { + let method = &timpl.methods().find(|(name, _)| name.0 == "drop").unwrap().1; + Ok(DropCase::Direct(method.skip_binder.clone())) + } + None => unreachable!(), + } + } + None => Ok(DropCase::Empty), } } } @@ -977,6 +981,7 @@ impl<'a> DropShimCtx<'a> { content: RawTerminator::Abort(AbortKind::Panic(None)), comments_before: vec![format!("Panic: {}", msg)], }); + register_error!(self.ctx.ctx, self.span(), "Panic in generating drop shim: {}", msg); Ok(block_id) } diff --git a/charon/tests/ui/monomorphization/dyn-trait.out b/charon/tests/ui/monomorphization/dyn-trait.out index 9b2b8eff3..3b5a9729c 100644 --- a/charon/tests/ui/monomorphization/dyn-trait.out +++ b/charon/tests/ui/monomorphization/dyn-trait.out @@ -126,44 +126,7 @@ note: the error occurred when translating `core::marker::MetaSized::>::index - at /home/ssyram/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/index_vec-0.1.4/src/indexing.rs:128:10 - 4: index_vec::indexing:: for index_vec::idxslice::IndexSlice>::index - at /home/ssyram/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/index_vec-0.1.4/src/indexing.rs:218:15 - 5: as core::ops::index::Index>::index - at ./src/ids/vector.rs:357:20 - 6: charon_driver::translate::translate_trait_objects::::gen_vtable_instance_init_body - at ./src/bin/charon-driver/translate/translate_trait_objects.rs:857:47 - 7: charon_driver::translate::translate_trait_objects::::translate_vtable_instance_init - at ./src/bin/charon-driver/translate/translate_trait_objects.rs:1228:33 - 8: charon_driver::translate::translate_items::::translate_item_aux - at ./src/bin/charon-driver/translate/translate_items.rs:166:28 - 9: charon_driver::translate::translate_items::::translate_item::{{closure}}::{{closure}} - at ./src/bin/charon-driver/translate/translate_items.rs:37:54 - 10: std::panicking::catch_unwind::do_call - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 - 11: __rust_try - 12: std::panicking::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 - 13: std::panic::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 - 14: charon_driver::translate::translate_items::::translate_item::{{closure}} - at ./src/bin/charon-driver/translate/translate_items.rs:37:17 - 15: charon_driver::translate::translate_ctx::TranslateCtx::with_def_id - at ./src/bin/charon-driver/translate/translate_ctx.rs:162:19 - 16: charon_driver::translate::translate_items::::translate_item - at ./src/bin/charon-driver/translate/translate_items.rs:31:14 - 17: charon_driver::translate::translate_crate::translate - at ./src/bin/charon-driver/translate/translate_crate.rs:668:17 - 18: ::after_expansion - at ./src/bin/charon-driver/driver.rs:157:29 - 19: rustc_interface::passes::create_and_enter_global_ctxt::, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0} - 20: rustc_interface::interface::run_compiler::<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1} -note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace. +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace error: Thread panicked when extracting item `alloc::string::{impl#23}`. --> /rustc/library/alloc/src/string.rs:2623:1 diff --git a/charon/tests/ui/monomorphization/unsatisfied-method-bounds.out b/charon/tests/ui/monomorphization/unsatisfied-method-bounds.out index 88a4f7dfa..631749feb 100644 --- a/charon/tests/ui/monomorphization/unsatisfied-method-bounds.out +++ b/charon/tests/ui/monomorphization/unsatisfied-method-bounds.out @@ -1,194 +1,4 @@ - 0: hax_frontend_exporter::traits::solve_trait::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/utils/error_macros.rs:29:29 - 1: hax_frontend_exporter::traits::resolution::PredicateSearcher::resolve::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits/resolution.rs:457:13 - 2: hax_frontend_exporter::traits::resolution::PredicateSearcher::resolve - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits/resolution.rs:646:24 - 3: hax_frontend_exporter::traits::solve_trait::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:232:65 - 4: hax_frontend_exporter::state::WithItemCacheExt::with_predicate_searcher::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/state.rs:312:13 - 5: hax_frontend_exporter::state::WithGlobalCacheExt::with_item_cache::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/state.rs:299:40 - 6: hax_frontend_exporter::state::WithGlobalCacheExt::with_global_cache - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/state.rs:294:9 - 7: hax_frontend_exporter::state::WithGlobalCacheExt::with_item_cache - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/state.rs:299:14 - 8: hax_frontend_exporter::state::WithItemCacheExt::with_cache - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/state.rs:308:14 - 9: hax_frontend_exporter::state::WithItemCacheExt::with_predicate_searcher - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/state.rs:311:14 - 10: hax_frontend_exporter::traits::solve_trait - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:232:11 - 11: hax_frontend_exporter::traits::solve_item_traits_inner::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:321:26 - 12: core::ops::function::impls:: for &mut F>::call_once - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:305:21 - 13: core::option::Option::map - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:1146:29 - 14: as core::iter::traits::iterator::Iterator>::next - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:107:26 - 15: alloc::vec::Vec::extend_desugared - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3633:44 - 16: as alloc::vec::spec_extend::SpecExtend>::spec_extend - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_extend.rs:19:14 - 17: as alloc::vec::spec_from_iter_nested::SpecFromIterNested>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:42:9 - 18: as alloc::vec::spec_from_iter::SpecFromIter>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:34:9 - 19: as core::iter::traits::collect::FromIterator>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3525:9 - 20: core::iter::traits::iterator::Iterator::collect - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2027:9 - 21: hax_frontend_exporter::traits::solve_item_traits_inner - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:322:10 - 22: hax_frontend_exporter::traits::solve_item_required_traits::{{closure}}::accumulate - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:278:27 - 23: hax_frontend_exporter::traits::solve_item_required_traits::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:281:5 - 24: hax_frontend_exporter::traits::solve_item_required_traits - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:256:1 - 25: hax_frontend_exporter::types::ty::ItemRef::translate - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:532:30 - 26: hax_frontend_exporter::traits::translate_item_ref::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:249:5 - 27: hax_frontend_exporter::traits::translate_item_ref - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:243:1 - 28: hax_frontend_exporter::types::ty::_:: for rustc_type_ir::ty_kind::TyKind>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1115:68 - 29: hax_frontend_exporter::types::ty:: for rustc_middle::ty::Ty>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1057:40 - 30: hax_frontend_exporter::types::ty::_:: for rustc_type_ir::ty_kind::FnSig>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1372:27 - 31: hax_frontend_exporter::types::ty::> for rustc_type_ir::binder::Binder>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1639:41 - 32: hax_frontend_exporter::types::new::full_def::translate_full_def_kind::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:632:54 - 33: core::iter::adapters::map::map_fold::{{closure}} - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:88:28 - 34: core::iter::adapters::map::map_fold::{{closure}} - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:88:21 - 35: core::iter::adapters::map::map_fold::{{closure}} - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:88:21 - 36: as core::iter::traits::iterator::Iterator>::fold - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:255:27 - 37: as core::iter::traits::iterator::Iterator>::fold - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:128:19 - 38: as core::iter::traits::iterator::Iterator>::fold - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:128:19 - 39: as core::iter::traits::iterator::Iterator>::fold - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:128:19 - 40: core::iter::traits::iterator::Iterator::for_each - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:827:14 - 41: alloc::vec::Vec::extend_trusted - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3666:26 - 42: as alloc::vec::spec_extend::SpecExtend>::spec_extend - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_extend.rs:29:14 - 43: as alloc::vec::spec_from_iter_nested::SpecFromIterNested>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:62:16 - 44: as alloc::vec::spec_from_iter::SpecFromIter>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:34:9 - 45: as core::iter::traits::collect::FromIterator>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3525:9 - 46: core::iter::traits::iterator::Iterator::collect - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2027:9 - 47: hax_frontend_exporter::types::new::full_def::translate_full_def_kind - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:653:26 - 48: hax_frontend_exporter::types::new::full_def::translate_full_def - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:62:20 - 49: hax_frontend_exporter::types::new::full_def::::full_def_maybe_instantiated - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:182:28 - 50: hax_frontend_exporter::types::new::full_def::::instantiated_full_def - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:203:21 - 51: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item::{{closure}} - at ./src/bin/charon-driver/translate/translate_ctx.rs:144:51 - 52: std::panicking::catch_unwind::do_call - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 - 53: __rust_try - 54: std::panicking::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 - 55: std::panic::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 - 56: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item - at ./src/bin/charon-driver/translate/translate_ctx.rs:142:9 - 57: charon_driver::translate::translate_meta::::name_for_item - at ./src/bin/charon-driver/translate/translate_meta.rs:304:28 - 58: charon_driver::translate::translate_meta::::name_for_src - at ./src/bin/charon-driver/translate/translate_meta.rs:332:18 - 59: charon_driver::translate::translate_meta::::translate_name - at ./src/bin/charon-driver/translate/translate_meta.rs:378:29 - 60: charon_driver::translate::translate_crate::::register_no_enqueue - at ./src/bin/charon-driver/translate/translate_crate.rs:293:40 - 61: charon_driver::translate::translate_crate::::register_and_enqueue - at ./src/bin/charon-driver/translate/translate_crate.rs:311:23 - 62: charon_driver::translate::translate_crate::::register_and_enqueue - at ./src/bin/charon-driver/translate/translate_crate.rs:385:20 - 63: charon_driver::translate::translate_crate::::register_item_maybe_enqueue - at ./src/bin/charon-driver/translate/translate_crate.rs:412:18 - 64: charon_driver::translate::translate_crate::::translate_item_maybe_enqueue - at ./src/bin/charon-driver/translate/translate_crate.rs:446:35 - 65: charon_driver::translate::translate_crate::::translate_item - at ./src/bin/charon-driver/translate/translate_crate.rs:466:14 - 66: charon_driver::translate::translate_crate::::translate_trait_impl_ref - at ./src/bin/charon-driver/translate/translate_crate.rs:576:14 - 67: charon_driver::translate::translate_predicates::::translate_trait_impl_expr_aux - at ./src/bin/charon-driver/translate/translate_predicates.rs:208:26 - 68: charon_driver::translate::translate_predicates::::translate_trait_impl_expr - at ./src/bin/charon-driver/translate/translate_predicates.rs:183:20 - 69: charon_driver::translate::translate_crate::::translate_fn_ptr - at ./src/bin/charon-driver/translate/translate_crate.rs:539:38 - 70: charon_driver::translate::translate_bodies::BodyTransCtx::translate_function_call - at ./src/bin/charon-driver/translate/translate_bodies.rs:1071:39 - 71: charon_driver::translate::translate_bodies::BodyTransCtx::translate_terminator - at ./src/bin/charon-driver/translate/translate_bodies.rs:910:23 - 72: charon_driver::translate::translate_bodies::BodyTransCtx::translate_basic_block - at ./src/bin/charon-driver/translate/translate_bodies.rs:199:31 - 73: charon_driver::translate::translate_bodies::BodyTransCtx::translate_body_aux - at ./src/bin/charon-driver/translate/translate_bodies.rs:1241:30 - 74: charon_driver::translate::translate_bodies::BodyTransCtx::translate_body::{{closure}} - at ./src/bin/charon-driver/translate/translate_bodies.rs:1206:52 - 75: std::panicking::catch_unwind::do_call - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 - 76: __rust_try - 77: std::panicking::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 - 78: std::panic::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 - 79: charon_driver::translate::translate_bodies::BodyTransCtx::translate_body - at ./src/bin/charon-driver/translate/translate_bodies.rs:1206:19 - 80: charon_driver::translate::translate_bodies::BodyTransCtx::translate_def_body - at ./src/bin/charon-driver/translate/translate_bodies.rs:1194:14 - 81: charon_driver::translate::translate_items::::translate_function - at ./src/bin/charon-driver/translate/translate_items.rs:429:26 - 82: charon_driver::translate::translate_items::::translate_item_aux - at ./src/bin/charon-driver/translate/translate_items.rs:92:39 - 83: charon_driver::translate::translate_items::::translate_item::{{closure}}::{{closure}} - at ./src/bin/charon-driver/translate/translate_items.rs:37:54 - 84: std::panicking::catch_unwind::do_call - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 - 85: __rust_try - 86: std::panicking::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 - 87: std::panic::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 - 88: charon_driver::translate::translate_items::::translate_item::{{closure}} - at ./src/bin/charon-driver/translate/translate_items.rs:37:17 - 89: charon_driver::translate::translate_ctx::TranslateCtx::with_def_id - at ./src/bin/charon-driver/translate/translate_ctx.rs:162:19 - 90: charon_driver::translate::translate_items::::translate_item - at ./src/bin/charon-driver/translate/translate_items.rs:31:14 - 91: charon_driver::translate::translate_crate::translate - at ./src/bin/charon-driver/translate/translate_crate.rs:668:17 - 92: ::after_expansion - at ./src/bin/charon-driver/driver.rs:157:29 - 93: rustc_interface::passes::create_and_enter_global_ctxt::, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0} - 94: rustc_interface::interface::run_compiler::<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1} - 95: std::sys::backtrace::__rust_begin_short_backtrace::::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()> - 96: <::spawn_unchecked_::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} - 97: std::sys::pal::unix::thread::Thread::new::thread_start - 98: - 99: - +disabled backtrace warning[E9999]: Could not find a clause for `Binder { value: , bound_vars: [] }` in the current context: `Unimplemented` --> tests/ui/monomorphization/unsatisfied-method-bounds.rs:21:1 | @@ -198,122 +8,7 @@ warning[E9999]: Could not find a clause for `Binder { value: for &mut F>::call_once - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:305:21 - 13: core::option::Option::map - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:1146:29 - 14: as core::iter::traits::iterator::Iterator>::next - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:107:26 - 15: alloc::vec::Vec::extend_desugared - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3633:44 - 16: as alloc::vec::spec_extend::SpecExtend>::spec_extend - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_extend.rs:19:14 - 17: as alloc::vec::spec_from_iter_nested::SpecFromIterNested>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:42:9 - 18: as alloc::vec::spec_from_iter::SpecFromIter>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:34:9 - 19: as core::iter::traits::collect::FromIterator>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3525:9 - 20: core::iter::traits::iterator::Iterator::collect - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2027:9 - 21: hax_frontend_exporter::traits::solve_item_traits_inner - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:322:10 - 22: hax_frontend_exporter::traits::solve_item_required_traits::{{closure}}::accumulate - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:278:27 - 23: hax_frontend_exporter::traits::solve_item_required_traits::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:281:5 - 24: hax_frontend_exporter::traits::solve_item_required_traits - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:256:1 - 25: hax_frontend_exporter::types::ty::ItemRef::translate - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:532:30 - 26: hax_frontend_exporter::traits::translate_item_ref::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:249:5 - 27: hax_frontend_exporter::traits::translate_item_ref - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:243:1 - 28: hax_frontend_exporter::types::ty::_:: for rustc_type_ir::ty_kind::TyKind>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1115:68 - 29: hax_frontend_exporter::types::ty:: for rustc_middle::ty::Ty>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1057:40 - 30: hax_frontend_exporter::types::ty::_:: for rustc_type_ir::ty_kind::FnSig>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1372:27 - 31: hax_frontend_exporter::types::ty::> for rustc_type_ir::binder::Binder>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1639:41 - 32: hax_frontend_exporter::types::new::full_def::translate_full_def_kind - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:690:72 - 33: hax_frontend_exporter::types::new::full_def::translate_full_def - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:62:20 - 34: hax_frontend_exporter::types::new::full_def::::full_def_maybe_instantiated - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:182:28 - 35: hax_frontend_exporter::types::new::full_def::::instantiated_full_def - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:203:21 - 36: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item::{{closure}} - at ./src/bin/charon-driver/translate/translate_ctx.rs:144:51 - 37: std::panicking::catch_unwind::do_call - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 - 38: __rust_try - 39: std::panicking::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 - 40: std::panic::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 - 41: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item - at ./src/bin/charon-driver/translate/translate_ctx.rs:142:9 - 42: charon_driver::translate::translate_ctx::ItemTransCtx::hax_def - at ./src/bin/charon-driver/translate/translate_ctx.rs:215:20 - 43: charon_driver::translate::translate_items::::translate_trait_decl - at ./src/bin/charon-driver/translate/translate_items.rs:588:41 - 44: charon_driver::translate::translate_items::::translate_item_aux - at ./src/bin/charon-driver/translate/translate_items.rs:106:41 - 45: charon_driver::translate::translate_items::::translate_item::{{closure}}::{{closure}} - at ./src/bin/charon-driver/translate/translate_items.rs:37:54 - 46: std::panicking::catch_unwind::do_call - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 - 47: __rust_try - 48: std::panicking::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 - 49: std::panic::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 - 50: charon_driver::translate::translate_items::::translate_item::{{closure}} - at ./src/bin/charon-driver/translate/translate_items.rs:37:17 - 51: charon_driver::translate::translate_ctx::TranslateCtx::with_def_id - at ./src/bin/charon-driver/translate/translate_ctx.rs:162:19 - 52: charon_driver::translate::translate_items::::translate_item - at ./src/bin/charon-driver/translate/translate_items.rs:31:14 - 53: charon_driver::translate::translate_crate::translate - at ./src/bin/charon-driver/translate/translate_crate.rs:668:17 - 54: ::after_expansion - at ./src/bin/charon-driver/driver.rs:157:29 - 55: rustc_interface::passes::create_and_enter_global_ctxt::, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0} - 56: rustc_interface::interface::run_compiler::<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1} - 57: std::sys::backtrace::__rust_begin_short_backtrace::::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()> - 58: <::spawn_unchecked_::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} - 59: std::sys::pal::unix::thread::Thread::new::thread_start - 60: - 61: - +disabled backtrace warning[E9999]: Could not find a clause for `Binder { value: , bound_vars: [] }` in the current context: `Unimplemented` --> tests/ui/monomorphization/unsatisfied-method-bounds.rs:9:5 | @@ -326,174 +21,7 @@ warning[E9999]: Could not find a clause for `Binder { value: for &mut F>::call_once - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:305:21 - 13: core::option::Option::map - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:1146:29 - 14: as core::iter::traits::iterator::Iterator>::next - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:107:26 - 15: alloc::vec::Vec::extend_desugared - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3633:44 - 16: as alloc::vec::spec_extend::SpecExtend>::spec_extend - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_extend.rs:19:14 - 17: as alloc::vec::spec_from_iter_nested::SpecFromIterNested>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:42:9 - 18: as alloc::vec::spec_from_iter::SpecFromIter>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:34:9 - 19: as core::iter::traits::collect::FromIterator>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3525:9 - 20: core::iter::traits::iterator::Iterator::collect - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2027:9 - 21: hax_frontend_exporter::traits::solve_item_traits_inner - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:322:10 - 22: hax_frontend_exporter::traits::solve_item_required_traits::{{closure}}::accumulate - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:278:27 - 23: hax_frontend_exporter::traits::solve_item_required_traits::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:281:5 - 24: hax_frontend_exporter::traits::solve_item_required_traits - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:256:1 - 25: hax_frontend_exporter::types::ty::ItemRef::translate - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:532:30 - 26: hax_frontend_exporter::traits::translate_item_ref::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:249:5 - 27: hax_frontend_exporter::traits::translate_item_ref - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:243:1 - 28: hax_frontend_exporter::types::ty::_:: for rustc_type_ir::ty_kind::TyKind>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1115:68 - 29: hax_frontend_exporter::types::ty:: for rustc_middle::ty::Ty>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1057:40 - 30: hax_frontend_exporter::types::ty::> for rustc_middle::ty::Ty>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1020:23 - 31: hax_frontend_exporter::types::ty::_:: for rustc_type_ir::ty_kind::TyKind>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1122:12 - 32: hax_frontend_exporter::types::ty:: for rustc_middle::ty::Ty>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1057:40 - 33: hax_frontend_exporter::types::mir::_:: for rustc_middle::mir::LocalDecl>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/mir.rs:22:13 - 34: hax_frontend_exporter::types::mir::_::> for rustc_middle::mir::Body>::sinto::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/mir.rs:315:45 - 35: core::iter::adapters::map::map_fold::{{closure}} - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:88:28 - 36: core::iter::adapters::map::map_fold::{{closure}} - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:88:21 - 37: as core::iter::traits::iterator::Iterator>::fold::enumerate::{{closure}} - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/enumerate.rs:140:27 - 38: as core::iter::traits::iterator::Iterator>::fold - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:255:27 - 39: as core::iter::traits::iterator::Iterator>::fold - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/enumerate.rs:146:19 - 40: as core::iter::traits::iterator::Iterator>::fold - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:128:19 - 41: as core::iter::traits::iterator::Iterator>::fold - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:128:19 - 42: core::iter::traits::iterator::Iterator::for_each - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:827:14 - 43: alloc::vec::Vec::extend_trusted - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3666:26 - 44: as alloc::vec::spec_extend::SpecExtend>::spec_extend - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_extend.rs:29:14 - 45: as alloc::vec::spec_from_iter_nested::SpecFromIterNested>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:62:16 - 46: as alloc::vec::spec_from_iter::SpecFromIter>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:34:9 - 47: as core::iter::traits::collect::FromIterator>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3525:9 - 48: as core::iter::traits::collect::FromIterator>::from_iter - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/index_vec.rs:67:18 - 49: core::iter::traits::iterator::Iterator::collect - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2027:9 - 50: hax_frontend_exporter::types::mir::_::> for rustc_middle::mir::Body>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/mir.rs:318:12 - 51: hax_frontend_exporter::body::module::implementations::>::from_mir - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/body.rs:244:27 - 52: hax_frontend_exporter::types::new::full_def::get_drop_glue_shim - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:1106:16 - 53: hax_frontend_exporter::types::new::full_def::translate_full_def_kind - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:476:28 - 54: hax_frontend_exporter::types::new::full_def::translate_full_def - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:62:20 - 55: hax_frontend_exporter::types::new::full_def::::full_def_maybe_instantiated - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:182:28 - 56: hax_frontend_exporter::types::new::full_def::::instantiated_full_def - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:203:21 - 57: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item::{{closure}} - at ./src/bin/charon-driver/translate/translate_ctx.rs:144:51 - 58: std::panicking::catch_unwind::do_call - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 - 59: __rust_try - 60: std::panicking::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 - 61: std::panic::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 - 62: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item - at ./src/bin/charon-driver/translate/translate_ctx.rs:142:9 - 63: charon_driver::translate::translate_ctx::ItemTransCtx::hax_def - at ./src/bin/charon-driver/translate/translate_ctx.rs:215:20 - 64: charon_driver::translate::translate_types::::recognize_builtin_type - at ./src/bin/charon-driver/translate/translate_types.rs:354:24 - 65: charon_driver::translate::translate_crate::::translate_type_decl_ref - at ./src/bin/charon-driver/translate/translate_crate.rs:485:20 - 66: charon_driver::translate::translate_types::::translate_ty_inner - at ./src/bin/charon-driver/translate/translate_types.rs:135:33 - 67: charon_driver::translate::translate_types::::translate_ty - at ./src/bin/charon-driver/translate/translate_types.rs:87:14 - 68: charon_driver::translate::translate_functions::::translate_function_signature - at ./src/bin/charon-driver/translate/translate_functions.rs:75:27 - 69: charon_driver::translate::translate_items::::translate_function - at ./src/bin/charon-driver/translate/translate_items.rs:383:30 - 70: charon_driver::translate::translate_items::::translate_item_aux - at ./src/bin/charon-driver/translate/translate_items.rs:92:39 - 71: charon_driver::translate::translate_items::::translate_item::{{closure}}::{{closure}} - at ./src/bin/charon-driver/translate/translate_items.rs:37:54 - 72: std::panicking::catch_unwind::do_call - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 - 73: __rust_try - 74: std::panicking::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 - 75: std::panic::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 - 76: charon_driver::translate::translate_items::::translate_item::{{closure}} - at ./src/bin/charon-driver/translate/translate_items.rs:37:17 - 77: charon_driver::translate::translate_ctx::TranslateCtx::with_def_id - at ./src/bin/charon-driver/translate/translate_ctx.rs:162:19 - 78: charon_driver::translate::translate_items::::translate_item - at ./src/bin/charon-driver/translate/translate_items.rs:31:14 - 79: charon_driver::translate::translate_crate::translate - at ./src/bin/charon-driver/translate/translate_crate.rs:668:17 - 80: ::after_expansion - at ./src/bin/charon-driver/driver.rs:157:29 - 81: rustc_interface::passes::create_and_enter_global_ctxt::, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0} - 82: rustc_interface::interface::run_compiler::<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1} - 83: std::sys::backtrace::__rust_begin_short_backtrace::::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()> - 84: <::spawn_unchecked_::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} - 85: std::sys::pal::unix::thread::Thread::new::thread_start - 86: - 87: - +disabled backtrace warning[E9999]: Could not find a clause for `Binder { value: , bound_vars: [] }` in the current context: `Unimplemented` --> tests/ui/monomorphization/unsatisfied-method-bounds.rs:18:1 | @@ -527,194 +55,7 @@ error: Error during trait resolution: Could not find a clause for `Binder { valu 18 | struct Flatten>(I); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - 0: hax_frontend_exporter::traits::solve_trait::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/utils/error_macros.rs:29:29 - 1: hax_frontend_exporter::traits::resolution::PredicateSearcher::resolve::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits/resolution.rs:457:13 - 2: hax_frontend_exporter::traits::resolution::PredicateSearcher::resolve - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits/resolution.rs:646:24 - 3: hax_frontend_exporter::traits::solve_trait::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:232:65 - 4: hax_frontend_exporter::state::WithItemCacheExt::with_predicate_searcher::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/state.rs:312:13 - 5: hax_frontend_exporter::state::WithGlobalCacheExt::with_item_cache::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/state.rs:299:40 - 6: hax_frontend_exporter::state::WithGlobalCacheExt::with_global_cache - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/state.rs:294:9 - 7: hax_frontend_exporter::state::WithGlobalCacheExt::with_item_cache - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/state.rs:299:14 - 8: hax_frontend_exporter::state::WithItemCacheExt::with_cache - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/state.rs:308:14 - 9: hax_frontend_exporter::state::WithItemCacheExt::with_predicate_searcher - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/state.rs:311:14 - 10: hax_frontend_exporter::traits::solve_trait - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:232:11 - 11: hax_frontend_exporter::traits::solve_item_traits_inner::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:321:26 - 12: core::ops::function::impls:: for &mut F>::call_once - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:305:21 - 13: core::option::Option::map - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:1146:29 - 14: as core::iter::traits::iterator::Iterator>::next - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:107:26 - 15: alloc::vec::Vec::extend_desugared - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3633:44 - 16: as alloc::vec::spec_extend::SpecExtend>::spec_extend - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_extend.rs:19:14 - 17: as alloc::vec::spec_from_iter_nested::SpecFromIterNested>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:42:9 - 18: as alloc::vec::spec_from_iter::SpecFromIter>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:34:9 - 19: as core::iter::traits::collect::FromIterator>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3525:9 - 20: core::iter::traits::iterator::Iterator::collect - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2027:9 - 21: hax_frontend_exporter::traits::solve_item_traits_inner - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:322:10 - 22: hax_frontend_exporter::traits::solve_item_required_traits::{{closure}}::accumulate - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:278:27 - 23: hax_frontend_exporter::traits::solve_item_required_traits::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:281:5 - 24: hax_frontend_exporter::traits::solve_item_required_traits - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:256:1 - 25: hax_frontend_exporter::types::ty::ItemRef::translate - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:532:30 - 26: hax_frontend_exporter::traits::translate_item_ref::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:249:5 - 27: hax_frontend_exporter::traits::translate_item_ref - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:243:1 - 28: hax_frontend_exporter::types::ty::_:: for rustc_type_ir::ty_kind::TyKind>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1115:68 - 29: hax_frontend_exporter::types::ty:: for rustc_middle::ty::Ty>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1057:40 - 30: hax_frontend_exporter::types::ty::_:: for rustc_type_ir::generic_arg::GenericArgKind>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:444:10 - 31: hax_frontend_exporter::types::ty:: for rustc_middle::ty::generic_args::GenericArg>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:681:21 - 32: hax_frontend_exporter::types::ty::> for rustc_middle::ty::list::RawList<(),T>>::sinto::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:842:31 - 33: core::iter::adapters::map::map_fold::{{closure}} - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:88:28 - 34: as core::iter::traits::iterator::Iterator>::fold - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:255:27 - 35: as core::iter::traits::iterator::Iterator>::fold - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:128:19 - 36: core::iter::traits::iterator::Iterator::for_each - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:827:14 - 37: alloc::vec::Vec::extend_trusted - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3666:26 - 38: as alloc::vec::spec_extend::SpecExtend>::spec_extend - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_extend.rs:29:14 - 39: as alloc::vec::spec_from_iter_nested::SpecFromIterNested>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:62:16 - 40: as alloc::vec::spec_from_iter::SpecFromIter>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:34:9 - 41: as core::iter::traits::collect::FromIterator>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3525:9 - 42: core::iter::traits::iterator::Iterator::collect - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2027:9 - 43: hax_frontend_exporter::types::ty::> for rustc_middle::ty::list::RawList<(),T>>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:842:41 - 44: hax_frontend_exporter::types::ty::ItemRef::translate - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:533:41 - 45: hax_frontend_exporter::traits::translate_item_ref::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:249:5 - 46: hax_frontend_exporter::traits::translate_item_ref - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:243:1 - 47: hax_frontend_exporter::types::ty:: for rustc_type_ir::predicate::TraitRef>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1392:9 - 48: hax_frontend_exporter::types::ty::_:: for rustc_type_ir::predicate::TraitPredicate>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1402:20 - 49: hax_frontend_exporter::types::ty::_:: for rustc_type_ir::predicate_kind::ClauseKind>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1502:11 - 50: hax_frontend_exporter::types::ty::> for rustc_type_ir::binder::Binder>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1639:41 - 51: hax_frontend_exporter::types::ty:: for rustc_middle::ty::predicate::Clause>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1525:32 - 52: <(L,R) as hax_frontend_exporter::sinto::SInto>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/sinto.rs:64:17 - 53: <[T] as hax_frontend_exporter::sinto::SInto>>::sinto::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/sinto.rs:93:31 - 54: core::iter::adapters::map::map_fold::{{closure}} - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:88:28 - 55: as core::iter::traits::iterator::Iterator>::fold - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:255:27 - 56: as core::iter::traits::iterator::Iterator>::fold - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:128:19 - 57: core::iter::traits::iterator::Iterator::for_each - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:827:14 - 58: alloc::vec::Vec::extend_trusted - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3666:26 - 59: as alloc::vec::spec_extend::SpecExtend>::spec_extend - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_extend.rs:29:14 - 60: as alloc::vec::spec_from_iter_nested::SpecFromIterNested>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:62:16 - 61: as alloc::vec::spec_from_iter::SpecFromIter>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:34:9 - 62: as core::iter::traits::collect::FromIterator>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3525:9 - 63: core::iter::traits::iterator::Iterator::collect - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2027:9 - 64: <[T] as hax_frontend_exporter::sinto::SInto>>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/sinto.rs:93:41 - 65: hax_frontend_exporter::types::ty:: for alloc::borrow::Cow<[(rustc_middle::ty::predicate::Clause,rustc_span::span_encoding::Span)]>>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1625:39 - 66: hax_frontend_exporter::types::new::full_def::get_implied_predicates - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:1168:24 - 67: hax_frontend_exporter::types::new::full_def::translate_full_def_kind - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:507:33 - 68: hax_frontend_exporter::types::new::full_def::translate_full_def - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:62:20 - 69: hax_frontend_exporter::types::new::full_def::::full_def_maybe_instantiated - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:182:28 - 70: hax_frontend_exporter::types::new::full_def::::instantiated_full_def - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:203:21 - 71: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item::{{closure}} - at ./src/bin/charon-driver/translate/translate_ctx.rs:144:51 - 72: std::panicking::catch_unwind::do_call - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 - 73: __rust_try - 74: std::panicking::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 - 75: std::panic::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 - 76: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item - at ./src/bin/charon-driver/translate/translate_ctx.rs:142:9 - 77: charon_driver::translate::translate_ctx::ItemTransCtx::hax_def - at ./src/bin/charon-driver/translate/translate_ctx.rs:215:20 - 78: charon_driver::translate::translate_items::::translate_virtual_trait_impl - at ./src/bin/charon-driver/translate/translate_items.rs:1054:30 - 79: charon_driver::translate::translate_drops::::translate_drop_impl - at ./src/bin/charon-driver/translate/translate_drops.rs:121:30 - 80: charon_driver::translate::translate_items::::translate_item_aux - at ./src/bin/charon-driver/translate/translate_items.rs:121:57 - 81: charon_driver::translate::translate_items::::translate_item::{{closure}}::{{closure}} - at ./src/bin/charon-driver/translate/translate_items.rs:37:54 - 82: std::panicking::catch_unwind::do_call - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 - 83: __rust_try - 84: std::panicking::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 - 85: std::panic::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 - 86: charon_driver::translate::translate_items::::translate_item::{{closure}} - at ./src/bin/charon-driver/translate/translate_items.rs:37:17 - 87: charon_driver::translate::translate_ctx::TranslateCtx::with_def_id - at ./src/bin/charon-driver/translate/translate_ctx.rs:162:19 - 88: charon_driver::translate::translate_items::::translate_item - at ./src/bin/charon-driver/translate/translate_items.rs:31:14 - 89: charon_driver::translate::translate_crate::translate - at ./src/bin/charon-driver/translate/translate_crate.rs:668:17 - 90: ::after_expansion - at ./src/bin/charon-driver/driver.rs:157:29 - 91: rustc_interface::passes::create_and_enter_global_ctxt::, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0} - 92: rustc_interface::interface::run_compiler::<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1} - 93: std::sys::backtrace::__rust_begin_short_backtrace::::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()> - 94: <::spawn_unchecked_::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} - 95: std::sys::pal::unix::thread::Thread::new::thread_start - 96: - 97: - +disabled backtrace warning[E9999]: Could not find a clause for `Binder { value: , bound_vars: [] }` in the current context: `Unimplemented` --> /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/drop.rs:208:1 | @@ -724,188 +65,7 @@ warning[E9999]: Could not find a clause for `Binder { value: for &mut F>::call_once - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:305:21 - 13: core::option::Option::map - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:1146:29 - 14: as core::iter::traits::iterator::Iterator>::next - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:107:26 - 15: alloc::vec::Vec::extend_desugared - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3633:44 - 16: as alloc::vec::spec_extend::SpecExtend>::spec_extend - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_extend.rs:19:14 - 17: as alloc::vec::spec_from_iter_nested::SpecFromIterNested>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:42:9 - 18: as alloc::vec::spec_from_iter::SpecFromIter>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:34:9 - 19: as core::iter::traits::collect::FromIterator>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3525:9 - 20: core::iter::traits::iterator::Iterator::collect - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2027:9 - 21: hax_frontend_exporter::traits::solve_item_traits_inner - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:322:10 - 22: hax_frontend_exporter::traits::solve_item_required_traits::{{closure}}::accumulate - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:278:27 - 23: hax_frontend_exporter::traits::solve_item_required_traits::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:281:5 - 24: hax_frontend_exporter::traits::solve_item_required_traits - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:256:1 - 25: hax_frontend_exporter::types::ty::ItemRef::translate - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:532:30 - 26: hax_frontend_exporter::traits::translate_item_ref::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:249:5 - 27: hax_frontend_exporter::traits::translate_item_ref - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:243:1 - 28: hax_frontend_exporter::types::ty::_:: for rustc_type_ir::ty_kind::TyKind>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1115:68 - 29: hax_frontend_exporter::types::ty:: for rustc_middle::ty::Ty>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1057:40 - 30: hax_frontend_exporter::types::ty::_:: for rustc_type_ir::generic_arg::GenericArgKind>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:444:10 - 31: hax_frontend_exporter::types::ty:: for rustc_middle::ty::generic_args::GenericArg>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:681:21 - 32: hax_frontend_exporter::types::ty::> for rustc_middle::ty::list::RawList<(),T>>::sinto::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:842:31 - 33: core::iter::adapters::map::map_fold::{{closure}} - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:88:28 - 34: as core::iter::traits::iterator::Iterator>::fold - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:255:27 - 35: as core::iter::traits::iterator::Iterator>::fold - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:128:19 - 36: core::iter::traits::iterator::Iterator::for_each - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:827:14 - 37: alloc::vec::Vec::extend_trusted - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3666:26 - 38: as alloc::vec::spec_extend::SpecExtend>::spec_extend - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_extend.rs:29:14 - 39: as alloc::vec::spec_from_iter_nested::SpecFromIterNested>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:62:16 - 40: as alloc::vec::spec_from_iter::SpecFromIter>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:34:9 - 41: as core::iter::traits::collect::FromIterator>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3525:9 - 42: core::iter::traits::iterator::Iterator::collect - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2027:9 - 43: hax_frontend_exporter::types::ty::> for rustc_middle::ty::list::RawList<(),T>>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:842:41 - 44: hax_frontend_exporter::types::ty::ItemRef::translate - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:533:41 - 45: hax_frontend_exporter::traits::translate_item_ref::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:249:5 - 46: hax_frontend_exporter::traits::translate_item_ref - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:243:1 - 47: hax_frontend_exporter::types::ty:: for rustc_type_ir::predicate::TraitRef>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1392:9 - 48: hax_frontend_exporter::types::ty::AssocItem::sfrom_instantiated - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1785:84 - 49: hax_frontend_exporter::types::new::full_def::translate_full_def_kind::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:520:21 - 50: core::iter::adapters::map::map_fold::{{closure}} - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:88:28 - 51: core::iter::adapters::map::map_fold::{{closure}} - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:88:21 - 52: core::iter::adapters::map::map_fold::{{closure}} - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:88:21 - 53: as core::iter::traits::iterator::Iterator>::fold - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:255:27 - 54: as core::iter::traits::iterator::Iterator>::fold - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:128:19 - 55: as core::iter::traits::iterator::Iterator>::fold - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:128:19 - 56: as core::iter::traits::iterator::Iterator>::fold - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:128:19 - 57: core::iter::traits::iterator::Iterator::for_each - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:827:14 - 58: alloc::vec::Vec::extend_trusted - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3666:26 - 59: as alloc::vec::spec_extend::SpecExtend>::spec_extend - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_extend.rs:29:14 - 60: as alloc::vec::spec_from_iter_nested::SpecFromIterNested>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:62:16 - 61: as alloc::vec::spec_from_iter::SpecFromIter>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:34:9 - 62: as core::iter::traits::collect::FromIterator>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3525:9 - 63: core::iter::traits::iterator::Iterator::collect - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2027:9 - 64: hax_frontend_exporter::types::new::full_def::translate_full_def_kind - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:522:18 - 65: hax_frontend_exporter::types::new::full_def::translate_full_def - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:62:20 - 66: hax_frontend_exporter::types::new::full_def::::full_def_maybe_instantiated - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:182:28 - 67: hax_frontend_exporter::types::new::full_def::::instantiated_full_def - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:203:21 - 68: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item::{{closure}} - at ./src/bin/charon-driver/translate/translate_ctx.rs:144:51 - 69: std::panicking::catch_unwind::do_call - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 - 70: __rust_try - 71: std::panicking::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 - 72: std::panic::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 - 73: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item - at ./src/bin/charon-driver/translate/translate_ctx.rs:142:9 - 74: charon_driver::translate::translate_ctx::ItemTransCtx::hax_def - at ./src/bin/charon-driver/translate/translate_ctx.rs:215:20 - 75: charon_driver::translate::translate_items::::translate_virtual_trait_impl - at ./src/bin/charon-driver/translate/translate_items.rs:1054:30 - 76: charon_driver::translate::translate_drops::::translate_drop_impl - at ./src/bin/charon-driver/translate/translate_drops.rs:121:30 - 77: charon_driver::translate::translate_items::::translate_item_aux - at ./src/bin/charon-driver/translate/translate_items.rs:121:57 - 78: charon_driver::translate::translate_items::::translate_item::{{closure}}::{{closure}} - at ./src/bin/charon-driver/translate/translate_items.rs:37:54 - 79: std::panicking::catch_unwind::do_call - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 - 80: __rust_try - 81: std::panicking::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 - 82: std::panic::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 - 83: charon_driver::translate::translate_items::::translate_item::{{closure}} - at ./src/bin/charon-driver/translate/translate_items.rs:37:17 - 84: charon_driver::translate::translate_ctx::TranslateCtx::with_def_id - at ./src/bin/charon-driver/translate/translate_ctx.rs:162:19 - 85: charon_driver::translate::translate_items::::translate_item - at ./src/bin/charon-driver/translate/translate_items.rs:31:14 - 86: charon_driver::translate::translate_crate::translate - at ./src/bin/charon-driver/translate/translate_crate.rs:668:17 - 87: ::after_expansion - at ./src/bin/charon-driver/driver.rs:157:29 - 88: rustc_interface::passes::create_and_enter_global_ctxt::, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0} - 89: rustc_interface::interface::run_compiler::<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1} - 90: std::sys::backtrace::__rust_begin_short_backtrace::::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()> - 91: <::spawn_unchecked_::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} - 92: std::sys::pal::unix::thread::Thread::new::thread_start - 93: - 94: - +disabled backtrace warning[E9999]: Could not find a clause for `Binder { value: , bound_vars: [] }` in the current context: `Unimplemented` --> /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/drop.rs:241:5 | @@ -915,228 +75,7 @@ warning[E9999]: Could not find a clause for `Binder { value: for &mut F>::call_once - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:305:21 - 13: core::option::Option::map - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:1146:29 - 14: as core::iter::traits::iterator::Iterator>::next - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:107:26 - 15: alloc::vec::Vec::extend_desugared - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3633:44 - 16: as alloc::vec::spec_extend::SpecExtend>::spec_extend - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_extend.rs:19:14 - 17: as alloc::vec::spec_from_iter_nested::SpecFromIterNested>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:42:9 - 18: as alloc::vec::spec_from_iter::SpecFromIter>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:34:9 - 19: as core::iter::traits::collect::FromIterator>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3525:9 - 20: core::iter::traits::iterator::Iterator::collect - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2027:9 - 21: hax_frontend_exporter::traits::solve_item_traits_inner - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:322:10 - 22: hax_frontend_exporter::traits::solve_item_required_traits::{{closure}}::accumulate - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:278:27 - 23: hax_frontend_exporter::traits::solve_item_required_traits::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:281:5 - 24: hax_frontend_exporter::traits::solve_item_required_traits - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:256:1 - 25: hax_frontend_exporter::types::ty::ItemRef::translate - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:532:30 - 26: hax_frontend_exporter::traits::translate_item_ref::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:249:5 - 27: hax_frontend_exporter::traits::translate_item_ref - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:243:1 - 28: hax_frontend_exporter::types::ty::_:: for rustc_type_ir::ty_kind::TyKind>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1115:68 - 29: hax_frontend_exporter::types::ty:: for rustc_middle::ty::Ty>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1057:40 - 30: hax_frontend_exporter::types::ty::_:: for rustc_type_ir::generic_arg::GenericArgKind>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:444:10 - 31: hax_frontend_exporter::types::ty:: for rustc_middle::ty::generic_args::GenericArg>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:681:21 - 32: hax_frontend_exporter::types::ty::> for rustc_middle::ty::list::RawList<(),T>>::sinto::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:842:31 - 33: core::iter::adapters::map::map_fold::{{closure}} - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:88:28 - 34: as core::iter::traits::iterator::Iterator>::fold - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:255:27 - 35: as core::iter::traits::iterator::Iterator>::fold - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:128:19 - 36: core::iter::traits::iterator::Iterator::for_each - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:827:14 - 37: alloc::vec::Vec::extend_trusted - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3666:26 - 38: as alloc::vec::spec_extend::SpecExtend>::spec_extend - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_extend.rs:29:14 - 39: as alloc::vec::spec_from_iter_nested::SpecFromIterNested>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:62:16 - 40: as alloc::vec::spec_from_iter::SpecFromIter>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:34:9 - 41: as core::iter::traits::collect::FromIterator>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3525:9 - 42: core::iter::traits::iterator::Iterator::collect - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2027:9 - 43: hax_frontend_exporter::types::ty::> for rustc_middle::ty::list::RawList<(),T>>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:842:41 - 44: hax_frontend_exporter::types::ty::ItemRef::translate - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:533:41 - 45: hax_frontend_exporter::traits::translate_item_ref::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:249:5 - 46: hax_frontend_exporter::traits::translate_item_ref - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:243:1 - 47: hax_frontend_exporter::types::ty:: for rustc_type_ir::predicate::TraitRef>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1392:9 - 48: hax_frontend_exporter::types::ty::_:: for rustc_type_ir::predicate::TraitPredicate>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1402:20 - 49: hax_frontend_exporter::types::new::full_def::get_self_predicate - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:1014:10 - 50: hax_frontend_exporter::types::new::full_def::translate_full_def_kind - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:508:29 - 51: hax_frontend_exporter::types::new::full_def::translate_full_def - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:62:20 - 52: hax_frontend_exporter::types::new::full_def::::full_def_maybe_instantiated - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:182:28 - 53: hax_frontend_exporter::types::new::full_def::::instantiated_full_def - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:203:21 - 54: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item::{{closure}} - at ./src/bin/charon-driver/translate/translate_ctx.rs:144:51 - 55: std::panicking::catch_unwind::do_call - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 - 56: __rust_try - 57: std::panicking::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 - 58: std::panic::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 - 59: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item - at ./src/bin/charon-driver/translate/translate_ctx.rs:142:9 - 60: charon_driver::translate::translate_meta::::name_for_item - at ./src/bin/charon-driver/translate/translate_meta.rs:304:28 - 61: charon_driver::translate::translate_meta::::name_for_src - at ./src/bin/charon-driver/translate/translate_meta.rs:332:18 - 62: charon_driver::translate::translate_meta::::translate_name - at ./src/bin/charon-driver/translate/translate_meta.rs:378:29 - 63: charon_driver::translate::translate_crate::::register_no_enqueue - at ./src/bin/charon-driver/translate/translate_crate.rs:293:40 - 64: charon_driver::translate::translate_crate::::register_and_enqueue - at ./src/bin/charon-driver/translate/translate_crate.rs:311:23 - 65: charon_driver::translate::translate_crate::::register_and_enqueue - at ./src/bin/charon-driver/translate/translate_crate.rs:385:20 - 66: charon_driver::translate::translate_crate::::register_item_maybe_enqueue - at ./src/bin/charon-driver/translate/translate_crate.rs:412:18 - 67: charon_driver::translate::translate_crate::::translate_item_maybe_enqueue - at ./src/bin/charon-driver/translate/translate_crate.rs:446:35 - 68: charon_driver::translate::translate_crate::::translate_item - at ./src/bin/charon-driver/translate/translate_crate.rs:466:14 - 69: charon_driver::translate::translate_crate::::translate_trait_decl_ref - at ./src/bin/charon-driver/translate/translate_crate.rs:567:14 - 70: charon_driver::translate::translate_predicates::::translate_trait_ref - at ./src/bin/charon-driver/translate/translate_predicates.rs:79:14 - 71: charon_driver::translate::translate_predicates::::translate_poly_trait_ref::{{closure}} - at ./src/bin/charon-driver/translate/translate_predicates.rs:50:17 - 72: charon_driver::translate::translate_generics::::translate_region_binder - at ./src/bin/charon-driver/translate/translate_generics.rs:543:19 - 73: charon_driver::translate::translate_predicates::::translate_poly_trait_ref - at ./src/bin/charon-driver/translate/translate_predicates.rs:49:14 - 74: charon_driver::translate::translate_predicates::::translate_trait_impl_expr - at ./src/bin/charon-driver/translate/translate_predicates.rs:181:35 - 75: charon_driver::translate::translate_predicates::::translate_trait_impl_exprs::{{closure}} - at ./src/bin/charon-driver/translate/translate_predicates.rs:171:27 - 76: core::iter::adapters::map::map_try_fold::{{closure}} - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:95:28 - 77: core::iter::traits::iterator::Iterator::try_fold - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2426:21 - 78: as core::iter::traits::iterator::Iterator>::try_fold - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:121:19 - 79: as core::iter::traits::iterator::Iterator>::try_fold - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/by_ref_sized.rs:54:9 - 80: as core::iter::traits::iterator::Iterator>::try_fold - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/mod.rs:192:14 - 81: core::iter::traits::iterator::Iterator::try_for_each - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2487:14 - 82: as core::iter::traits::iterator::Iterator>::next - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/mod.rs:174:14 - 83: as core::iter::traits::iterator::Iterator>::next - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/inspect.rs:78:30 - 84: as core::iter::traits::iterator::Iterator>::next - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:107:19 - 85: as alloc::vec::spec_from_iter_nested::SpecFromIterNested>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:25:41 - 86: as alloc::vec::spec_from_iter::SpecFromIter>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:34:9 - 87: as core::iter::traits::collect::FromIterator>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3525:9 - 88: as core::iter::traits::collect::FromIterator>::from_iter - at /home/ssyram/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/index_vec-0.1.4/src/lib.rs:543:18 - 89: as core::iter::traits::collect::FromIterator>::from_iter - at ./src/ids/vector.rs:415:22 - 90: core::iter::traits::iterator::Iterator::collect - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2027:9 - 91: core::iter::traits::iterator::Iterator::try_collect::{{closure}} - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2107:45 - 92: core::iter::adapters::try_process - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/mod.rs:160:17 - 93: core::iter::traits::iterator::Iterator::try_collect - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2107:9 - 94: charon_driver::translate::translate_predicates::::translate_trait_impl_exprs - at ./src/bin/charon-driver/translate/translate_predicates.rs:172:14 - 95: charon_driver::translate::translate_items::::translate_virtual_trait_impl - at ./src/bin/charon-driver/translate/translate_items.rs:1063:38 - 96: charon_driver::translate::translate_drops::::translate_drop_impl - at ./src/bin/charon-driver/translate/translate_drops.rs:121:30 - 97: charon_driver::translate::translate_items::::translate_item_aux - at ./src/bin/charon-driver/translate/translate_items.rs:121:57 - 98: charon_driver::translate::translate_items::::translate_item::{{closure}}::{{closure}} - at ./src/bin/charon-driver/translate/translate_items.rs:37:54 - 99: std::panicking::catch_unwind::do_call - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 - 100: __rust_try - 101: std::panicking::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 - 102: std::panic::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 - 103: charon_driver::translate::translate_items::::translate_item::{{closure}} - at ./src/bin/charon-driver/translate/translate_items.rs:37:17 - 104: charon_driver::translate::translate_ctx::TranslateCtx::with_def_id - at ./src/bin/charon-driver/translate/translate_ctx.rs:162:19 - 105: charon_driver::translate::translate_items::::translate_item - at ./src/bin/charon-driver/translate/translate_items.rs:31:14 - 106: charon_driver::translate::translate_crate::translate - at ./src/bin/charon-driver/translate/translate_crate.rs:668:17 - 107: ::after_expansion - at ./src/bin/charon-driver/driver.rs:157:29 - 108: rustc_interface::passes::create_and_enter_global_ctxt::, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0} - 109: rustc_interface::interface::run_compiler::<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1} - 110: std::sys::backtrace::__rust_begin_short_backtrace::::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()> - 111: <::spawn_unchecked_::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} - 112: std::sys::pal::unix::thread::Thread::new::thread_start - 113: - 114: - +disabled backtrace warning[E9999]: Could not find a clause for `Binder { value: , bound_vars: [] }` in the current context: `Unimplemented` --> /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/marker.rs:179:1 | diff --git a/charon/tests/ui/simple/dyn-fn.out b/charon/tests/ui/simple/dyn-fn.out index b2978bce0..6e2b4dfc7 100644 --- a/charon/tests/ui/simple/dyn-fn.out +++ b/charon/tests/ui/simple/dyn-fn.out @@ -269,11 +269,9 @@ fn {{impl FnOnce<(&'_ mut (u32))> for closure}}::{vtable}::{drop_method}<'_0, '_ { let ret@0: (); // return let self@1: &'_0 mut ((dyn exists<_dyn> [@TraitClause0]: FnOnce<_dyn, (&'_ mut (u32))> + _dyn : '_ + @TraitClause1_0::Output = bool)); // arg #1 - let concrete@2: &'_0 mut (closure); // local - storage_live(concrete@2) - concrete@2 := concretize<&'_0 mut ((dyn exists<_dyn> [@TraitClause0]: FnOnce<_dyn, (&'_ mut (u32))> + _dyn : '_ + @TraitClause1_0::Output = bool)), &'_0 mut (closure)>(move (self@1)) - panic + ret@0 := () + return } // Full name: test_crate::gives_fn::{impl FnOnce<(&'_ mut (u32))> for closure}::{vtable} @@ -295,11 +293,9 @@ fn {{impl FnMut<(&'_ mut (u32))> for closure}}::{vtable}::{drop_method}<'_0, '_1 { let ret@0: (); // return let self@1: &'_0 mut ((dyn exists<_dyn> [@TraitClause0]: FnMut<_dyn, (&'_ mut (u32))> + _dyn : '_ + @TraitClause1_0::parent_clause1::Output = bool)); // arg #1 - let concrete@2: &'_0 mut (closure); // local - storage_live(concrete@2) - concrete@2 := concretize<&'_0 mut ((dyn exists<_dyn> [@TraitClause0]: FnMut<_dyn, (&'_ mut (u32))> + _dyn : '_ + @TraitClause1_0::parent_clause1::Output = bool)), &'_0 mut (closure)>(move (self@1)) - panic + ret@0 := () + return } // Full name: test_crate::gives_fn::closure::{vtable_method} @@ -341,11 +337,9 @@ fn {{impl Fn<(&'_ mut (u32))> for closure}}::{vtable}::{drop_method}<'_0, '_1>(@ { let ret@0: (); // return let self@1: &'_0 mut ((dyn exists<_dyn> [@TraitClause0]: Fn<_dyn, (&'_ mut (u32))> + _dyn : '_ + @TraitClause1_0::parent_clause1::parent_clause1::Output = bool)); // arg #1 - let concrete@2: &'_0 mut (closure); // local - storage_live(concrete@2) - concrete@2 := concretize<&'_0 mut ((dyn exists<_dyn> [@TraitClause0]: Fn<_dyn, (&'_ mut (u32))> + _dyn : '_ + @TraitClause1_0::parent_clause1::parent_clause1::Output = bool)), &'_0 mut (closure)>(move (self@1)) - panic + ret@0 := () + return } // Full name: test_crate::gives_fn::closure::{vtable_method} diff --git a/charon/tests/ui/simple/fewer-clauses-in-method-impl.out b/charon/tests/ui/simple/fewer-clauses-in-method-impl.out index c34eb1ef1..6794e218c 100644 --- a/charon/tests/ui/simple/fewer-clauses-in-method-impl.out +++ b/charon/tests/ui/simple/fewer-clauses-in-method-impl.out @@ -1,115 +1,4 @@ - 0: hax_frontend_exporter::traits::solve_trait::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/utils/error_macros.rs:29:29 - 1: hax_frontend_exporter::traits::resolution::PredicateSearcher::resolve::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits/resolution.rs:457:13 - 2: hax_frontend_exporter::traits::resolution::PredicateSearcher::resolve - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits/resolution.rs:646:24 - 3: hax_frontend_exporter::traits::solve_trait::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:232:65 - 4: hax_frontend_exporter::state::WithItemCacheExt::with_predicate_searcher::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/state.rs:312:13 - 5: hax_frontend_exporter::state::WithGlobalCacheExt::with_item_cache::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/state.rs:299:40 - 6: hax_frontend_exporter::state::WithGlobalCacheExt::with_global_cache - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/state.rs:294:9 - 7: hax_frontend_exporter::state::WithGlobalCacheExt::with_item_cache - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/state.rs:299:14 - 8: hax_frontend_exporter::state::WithItemCacheExt::with_cache - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/state.rs:308:14 - 9: hax_frontend_exporter::state::WithItemCacheExt::with_predicate_searcher - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/state.rs:311:14 - 10: hax_frontend_exporter::traits::solve_trait - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:232:11 - 11: hax_frontend_exporter::traits::solve_item_traits_inner::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:321:26 - 12: core::ops::function::impls:: for &mut F>::call_once - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:305:21 - 13: core::option::Option::map - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:1146:29 - 14: as core::iter::traits::iterator::Iterator>::next - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:107:26 - 15: alloc::vec::Vec::extend_desugared - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3633:44 - 16: as alloc::vec::spec_extend::SpecExtend>::spec_extend - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_extend.rs:19:14 - 17: as alloc::vec::spec_from_iter_nested::SpecFromIterNested>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:42:9 - 18: as alloc::vec::spec_from_iter::SpecFromIter>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:34:9 - 19: as core::iter::traits::collect::FromIterator>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3525:9 - 20: core::iter::traits::iterator::Iterator::collect - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2027:9 - 21: hax_frontend_exporter::traits::solve_item_traits_inner - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:322:10 - 22: hax_frontend_exporter::traits::solve_item_required_traits::{{closure}}::accumulate - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:278:27 - 23: hax_frontend_exporter::traits::solve_item_required_traits::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:281:5 - 24: hax_frontend_exporter::traits::solve_item_required_traits - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:256:1 - 25: hax_frontend_exporter::types::ty::ItemRef::translate - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:532:30 - 26: hax_frontend_exporter::traits::translate_item_ref::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:249:5 - 27: hax_frontend_exporter::traits::translate_item_ref - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/traits.rs:243:1 - 28: hax_frontend_exporter::types::ty::AssocItem::sfrom_instantiated - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1795:50 - 29: hax_frontend_exporter::types::new::full_def::translate_full_def_kind - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:686:34 - 30: hax_frontend_exporter::types::new::full_def::translate_full_def - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:62:20 - 31: hax_frontend_exporter::types::new::full_def::::full_def_maybe_instantiated - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:182:28 - 32: hax_frontend_exporter::types::new::full_def::::full_def - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:161:14 - 33: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item::{{closure}} - at ./src/bin/charon-driver/translate/translate_ctx.rs:143:47 - 34: std::panicking::catch_unwind::do_call - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 - 35: __rust_try - 36: std::panicking::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 - 37: std::panic::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 - 38: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item - at ./src/bin/charon-driver/translate/translate_ctx.rs:142:9 - 39: charon_driver::translate::translate_ctx::TranslateCtx::poly_hax_def - at ./src/bin/charon-driver/translate/translate_ctx.rs:127:14 - 40: charon_driver::translate::translate_ctx::ItemTransCtx::poly_hax_def - at ./src/bin/charon-driver/translate/translate_ctx.rs:219:20 - 41: charon_driver::translate::translate_items::::translate_trait_impl - at ./src/bin/charon-driver/translate/translate_items.rs:803:38 - 42: charon_driver::translate::translate_items::::translate_item_aux - at ./src/bin/charon-driver/translate/translate_items.rs:114:55 - 43: charon_driver::translate::translate_items::::translate_item::{{closure}}::{{closure}} - at ./src/bin/charon-driver/translate/translate_items.rs:37:54 - 44: std::panicking::catch_unwind::do_call - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 - 45: __rust_try - 46: std::panicking::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 - 47: std::panic::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 - 48: charon_driver::translate::translate_items::::translate_item::{{closure}} - at ./src/bin/charon-driver/translate/translate_items.rs:37:17 - 49: charon_driver::translate::translate_ctx::TranslateCtx::with_def_id - at ./src/bin/charon-driver/translate/translate_ctx.rs:162:19 - 50: charon_driver::translate::translate_items::::translate_item - at ./src/bin/charon-driver/translate/translate_items.rs:31:14 - 51: charon_driver::translate::translate_crate::translate - at ./src/bin/charon-driver/translate/translate_crate.rs:668:17 - 52: ::after_expansion - at ./src/bin/charon-driver/driver.rs:157:29 - 53: rustc_interface::passes::create_and_enter_global_ctxt::, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0} - 54: rustc_interface::interface::run_compiler::<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1} - 55: std::sys::backtrace::__rust_begin_short_backtrace::::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()> - 56: <::spawn_unchecked_::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} - 57: std::sys::pal::unix::thread::Thread::new::thread_start - 58: - 59: - +disabled backtrace warning[E9999]: Could not find a clause for `Binder { value: , bound_vars: [] }` in the current context: `Unimplemented` --> tests/ui/simple/fewer-clauses-in-method-impl.rs:8:5 | diff --git a/charon/tests/ui/simple/gat-default.out b/charon/tests/ui/simple/gat-default.out index aabf5d752..1c747e7d6 100644 --- a/charon/tests/ui/simple/gat-default.out +++ b/charon/tests/ui/simple/gat-default.out @@ -1,115 +1,7 @@ thread 'rustc' panicked at /rustc-dev/a2d45f73c70d9dec57140c9412f83586eda895f8/compiler/rustc_type_ir/src/binder.rs:764:9: type parameter `U/#1` (U/#1/1) out of range when instantiating, args=[()] -stack backtrace: - 0: __rustc::rust_begin_unwind - 1: core::panicking::panic_fmt - 2: >::type_param_out_of_range - 3: rustc_type_ir::binder::ArgFolder::ty_for_param - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_type_ir/src/binder.rs:742:26 - 4: as rustc_type_ir::fold::TypeFolder>::fold_ty - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_type_ir/src/binder.rs:713:34 - 5: rustc_middle::ty::structural_impls:: for rustc_middle::ty::Ty>::fold_with - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/structural_impls.rs:373:16 - 6: >::fold_with - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/generic_args.rs:353:44 - 7: rustc_middle::ty::generic_args:: for &rustc_middle::ty::list::RawList<(),rustc_middle::ty::generic_args::GenericArg>>::fold_with - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/generic_args.rs:638:38 - 8: rustc_middle::ty::structural_impls:: for rustc_middle::ty::Ty>::super_fold_with - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/structural_impls.rs:439:53 - 9: as rustc_type_ir::fold::TypeFolder>::fold_ty - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_type_ir/src/binder.rs:714:20 - 10: rustc_middle::ty::structural_impls:: for rustc_middle::ty::Ty>::fold_with - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/structural_impls.rs:373:16 - 11: rustc_type_ir::binder::EarlyBinder::instantiate - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_type_ir/src/binder.rs:637:20 - 12: hax_frontend_exporter::types::new::full_def::translate_full_def_kind::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:619:50 - 13: core::iter::adapters::map::map_fold::{{closure}} - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:88:28 - 14: core::iter::adapters::map::map_fold::{{closure}} - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:88:21 - 15: core::iter::adapters::map::map_fold::{{closure}} - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:88:21 - 16: as core::iter::traits::iterator::Iterator>::fold - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:255:27 - 17: as core::iter::traits::iterator::Iterator>::fold - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:128:19 - 18: as core::iter::traits::iterator::Iterator>::fold - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:128:19 - 19: as core::iter::traits::iterator::Iterator>::fold - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:128:19 - 20: core::iter::traits::iterator::Iterator::for_each - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:827:14 - 21: alloc::vec::Vec::extend_trusted - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3666:26 - 22: as alloc::vec::spec_extend::SpecExtend>::spec_extend - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_extend.rs:29:14 - 23: as alloc::vec::spec_from_iter_nested::SpecFromIterNested>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:62:16 - 24: as alloc::vec::spec_from_iter::SpecFromIter>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:34:9 - 25: as core::iter::traits::collect::FromIterator>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3525:9 - 26: core::iter::traits::iterator::Iterator::collect - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2027:9 - 27: hax_frontend_exporter::types::new::full_def::translate_full_def_kind - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:653:26 - 28: hax_frontend_exporter::types::new::full_def::translate_full_def - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:62:20 - 29: hax_frontend_exporter::types::new::full_def::::full_def_maybe_instantiated - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:182:28 - 30: hax_frontend_exporter::types::new::full_def::::full_def - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:161:14 - 31: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item::{{closure}} - at ./src/bin/charon-driver/translate/translate_ctx.rs:143:47 - 32: std::panicking::catch_unwind::do_call - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 - 33: __rust_try - 34: std::panicking::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 - 35: std::panic::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 - 36: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item - at ./src/bin/charon-driver/translate/translate_ctx.rs:142:9 - 37: charon_driver::translate::translate_meta::::name_for_item - at ./src/bin/charon-driver/translate/translate_meta.rs:304:28 - 38: charon_driver::translate::translate_meta::::name_for_src - at ./src/bin/charon-driver/translate/translate_meta.rs:332:18 - 39: charon_driver::translate::translate_meta::::translate_name - at ./src/bin/charon-driver/translate/translate_meta.rs:378:29 - 40: charon_driver::translate::translate_crate::::register_no_enqueue - at ./src/bin/charon-driver/translate/translate_crate.rs:293:40 - 41: charon_driver::translate::translate_crate::::register_and_enqueue - at ./src/bin/charon-driver/translate/translate_crate.rs:311:23 - 42: charon_driver::translate::translate_crate::::enqueue_module_item - at ./src/bin/charon-driver/translate/translate_crate.rs:260:42 - 43: charon_driver::translate::translate_items::::register_module - at ./src/bin/charon-driver/translate/translate_items.rs:220:32 - 44: charon_driver::translate::translate_items::::translate_item_aux - at ./src/bin/charon-driver/translate/translate_items.rs:79:24 - 45: charon_driver::translate::translate_items::::translate_item::{{closure}}::{{closure}} - at ./src/bin/charon-driver/translate/translate_items.rs:37:54 - 46: std::panicking::catch_unwind::do_call - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 - 47: __rust_try - 48: std::panicking::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 - 49: std::panic::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 - 50: charon_driver::translate::translate_items::::translate_item::{{closure}} - at ./src/bin/charon-driver/translate/translate_items.rs:37:17 - 51: charon_driver::translate::translate_ctx::TranslateCtx::with_def_id - at ./src/bin/charon-driver/translate/translate_ctx.rs:162:19 - 52: charon_driver::translate::translate_items::::translate_item - at ./src/bin/charon-driver/translate/translate_items.rs:31:14 - 53: charon_driver::translate::translate_crate::translate - at ./src/bin/charon-driver/translate/translate_crate.rs:668:17 - 54: ::after_expansion - at ./src/bin/charon-driver/driver.rs:157:29 - 55: rustc_interface::passes::create_and_enter_global_ctxt::, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0} - 56: rustc_interface::interface::run_compiler::<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1} -note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace. +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace error: Hax panicked when translating `test_crate::{impl#0}`. --> tests/ui/simple/gat-default.rs:9:1 | @@ -131,107 +23,6 @@ error: Item `test_crate::Collection` caused errors; ignoring. thread 'rustc' panicked at /rustc-dev/a2d45f73c70d9dec57140c9412f83586eda895f8/compiler/rustc_type_ir/src/binder.rs:764:9: type parameter `U/#1` (U/#1/1) out of range when instantiating, args=[()] -stack backtrace: - 0: __rustc::rust_begin_unwind - 1: core::panicking::panic_fmt - 2: >::type_param_out_of_range - 3: rustc_type_ir::binder::ArgFolder::ty_for_param - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_type_ir/src/binder.rs:742:26 - 4: as rustc_type_ir::fold::TypeFolder>::fold_ty - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_type_ir/src/binder.rs:713:34 - 5: rustc_middle::ty::structural_impls:: for rustc_middle::ty::Ty>::fold_with - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/structural_impls.rs:373:16 - 6: >::fold_with - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/generic_args.rs:353:44 - 7: rustc_middle::ty::generic_args:: for &rustc_middle::ty::list::RawList<(),rustc_middle::ty::generic_args::GenericArg>>::fold_with - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/generic_args.rs:638:38 - 8: rustc_middle::ty::structural_impls:: for rustc_middle::ty::Ty>::super_fold_with - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/structural_impls.rs:439:53 - 9: as rustc_type_ir::fold::TypeFolder>::fold_ty - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_type_ir/src/binder.rs:714:20 - 10: rustc_middle::ty::structural_impls:: for rustc_middle::ty::Ty>::fold_with - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/structural_impls.rs:373:16 - 11: rustc_type_ir::binder::EarlyBinder::instantiate - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_type_ir/src/binder.rs:637:20 - 12: hax_frontend_exporter::types::new::full_def::translate_full_def_kind::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:619:50 - 13: core::iter::adapters::map::map_fold::{{closure}} - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:88:28 - 14: core::iter::adapters::map::map_fold::{{closure}} - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:88:21 - 15: core::iter::adapters::map::map_fold::{{closure}} - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:88:21 - 16: as core::iter::traits::iterator::Iterator>::fold - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:255:27 - 17: as core::iter::traits::iterator::Iterator>::fold - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:128:19 - 18: as core::iter::traits::iterator::Iterator>::fold - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:128:19 - 19: as core::iter::traits::iterator::Iterator>::fold - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:128:19 - 20: core::iter::traits::iterator::Iterator::for_each - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:827:14 - 21: alloc::vec::Vec::extend_trusted - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3666:26 - 22: as alloc::vec::spec_extend::SpecExtend>::spec_extend - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_extend.rs:29:14 - 23: as alloc::vec::spec_from_iter_nested::SpecFromIterNested>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:62:16 - 24: as alloc::vec::spec_from_iter::SpecFromIter>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:34:9 - 25: as core::iter::traits::collect::FromIterator>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3525:9 - 26: core::iter::traits::iterator::Iterator::collect - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2027:9 - 27: hax_frontend_exporter::types::new::full_def::translate_full_def_kind - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:653:26 - 28: hax_frontend_exporter::types::new::full_def::translate_full_def - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:62:20 - 29: hax_frontend_exporter::types::new::full_def::::full_def_maybe_instantiated - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:182:28 - 30: hax_frontend_exporter::types::new::full_def::::full_def - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:161:14 - 31: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item::{{closure}} - at ./src/bin/charon-driver/translate/translate_ctx.rs:143:47 - 32: std::panicking::catch_unwind::do_call - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 - 33: __rust_try - 34: std::panicking::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 - 35: std::panic::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 - 36: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item - at ./src/bin/charon-driver/translate/translate_ctx.rs:142:9 - 37: charon_driver::translate::translate_meta::::name_for_item - at ./src/bin/charon-driver/translate/translate_meta.rs:304:28 - 38: charon_driver::translate::translate_meta::::name_for_src - at ./src/bin/charon-driver/translate/translate_meta.rs:332:18 - 39: charon_driver::translate::translate_meta::::translate_name - at ./src/bin/charon-driver/translate/translate_meta.rs:378:29 - 40: charon_driver::translate::translate_items::::translate_item_aux - at ./src/bin/charon-driver/translate/translate_items.rs:63:25 - 41: charon_driver::translate::translate_items::::translate_item::{{closure}}::{{closure}} - at ./src/bin/charon-driver/translate/translate_items.rs:37:54 - 42: std::panicking::catch_unwind::do_call - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 - 43: __rust_try - 44: std::panicking::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 - 45: std::panic::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 - 46: charon_driver::translate::translate_items::::translate_item::{{closure}} - at ./src/bin/charon-driver/translate/translate_items.rs:37:17 - 47: charon_driver::translate::translate_ctx::TranslateCtx::with_def_id - at ./src/bin/charon-driver/translate/translate_ctx.rs:162:19 - 48: charon_driver::translate::translate_items::::translate_item - at ./src/bin/charon-driver/translate/translate_items.rs:31:14 - 49: charon_driver::translate::translate_crate::translate - at ./src/bin/charon-driver/translate/translate_crate.rs:668:17 - 50: ::after_expansion - at ./src/bin/charon-driver/driver.rs:157:29 - 51: rustc_interface::passes::create_and_enter_global_ctxt::, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0} - 52: rustc_interface::interface::run_compiler::<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1} -note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace. error: Hax panicked when translating `test_crate::{impl#0}`. --> tests/ui/simple/gat-default.rs:9:1 | diff --git a/charon/tests/ui/unsupported/advanced-const-generics.out b/charon/tests/ui/unsupported/advanced-const-generics.out index 2e5533f3c..83062949f 100644 --- a/charon/tests/ui/unsupported/advanced-const-generics.out +++ b/charon/tests/ui/unsupported/advanced-const-generics.out @@ -1,109 +1,4 @@ - 0: hax_frontend_exporter::constant_utils::uneval::> for rustc_middle::ty::consts::Const>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/utils/error_macros.rs:29:29 - 1: hax_frontend_exporter::types::ty::_:: for rustc_type_ir::ty_kind::TyKind>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1120:37 - 2: hax_frontend_exporter::types::ty:: for rustc_middle::ty::Ty>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1057:40 - 3: hax_frontend_exporter::types::ty:: for rustc_middle::ty::Term>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1451:45 - 4: hax_frontend_exporter::types::ty::_:: for rustc_type_ir::predicate_kind::ClauseKind>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1507:16 - 5: hax_frontend_exporter::types::ty::> for rustc_type_ir::binder::Binder>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1639:41 - 6: hax_frontend_exporter::types::ty:: for rustc_middle::ty::predicate::Clause>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1525:32 - 7: <(L,R) as hax_frontend_exporter::sinto::SInto>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/sinto.rs:64:17 - 8: <[T] as hax_frontend_exporter::sinto::SInto>>::sinto::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/sinto.rs:93:31 - 9: core::iter::adapters::map::map_fold::{{closure}} - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:88:28 - 10: as core::iter::traits::iterator::Iterator>::fold - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:255:27 - 11: as core::iter::traits::iterator::Iterator>::fold - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:128:19 - 12: core::iter::traits::iterator::Iterator::for_each - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:827:14 - 13: alloc::vec::Vec::extend_trusted - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3666:26 - 14: as alloc::vec::spec_extend::SpecExtend>::spec_extend - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_extend.rs:29:14 - 15: as alloc::vec::spec_from_iter_nested::SpecFromIterNested>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:62:16 - 16: as alloc::vec::spec_from_iter::SpecFromIter>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:34:9 - 17: as core::iter::traits::collect::FromIterator>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3525:9 - 18: core::iter::traits::iterator::Iterator::collect - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2027:9 - 19: <[T] as hax_frontend_exporter::sinto::SInto>>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/sinto.rs:93:41 - 20: hax_frontend_exporter::types::ty:: for alloc::borrow::Cow<[(rustc_middle::ty::predicate::Clause,rustc_span::span_encoding::Span)]>>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1625:39 - 21: hax_frontend_exporter::types::new::full_def::get_param_env - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:1129:18 - 22: hax_frontend_exporter::types::new::full_def::translate_full_def_kind - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:666:24 - 23: hax_frontend_exporter::types::new::full_def::translate_full_def - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:62:20 - 24: hax_frontend_exporter::types::new::full_def::::full_def_maybe_instantiated - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:182:28 - 25: hax_frontend_exporter::types::new::full_def::::full_def - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:161:14 - 26: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item::{{closure}} - at ./src/bin/charon-driver/translate/translate_ctx.rs:143:47 - 27: std::panicking::catch_unwind::do_call - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 - 28: __rust_try - 29: std::panicking::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 - 30: std::panic::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 - 31: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item - at ./src/bin/charon-driver/translate/translate_ctx.rs:142:9 - 32: charon_driver::translate::translate_meta::::name_for_item - at ./src/bin/charon-driver/translate/translate_meta.rs:304:28 - 33: charon_driver::translate::translate_meta::::name_for_src - at ./src/bin/charon-driver/translate/translate_meta.rs:332:18 - 34: charon_driver::translate::translate_meta::::translate_name - at ./src/bin/charon-driver/translate/translate_meta.rs:378:29 - 35: charon_driver::translate::translate_crate::::register_no_enqueue - at ./src/bin/charon-driver/translate/translate_crate.rs:293:40 - 36: charon_driver::translate::translate_crate::::register_and_enqueue - at ./src/bin/charon-driver/translate/translate_crate.rs:311:23 - 37: charon_driver::translate::translate_crate::::enqueue_module_item - at ./src/bin/charon-driver/translate/translate_crate.rs:260:42 - 38: charon_driver::translate::translate_items::::register_module - at ./src/bin/charon-driver/translate/translate_items.rs:220:32 - 39: charon_driver::translate::translate_items::::translate_item_aux - at ./src/bin/charon-driver/translate/translate_items.rs:79:24 - 40: charon_driver::translate::translate_items::::translate_item::{{closure}}::{{closure}} - at ./src/bin/charon-driver/translate/translate_items.rs:37:54 - 41: std::panicking::catch_unwind::do_call - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 - 42: __rust_try - 43: std::panicking::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 - 44: std::panic::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 - 45: charon_driver::translate::translate_items::::translate_item::{{closure}} - at ./src/bin/charon-driver/translate/translate_items.rs:37:17 - 46: charon_driver::translate::translate_ctx::TranslateCtx::with_def_id - at ./src/bin/charon-driver/translate/translate_ctx.rs:162:19 - 47: charon_driver::translate::translate_items::::translate_item - at ./src/bin/charon-driver/translate/translate_items.rs:31:14 - 48: charon_driver::translate::translate_crate::translate - at ./src/bin/charon-driver/translate/translate_crate.rs:668:17 - 49: ::after_expansion - at ./src/bin/charon-driver/driver.rs:157:29 - 50: rustc_interface::passes::create_and_enter_global_ctxt::, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0} - 51: rustc_interface::interface::run_compiler::<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1} - 52: std::sys::backtrace::__rust_begin_short_backtrace::::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()> - 53: <::spawn_unchecked_::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} - 54: std::sys::pal::unix::thread::Thread::new::thread_start - 55: - 56: - +disabled backtrace error[E9999]: Supposely unreachable place in the Rust AST. The label is "TranslateUneval". This error report happend because some assumption about the Rust AST was broken. @@ -145,104 +40,7 @@ error: Item `test_crate::foo` caused errors; ignoring. 14 | fn foo() -> Foo { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - 0: hax_frontend_exporter::constant_utils::uneval::> for rustc_middle::ty::consts::Const>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/utils/error_macros.rs:29:29 - 1: hax_frontend_exporter::types::ty::_:: for rustc_type_ir::ty_kind::TyKind>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1120:37 - 2: hax_frontend_exporter::types::ty:: for rustc_middle::ty::Ty>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1057:40 - 3: hax_frontend_exporter::types::ty:: for rustc_middle::ty::Term>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1451:45 - 4: hax_frontend_exporter::types::ty::_:: for rustc_type_ir::predicate_kind::ClauseKind>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1507:16 - 5: hax_frontend_exporter::types::ty::> for rustc_type_ir::binder::Binder>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1639:41 - 6: hax_frontend_exporter::types::ty:: for rustc_middle::ty::predicate::Clause>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1525:32 - 7: <(L,R) as hax_frontend_exporter::sinto::SInto>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/sinto.rs:64:17 - 8: <[T] as hax_frontend_exporter::sinto::SInto>>::sinto::{{closure}} - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/sinto.rs:93:31 - 9: core::iter::adapters::map::map_fold::{{closure}} - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:88:28 - 10: as core::iter::traits::iterator::Iterator>::fold - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:255:27 - 11: as core::iter::traits::iterator::Iterator>::fold - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:128:19 - 12: core::iter::traits::iterator::Iterator::for_each - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:827:14 - 13: alloc::vec::Vec::extend_trusted - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3666:26 - 14: as alloc::vec::spec_extend::SpecExtend>::spec_extend - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_extend.rs:29:14 - 15: as alloc::vec::spec_from_iter_nested::SpecFromIterNested>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:62:16 - 16: as alloc::vec::spec_from_iter::SpecFromIter>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:34:9 - 17: as core::iter::traits::collect::FromIterator>::from_iter - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3525:9 - 18: core::iter::traits::iterator::Iterator::collect - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2027:9 - 19: <[T] as hax_frontend_exporter::sinto::SInto>>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/sinto.rs:93:41 - 20: hax_frontend_exporter::types::ty:: for alloc::borrow::Cow<[(rustc_middle::ty::predicate::Clause,rustc_span::span_encoding::Span)]>>::sinto - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/ty.rs:1625:39 - 21: hax_frontend_exporter::types::new::full_def::get_param_env - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:1129:18 - 22: hax_frontend_exporter::types::new::full_def::translate_full_def_kind - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:666:24 - 23: hax_frontend_exporter::types::new::full_def::translate_full_def - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:62:20 - 24: hax_frontend_exporter::types::new::full_def::::full_def_maybe_instantiated - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:182:28 - 25: hax_frontend_exporter::types::new::full_def::::full_def - at /home/ssyram/.cargo/git/checkouts/hax-c5ea2928c640208b/79faad1/frontend/exporter/src/types/new/full_def.rs:161:14 - 26: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item::{{closure}} - at ./src/bin/charon-driver/translate/translate_ctx.rs:143:47 - 27: std::panicking::catch_unwind::do_call - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 - 28: __rust_try - 29: std::panicking::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 - 30: std::panic::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 - 31: charon_driver::translate::translate_ctx::TranslateCtx::hax_def_for_item - at ./src/bin/charon-driver/translate/translate_ctx.rs:142:9 - 32: charon_driver::translate::translate_meta::::name_for_item - at ./src/bin/charon-driver/translate/translate_meta.rs:304:28 - 33: charon_driver::translate::translate_meta::::name_for_src - at ./src/bin/charon-driver/translate/translate_meta.rs:332:18 - 34: charon_driver::translate::translate_meta::::translate_name - at ./src/bin/charon-driver/translate/translate_meta.rs:378:29 - 35: charon_driver::translate::translate_items::::translate_item_aux - at ./src/bin/charon-driver/translate/translate_items.rs:63:25 - 36: charon_driver::translate::translate_items::::translate_item::{{closure}}::{{closure}} - at ./src/bin/charon-driver/translate/translate_items.rs:37:54 - 37: std::panicking::catch_unwind::do_call - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 - 38: __rust_try - 39: std::panicking::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 - 40: std::panic::catch_unwind - at /home/ssyram/.rustup/toolchains/nightly-2025-07-08-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 - 41: charon_driver::translate::translate_items::::translate_item::{{closure}} - at ./src/bin/charon-driver/translate/translate_items.rs:37:17 - 42: charon_driver::translate::translate_ctx::TranslateCtx::with_def_id - at ./src/bin/charon-driver/translate/translate_ctx.rs:162:19 - 43: charon_driver::translate::translate_items::::translate_item - at ./src/bin/charon-driver/translate/translate_items.rs:31:14 - 44: charon_driver::translate::translate_crate::translate - at ./src/bin/charon-driver/translate/translate_crate.rs:668:17 - 45: ::after_expansion - at ./src/bin/charon-driver/driver.rs:157:29 - 46: rustc_interface::passes::create_and_enter_global_ctxt::, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0} - 47: rustc_interface::interface::run_compiler::<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1} - 48: std::sys::backtrace::__rust_begin_short_backtrace::::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()> - 49: <::spawn_unchecked_::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} - 50: std::sys::pal::unix::thread::Thread::new::thread_start - 51: - 52: - +disabled backtrace error: Hax panicked when translating `test_crate::bar`. --> tests/ui/unsupported/advanced-const-generics.rs:18:1 |