diff --git a/charon/src/pretty/fmt_with_ctx.rs b/charon/src/pretty/fmt_with_ctx.rs index 2e0bf951..fa268aba 100644 --- a/charon/src/pretty/fmt_with_ctx.rs +++ b/charon/src/pretty/fmt_with_ctx.rs @@ -206,7 +206,7 @@ impl FmtWithCtx for FnOperand { impl FmtWithCtx for FnPtr { fn fmt_with_ctx(&self, ctx: &C) -> String { - let generics = self.generics.fmt_with_ctx_split_trait_refs(ctx); + let generics = self.generics.fmt_with_ctx(ctx); let f = match &self.func { FunIdOrTraitMethodRef::Fun(FunId::Regular(def_id)) => { format!("{}", ctx.format_object(*def_id),) @@ -280,12 +280,13 @@ impl GenericArgs { where C: AstFormatter, { + assert!(self.trait_refs.is_empty()); let mut params = Vec::new(); let GenericArgs { regions, types, const_generics, - trait_refs, + trait_refs: _, } = self; for x in regions { params.push(x.fmt_with_ctx(ctx)); @@ -296,9 +297,6 @@ impl GenericArgs { for x in const_generics { params.push(x.fmt_with_ctx(ctx)); } - for x in trait_refs { - params.push(x.fmt_with_ctx(ctx)) - } params.join(", ") } @@ -343,11 +341,7 @@ impl GenericArgs { impl FmtWithCtx for GenericArgs { fn fmt_with_ctx(&self, ctx: &C) -> String { - if self.is_empty() { - "".to_string() - } else { - format!("<{}>", self.fmt_with_ctx_no_brackets(ctx),) - } + self.fmt_with_ctx_split_trait_refs(ctx) } } @@ -671,7 +665,7 @@ where impl FmtWithCtx for GlobalDeclRef { fn fmt_with_ctx(&self, ctx: &C) -> String { let global_id = ctx.format_object(self.id); - let generics = self.generics.fmt_with_ctx_split_trait_refs(ctx); + let generics = self.generics.fmt_with_ctx(ctx); format!("{global_id}{generics}") } } @@ -974,7 +968,7 @@ impl FmtWithCtx for Rvalue { format!( "{{{}{}}} {{{}}}", ctx.format_object(*fn_id), - generics.fmt_with_ctx_split_trait_refs(ctx), + generics.fmt_with_ctx(ctx), ops_s.join(", ") ) } @@ -1212,8 +1206,8 @@ impl FmtWithCtx for TraitDecl { .iter() .map(|c| { format!( - "{TAB_INCR}parent_clause_{} : {}\n", - c.clause_id.to_string(), + "{TAB_INCR}parent_clause{} : {}\n", + c.clause_id, c.fmt_with_ctx(ctx) ) }) @@ -1259,7 +1253,7 @@ impl FmtWithCtx for TraitDecl { impl FmtWithCtx for TraitDeclRef { fn fmt_with_ctx(&self, ctx: &C) -> String { let trait_id = ctx.format_object(self.trait_id); - let generics = self.generics.fmt_with_ctx_split_trait_refs(ctx); + let generics = self.generics.fmt_with_ctx(ctx); format!("{trait_id}{generics}") } } @@ -1332,11 +1326,7 @@ impl FmtWithCtx for TraitRefKind { TraitRefKind::SelfId => "Self".to_string(), TraitRefKind::ParentClause(id, _decl_id, clause_id) => { let id = id.fmt_with_ctx(ctx); - // Using on purpose [to_pretty_string] instead of [format_object]: - // the clause is local to the associated type, so it should not - // be referenced in the current context. - let clause = clause_id.to_pretty_string(); - format!("(parents({id})::[{clause}])") + format!("{id}::parent_clause{clause_id}") } TraitRefKind::ItemClause(id, _decl_id, type_name, clause_id) => { let id = id.fmt_with_ctx(ctx); @@ -1348,7 +1338,7 @@ impl FmtWithCtx for TraitRefKind { } TraitRefKind::TraitImpl(id, args) => { let impl_ = ctx.format_object(*id); - let args = args.fmt_with_ctx_split_trait_refs(ctx); + let args = args.fmt_with_ctx(ctx); format!("{impl_}{args}") } TraitRefKind::Clause(id) => ctx.format_object(*id), diff --git a/charon/tests/cargo/dependencies.out b/charon/tests/cargo/dependencies.out index c8c70dff..0d879db0 100644 --- a/charon/tests/cargo/dependencies.out +++ b/charon/tests/cargo/dependencies.out @@ -19,9 +19,9 @@ trait core::marker::Tuple trait core::ops::function::FnOnce { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::marker::Tuple - parent_clause_2 : [@TraitClause2]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::marker::Tuple + parent_clause2 : [@TraitClause2]: core::marker::Sized type Output fn call_once : core::ops::function::FnOnce::call_once } @@ -95,7 +95,7 @@ fn test_cargo_dependencies::main() let @18: &'_ (u32); // anonymous local let @19: &'_ (u32); // anonymous local let @20: &'_ (u32); // anonymous local - let @21: core::option::Option, core::marker::Sized>>; // anonymous local + let @21: core::option::Option>[core::marker::Sized>]; // anonymous local let @22: (); // anonymous local let @23: (); // anonymous local diff --git a/charon/tests/cargo/toml.out b/charon/tests/cargo/toml.out index 3ca32adc..4d3264e5 100644 --- a/charon/tests/cargo/toml.out +++ b/charon/tests/cargo/toml.out @@ -10,13 +10,13 @@ enum core::option::Option | Some(T) -fn core::option::{core::option::Option}::is_some<'_0, T>(@1: &'_0 (core::option::Option)) -> bool +fn core::option::{core::option::Option[@TraitClause0]}::is_some<'_0, T>(@1: &'_0 (core::option::Option[@TraitClause0])) -> bool where // Inherited clauses: [@TraitClause0]: core::marker::Sized, { let @0: bool; // return - let self@1: &'_ (core::option::Option); // arg #1 + let self@1: &'_ (core::option::Option[@TraitClause0]); // arg #1 match *(self@1) { 1 => { @@ -33,13 +33,13 @@ fn test_cargo_toml::main() { let @0: (); // return let @1: bool; // anonymous local - let @2: &'_ (core::option::Option>); // anonymous local - let @3: core::option::Option>; // anonymous local + let @2: &'_ (core::option::Option[core::marker::Sized]); // anonymous local + let @3: core::option::Option[core::marker::Sized]; // anonymous local let @4: (); // anonymous local @3 := core::option::Option::Some { 0: const (false) } @2 := &@3 - @1 := core::option::{core::option::Option}::is_some[core::marker::Sized](move (@2)) + @1 := core::option::{core::option::Option[@TraitClause0]}::is_some[core::marker::Sized](move (@2)) drop @2 @fake_read(@1) drop @3 diff --git a/charon/tests/ui/arrays.out b/charon/tests/ui/arrays.out index 0dc0d2bc..99d7616f 100644 --- a/charon/tests/ui/arrays.out +++ b/charon/tests/ui/arrays.out @@ -259,7 +259,7 @@ enum core::option::Option trait core::slice::index::SliceIndex { - parent_clause_0 : [@TraitClause0]: core::slice::index::private_slice_index::Sealed + parent_clause0 : [@TraitClause0]: core::slice::index::private_slice_index::Sealed type Output fn get : core::slice::index::SliceIndex::get fn get_mut : core::slice::index::SliceIndex::get_mut @@ -286,50 +286,50 @@ where fn index = core::slice::index::{impl core::ops::index::Index for Slice}::index } -impl core::slice::index::private_slice_index::{impl core::slice::index::private_slice_index::Sealed for core::ops::range::Range>}#1 : core::slice::index::private_slice_index::Sealed>> +impl core::slice::index::private_slice_index::{impl core::slice::index::private_slice_index::Sealed for core::ops::range::Range[core::marker::Sized]}#1 : core::slice::index::private_slice_index::Sealed[core::marker::Sized]> -fn core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::Range>}#4::get<'_0, T>(@1: core::ops::range::Range>, @2: &'_0 (Slice)) -> core::option::Option<&'_0 (Slice), core::marker::Sized<&'_1_0 (Slice)>> +fn core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::Range[core::marker::Sized]}#4::get<'_0, T>(@1: core::ops::range::Range[core::marker::Sized], @2: &'_0 (Slice)) -> core::option::Option<&'_0 (Slice)>[core::marker::Sized<&'_1_0 (Slice)>] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -fn core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::Range>}#4::get_mut<'_0, T>(@1: core::ops::range::Range>, @2: &'_0 mut (Slice)) -> core::option::Option<&'_0 mut (Slice), core::marker::Sized<&'_1_0 mut (Slice)>> +fn core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::Range[core::marker::Sized]}#4::get_mut<'_0, T>(@1: core::ops::range::Range[core::marker::Sized], @2: &'_0 mut (Slice)) -> core::option::Option<&'_0 mut (Slice)>[core::marker::Sized<&'_1_0 mut (Slice)>] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -unsafe fn core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::Range>}#4::get_unchecked(@1: core::ops::range::Range>, @2: *const Slice) -> *const Slice +unsafe fn core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::Range[core::marker::Sized]}#4::get_unchecked(@1: core::ops::range::Range[core::marker::Sized], @2: *const Slice) -> *const Slice where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -unsafe fn core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::Range>}#4::get_unchecked_mut(@1: core::ops::range::Range>, @2: *mut Slice) -> *mut Slice +unsafe fn core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::Range[core::marker::Sized]}#4::get_unchecked_mut(@1: core::ops::range::Range[core::marker::Sized], @2: *mut Slice) -> *mut Slice where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -fn core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::Range>}#4::index<'_0, T>(@1: core::ops::range::Range>, @2: &'_0 (Slice)) -> &'_0 (Slice) +fn core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::Range[core::marker::Sized]}#4::index<'_0, T>(@1: core::ops::range::Range[core::marker::Sized], @2: &'_0 (Slice)) -> &'_0 (Slice) where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -fn core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::Range>}#4::index_mut<'_0, T>(@1: core::ops::range::Range>, @2: &'_0 mut (Slice)) -> &'_0 mut (Slice) +fn core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::Range[core::marker::Sized]}#4::index_mut<'_0, T>(@1: core::ops::range::Range[core::marker::Sized], @2: &'_0 mut (Slice)) -> &'_0 mut (Slice) where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -impl core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::Range>}#4 : core::slice::index::SliceIndex>, Slice> +impl core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::Range[core::marker::Sized]}#4 : core::slice::index::SliceIndex[core::marker::Sized], Slice> where [@TraitClause0]: core::marker::Sized, { - parent_clause0 = core::slice::index::private_slice_index::{impl core::slice::index::private_slice_index::Sealed for core::ops::range::Range>}#1 + parent_clause0 = core::slice::index::private_slice_index::{impl core::slice::index::private_slice_index::Sealed for core::ops::range::Range[core::marker::Sized]}#1 type Output = Slice - fn get = core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::Range>}#4::get - fn get_mut = core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::Range>}#4::get_mut - fn get_unchecked = core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::Range>}#4::get_unchecked - fn get_unchecked_mut = core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::Range>}#4::get_unchecked_mut - fn index = core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::Range>}#4::index - fn index_mut = core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::Range>}#4::index_mut + fn get = core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::Range[core::marker::Sized]}#4::get + fn get_mut = core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::Range[core::marker::Sized]}#4::get_mut + fn get_unchecked = core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::Range[core::marker::Sized]}#4::get_unchecked + fn get_unchecked_mut = core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::Range[core::marker::Sized]}#4::get_unchecked_mut + fn index = core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::Range[core::marker::Sized]}#4::index + fn index_mut = core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::Range[core::marker::Sized]}#4::index_mut } fn core::ops::index::Index::index<'_0, Self, Idx>(@1: &'_0 (Self), @2: Idx) -> &'_0 (Self::Output) @@ -343,7 +343,7 @@ fn test_crate::slice_subslice_shared_<'_0>(@1: &'_0 (Slice), @2: usize, @3: let @4: &'_ (Slice); // anonymous local let @5: &'_ (Slice); // anonymous local let @6: &'_ (Slice); // anonymous local - let @7: core::ops::range::Range>; // anonymous local + let @7: core::ops::range::Range[core::marker::Sized]; // anonymous local let @8: usize; // anonymous local let @9: usize; // anonymous local @@ -353,7 +353,7 @@ fn test_crate::slice_subslice_shared_<'_0>(@1: &'_0 (Slice), @2: usize, @3: @7 := core::ops::range::Range { start: move (@8), end: move (@9) } drop @9 drop @8 - @5 := core::slice::index::{impl core::ops::index::Index for Slice}>>[core::marker::Sized, core::marker::Sized>>, core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::Range>}#4[core::marker::Sized]]::index(move (@6), move (@7)) + @5 := core::slice::index::{impl core::ops::index::Index for Slice}[core::marker::Sized]>[core::marker::Sized, core::marker::Sized[core::marker::Sized]>, core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::Range[core::marker::Sized]}#4[core::marker::Sized]]::index(move (@6), move (@7)) drop @7 drop @6 @4 := &*(@5) @@ -365,7 +365,7 @@ fn test_crate::slice_subslice_shared_<'_0>(@1: &'_0 (Slice), @2: usize, @3: trait core::ops::index::IndexMut { - parent_clause_0 : [@TraitClause0]: core::ops::index::Index + parent_clause0 : [@TraitClause0]: core::ops::index::Index fn index_mut : core::ops::index::IndexMut::index_mut } @@ -386,7 +386,7 @@ where fn index_mut = core::slice::index::{impl core::ops::index::IndexMut for Slice}#1::index_mut } -fn core::ops::index::IndexMut::index_mut<'_0, Self, Idx>(@1: &'_0 mut (Self), @2: Idx) -> &'_0 mut ((parents(Self)::[@TraitClause0])::Output) +fn core::ops::index::IndexMut::index_mut<'_0, Self, Idx>(@1: &'_0 mut (Self), @2: Idx) -> &'_0 mut (Self::parent_clause0::Output) fn test_crate::slice_subslice_mut_<'_0>(@1: &'_0 mut (Slice), @2: usize, @3: usize) -> &'_0 mut (Slice) { @@ -398,7 +398,7 @@ fn test_crate::slice_subslice_mut_<'_0>(@1: &'_0 mut (Slice), @2: usize, @3 let @5: &'_ mut (Slice); // anonymous local let @6: &'_ mut (Slice); // anonymous local let @7: &'_ mut (Slice); // anonymous local - let @8: core::ops::range::Range>; // anonymous local + let @8: core::ops::range::Range[core::marker::Sized]; // anonymous local let @9: usize; // anonymous local let @10: usize; // anonymous local @@ -408,7 +408,7 @@ fn test_crate::slice_subslice_mut_<'_0>(@1: &'_0 mut (Slice), @2: usize, @3 @8 := core::ops::range::Range { start: move (@9), end: move (@10) } drop @10 drop @9 - @6 := core::slice::index::{impl core::ops::index::IndexMut for Slice}#1>>[core::marker::Sized, core::marker::Sized>>, core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::Range>}#4[core::marker::Sized]]::index_mut(move (@7), move (@8)) + @6 := core::slice::index::{impl core::ops::index::IndexMut for Slice}#1[core::marker::Sized]>[core::marker::Sized, core::marker::Sized[core::marker::Sized]>, core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::Range[core::marker::Sized]}#4[core::marker::Sized]]::index_mut(move (@7), move (@8)) drop @8 drop @7 @5 := &mut *(@6) @@ -473,7 +473,7 @@ fn test_crate::array_subslice_shared_<'_0>(@1: &'_0 (Array), @2 let @4: &'_ (Slice); // anonymous local let @5: &'_ (Slice); // anonymous local let @6: &'_ (Array); // anonymous local - let @7: core::ops::range::Range>; // anonymous local + let @7: core::ops::range::Range[core::marker::Sized]; // anonymous local let @8: usize; // anonymous local let @9: usize; // anonymous local @@ -483,7 +483,7 @@ fn test_crate::array_subslice_shared_<'_0>(@1: &'_0 (Array), @2 @7 := core::ops::range::Range { start: move (@8), end: move (@9) } drop @9 drop @8 - @5 := core::array::{impl core::ops::index::Index for Array}#15>, 32 : usize>[core::marker::Sized, core::marker::Sized>>, core::slice::index::{impl core::ops::index::Index for Slice}>>[core::marker::Sized, core::marker::Sized>>, core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::Range>}#4[core::marker::Sized]]]::index(move (@6), move (@7)) + @5 := core::array::{impl core::ops::index::Index for Array}#15[core::marker::Sized], 32 : usize>[core::marker::Sized, core::marker::Sized[core::marker::Sized]>, core::slice::index::{impl core::ops::index::Index for Slice}[core::marker::Sized]>[core::marker::Sized, core::marker::Sized[core::marker::Sized]>, core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::Range[core::marker::Sized]}#4[core::marker::Sized]]]::index(move (@6), move (@7)) drop @7 drop @6 @4 := &*(@5) @@ -493,7 +493,7 @@ fn test_crate::array_subslice_shared_<'_0>(@1: &'_0 (Array), @2 return } -fn core::array::{impl core::ops::index::IndexMut for Array}#16::index_mut<'_0, T, I, const N : usize>(@1: &'_0 mut (Array), @2: I) -> &'_0 mut (core::array::{impl core::ops::index::Index for Array}#15[@TraitClause0, @TraitClause1, (parents(@TraitClause2)::[@TraitClause0])]::Output) +fn core::array::{impl core::ops::index::IndexMut for Array}#16::index_mut<'_0, T, I, const N : usize>(@1: &'_0 mut (Array), @2: I) -> &'_0 mut (core::array::{impl core::ops::index::Index for Array}#15[@TraitClause0, @TraitClause1, @TraitClause2::parent_clause0]::Output) where // Inherited clauses: [@TraitClause0]: core::marker::Sized, @@ -506,7 +506,7 @@ where [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::ops::index::IndexMut, I>, { - parent_clause0 = core::array::{impl core::ops::index::Index for Array}#15[@TraitClause0, @TraitClause1, (parents(@TraitClause2)::[@TraitClause0])] + parent_clause0 = core::array::{impl core::ops::index::Index for Array}#15[@TraitClause0, @TraitClause1, @TraitClause2::parent_clause0] fn index_mut = core::array::{impl core::ops::index::IndexMut for Array}#16::index_mut } @@ -520,7 +520,7 @@ fn test_crate::array_subslice_mut_<'_0>(@1: &'_0 mut (Array), @ let @5: &'_ mut (Slice); // anonymous local let @6: &'_ mut (Slice); // anonymous local let @7: &'_ mut (Array); // anonymous local - let @8: core::ops::range::Range>; // anonymous local + let @8: core::ops::range::Range[core::marker::Sized]; // anonymous local let @9: usize; // anonymous local let @10: usize; // anonymous local @@ -530,7 +530,7 @@ fn test_crate::array_subslice_mut_<'_0>(@1: &'_0 mut (Array), @ @8 := core::ops::range::Range { start: move (@9), end: move (@10) } drop @10 drop @9 - @6 := core::array::{impl core::ops::index::IndexMut for Array}#16>, 32 : usize>[core::marker::Sized, core::marker::Sized>>, core::slice::index::{impl core::ops::index::IndexMut for Slice}#1>>[core::marker::Sized, core::marker::Sized>>, core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::Range>}#4[core::marker::Sized]]]::index_mut(move (@7), move (@8)) + @6 := core::array::{impl core::ops::index::IndexMut for Array}#16[core::marker::Sized], 32 : usize>[core::marker::Sized, core::marker::Sized[core::marker::Sized]>, core::slice::index::{impl core::ops::index::IndexMut for Slice}#1[core::marker::Sized]>[core::marker::Sized, core::marker::Sized[core::marker::Sized]>, core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::Range[core::marker::Sized]}#4[core::marker::Sized]]]::index_mut(move (@7), move (@8)) drop @8 drop @7 @5 := &mut *(@6) @@ -1069,7 +1069,7 @@ fn test_crate::range_all() let @4: &'_ mut (Slice); // anonymous local let @5: &'_ mut (Slice); // anonymous local let @6: &'_ mut (Array); // anonymous local - let @7: core::ops::range::Range>; // anonymous local + let @7: core::ops::range::Range[core::marker::Sized]; // anonymous local let @8: (); // anonymous local x@1 := [const (0 : u32), const (0 : u32), const (0 : u32), const (0 : u32); 4 : usize] @@ -1077,7 +1077,7 @@ fn test_crate::range_all() // CONFIRM: there is no way to shrink [T;N] into [T;M] with M for Array}#16>, 4 : usize>[core::marker::Sized, core::marker::Sized>>, core::slice::index::{impl core::ops::index::IndexMut for Slice}#1>>[core::marker::Sized, core::marker::Sized>>, core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::Range>}#4[core::marker::Sized]]]::index_mut(move (@6), move (@7)) + @5 := core::array::{impl core::ops::index::IndexMut for Array}#16[core::marker::Sized], 4 : usize>[core::marker::Sized, core::marker::Sized[core::marker::Sized]>, core::slice::index::{impl core::ops::index::IndexMut for Slice}#1[core::marker::Sized]>[core::marker::Sized, core::marker::Sized[core::marker::Sized]>, core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::Range[core::marker::Sized]}#4[core::marker::Sized]]]::index_mut(move (@6), move (@7)) drop @7 drop @6 @4 := &mut *(@5) @@ -1420,7 +1420,7 @@ fn test_crate::f4<'_0>(@1: &'_0 (Array), @2: usize, @3: usize) let @4: &'_ (Slice); // anonymous local let @5: &'_ (Slice); // anonymous local let @6: &'_ (Array); // anonymous local - let @7: core::ops::range::Range>; // anonymous local + let @7: core::ops::range::Range[core::marker::Sized]; // anonymous local let @8: usize; // anonymous local let @9: usize; // anonymous local @@ -1430,7 +1430,7 @@ fn test_crate::f4<'_0>(@1: &'_0 (Array), @2: usize, @3: usize) @7 := core::ops::range::Range { start: move (@8), end: move (@9) } drop @9 drop @8 - @5 := core::array::{impl core::ops::index::Index for Array}#15>, 32 : usize>[core::marker::Sized, core::marker::Sized>>, core::slice::index::{impl core::ops::index::Index for Slice}>>[core::marker::Sized, core::marker::Sized>>, core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::Range>}#4[core::marker::Sized]]]::index(move (@6), move (@7)) + @5 := core::array::{impl core::ops::index::Index for Array}#15[core::marker::Sized], 32 : usize>[core::marker::Sized, core::marker::Sized[core::marker::Sized]>, core::slice::index::{impl core::ops::index::Index for Slice}[core::marker::Sized]>[core::marker::Sized, core::marker::Sized[core::marker::Sized]>, core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::Range[core::marker::Sized]}#4[core::marker::Sized]]]::index(move (@6), move (@7)) drop @7 drop @6 @4 := &*(@5) @@ -1842,9 +1842,9 @@ fn test_crate::slice_pattern_4<'_0>(@1: &'_0 (Slice<()>)) return } -fn core::slice::index::SliceIndex::get<'_0, Self, T>(@1: Self, @2: &'_0 (T)) -> core::option::Option<&'_0 (Self::Output), core::marker::Sized<&'_1_0 (Self::Output)>> +fn core::slice::index::SliceIndex::get<'_0, Self, T>(@1: Self, @2: &'_0 (T)) -> core::option::Option<&'_0 (Self::Output)>[core::marker::Sized<&'_1_0 (Self::Output)>] -fn core::slice::index::SliceIndex::get_mut<'_0, Self, T>(@1: Self, @2: &'_0 mut (T)) -> core::option::Option<&'_0 mut (Self::Output), core::marker::Sized<&'_1_0 mut (Self::Output)>> +fn core::slice::index::SliceIndex::get_mut<'_0, Self, T>(@1: Self, @2: &'_0 mut (T)) -> core::option::Option<&'_0 mut (Self::Output)>[core::marker::Sized<&'_1_0 mut (Self::Output)>] unsafe fn core::slice::index::SliceIndex::get_unchecked(@1: Self, @2: *const T) -> *const Self::Output diff --git a/charon/tests/ui/assoc-const-with-generics.out b/charon/tests/ui/assoc-const-with-generics.out index 769af771..39b7ff29 100644 --- a/charon/tests/ui/assoc-const-with-generics.out +++ b/charon/tests/ui/assoc-const-with-generics.out @@ -10,7 +10,7 @@ struct test_crate::V x: Array, } -global test_crate::{test_crate::V}::LEN +global test_crate::{test_crate::V[@TraitClause0]}::LEN where [@TraitClause0]: core::marker::Sized, { diff --git a/charon/tests/ui/associated-types.out b/charon/tests/ui/associated-types.out index f8bb2416..f24d0b2e 100644 --- a/charon/tests/ui/associated-types.out +++ b/charon/tests/ui/associated-types.out @@ -4,23 +4,23 @@ trait core::marker::Sized trait core::clone::Clone { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized fn clone : core::clone::Clone::clone fn clone_from : core::clone::Clone::clone_from } trait core::marker::Copy { - parent_clause_0 : [@TraitClause0]: core::clone::Clone + parent_clause0 : [@TraitClause0]: core::clone::Clone } trait test_crate::Foo<'a, Self> where Self::Item : 'a, { - parent_clause_0 : [@TraitClause0]: core::marker::Copy - parent_clause_1 : [@TraitClause1]: core::clone::Clone - parent_clause_2 : [@TraitClause2]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Copy + parent_clause1 : [@TraitClause1]: core::clone::Clone + parent_clause2 : [@TraitClause2]: core::marker::Sized type Item fn use_item : test_crate::Foo::use_item } @@ -46,26 +46,26 @@ enum core::option::Option | Some(T) -fn core::option::{impl core::clone::Clone for core::option::Option}#5::clone<'_0, T>(@1: &'_0 (core::option::Option)) -> core::option::Option +fn core::option::{impl core::clone::Clone for core::option::Option[@TraitClause0]}#5::clone<'_0, T>(@1: &'_0 (core::option::Option[@TraitClause0])) -> core::option::Option[@TraitClause0] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::clone::Clone, -fn core::option::{impl core::clone::Clone for core::option::Option}#5::clone_from<'_0, '_1, T>(@1: &'_0 mut (core::option::Option), @2: &'_1 (core::option::Option)) +fn core::option::{impl core::clone::Clone for core::option::Option[@TraitClause0]}#5::clone_from<'_0, '_1, T>(@1: &'_0 mut (core::option::Option[@TraitClause0]), @2: &'_1 (core::option::Option[@TraitClause0])) where // Inherited clauses: [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::clone::Clone, -impl core::option::{impl core::clone::Clone for core::option::Option}#5 : core::clone::Clone> +impl core::option::{impl core::clone::Clone for core::option::Option[@TraitClause0]}#5 : core::clone::Clone[@TraitClause0]> where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::clone::Clone, { - parent_clause0 = core::marker::Sized> - fn clone = core::option::{impl core::clone::Clone for core::option::Option}#5::clone - fn clone_from = core::option::{impl core::clone::Clone for core::option::Option}#5::clone_from + parent_clause0 = core::marker::Sized[@TraitClause0]> + fn clone = core::option::{impl core::clone::Clone for core::option::Option[@TraitClause0]}#5::clone + fn clone_from = core::option::{impl core::clone::Clone for core::option::Option[@TraitClause0]}#5::clone_from } impl<'a, T> test_crate::{impl test_crate::Foo<'a> for &'a (T)}<'a, T> : test_crate::Foo<'a, &'a (T)> @@ -73,9 +73,9 @@ where [@TraitClause0]: core::marker::Sized, { parent_clause0 = core::marker::{impl core::marker::Copy for &'_0 (T)}#4<'_, T> - parent_clause1 = core::option::{impl core::clone::Clone for core::option::Option}#5<&'_ (T)>[core::marker::Sized<&'_ (T)>, core::clone::impls::{impl core::clone::Clone for &'_0 (T)}#3<'_, T>] - parent_clause2 = core::marker::Sized>> - type Item = core::option::Option<&'a (T), core::marker::Sized<&'_ (T)>> + parent_clause1 = core::option::{impl core::clone::Clone for core::option::Option[@TraitClause0]}#5<&'_ (T)>[core::marker::Sized<&'_ (T)>, core::clone::impls::{impl core::clone::Clone for &'_0 (T)}#3<'_, T>] + parent_clause2 = core::marker::Sized[core::marker::Sized<&'_ (T)>]> + type Item = core::option::Option<&'a (T)>[core::marker::Sized<&'_ (T)>] } fn core::clone::Clone::clone<'_0, Self>(@1: &'_0 (Self)) -> Self @@ -90,7 +90,7 @@ where let @2: &'_ (@TraitClause1::Item); // anonymous local @2 := &x@1 - @0 := (parents(@TraitClause1)::[@TraitClause1])::clone(move (@2)) + @0 := @TraitClause1::parent_clause1::clone(move (@2)) drop @2 drop x@1 return @@ -99,8 +99,8 @@ where fn test_crate::call_fn() { let @0: (); // return - let @1: core::option::Option<&'_ (bool), core::marker::Sized<&'_ (bool)>>; // anonymous local - let @2: core::option::Option<&'_ (bool), core::marker::Sized<&'_ (bool)>>; // anonymous local + let @1: core::option::Option<&'_ (bool)>[core::marker::Sized<&'_ (bool)>]; // anonymous local + let @2: core::option::Option<&'_ (bool)>[core::marker::Sized<&'_ (bool)>]; // anonymous local let @3: (); // anonymous local @2 := core::option::Option::None { } @@ -132,7 +132,7 @@ where trait test_crate::loopy::Bar { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized type BarTy } @@ -144,9 +144,9 @@ impl test_crate::loopy::{impl test_crate::loopy::Bar for ()} : test_crate::loopy trait test_crate::loopy::Foo { - parent_clause_0 : [@TraitClause0]: test_crate::loopy::Bar - parent_clause_1 : [@TraitClause1]: test_crate::loopy::Foo - parent_clause_2 : [@TraitClause2]: core::marker::Sized + parent_clause0 : [@TraitClause0]: test_crate::loopy::Bar + parent_clause1 : [@TraitClause1]: test_crate::loopy::Foo + parent_clause2 : [@TraitClause2]: core::marker::Sized type FooTy } @@ -160,10 +160,10 @@ impl test_crate::loopy::{impl test_crate::loopy::Foo for ()}#1 : test_crate::loo trait test_crate::loopy::Baz { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: test_crate::loopy::Baz - parent_clause_2 : [@TraitClause2]: test_crate::loopy::Bar - parent_clause_3 : [@TraitClause3]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: test_crate::loopy::Baz + parent_clause2 : [@TraitClause2]: test_crate::loopy::Bar + parent_clause3 : [@TraitClause3]: core::marker::Sized type BazTy } @@ -183,8 +183,8 @@ trait core::borrow::Borrow trait alloc::borrow::ToOwned { - parent_clause_0 : [@TraitClause0]: core::borrow::Borrow - parent_clause_1 : [@TraitClause1]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::borrow::Borrow + parent_clause1 : [@TraitClause1]: core::marker::Sized type Owned fn to_owned : alloc::borrow::ToOwned::to_owned fn clone_into : alloc::borrow::ToOwned::clone_into @@ -202,22 +202,22 @@ enum test_crate::cow::Cow<'a, B> trait test_crate::params::Foo<'a, Self, T> { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::marker::Sized - parent_clause_2 : [@TraitClause2]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::marker::Sized + parent_clause2 : [@TraitClause2]: core::marker::Sized type X type Item } -impl<'a, T> test_crate::params::{impl test_crate::params::Foo<'a, core::option::Option> for ()}<'a, T> : test_crate::params::Foo<'a, (), core::option::Option> +impl<'a, T> test_crate::params::{impl test_crate::params::Foo<'a, core::option::Option[@TraitClause0]> for ()}<'a, T> : test_crate::params::Foo<'a, (), core::option::Option[@TraitClause0]> where [@TraitClause0]: core::marker::Sized, { - parent_clause0 = core::marker::Sized> + parent_clause0 = core::marker::Sized[@TraitClause0]> parent_clause1 = core::marker::Sized<&'_ (())> - parent_clause2 = core::marker::Sized<&'_ ((core::option::Option, &'_ (())))> + parent_clause2 = core::marker::Sized<&'_ ((core::option::Option[@TraitClause0], &'_ (())))> type X = &'a (()) - type Item = &'a ((core::option::Option, test_crate::params::{impl test_crate::params::Foo<'a, core::option::Option> for ()}<'_, T>[@TraitClause0]::X)) + type Item = &'a ((core::option::Option[@TraitClause0], test_crate::params::{impl test_crate::params::Foo<'a, core::option::Option[@TraitClause0]> for ()}<'_, T>[@TraitClause0]::X)) } fn test_crate::Foo::use_item<'a, '_1, Self>(@1: &'_1 (Self::Item)) -> &'_1 (Self::Item) diff --git a/charon/tests/ui/closures.out b/charon/tests/ui/closures.out index b46aefe8..22200a7b 100644 --- a/charon/tests/ui/closures.out +++ b/charon/tests/ui/closures.out @@ -18,26 +18,26 @@ trait core::marker::Tuple trait core::ops::function::FnOnce { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::marker::Tuple - parent_clause_2 : [@TraitClause2]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::marker::Tuple + parent_clause2 : [@TraitClause2]: core::marker::Sized type Output fn call_once : core::ops::function::FnOnce::call_once } trait core::ops::function::FnMut { - parent_clause_0 : [@TraitClause0]: core::ops::function::FnOnce - parent_clause_1 : [@TraitClause1]: core::marker::Sized - parent_clause_2 : [@TraitClause2]: core::marker::Tuple + parent_clause0 : [@TraitClause0]: core::ops::function::FnOnce + parent_clause1 : [@TraitClause1]: core::marker::Sized + parent_clause2 : [@TraitClause2]: core::marker::Tuple fn call_mut : core::ops::function::FnMut::call_mut } trait core::ops::function::Fn { - parent_clause_0 : [@TraitClause0]: core::ops::function::FnMut - parent_clause_1 : [@TraitClause1]: core::marker::Sized - parent_clause_2 : [@TraitClause2]: core::marker::Tuple + parent_clause0 : [@TraitClause0]: core::ops::function::FnMut + parent_clause1 : [@TraitClause1]: core::marker::Sized + parent_clause2 : [@TraitClause2]: core::marker::Tuple fn call : core::ops::function::Fn::call } @@ -49,17 +49,17 @@ enum core::option::Option | Some(T) -fn core::ops::function::Fn::call<'_0, Self, Args>(@1: &'_0 (Self), @2: Args) -> (parents((parents(Self)::[@TraitClause0]))::[@TraitClause0])::Output +fn core::ops::function::Fn::call<'_0, Self, Args>(@1: &'_0 (Self), @2: Args) -> Self::parent_clause0::parent_clause0::Output -fn test_crate::map_option(@1: core::option::Option, @2: F) -> core::option::Option +fn test_crate::map_option(@1: core::option::Option[@TraitClause0], @2: F) -> core::option::Option[@TraitClause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::ops::function::Fn, - (parents((parents(@TraitClause2)::[@TraitClause0]))::[@TraitClause0])::Output = T, + @TraitClause2::parent_clause0::parent_clause0::Output = T, { - let @0: core::option::Option; // return - let x@1: core::option::Option; // arg #1 + let @0: core::option::Option[@TraitClause0]; // return + let x@1: core::option::Option[@TraitClause0]; // arg #1 let f@2: F; // arg #2 let x@3: T; // local let @4: T; // anonymous local @@ -94,13 +94,13 @@ where return } -fn test_crate::map_option_pointer_ref<'a, T, F>(@1: &'a (core::option::Option), @2: fn<'_1_0>(&'_1_0 (T)) -> T) -> core::option::Option +fn test_crate::map_option_pointer_ref<'a, T, F>(@1: &'a (core::option::Option[@TraitClause0]), @2: fn<'_1_0>(&'_1_0 (T)) -> T) -> core::option::Option[@TraitClause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, { - let @0: core::option::Option; // return - let x@1: &'_ (core::option::Option); // arg #1 + let @0: core::option::Option[@TraitClause0]; // return + let x@1: &'_ (core::option::Option[@TraitClause0]); // arg #1 let f@2: fn<'_1_0>(&'_1_0 (T)) -> T; // arg #2 let x@3: &'_ (T); // local let @4: T; // anonymous local @@ -128,11 +128,11 @@ where return } -fn test_crate::test_map_option1(@1: core::option::Option>) -> core::option::Option> +fn test_crate::test_map_option1(@1: core::option::Option[core::marker::Sized]) -> core::option::Option[core::marker::Sized] { - let @0: core::option::Option>; // return - let x@1: core::option::Option>; // arg #1 - let @2: core::option::Option>; // anonymous local + let @0: core::option::Option[core::marker::Sized]; // return + let x@1: core::option::Option[core::marker::Sized]; // arg #1 + let @2: core::option::Option[core::marker::Sized]; // anonymous local @2 := copy (x@1) @0 := test_crate::map_option u32>[core::marker::Sized, core::marker::Sized u32>, core::ops::function::Fn u32, (u32)>](move (@2), const (test_crate::incr_u32)) @@ -302,13 +302,13 @@ fn test_crate::test_map_option2::closure<'_0>(@1: &'_0 (()), @2: (u32)) -> u32 return } -fn test_crate::test_map_option2(@1: core::option::Option>) -> core::option::Option> +fn test_crate::test_map_option2(@1: core::option::Option[core::marker::Sized]) -> core::option::Option[core::marker::Sized] { - let @0: core::option::Option>; // return - let x@1: core::option::Option>; // arg #1 + let @0: core::option::Option[core::marker::Sized]; // return + let x@1: core::option::Option[core::marker::Sized]; // arg #1 let f@2: fn(u32) -> u32; // local let @3: fn(u32) -> u32; // anonymous local - let @4: core::option::Option>; // anonymous local + let @4: core::option::Option[core::marker::Sized]; // anonymous local let @5: fn(u32) -> u32; // anonymous local @3 := {test_crate::test_map_option2::closure} {} @@ -336,11 +336,11 @@ where return } -fn test_crate::test_map_option_id1(@1: core::option::Option>) -> core::option::Option> +fn test_crate::test_map_option_id1(@1: core::option::Option[core::marker::Sized]) -> core::option::Option[core::marker::Sized] { - let @0: core::option::Option>; // return - let x@1: core::option::Option>; // arg #1 - let @2: core::option::Option>; // anonymous local + let @0: core::option::Option[core::marker::Sized]; // return + let x@1: core::option::Option[core::marker::Sized]; // arg #1 + let @2: core::option::Option[core::marker::Sized]; // anonymous local @2 := copy (x@1) @0 := test_crate::map_option u32>[core::marker::Sized, core::marker::Sized u32>, core::ops::function::Fn u32, (u32)>](move (@2), const (test_crate::id[core::marker::Sized])) @@ -348,12 +348,12 @@ fn test_crate::test_map_option_id1(@1: core::option::Option>) -> core::option::Option> +fn test_crate::test_map_option_id2(@1: core::option::Option[core::marker::Sized]) -> core::option::Option[core::marker::Sized] { - let @0: core::option::Option>; // return - let x@1: core::option::Option>; // arg #1 + let @0: core::option::Option[core::marker::Sized]; // return + let x@1: core::option::Option[core::marker::Sized]; // arg #1 let f@2: fn(u32) -> u32; // local - let @3: core::option::Option>; // anonymous local + let @3: core::option::Option[core::marker::Sized]; // anonymous local let @4: fn(u32) -> u32; // anonymous local f@2 := const (test_crate::id[core::marker::Sized]) @@ -369,7 +369,7 @@ fn test_crate::test_map_option_id2(@1: core::option::Option { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized fn clone : core::clone::Clone::clone fn clone_from : core::clone::Clone::clone_from } @@ -442,11 +442,11 @@ where return } -fn test_crate::test_map_option_id_clone(@1: core::option::Option>) -> core::option::Option> +fn test_crate::test_map_option_id_clone(@1: core::option::Option[core::marker::Sized]) -> core::option::Option[core::marker::Sized] { - let @0: core::option::Option>; // return - let x@1: core::option::Option>; // arg #1 - let @2: core::option::Option>; // anonymous local + let @0: core::option::Option[core::marker::Sized]; // return + let x@1: core::option::Option[core::marker::Sized]; // arg #1 + let @2: core::option::Option[core::marker::Sized]; // anonymous local @2 := copy (x@1) @0 := test_crate::map_option u32>[core::marker::Sized, core::marker::Sized u32>, core::ops::function::Fn u32, (u32)>](move (@2), const (test_crate::id_clone[core::marker::Sized, core::clone::impls::{impl core::clone::Clone for u32}#8])) @@ -467,11 +467,11 @@ fn test_crate::test_map_option3::closure<'_0>(@1: &'_0 (()), @2: (u32)) -> u32 return } -fn test_crate::test_map_option3(@1: core::option::Option>) -> core::option::Option> +fn test_crate::test_map_option3(@1: core::option::Option[core::marker::Sized]) -> core::option::Option[core::marker::Sized] { - let @0: core::option::Option>; // return - let x@1: core::option::Option>; // arg #1 - let @2: core::option::Option>; // anonymous local + let @0: core::option::Option[core::marker::Sized]; // return + let x@1: core::option::Option[core::marker::Sized]; // arg #1 + let @2: core::option::Option[core::marker::Sized]; // anonymous local let @3: fn(u32) -> u32; // anonymous local @2 := copy (x@1) @@ -633,7 +633,7 @@ where [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = U, + @TraitClause3::parent_clause0::Output = U, fn test_crate::test_array_map(@1: Array) -> Array { @@ -659,7 +659,7 @@ struct test_crate::Foo<'a, T> &'a (T), } -fn test_crate::{test_crate::Foo<'a, T, @TraitClause0>}::test_nested_closures::closure::closure::closure<'a, '_1, '_2, T>(@1: &'_1 ((&'_2 (T))), @2: ()) -> T +fn test_crate::{test_crate::Foo<'a, T>[@TraitClause0]}::test_nested_closures::closure::closure::closure<'a, '_1, '_2, T>(@1: &'_1 ((&'_2 (T))), @2: ()) -> T where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::clone::Clone, @@ -674,7 +674,7 @@ where return } -fn test_crate::{test_crate::Foo<'a, T, @TraitClause0>}::test_nested_closures::closure::closure<'a, '_1, '_2, T>(@1: &'_1 ((&'_2 (T))), @2: ()) -> fn() -> T +fn test_crate::{test_crate::Foo<'a, T>[@TraitClause0]}::test_nested_closures::closure::closure<'a, '_1, '_2, T>(@1: &'_1 ((&'_2 (T))), @2: ()) -> fn() -> T where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::clone::Clone, @@ -684,12 +684,12 @@ where let @2: &'_ (T); // arg #2 @2 := &*((*(state@1)).0) - @0 := {test_crate::{test_crate::Foo<'a, T, @TraitClause0>}::test_nested_closures::closure::closure::closure<'_, T>} {move (@2)} + @0 := {test_crate::{test_crate::Foo<'a, T>[@TraitClause0]}::test_nested_closures::closure::closure::closure<'_, T>} {move (@2)} drop @2 return } -fn test_crate::{test_crate::Foo<'a, T, @TraitClause0>}::test_nested_closures::closure<'a, '_1, '_2, T>(@1: &'_1 ((&'_2 (T))), @2: ()) -> fn() -> fn() -> T +fn test_crate::{test_crate::Foo<'a, T>[@TraitClause0]}::test_nested_closures::closure<'a, '_1, '_2, T>(@1: &'_1 ((&'_2 (T))), @2: ()) -> fn() -> fn() -> T where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::clone::Clone, @@ -699,12 +699,12 @@ where let @2: &'_ (T); // arg #2 @2 := &*((*(state@1)).0) - @0 := {test_crate::{test_crate::Foo<'a, T, @TraitClause0>}::test_nested_closures::closure::closure<'_, T>} {move (@2)} + @0 := {test_crate::{test_crate::Foo<'a, T>[@TraitClause0]}::test_nested_closures::closure::closure<'_, T>} {move (@2)} drop @2 return } -fn test_crate::{test_crate::Foo<'a, T, @TraitClause0>}::test_nested_closures<'a, 'b, T>(@1: &'a (&'b (T))) -> T +fn test_crate::{test_crate::Foo<'a, T>[@TraitClause0]}::test_nested_closures<'a, 'b, T>(@1: &'a (&'b (T))) -> T where // Inherited clauses: [@TraitClause0]: core::marker::Sized, @@ -724,7 +724,7 @@ where let @11: (); // anonymous local @3 := &*(*(x@1)) - clo@2 := {test_crate::{test_crate::Foo<'a, T, @TraitClause0>}::test_nested_closures::closure<'_, T>} {move (@3)} + clo@2 := {test_crate::{test_crate::Foo<'a, T>[@TraitClause0]}::test_nested_closures::closure<'_, T>} {move (@3)} drop @3 @fake_read(clo@2) @8 := &clo@2 @@ -776,7 +776,7 @@ global test_crate::BLAH { fn core::clone::Clone::clone_from<'_0, '_1, Self>(@1: &'_0 mut (Self), @2: &'_1 (Self)) -fn core::ops::function::FnMut::call_mut<'_0, Self, Args>(@1: &'_0 mut (Self), @2: Args) -> (parents(Self)::[@TraitClause0])::Output +fn core::ops::function::FnMut::call_mut<'_0, Self, Args>(@1: &'_0 mut (Self), @2: Args) -> Self::parent_clause0::Output fn core::ops::function::FnOnce::call_once(@1: Self, @2: Args) -> Self::Output diff --git a/charon/tests/ui/comments.out b/charon/tests/ui/comments.out index 49b47674..bd992977 100644 --- a/charon/tests/ui/comments.out +++ b/charon/tests/ui/comments.out @@ -141,7 +141,7 @@ struct test_crate::Foo = trait core::default::Default { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized fn default : core::default::Default::default } @@ -269,7 +269,7 @@ fn test_crate::foo() let @30: &'_ (u32); // anonymous local let @31: &'_ (u32); // anonymous local let @32: &'_ (u32); // anonymous local - let @33: core::option::Option, core::marker::Sized>>; // anonymous local + let @33: core::option::Option>[core::marker::Sized>]; // anonymous local let @34: (); // anonymous local let @35: (); // anonymous local let @36: &'_ (Array); // anonymous local diff --git a/charon/tests/ui/constants.out b/charon/tests/ui/constants.out index 4a5aa947..2c744730 100644 --- a/charon/tests/ui/constants.out +++ b/charon/tests/ui/constants.out @@ -76,9 +76,9 @@ struct test_crate::Pair y: T2, } -fn test_crate::mk_pair1(@1: u32, @2: u32) -> test_crate::Pair, core::marker::Sized> +fn test_crate::mk_pair1(@1: u32, @2: u32) -> test_crate::Pair[core::marker::Sized, core::marker::Sized] { - let @0: test_crate::Pair, core::marker::Sized>; // return + let @0: test_crate::Pair[core::marker::Sized, core::marker::Sized]; // return let x@1: u32; // arg #1 let y@2: u32; // arg #2 let @3: u32; // anonymous local @@ -100,7 +100,7 @@ global test_crate::P0 { } global test_crate::P1 { - let @0: test_crate::Pair, core::marker::Sized>; // return + let @0: test_crate::Pair[core::marker::Sized, core::marker::Sized]; // return @0 := test_crate::mk_pair1(const (0 : u32), const (1 : u32)) return @@ -114,7 +114,7 @@ global test_crate::P2 { } global test_crate::P3 { - let @0: test_crate::Pair, core::marker::Sized>; // return + let @0: test_crate::Pair[core::marker::Sized, core::marker::Sized]; // return @0 := test_crate::Pair { x: const (0 : u32), y: const (1 : u32) } return @@ -128,12 +128,12 @@ struct test_crate::Wrap value: T, } -fn test_crate::{test_crate::Wrap}::new(@1: T) -> test_crate::Wrap +fn test_crate::{test_crate::Wrap[@TraitClause0]}::new(@1: T) -> test_crate::Wrap[@TraitClause0] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, { - let @0: test_crate::Wrap; // return + let @0: test_crate::Wrap[@TraitClause0]; // return let value@1: T; // arg #1 let @2: T; // anonymous local @@ -146,17 +146,17 @@ where } global test_crate::Y { - let @0: test_crate::Wrap>; // return + let @0: test_crate::Wrap[core::marker::Sized]; // return - @0 := test_crate::{test_crate::Wrap}::new[core::marker::Sized](const (2 : i32)) + @0 := test_crate::{test_crate::Wrap[@TraitClause0]}::new[core::marker::Sized](const (2 : i32)) return } fn test_crate::unwrap_y() -> i32 { let @0: i32; // return - let @1: test_crate::Wrap>; // anonymous local - let @2: test_crate::Wrap>; // anonymous local + let @1: test_crate::Wrap[core::marker::Sized]; // anonymous local + let @2: test_crate::Wrap[core::marker::Sized]; // anonymous local @2 := test_crate::Y @1 := move (@2) @@ -271,8 +271,8 @@ global test_crate::S2 { } global test_crate::S3 { - let @0: test_crate::Pair, core::marker::Sized>; // return - let @1: test_crate::Pair, core::marker::Sized>; // anonymous local + let @0: test_crate::Pair[core::marker::Sized, core::marker::Sized]; // return + let @1: test_crate::Pair[core::marker::Sized, core::marker::Sized]; // anonymous local @1 := test_crate::P3 @0 := move (@1) @@ -280,7 +280,7 @@ global test_crate::S3 { } global test_crate::S4 { - let @0: test_crate::Pair, core::marker::Sized>; // return + let @0: test_crate::Pair[core::marker::Sized, core::marker::Sized]; // return @0 := test_crate::mk_pair1(const (7 : u32), const (8 : u32)) return @@ -294,7 +294,7 @@ struct test_crate::V x: Array, } -global test_crate::{test_crate::V}#1::LEN +global test_crate::{test_crate::V[@TraitClause0]}#1::LEN where [@TraitClause0]: core::marker::Sized, { @@ -311,7 +311,7 @@ where let @0: usize; // return let @1: usize; // anonymous local - @1 := test_crate::{test_crate::V}#1::LEN[@TraitClause0] + @1 := test_crate::{test_crate::V[@TraitClause0]}#1::LEN[@TraitClause0] @0 := move (@1) return } diff --git a/charon/tests/ui/demo.out b/charon/tests/ui/demo.out index 622ee50f..c786f718 100644 --- a/charon/tests/ui/demo.out +++ b/charon/tests/ui/demo.out @@ -130,23 +130,23 @@ enum test_crate::CList where [@TraitClause0]: core::marker::Sized, = -| CCons(T, alloc::boxed::Box, core::marker::Sized>) +| CCons(T, alloc::boxed::Box[@TraitClause0]>[core::marker::Sized]) | CNil() -fn test_crate::list_nth<'a, T>(@1: &'a (test_crate::CList), @2: u32) -> &'a (T) +fn test_crate::list_nth<'a, T>(@1: &'a (test_crate::CList[@TraitClause0]), @2: u32) -> &'a (T) where [@TraitClause0]: core::marker::Sized, { let @0: &'_ (T); // return - let l@1: &'_ (test_crate::CList); // arg #1 + let l@1: &'_ (test_crate::CList[@TraitClause0]); // arg #1 let i@2: u32; // arg #2 let x@3: &'_ (T); // local - let tl@4: &'_ (alloc::boxed::Box, core::marker::Sized>); // local + let tl@4: &'_ (alloc::boxed::Box[@TraitClause0]>[core::marker::Sized]); // local let @5: bool; // anonymous local let @6: u32; // anonymous local let @7: &'_ (T); // anonymous local - let @8: &'_ (test_crate::CList); // anonymous local + let @8: &'_ (test_crate::CList[@TraitClause0]); // anonymous local let @9: u32; // anonymous local let @10: u32; // anonymous local @@ -184,24 +184,24 @@ where return } -fn test_crate::list_nth_mut<'a, T>(@1: &'a mut (test_crate::CList), @2: u32) -> &'a mut (T) +fn test_crate::list_nth_mut<'a, T>(@1: &'a mut (test_crate::CList[@TraitClause0]), @2: u32) -> &'a mut (T) where [@TraitClause0]: core::marker::Sized, { let @0: &'_ mut (T); // return - let l@1: &'_ mut (test_crate::CList); // arg #1 + let l@1: &'_ mut (test_crate::CList[@TraitClause0]); // arg #1 let i@2: u32; // arg #2 let @3: &'_ mut (T); // anonymous local let @4: &'_ mut (T); // anonymous local let x@5: &'_ mut (T); // local - let tl@6: &'_ mut (alloc::boxed::Box, core::marker::Sized>); // local + let tl@6: &'_ mut (alloc::boxed::Box[@TraitClause0]>[core::marker::Sized]); // local let @7: &'_ mut (T); // anonymous local let @8: &'_ mut (T); // anonymous local let @9: bool; // anonymous local let @10: u32; // anonymous local let @11: &'_ mut (T); // anonymous local let @12: &'_ mut (T); // anonymous local - let @13: &'_ mut (test_crate::CList); // anonymous local + let @13: &'_ mut (test_crate::CList[@TraitClause0]); // anonymous local let @14: u32; // anonymous local let @15: u32; // anonymous local @@ -249,21 +249,21 @@ where return } -fn test_crate::list_nth_mut1<'a, T>(@1: &'a mut (test_crate::CList), @2: u32) -> &'a mut (T) +fn test_crate::list_nth_mut1<'a, T>(@1: &'a mut (test_crate::CList[@TraitClause0]), @2: u32) -> &'a mut (T) where [@TraitClause0]: core::marker::Sized, { let @0: &'_ mut (T); // return - let l@1: &'_ mut (test_crate::CList); // arg #1 + let l@1: &'_ mut (test_crate::CList[@TraitClause0]); // arg #1 let i@2: u32; // arg #2 let @3: (); // anonymous local let @4: (); // anonymous local let x@5: &'_ mut (T); // local - let tl@6: &'_ mut (alloc::boxed::Box, core::marker::Sized>); // local + let tl@6: &'_ mut (alloc::boxed::Box[@TraitClause0]>[core::marker::Sized]); // local let @7: (); // anonymous local let @8: bool; // anonymous local let @9: u32; // anonymous local - let @10: &'_ mut (test_crate::CList); // anonymous local + let @10: &'_ mut (test_crate::CList[@TraitClause0]); // anonymous local let @11: (); // anonymous local let @12: (); // anonymous local let @13: (); // anonymous local @@ -345,17 +345,17 @@ fn test_crate::i32_id(@1: i32) -> i32 return } -fn test_crate::list_tail<'a, T>(@1: &'a mut (test_crate::CList)) -> &'a mut (test_crate::CList) +fn test_crate::list_tail<'a, T>(@1: &'a mut (test_crate::CList[@TraitClause0])) -> &'a mut (test_crate::CList[@TraitClause0]) where [@TraitClause0]: core::marker::Sized, { - let @0: &'_ mut (test_crate::CList); // return - let l@1: &'_ mut (test_crate::CList); // arg #1 - let @2: &'_ mut (test_crate::CList); // anonymous local - let @3: &'_ mut (test_crate::CList); // anonymous local - let tl@4: &'_ mut (alloc::boxed::Box, core::marker::Sized>); // local - let @5: &'_ mut (test_crate::CList); // anonymous local - let @6: &'_ mut (test_crate::CList); // anonymous local + let @0: &'_ mut (test_crate::CList[@TraitClause0]); // return + let l@1: &'_ mut (test_crate::CList[@TraitClause0]); // arg #1 + let @2: &'_ mut (test_crate::CList[@TraitClause0]); // anonymous local + let @3: &'_ mut (test_crate::CList[@TraitClause0]); // anonymous local + let tl@4: &'_ mut (alloc::boxed::Box[@TraitClause0]>[core::marker::Sized]); // local + let @5: &'_ mut (test_crate::CList[@TraitClause0]); // anonymous local + let @6: &'_ mut (test_crate::CList[@TraitClause0]); // anonymous local @fake_read(l@1) match *(l@1) { diff --git a/charon/tests/ui/dyn-trait.out b/charon/tests/ui/dyn-trait.out index ee6849f2..45d75cc0 100644 --- a/charon/tests/ui/dyn-trait.out +++ b/charon/tests/ui/dyn-trait.out @@ -24,7 +24,7 @@ trait core::fmt::Display struct alloc::alloc::Global = {} -fn test_crate::construct(@1: T) -> alloc::boxed::Box> +fn test_crate::construct(@1: T) -> alloc::boxed::Box[core::marker::Sized] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::fmt::Display, @@ -91,7 +91,7 @@ fn test_crate::bar<'_0>(@1: &'_0 (dyn (exists(TODO)))) return } -fn core::fmt::Display::fmt<'_0, '_1, '_2, Self>(@1: &'_0 (Self), @2: &'_1 mut (core::fmt::Formatter<'_2>)) -> core::result::Result<(), core::fmt::Error, core::marker::Sized<()>, core::marker::Sized> +fn core::fmt::Display::fmt<'_0, '_1, '_2, Self>(@1: &'_0 (Self), @2: &'_1 mut (core::fmt::Formatter<'_2>)) -> core::result::Result<(), core::fmt::Error>[core::marker::Sized<()>, core::marker::Sized] diff --git a/charon/tests/ui/external.out b/charon/tests/ui/external.out index 6f742339..229c62d1 100644 --- a/charon/tests/ui/external.out +++ b/charon/tests/ui/external.out @@ -27,26 +27,26 @@ where trait core::clone::Clone { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized fn clone : core::clone::Clone::clone fn clone_from : core::clone::Clone::clone_from } trait core::marker::Copy { - parent_clause_0 : [@TraitClause0]: core::clone::Clone + parent_clause0 : [@TraitClause0]: core::clone::Clone } trait core::num::nonzero::private::Sealed trait core::num::nonzero::ZeroablePrimitive { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::marker::Copy - parent_clause_2 : [@TraitClause2]: core::num::nonzero::private::Sealed - parent_clause_3 : [@TraitClause3]: core::marker::Copy - parent_clause_4 : [@TraitClause4]: core::clone::Clone - parent_clause_5 : [@TraitClause5]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::marker::Copy + parent_clause2 : [@TraitClause2]: core::num::nonzero::private::Sealed + parent_clause3 : [@TraitClause3]: core::marker::Copy + parent_clause4 : [@TraitClause4]: core::clone::Clone + parent_clause5 : [@TraitClause5]: core::marker::Sized type NonZeroInner } @@ -104,28 +104,28 @@ enum core::option::Option | Some(T) -fn core::num::nonzero::{core::num::nonzero::NonZero}#14::new(@1: T) -> core::option::Option, core::marker::Sized>> +fn core::num::nonzero::{core::num::nonzero::NonZero[@TraitClause0, @TraitClause1]}#14::new(@1: T) -> core::option::Option[@TraitClause0, @TraitClause1]>[core::marker::Sized[@TraitClause0, @TraitClause1]>] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::num::nonzero::ZeroablePrimitive, -fn core::option::{core::option::Option}::unwrap(@1: core::option::Option) -> T +fn core::option::{core::option::Option[@TraitClause0]}::unwrap(@1: core::option::Option[@TraitClause0]) -> T where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -fn test_crate::test_new_non_zero_u32(@1: u32) -> core::num::nonzero::NonZero, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for u32}#20> +fn test_crate::test_new_non_zero_u32(@1: u32) -> core::num::nonzero::NonZero[core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for u32}#20] { - let @0: core::num::nonzero::NonZero, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for u32}#20>; // return + let @0: core::num::nonzero::NonZero[core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for u32}#20]; // return let x@1: u32; // arg #1 - let @2: core::option::Option, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for u32}#20>, core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for u32}#20>>>; // anonymous local + let @2: core::option::Option[core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for u32}#20]>[core::marker::Sized[core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for u32}#20]>]; // anonymous local let @3: u32; // anonymous local @3 := copy (x@1) - @2 := core::num::nonzero::{core::num::nonzero::NonZero}#14::new[core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for u32}#20](move (@3)) + @2 := core::num::nonzero::{core::num::nonzero::NonZero[@TraitClause0, @TraitClause1]}#14::new[core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for u32}#20](move (@3)) drop @3 - @0 := core::option::{core::option::Option}::unwrap, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for u32}#20>>[core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for u32}#20>>](move (@2)) + @0 := core::option::{core::option::Option[@TraitClause0]}::unwrap[core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for u32}#20]>[core::marker::Sized[core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for u32}#20]>](move (@2)) drop @2 return } @@ -137,12 +137,12 @@ opaque type alloc::vec::Vec struct alloc::alloc::Global = {} -fn alloc::vec::{alloc::vec::Vec>}::new() -> alloc::vec::Vec> +fn alloc::vec::{alloc::vec::Vec[@TraitClause0, core::marker::Sized]}::new() -> alloc::vec::Vec[@TraitClause0, core::marker::Sized] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -fn alloc::vec::{alloc::vec::Vec}#1::push<'_0, T, A>(@1: &'_0 mut (alloc::vec::Vec), @2: T) +fn alloc::vec::{alloc::vec::Vec[@TraitClause0, @TraitClause1]}#1::push<'_0, T, A>(@1: &'_0 mut (alloc::vec::Vec[@TraitClause0, @TraitClause1]), @2: T) where // Inherited clauses: [@TraitClause0]: core::marker::Sized, @@ -151,15 +151,15 @@ where fn test_crate::test_vec_push() { let @0: (); // return - let v@1: alloc::vec::Vec, core::marker::Sized>; // local + let v@1: alloc::vec::Vec[core::marker::Sized, core::marker::Sized]; // local let @2: (); // anonymous local - let @3: &'_ mut (alloc::vec::Vec, core::marker::Sized>); // anonymous local + let @3: &'_ mut (alloc::vec::Vec[core::marker::Sized, core::marker::Sized]); // anonymous local let @4: (); // anonymous local - v@1 := alloc::vec::{alloc::vec::Vec>}::new[core::marker::Sized]() + v@1 := alloc::vec::{alloc::vec::Vec[@TraitClause0, core::marker::Sized]}::new[core::marker::Sized]() @fake_read(v@1) @3 := &two-phase-mut v@1 - @2 := alloc::vec::{alloc::vec::Vec}#1::push[core::marker::Sized, core::marker::Sized](move (@3), const (0 : u32)) + @2 := alloc::vec::{alloc::vec::Vec[@TraitClause0, @TraitClause1]}#1::push[core::marker::Sized, core::marker::Sized](move (@3), const (0 : u32)) drop @3 drop @2 @4 := () diff --git a/charon/tests/ui/find-sized-clause.out b/charon/tests/ui/find-sized-clause.out index 36bb3346..ec7e66c3 100644 --- a/charon/tests/ui/find-sized-clause.out +++ b/charon/tests/ui/find-sized-clause.out @@ -12,7 +12,7 @@ enum core::option::Option | Some(T) -impl test_crate::{impl test_crate::Trait for core::option::Option} : test_crate::Trait> +impl test_crate::{impl test_crate::Trait for core::option::Option[@TraitClause0]} : test_crate::Trait[@TraitClause0]> where [@TraitClause0]: core::marker::Sized, diff --git a/charon/tests/ui/issue-114-opaque-bodies.out b/charon/tests/ui/issue-114-opaque-bodies.out index befa0a05..5d0d0275 100644 --- a/charon/tests/ui/issue-114-opaque-bodies.out +++ b/charon/tests/ui/issue-114-opaque-bodies.out @@ -64,11 +64,11 @@ enum core::option::Option | Some(T) -fn core::bool::{bool}::then_some(@1: bool, @2: T) -> core::option::Option +fn core::bool::{bool}::then_some(@1: bool, @2: T) -> core::option::Option[@TraitClause0] where [@TraitClause0]: core::marker::Sized, { - let @0: core::option::Option; // return + let @0: core::option::Option[@TraitClause0]; // return let self@1: bool; // arg #1 let t@2: T; // arg #2 let @3: T; // anonymous local @@ -85,9 +85,9 @@ where return } -fn test_crate::bool_to_opt(@1: bool) -> core::option::Option<(), core::marker::Sized<()>> +fn test_crate::bool_to_opt(@1: bool) -> core::option::Option<()>[core::marker::Sized<()>] { - let @0: core::option::Option<(), core::marker::Sized<()>>; // return + let @0: core::option::Option<()>[core::marker::Sized<()>]; // return let b@1: bool; // arg #1 let @2: bool; // anonymous local let @3: (); // anonymous local @@ -102,8 +102,8 @@ fn test_crate::bool_to_opt(@1: bool) -> core::option::Option<(), core::marker::S trait core::convert::From { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::marker::Sized fn from : core::convert::From::from } @@ -172,16 +172,16 @@ struct alloc::vec::Vec [@TraitClause1]: core::marker::Sized, = { - buf: alloc::raw_vec::RawVec, + buf: alloc::raw_vec::RawVec[@TraitClause0, @TraitClause1], len: usize, } struct alloc::alloc::Global = {} -fn test_crate::vec(@1: alloc::vec::Vec, core::marker::Sized>) +fn test_crate::vec(@1: alloc::vec::Vec[core::marker::Sized, core::marker::Sized]) { let @0: (); // return - let _x@1: alloc::vec::Vec, core::marker::Sized>; // arg #1 + let _x@1: alloc::vec::Vec[core::marker::Sized, core::marker::Sized]; // arg #1 let @2: (); // anonymous local @2 := () diff --git a/charon/tests/ui/issue-118-generic-copy.out b/charon/tests/ui/issue-118-generic-copy.out index edf6d7db..769f8b60 100644 --- a/charon/tests/ui/issue-118-generic-copy.out +++ b/charon/tests/ui/issue-118-generic-copy.out @@ -6,7 +6,7 @@ trait core::marker::Sized trait core::clone::Clone { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized fn clone : core::clone::Clone::clone fn clone_from : core::clone::Clone::clone_from } @@ -28,7 +28,7 @@ impl test_crate::{impl core::clone::Clone for test_crate::Foo} : core::clone::Cl trait core::marker::Copy { - parent_clause_0 : [@TraitClause0]: core::clone::Clone + parent_clause0 : [@TraitClause0]: core::clone::Clone } impl test_crate::{impl core::marker::Copy for test_crate::Foo}#1 : core::marker::Copy @@ -81,9 +81,9 @@ where trait test_crate::Trait { - parent_clause_0 : [@TraitClause0]: core::marker::Copy - parent_clause_1 : [@TraitClause1]: core::clone::Clone - parent_clause_2 : [@TraitClause2]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Copy + parent_clause1 : [@TraitClause1]: core::clone::Clone + parent_clause2 : [@TraitClause2]: core::marker::Sized type Ty } diff --git a/charon/tests/ui/issue-120-bare-discriminant-read.out b/charon/tests/ui/issue-120-bare-discriminant-read.out index fcee6dc8..d6cd51b3 100644 --- a/charon/tests/ui/issue-120-bare-discriminant-read.out +++ b/charon/tests/ui/issue-120-bare-discriminant-read.out @@ -10,12 +10,12 @@ enum core::option::Option | Some(T) -fn test_crate::discriminant_value<'_0, T>(@1: &'_0 (core::option::Option)) -> isize +fn test_crate::discriminant_value<'_0, T>(@1: &'_0 (core::option::Option[@TraitClause0])) -> isize where [@TraitClause0]: core::marker::Sized, { let @0: isize; // return - let opt@1: &'_ (core::option::Option); // arg #1 + let opt@1: &'_ (core::option::Option[@TraitClause0]); // arg #1 match *(opt@1) { 0 => { @@ -28,12 +28,12 @@ where return } -fn test_crate::is_some(@1: core::option::Option) -> bool +fn test_crate::is_some(@1: core::option::Option[@TraitClause0]) -> bool where [@TraitClause0]: core::marker::Sized, { let @0: bool; // return - let opt@1: core::option::Option; // arg #1 + let opt@1: core::option::Option[@TraitClause0]; // arg #1 let @2: isize; // anonymous local match opt@1 { @@ -50,12 +50,12 @@ where return } -fn test_crate::my_is_some(@1: core::option::Option) -> isize +fn test_crate::my_is_some(@1: core::option::Option[@TraitClause0]) -> isize where [@TraitClause0]: core::marker::Sized, { let @0: isize; // return - let opt@1: core::option::Option; // arg #1 + let opt@1: core::option::Option[@TraitClause0]; // arg #1 match opt@1 { 0 => { diff --git a/charon/tests/ui/issue-165-vec-macro.out b/charon/tests/ui/issue-165-vec-macro.out index 63639467..260a2f40 100644 --- a/charon/tests/ui/issue-165-vec-macro.out +++ b/charon/tests/ui/issue-165-vec-macro.out @@ -9,7 +9,7 @@ opaque type alloc::vec::Vec struct alloc::alloc::Global = {} -fn alloc::slice::{Slice}::into_vec(@1: alloc::boxed::Box, @TraitClause1>) -> alloc::vec::Vec +fn alloc::slice::{Slice}::into_vec(@1: alloc::boxed::Box>[@TraitClause1]) -> alloc::vec::Vec[@TraitClause0, @TraitClause1] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, @@ -18,12 +18,12 @@ where trait core::clone::Clone { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized fn clone : core::clone::Clone::clone fn clone_from : core::clone::Clone::clone_from } -fn alloc::vec::from_elem(@1: T, @2: usize) -> alloc::vec::Vec> +fn alloc::vec::from_elem(@1: T, @2: usize) -> alloc::vec::Vec[@TraitClause0, core::marker::Sized] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::clone::Clone, @@ -39,18 +39,18 @@ impl core::clone::impls::{impl core::clone::Clone for i32}#14 : core::clone::Clo fn test_crate::foo() { let @0: (); // return - let _v@1: alloc::vec::Vec, core::marker::Sized>; // local - let @2: alloc::boxed::Box, core::marker::Sized>; // anonymous local - let @3: alloc::boxed::Box, core::marker::Sized>; // anonymous local - let @4: alloc::boxed::Box, core::marker::Sized>; // anonymous local - let _v2@5: alloc::vec::Vec, core::marker::Sized>; // local + let _v@1: alloc::vec::Vec[core::marker::Sized, core::marker::Sized]; // local + let @2: alloc::boxed::Box>[core::marker::Sized]; // anonymous local + let @3: alloc::boxed::Box>[core::marker::Sized]; // anonymous local + let @4: alloc::boxed::Box>[core::marker::Sized]; // anonymous local + let _v2@5: alloc::vec::Vec[core::marker::Sized, core::marker::Sized]; // local let @6: Array; // anonymous local let @7: (); // anonymous local @6 := [const (1 : i32); 1 : usize] @4 := @BoxNew>[core::marker::Sized](move (@6)) @3 := move (@4) - @2 := unsize_cast, core::marker::Sized>, alloc::boxed::Box, core::marker::Sized>>(move (@3)) + @2 := unsize_cast>[core::marker::Sized], alloc::boxed::Box>[core::marker::Sized]>(move (@3)) drop @3 drop @4 drop @4 @@ -75,10 +75,10 @@ struct test_crate::Foo = {} fn test_crate::bar() { let @0: (); // return - let @1: alloc::vec::Vec, core::marker::Sized>; // anonymous local - let @2: alloc::boxed::Box, core::marker::Sized>; // anonymous local - let @3: alloc::boxed::Box, core::marker::Sized>; // anonymous local - let @4: alloc::boxed::Box, core::marker::Sized>; // anonymous local + let @1: alloc::vec::Vec[core::marker::Sized, core::marker::Sized]; // anonymous local + let @2: alloc::boxed::Box>[core::marker::Sized]; // anonymous local + let @3: alloc::boxed::Box>[core::marker::Sized]; // anonymous local + let @4: alloc::boxed::Box>[core::marker::Sized]; // anonymous local let @5: test_crate::Foo; // anonymous local let @6: Array; // anonymous local let @7: (); // anonymous local @@ -88,7 +88,7 @@ fn test_crate::bar() @4 := @BoxNew>[core::marker::Sized](move (@6)) drop @5 @3 := move (@4) - @2 := unsize_cast, core::marker::Sized>, alloc::boxed::Box, core::marker::Sized>>(move (@3)) + @2 := unsize_cast>[core::marker::Sized], alloc::boxed::Box>[core::marker::Sized]>(move (@3)) drop @3 drop @4 drop @4 diff --git a/charon/tests/ui/issue-369-mismatched-genericparams.out b/charon/tests/ui/issue-369-mismatched-genericparams.out index 034150d7..6b4115d5 100644 --- a/charon/tests/ui/issue-369-mismatched-genericparams.out +++ b/charon/tests/ui/issue-369-mismatched-genericparams.out @@ -1,7 +1,12 @@ error: Mismatched generics: - expected: GenericParams { regions: [], types: [Some(TypeVar { index: 0, name: "T" })], const_generics: [], trait_clauses: [Some(TraitClause { clause_id: 0, span: Some(Span { span: RawSpan { file_id: 1, beg: Loc { line: 2498, col: 5 }, end: Loc { line: 2498, col: 6 }, rust_span_data: /rustc/730d5d4095a264ef5f7c0a0781eea68c15431d45/library/core/src/option.rs:2498:6: 2498:7 (#0) }, generated_from_span: None }), origin: WhereClauseOnImpl, trait_: RegionBinder { regions: [], skip_binder: TraitDeclRef { trait_id: 0, generics: GenericArgs { regions: [], types: [Some(TypeVar(0))], const_generics: [], trait_refs: [] } } } })], regions_outlive: [], types_outlive: [], trait_type_constraints: [] } - got: GenericArgs { regions: [], types: [Some(TypeVar(0))], const_generics: [], trait_refs: [Some(TraitRef { kind: Clause(0), trait_decl_ref: RegionBinder { regions: [], skip_binder: TraitDeclRef { trait_id: 0, generics: GenericArgs { regions: [], types: [Some(TypeVar(0))], const_generics: [], trait_refs: [] } } } }), Some(TraitRef { kind: Clause(0), trait_decl_ref: RegionBinder { regions: [], skip_binder: TraitDeclRef { trait_id: 0, generics: GenericArgs { regions: [], types: [Some(TypeVar(0))], const_generics: [], trait_refs: [] } } } })] } - --> /rustc/730d5d4095a264ef5f7c0a0781eea68c15431d45/library/core/src/option.rs:2479:1 + expected: GenericParams { regions: [], types: [Some(TypeVar { index: 0, name: "T" })], const_generics: [], trait_clauses: [Some(TraitClause { clause_id: 0, span: Some(Span { span: RawSpan { file_id: 0, beg: Loc { line: 12, col: 5 }, end: Loc { line: 12, col: 6 }, rust_span_data: tests/ui/issue-369-mismatched-genericparams.rs:12:6: 12:7 (#0) }, generated_from_span: None }), origin: WhereClauseOnImpl, trait_: RegionBinder { regions: [], skip_binder: TraitDeclRef { trait_id: 2, generics: GenericArgs { regions: [], types: [Some(TypeVar(0))], const_generics: [], trait_refs: [] } } } })], regions_outlive: [], types_outlive: [], trait_type_constraints: [] } + got: GenericArgs { regions: [], types: [Some(TypeVar(0))], const_generics: [], trait_refs: [Some(TraitRef { kind: Clause(0), trait_decl_ref: RegionBinder { regions: [], skip_binder: TraitDeclRef { trait_id: 2, generics: GenericArgs { regions: [], types: [Some(TypeVar(0))], const_generics: [], trait_refs: [] } } } }), Some(TraitRef { kind: Clause(0), trait_decl_ref: RegionBinder { regions: [], skip_binder: TraitDeclRef { trait_id: 2, generics: GenericArgs { regions: [], types: [Some(TypeVar(0))], const_generics: [], trait_refs: [] } } } })] } + --> tests/ui/issue-369-mismatched-genericparams.rs:8:1 + | +8 | / impl Try for Option { +9 | | type Residual = (); +10 | | } + | |_^ error: aborting due to 1 previous error diff --git a/charon/tests/ui/issue-369-mismatched-genericparams.rs b/charon/tests/ui/issue-369-mismatched-genericparams.rs index e2f4433a..a2ad34de 100644 --- a/charon/tests/ui/issue-369-mismatched-genericparams.rs +++ b/charon/tests/ui/issue-369-mismatched-genericparams.rs @@ -1,10 +1,12 @@ //@ known-failure - -fn maybe() -> Option { - Some(42) +pub trait Try: FromResidual<()> { + type Residual; } -fn pop() -> Option<()> { - let _ = maybe()?; - Some(()) +pub trait FromResidual {} + +impl Try for Option { + type Residual = (); } + +impl FromResidual<::Residual> for Option {} diff --git a/charon/tests/ui/issue-372-type-param-out-of-range.out b/charon/tests/ui/issue-372-type-param-out-of-range.out index 5d6bf8ab..fdf1b702 100644 --- a/charon/tests/ui/issue-372-type-param-out-of-range.out +++ b/charon/tests/ui/issue-372-type-param-out-of-range.out @@ -15,29 +15,29 @@ trait core::marker::Tuple trait core::ops::function::FnOnce { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::marker::Tuple - parent_clause_2 : [@TraitClause2]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::marker::Tuple + parent_clause2 : [@TraitClause2]: core::marker::Sized type Output fn call_once : core::ops::function::FnOnce::call_once } trait core::ops::function::FnMut { - parent_clause_0 : [@TraitClause0]: core::ops::function::FnOnce - parent_clause_1 : [@TraitClause1]: core::marker::Sized - parent_clause_2 : [@TraitClause2]: core::marker::Tuple + parent_clause0 : [@TraitClause0]: core::ops::function::FnOnce + parent_clause1 : [@TraitClause1]: core::marker::Sized + parent_clause2 : [@TraitClause2]: core::marker::Tuple fn call_mut : core::ops::function::FnMut::call_mut } -fn test_crate::{test_crate::S<'a, K, @TraitClause0>}::f<'a, K, F>() +fn test_crate::{test_crate::S<'a, K>[@TraitClause0]}::f<'a, K, F>() where // Inherited clauses: [@TraitClause0]: core::marker::Sized, // Local clauses: [@TraitClause1]: core::marker::Sized, [@TraitClause2]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause2)::[@TraitClause0])::Output = (), + for<'_1_0> @TraitClause2::parent_clause0::Output = (), { let @0: (); // return let @1: (); // anonymous local @@ -48,14 +48,14 @@ where return } -fn test_crate::{test_crate::S<'a, K, @TraitClause0>}::g<'a, K, F>() +fn test_crate::{test_crate::S<'a, K>[@TraitClause0]}::g<'a, K, F>() where // Inherited clauses: [@TraitClause0]: core::marker::Sized, // Local clauses: [@TraitClause1]: core::marker::Sized, [@TraitClause2]: for<'_1_0> core::ops::function::FnMut, - for<'b> (parents(@TraitClause2)::[@TraitClause0])::Output = (), + for<'b> @TraitClause2::parent_clause0::Output = (), { let @0: (); // return let @1: (); // anonymous local @@ -72,7 +72,7 @@ fn test_crate::{test_crate::T}#1::f() where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause1)::[@TraitClause0])::Output = (), + for<'_1_0> @TraitClause1::parent_clause0::Output = (), { let @0: (); // return let @1: (); // anonymous local @@ -83,7 +83,7 @@ where return } -fn core::ops::function::FnMut::call_mut<'_0, Self, Args>(@1: &'_0 mut (Self), @2: Args) -> (parents(Self)::[@TraitClause0])::Output +fn core::ops::function::FnMut::call_mut<'_0, Self, Args>(@1: &'_0 mut (Self), @2: Args) -> Self::parent_clause0::Output fn core::ops::function::FnOnce::call_once(@1: Self, @2: Args) -> Self::Output diff --git a/charon/tests/ui/issue-395-failed-to-normalize.out b/charon/tests/ui/issue-395-failed-to-normalize.out index 94d980a6..856d110e 100644 --- a/charon/tests/ui/issue-395-failed-to-normalize.out +++ b/charon/tests/ui/issue-395-failed-to-normalize.out @@ -4,7 +4,7 @@ trait core::marker::Sized trait test_crate::Trait { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized type AssocType } @@ -18,11 +18,11 @@ enum core::option::Option type test_crate::Alias where - [@TraitClause0]: core::marker::Sized, = core::option::Option, bound_vars: [] }` in the current context: `Unimplemented`)::AssocType, UNKNOWN(Could not find a clause for `Binder { value: <::AssocType as std::marker::Sized>, bound_vars: [] }` in the current context: `FulfillmentError`)> + [@TraitClause0]: core::marker::Sized, = core::option::Option, bound_vars: [] }` in the current context: `Unimplemented`)::AssocType>[UNKNOWN(Could not find a clause for `Binder { value: <::AssocType as std::marker::Sized>, bound_vars: [] }` in the current context: `FulfillmentError`)] trait test_crate::C { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized } enum core::result::Result @@ -40,26 +40,26 @@ opaque type core::array::iter::IntoIter trait core::clone::Clone { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized fn clone : core::clone::Clone::clone fn clone_from : core::clone::Clone::clone_from } trait core::marker::Copy { - parent_clause_0 : [@TraitClause0]: core::clone::Clone + parent_clause0 : [@TraitClause0]: core::clone::Clone } trait core::num::nonzero::private::Sealed trait core::num::nonzero::ZeroablePrimitive { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::marker::Copy - parent_clause_2 : [@TraitClause2]: core::num::nonzero::private::Sealed - parent_clause_3 : [@TraitClause3]: core::marker::Copy - parent_clause_4 : [@TraitClause4]: core::clone::Clone - parent_clause_5 : [@TraitClause5]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::marker::Copy + parent_clause2 : [@TraitClause2]: core::num::nonzero::private::Sealed + parent_clause3 : [@TraitClause3]: core::marker::Copy + parent_clause4 : [@TraitClause4]: core::clone::Clone + parent_clause5 : [@TraitClause5]: core::marker::Sized type NonZeroInner } @@ -127,18 +127,18 @@ trait core::marker::Tuple trait core::ops::function::FnOnce { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::marker::Tuple - parent_clause_2 : [@TraitClause2]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::marker::Tuple + parent_clause2 : [@TraitClause2]: core::marker::Sized type Output fn call_once : core::ops::function::FnOnce::call_once } trait core::ops::function::FnMut { - parent_clause_0 : [@TraitClause0]: core::ops::function::FnOnce - parent_clause_1 : [@TraitClause1]: core::marker::Sized - parent_clause_2 : [@TraitClause2]: core::marker::Tuple + parent_clause0 : [@TraitClause0]: core::ops::function::FnOnce + parent_clause1 : [@TraitClause1]: core::marker::Sized + parent_clause2 : [@TraitClause2]: core::marker::Tuple fn call_mut : core::ops::function::FnMut::call_mut } @@ -201,7 +201,7 @@ opaque type core::iter::adapters::inspect::Inspect trait core::ops::try_trait::FromResidual { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized fn from_residual : core::ops::try_trait::FromResidual::from_residual } @@ -216,9 +216,9 @@ enum core::ops::control_flow::ControlFlow trait core::ops::try_trait::Try { - parent_clause_0 : [@TraitClause0]: core::ops::try_trait::FromResidual - parent_clause_1 : [@TraitClause1]: core::marker::Sized - parent_clause_2 : [@TraitClause2]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::ops::try_trait::FromResidual + parent_clause1 : [@TraitClause1]: core::marker::Sized + parent_clause2 : [@TraitClause2]: core::marker::Sized type Output type Residual fn from_output : core::ops::try_trait::Try::from_output @@ -227,19 +227,19 @@ trait core::ops::try_trait::Try trait core::ops::try_trait::Residual where - (parents(Self)::[@TraitClause1])::Residual = Self, - (parents(Self)::[@TraitClause1])::Output = O, + Self::parent_clause1::Residual = Self, + Self::parent_clause1::Output = O, { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::ops::try_trait::Try - parent_clause_2 : [@TraitClause2]: core::ops::try_trait::FromResidual - parent_clause_3 : [@TraitClause3]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::ops::try_trait::Try + parent_clause2 : [@TraitClause2]: core::ops::try_trait::FromResidual + parent_clause3 : [@TraitClause3]: core::marker::Sized type TryType } trait core::default::Default { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized fn default : core::default::Default::default } @@ -251,7 +251,7 @@ trait core::cmp::PartialEq trait core::cmp::Eq { - parent_clause_0 : [@TraitClause0]: core::cmp::PartialEq + parent_clause0 : [@TraitClause0]: core::cmp::PartialEq fn assert_receiver_is_total_eq : core::cmp::Eq::assert_receiver_is_total_eq } @@ -263,7 +263,7 @@ enum core::cmp::Ordering = trait core::cmp::PartialOrd { - parent_clause_0 : [@TraitClause0]: core::cmp::PartialEq + parent_clause0 : [@TraitClause0]: core::cmp::PartialEq fn partial_cmp : core::cmp::PartialOrd::partial_cmp fn lt : core::cmp::PartialOrd::lt fn le : core::cmp::PartialOrd::le @@ -273,8 +273,8 @@ trait core::cmp::PartialOrd trait core::cmp::Ord { - parent_clause_0 : [@TraitClause0]: core::cmp::Eq - parent_clause_1 : [@TraitClause1]: core::cmp::PartialOrd + parent_clause0 : [@TraitClause0]: core::cmp::Eq + parent_clause1 : [@TraitClause1]: core::cmp::PartialOrd fn cmp : core::cmp::Ord::cmp fn max : core::cmp::Ord::max fn min : core::cmp::Ord::min @@ -299,7 +299,7 @@ opaque type core::iter::adapters::cycle::Cycle trait core::iter::traits::iterator::Iterator { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized type Item fn next : core::iter::traits::iterator::Iterator::next fn next_chunk : core::iter::traits::iterator::Iterator::next_chunk @@ -382,11 +382,11 @@ trait core::iter::traits::iterator::Iterator trait core::iter::traits::collect::IntoIterator where - (parents(Self)::[@TraitClause1])::Item = Self::Item, + Self::parent_clause1::Item = Self::Item, { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::iter::traits::iterator::Iterator - parent_clause_2 : [@TraitClause2]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::iter::traits::iterator::Iterator + parent_clause2 : [@TraitClause2]: core::marker::Sized type Item type IntoIter fn into_iter : core::iter::traits::collect::IntoIterator::into_iter @@ -430,14 +430,14 @@ opaque type core::iter::adapters::map_windows::MapWindows trait core::iter::traits::collect::FromIterator { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::marker::Sized fn from_iter : core::iter::traits::collect::FromIterator::from_iter } trait core::iter::traits::collect::Extend { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized fn extend : core::iter::traits::collect::Extend::extend fn extend_one : core::iter::traits::collect::Extend::extend_one fn extend_reserve : core::iter::traits::collect::Extend::extend_reserve @@ -446,7 +446,7 @@ trait core::iter::traits::collect::Extend trait core::iter::traits::double_ended::DoubleEndedIterator { - parent_clause_0 : [@TraitClause0]: core::iter::traits::iterator::Iterator + parent_clause0 : [@TraitClause0]: core::iter::traits::iterator::Iterator fn next_back : core::iter::traits::double_ended::DoubleEndedIterator::next_back fn advance_back_by : core::iter::traits::double_ended::DoubleEndedIterator::advance_back_by fn nth_back : core::iter::traits::double_ended::DoubleEndedIterator::nth_back @@ -457,7 +457,7 @@ trait core::iter::traits::double_ended::DoubleEndedIterator trait core::iter::traits::exact_size::ExactSizeIterator { - parent_clause_0 : [@TraitClause0]: core::iter::traits::iterator::Iterator + parent_clause0 : [@TraitClause0]: core::iter::traits::iterator::Iterator fn len : core::iter::traits::exact_size::ExactSizeIterator::len fn is_empty : core::iter::traits::exact_size::ExactSizeIterator::is_empty } @@ -469,21 +469,21 @@ opaque type core::iter::adapters::array_chunks::ArrayChunks trait core::iter::traits::accum::Sum { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::marker::Sized fn sum : core::iter::traits::accum::Sum::sum } trait core::iter::traits::accum::Product { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::marker::Sized fn product : core::iter::traits::accum::Product::product } trait core::iter::adapters::zip::TrustedRandomAccessNoCoerce { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized const MAY_HAVE_SIDE_EFFECT : bool fn size : core::iter::adapters::zip::TrustedRandomAccessNoCoerce::size } @@ -499,166 +499,166 @@ struct test_crate::S type test_crate::S2 where [@TraitClause0]: core::marker::Sized, - [@TraitClause1]: core::marker::Sized, = test_crate::S, bound_vars: [] }` in the current context: `Unimplemented`), UNKNOWN(Could not find a clause for `Binder { value: ::Item>>, bound_vars: [] }` in the current context: `Unimplemented`)> + [@TraitClause1]: core::marker::Sized, = test_crate::S[@TraitClause0, @TraitClause1, UNKNOWN(Could not find a clause for `Binder { value: , bound_vars: [] }` in the current context: `Unimplemented`), UNKNOWN(Could not find a clause for `Binder { value: ::Item>>, bound_vars: [] }` in the current context: `Unimplemented`)] -fn core::iter::traits::iterator::Iterator::next<'_0, Self>(@1: &'_0 mut (Self)) -> core::option::Option +fn core::iter::traits::iterator::Iterator::next<'_0, Self>(@1: &'_0 mut (Self)) -> core::option::Option[Self::parent_clause0] -fn core::iter::traits::iterator::Iterator::next_chunk<'_0, Self, const N : usize>(@1: &'_0 mut (Self)) -> core::result::Result, core::array::iter::IntoIter, core::marker::Sized>, core::marker::Sized>> +fn core::iter::traits::iterator::Iterator::next_chunk<'_0, Self, const N : usize>(@1: &'_0 mut (Self)) -> core::result::Result, core::array::iter::IntoIter[Self::parent_clause0]>[core::marker::Sized>, core::marker::Sized[Self::parent_clause0]>] where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::size_hint<'_0, Self>(@1: &'_0 (Self)) -> (usize, core::option::Option>) +fn core::iter::traits::iterator::Iterator::size_hint<'_0, Self>(@1: &'_0 (Self)) -> (usize, core::option::Option[core::marker::Sized]) fn core::iter::traits::iterator::Iterator::count(@1: Self) -> usize where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::last(@1: Self) -> core::option::Option +fn core::iter::traits::iterator::Iterator::last(@1: Self) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::advance_by<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> core::result::Result<(), core::num::nonzero::NonZero, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26>, core::marker::Sized<()>, core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26>>> +fn core::iter::traits::iterator::Iterator::advance_by<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> core::result::Result<(), core::num::nonzero::NonZero[core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26]>[core::marker::Sized<()>, core::marker::Sized[core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26]>] -fn core::iter::traits::iterator::Iterator::nth<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> core::option::Option +fn core::iter::traits::iterator::Iterator::nth<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> core::option::Option[Self::parent_clause0] -fn core::iter::traits::iterator::Iterator::step_by(@1: Self, @2: usize) -> core::iter::adapters::step_by::StepBy +fn core::iter::traits::iterator::Iterator::step_by(@1: Self, @2: usize) -> core::iter::adapters::step_by::StepBy[@TraitClause0] where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::chain(@1: Self, @2: U) -> core::iter::adapters::chain::Chain +fn core::iter::traits::iterator::Iterator::chain(@1: Self, @2: U) -> core::iter::adapters::chain::Chain[@TraitClause1, @TraitClause2::parent_clause2] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::iter::traits::collect::IntoIterator, @TraitClause2::Item = Self::Item, -fn core::iter::traits::iterator::Iterator::zip(@1: Self, @2: U) -> core::iter::adapters::zip::Zip +fn core::iter::traits::iterator::Iterator::zip(@1: Self, @2: U) -> core::iter::adapters::zip::Zip[@TraitClause1, @TraitClause2::parent_clause2] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::iter::traits::collect::IntoIterator, -fn core::iter::traits::iterator::Iterator::intersperse(@1: Self, @2: Self::Item) -> core::iter::adapters::intersperse::Intersperse +fn core::iter::traits::iterator::Iterator::intersperse(@1: Self, @2: Self::Item) -> core::iter::adapters::intersperse::Intersperse[@TraitClause0, Self, @TraitClause1] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::clone::Clone, -fn core::iter::traits::iterator::Iterator::intersperse_with(@1: Self, @2: G) -> core::iter::adapters::intersperse::IntersperseWith +fn core::iter::traits::iterator::Iterator::intersperse_with(@1: Self, @2: G) -> core::iter::adapters::intersperse::IntersperseWith[@TraitClause1, @TraitClause0, Self] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::ops::function::FnMut, - (parents(@TraitClause2)::[@TraitClause0])::Output = Self::Item, + @TraitClause2::parent_clause0::Output = Self::Item, -fn core::iter::traits::iterator::Iterator::map(@1: Self, @2: F) -> core::iter::adapters::map::Map +fn core::iter::traits::iterator::Iterator::map(@1: Self, @2: F) -> core::iter::adapters::map::Map[@TraitClause2, @TraitClause1] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = B, + @TraitClause3::parent_clause0::Output = B, fn core::iter::traits::iterator::Iterator::for_each(@1: Self, @2: F) where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::ops::function::FnMut, - (parents(@TraitClause2)::[@TraitClause0])::Output = (), + @TraitClause2::parent_clause0::Output = (), -fn core::iter::traits::iterator::Iterator::filter(@1: Self, @2: P) -> core::iter::adapters::filter::Filter +fn core::iter::traits::iterator::Iterator::filter(@1: Self, @2: P) -> core::iter::adapters::filter::Filter[@TraitClause1, @TraitClause0] where [@TraitClause0]: core::marker::Sized

, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + for<'_1_0> @TraitClause2::parent_clause0::Output = bool, -fn core::iter::traits::iterator::Iterator::filter_map(@1: Self, @2: F) -> core::iter::adapters::filter_map::FilterMap +fn core::iter::traits::iterator::Iterator::filter_map(@1: Self, @2: F) -> core::iter::adapters::filter_map::FilterMap[@TraitClause2, @TraitClause1] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = core::option::Option, + @TraitClause3::parent_clause0::Output = core::option::Option[@TraitClause0], -fn core::iter::traits::iterator::Iterator::enumerate(@1: Self) -> core::iter::adapters::enumerate::Enumerate +fn core::iter::traits::iterator::Iterator::enumerate(@1: Self) -> core::iter::adapters::enumerate::Enumerate[@TraitClause0] where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::peekable(@1: Self) -> core::iter::adapters::peekable::Peekable +fn core::iter::traits::iterator::Iterator::peekable(@1: Self) -> core::iter::adapters::peekable::Peekable[@TraitClause0, Self] where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::skip_while(@1: Self, @2: P) -> core::iter::adapters::skip_while::SkipWhile +fn core::iter::traits::iterator::Iterator::skip_while(@1: Self, @2: P) -> core::iter::adapters::skip_while::SkipWhile[@TraitClause1, @TraitClause0] where [@TraitClause0]: core::marker::Sized

, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + for<'_1_0> @TraitClause2::parent_clause0::Output = bool, -fn core::iter::traits::iterator::Iterator::take_while(@1: Self, @2: P) -> core::iter::adapters::take_while::TakeWhile +fn core::iter::traits::iterator::Iterator::take_while(@1: Self, @2: P) -> core::iter::adapters::take_while::TakeWhile[@TraitClause1, @TraitClause0] where [@TraitClause0]: core::marker::Sized

, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + for<'_1_0> @TraitClause2::parent_clause0::Output = bool, -fn core::iter::traits::iterator::Iterator::map_while(@1: Self, @2: P) -> core::iter::adapters::map_while::MapWhile +fn core::iter::traits::iterator::Iterator::map_while(@1: Self, @2: P) -> core::iter::adapters::map_while::MapWhile[@TraitClause2, @TraitClause1] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized

, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = core::option::Option, + @TraitClause3::parent_clause0::Output = core::option::Option[@TraitClause0], -fn core::iter::traits::iterator::Iterator::skip(@1: Self, @2: usize) -> core::iter::adapters::skip::Skip +fn core::iter::traits::iterator::Iterator::skip(@1: Self, @2: usize) -> core::iter::adapters::skip::Skip[@TraitClause0] where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::take(@1: Self, @2: usize) -> core::iter::adapters::take::Take +fn core::iter::traits::iterator::Iterator::take(@1: Self, @2: usize) -> core::iter::adapters::take::Take[@TraitClause0] where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::scan(@1: Self, @2: St, @3: F) -> core::iter::adapters::scan::Scan +fn core::iter::traits::iterator::Iterator::scan(@1: Self, @2: St, @3: F) -> core::iter::adapters::scan::Scan[@TraitClause3, @TraitClause0, @TraitClause2] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::marker::Sized, [@TraitClause4]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause4)::[@TraitClause0])::Output = core::option::Option, + for<'_1_0> @TraitClause4::parent_clause0::Output = core::option::Option[@TraitClause1], -fn core::iter::traits::iterator::Iterator::flat_map(@1: Self, @2: F) -> core::iter::adapters::flatten::FlatMap +fn core::iter::traits::iterator::Iterator::flat_map(@1: Self, @2: F) -> core::iter::adapters::flatten::FlatMap[@TraitClause2, @TraitClause0, @TraitClause1, @TraitClause3] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::iter::traits::collect::IntoIterator, [@TraitClause4]: core::ops::function::FnMut, - (parents(@TraitClause4)::[@TraitClause0])::Output = U, + @TraitClause4::parent_clause0::Output = U, -fn core::iter::traits::iterator::Iterator::flatten(@1: Self) -> core::iter::adapters::flatten::Flatten +fn core::iter::traits::iterator::Iterator::flatten(@1: Self) -> core::iter::adapters::flatten::Flatten[@TraitClause0, Self, @TraitClause1] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::iter::traits::collect::IntoIterator, -fn core::iter::traits::iterator::Iterator::map_windows(@1: Self, @2: F) -> core::iter::adapters::map_windows::MapWindows +fn core::iter::traits::iterator::Iterator::map_windows(@1: Self, @2: F) -> core::iter::adapters::map_windows::MapWindows[@TraitClause2, @TraitClause0, Self] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: for<'_1_0> core::ops::function::FnMut))>, - for<'_1_0> (parents(@TraitClause3)::[@TraitClause0])::Output = R, + for<'_1_0> @TraitClause3::parent_clause0::Output = R, -fn core::iter::traits::iterator::Iterator::fuse(@1: Self) -> core::iter::adapters::fuse::Fuse +fn core::iter::traits::iterator::Iterator::fuse(@1: Self) -> core::iter::adapters::fuse::Fuse[@TraitClause0] where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::inspect(@1: Self, @2: F) -> core::iter::adapters::inspect::Inspect +fn core::iter::traits::iterator::Iterator::inspect(@1: Self, @2: F) -> core::iter::adapters::inspect::Inspect[@TraitClause1, @TraitClause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause2)::[@TraitClause0])::Output = (), + for<'_1_0> @TraitClause2::parent_clause0::Output = (), fn core::iter::traits::iterator::Iterator::by_ref<'_0, Self>(@1: &'_0 mut (Self)) -> &'_0 mut (Self) where @@ -692,7 +692,7 @@ where [@TraitClause3]: core::default::Default, [@TraitClause4]: core::iter::traits::collect::Extend, [@TraitClause5]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause5)::[@TraitClause0])::Output = bool, + for<'_1_0> @TraitClause5::parent_clause0::Output = bool, fn core::iter::traits::iterator::Iterator::partition_in_place<'a, Self, T, P>(@1: Self, @2: P) -> usize where @@ -703,14 +703,14 @@ where [@TraitClause4]: for<'_1_0> core::ops::function::FnMut, T : 'a, Self::Item = &'a mut (T), - for<'_1_0> (parents(@TraitClause4)::[@TraitClause0])::Output = bool, + for<'_1_0> @TraitClause4::parent_clause0::Output = bool, fn core::iter::traits::iterator::Iterator::is_partitioned(@1: Self, @2: P) -> bool where [@TraitClause0]: core::marker::Sized

, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::ops::function::FnMut, - (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + @TraitClause2::parent_clause0::Output = bool, fn core::iter::traits::iterator::Iterator::try_fold<'_0, Self, B, F, R>(@1: &'_0 mut (Self), @2: B, @3: F) -> R where @@ -720,7 +720,7 @@ where [@TraitClause3]: core::marker::Sized, [@TraitClause4]: core::ops::function::FnMut, [@TraitClause5]: core::ops::try_trait::Try, - (parents(@TraitClause4)::[@TraitClause0])::Output = R, + @TraitClause4::parent_clause0::Output = R, @TraitClause5::Output = B, fn core::iter::traits::iterator::Iterator::try_for_each<'_0, Self, F, R>(@1: &'_0 mut (Self), @2: F) -> R @@ -730,7 +730,7 @@ where [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::function::FnMut, [@TraitClause4]: core::ops::try_trait::Try, - (parents(@TraitClause3)::[@TraitClause0])::Output = R, + @TraitClause3::parent_clause0::Output = R, @TraitClause4::Output = (), fn core::iter::traits::iterator::Iterator::fold(@1: Self, @2: B, @3: F) -> B @@ -739,14 +739,14 @@ where [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = B, + @TraitClause3::parent_clause0::Output = B, -fn core::iter::traits::iterator::Iterator::reduce(@1: Self, @2: F) -> core::option::Option +fn core::iter::traits::iterator::Iterator::reduce(@1: Self, @2: F) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::ops::function::FnMut, - (parents(@TraitClause2)::[@TraitClause0])::Output = Self::Item, + @TraitClause2::parent_clause0::Output = Self::Item, fn core::iter::traits::iterator::Iterator::try_reduce<'_0, Self, R, impl FnMut(Self::Item, Self::Item) -> R>(@1: &'_0 mut (Self), @2: impl FnMut(Self::Item, Self::Item) -> R) -> @TraitClause4::TryType where @@ -754,39 +754,39 @@ where [@TraitClause1]: core::marker::Sized R>, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::try_trait::Try, - [@TraitClause4]: core::ops::try_trait::Residual<@TraitClause3::Residual, core::option::Option>, + [@TraitClause4]: core::ops::try_trait::Residual<@TraitClause3::Residual, core::option::Option[Self::parent_clause0]>, [@TraitClause5]: core::ops::function::FnMut R, (Self::Item, Self::Item)>, @TraitClause3::Output = Self::Item, - (parents(@TraitClause5)::[@TraitClause0])::Output = R, + @TraitClause5::parent_clause0::Output = R, fn core::iter::traits::iterator::Iterator::all<'_0, Self, F>(@1: &'_0 mut (Self), @2: F) -> bool where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::ops::function::FnMut, - (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + @TraitClause2::parent_clause0::Output = bool, fn core::iter::traits::iterator::Iterator::any<'_0, Self, F>(@1: &'_0 mut (Self), @2: F) -> bool where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::ops::function::FnMut, - (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + @TraitClause2::parent_clause0::Output = bool, -fn core::iter::traits::iterator::Iterator::find<'_0, Self, P>(@1: &'_0 mut (Self), @2: P) -> core::option::Option +fn core::iter::traits::iterator::Iterator::find<'_0, Self, P>(@1: &'_0 mut (Self), @2: P) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized

, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + for<'_1_0> @TraitClause2::parent_clause0::Output = bool, -fn core::iter::traits::iterator::Iterator::find_map<'_0, Self, B, F>(@1: &'_0 mut (Self), @2: F) -> core::option::Option +fn core::iter::traits::iterator::Iterator::find_map<'_0, Self, B, F>(@1: &'_0 mut (Self), @2: F) -> core::option::Option[@TraitClause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = core::option::Option, + @TraitClause3::parent_clause0::Output = core::option::Option[@TraitClause0], fn core::iter::traits::iterator::Iterator::try_find<'_0, Self, R, impl FnMut(&Self::Item) -> R>(@1: &'_0 mut (Self), @2: impl FnMut(&Self::Item) -> R) -> @TraitClause4::TryType where @@ -794,70 +794,70 @@ where [@TraitClause1]: core::marker::Sized R>, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::try_trait::Try, - [@TraitClause4]: core::ops::try_trait::Residual<@TraitClause3::Residual, core::option::Option>, + [@TraitClause4]: core::ops::try_trait::Residual<@TraitClause3::Residual, core::option::Option[Self::parent_clause0]>, [@TraitClause5]: for<'_1_0> core::ops::function::FnMut R, (&'_1_0 (Self::Item))>, @TraitClause3::Output = bool, - for<'_1_0> (parents(@TraitClause5)::[@TraitClause0])::Output = R, + for<'_1_0> @TraitClause5::parent_clause0::Output = R, -fn core::iter::traits::iterator::Iterator::position<'_0, Self, P>(@1: &'_0 mut (Self), @2: P) -> core::option::Option> +fn core::iter::traits::iterator::Iterator::position<'_0, Self, P>(@1: &'_0 mut (Self), @2: P) -> core::option::Option[core::marker::Sized] where [@TraitClause0]: core::marker::Sized

, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::ops::function::FnMut, - (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + @TraitClause2::parent_clause0::Output = bool, -fn core::iter::traits::iterator::Iterator::rposition<'_0, Self, P>(@1: &'_0 mut (Self), @2: P) -> core::option::Option> +fn core::iter::traits::iterator::Iterator::rposition<'_0, Self, P>(@1: &'_0 mut (Self), @2: P) -> core::option::Option[core::marker::Sized] where [@TraitClause0]: core::marker::Sized

, [@TraitClause1]: core::ops::function::FnMut, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::iter::traits::exact_size::ExactSizeIterator, [@TraitClause4]: core::iter::traits::double_ended::DoubleEndedIterator, - (parents(@TraitClause1)::[@TraitClause0])::Output = bool, + @TraitClause1::parent_clause0::Output = bool, -fn core::iter::traits::iterator::Iterator::max(@1: Self) -> core::option::Option +fn core::iter::traits::iterator::Iterator::max(@1: Self) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::cmp::Ord, -fn core::iter::traits::iterator::Iterator::min(@1: Self) -> core::option::Option +fn core::iter::traits::iterator::Iterator::min(@1: Self) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::cmp::Ord, -fn core::iter::traits::iterator::Iterator::max_by_key(@1: Self, @2: F) -> core::option::Option +fn core::iter::traits::iterator::Iterator::max_by_key(@1: Self, @2: F) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::cmp::Ord, [@TraitClause3]: core::marker::Sized, [@TraitClause4]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause4)::[@TraitClause0])::Output = B, + for<'_1_0> @TraitClause4::parent_clause0::Output = B, -fn core::iter::traits::iterator::Iterator::max_by(@1: Self, @2: F) -> core::option::Option +fn core::iter::traits::iterator::Iterator::max_by(@1: Self, @2: F) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: for<'_1_0, '_1_1> core::ops::function::FnMut, - for<'_1_0, '_1_1> (parents(@TraitClause2)::[@TraitClause0])::Output = core::cmp::Ordering, + for<'_1_0, '_1_1> @TraitClause2::parent_clause0::Output = core::cmp::Ordering, -fn core::iter::traits::iterator::Iterator::min_by_key(@1: Self, @2: F) -> core::option::Option +fn core::iter::traits::iterator::Iterator::min_by_key(@1: Self, @2: F) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::cmp::Ord, [@TraitClause3]: core::marker::Sized, [@TraitClause4]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause4)::[@TraitClause0])::Output = B, + for<'_1_0> @TraitClause4::parent_clause0::Output = B, -fn core::iter::traits::iterator::Iterator::min_by(@1: Self, @2: F) -> core::option::Option +fn core::iter::traits::iterator::Iterator::min_by(@1: Self, @2: F) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: for<'_1_0, '_1_1> core::ops::function::FnMut, - for<'_1_0, '_1_1> (parents(@TraitClause2)::[@TraitClause0])::Output = core::cmp::Ordering, + for<'_1_0, '_1_1> @TraitClause2::parent_clause0::Output = core::cmp::Ordering, -fn core::iter::traits::iterator::Iterator::rev(@1: Self) -> core::iter::adapters::rev::Rev +fn core::iter::traits::iterator::Iterator::rev(@1: Self) -> core::iter::adapters::rev::Rev[@TraitClause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::iter::traits::double_ended::DoubleEndedIterator, @@ -876,7 +876,7 @@ where [@TraitClause9]: core::iter::traits::iterator::Iterator, Self::Item = (A, B), -fn core::iter::traits::iterator::Iterator::copied<'a, Self, T>(@1: Self) -> core::iter::adapters::copied::Copied +fn core::iter::traits::iterator::Iterator::copied<'a, Self, T>(@1: Self) -> core::iter::adapters::copied::Copied[@TraitClause1] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, @@ -885,7 +885,7 @@ where T : 'a, Self::Item = &'a (T), -fn core::iter::traits::iterator::Iterator::cloned<'a, Self, T>(@1: Self) -> core::iter::adapters::cloned::Cloned +fn core::iter::traits::iterator::Iterator::cloned<'a, Self, T>(@1: Self) -> core::iter::adapters::cloned::Cloned[@TraitClause1] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, @@ -894,12 +894,12 @@ where T : 'a, Self::Item = &'a (T), -fn core::iter::traits::iterator::Iterator::cycle(@1: Self) -> core::iter::adapters::cycle::Cycle +fn core::iter::traits::iterator::Iterator::cycle(@1: Self) -> core::iter::adapters::cycle::Cycle[@TraitClause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::clone::Clone, -fn core::iter::traits::iterator::Iterator::array_chunks(@1: Self) -> core::iter::adapters::array_chunks::ArrayChunks +fn core::iter::traits::iterator::Iterator::array_chunks(@1: Self) -> core::iter::adapters::array_chunks::ArrayChunks[@TraitClause0, Self] where [@TraitClause0]: core::marker::Sized, @@ -930,23 +930,23 @@ where [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::iter::traits::collect::IntoIterator, [@TraitClause4]: core::ops::function::FnMut, - (parents(@TraitClause4)::[@TraitClause0])::Output = core::cmp::Ordering, + @TraitClause4::parent_clause0::Output = core::cmp::Ordering, -fn core::iter::traits::iterator::Iterator::partial_cmp(@1: Self, @2: I) -> core::option::Option> +fn core::iter::traits::iterator::Iterator::partial_cmp(@1: Self, @2: I) -> core::option::Option[core::marker::Sized] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::iter::traits::collect::IntoIterator, [@TraitClause2]: core::cmp::PartialOrd, [@TraitClause3]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::partial_cmp_by(@1: Self, @2: I, @3: F) -> core::option::Option> +fn core::iter::traits::iterator::Iterator::partial_cmp_by(@1: Self, @2: I, @3: F) -> core::option::Option[core::marker::Sized] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::iter::traits::collect::IntoIterator, [@TraitClause4]: core::ops::function::FnMut, - (parents(@TraitClause4)::[@TraitClause0])::Output = core::option::Option>, + @TraitClause4::parent_clause0::Output = core::option::Option[core::marker::Sized], fn core::iter::traits::iterator::Iterator::eq(@1: Self, @2: I) -> bool where @@ -962,7 +962,7 @@ where [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::iter::traits::collect::IntoIterator, [@TraitClause4]: core::ops::function::FnMut, - (parents(@TraitClause4)::[@TraitClause0])::Output = bool, + @TraitClause4::parent_clause0::Output = bool, fn core::iter::traits::iterator::Iterator::ne(@1: Self, @2: I) -> bool where @@ -1009,7 +1009,7 @@ where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: for<'_1_0, '_1_1> core::ops::function::FnMut, - for<'_1_0, '_1_1> (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + for<'_1_0, '_1_1> @TraitClause2::parent_clause0::Output = bool, fn core::iter::traits::iterator::Iterator::is_sorted_by_key(@1: Self, @2: F) -> bool where @@ -1018,7 +1018,7 @@ where [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::function::FnMut, [@TraitClause4]: core::cmp::PartialOrd, - (parents(@TraitClause3)::[@TraitClause0])::Output = K, + @TraitClause3::parent_clause0::Output = K, unsafe fn core::iter::traits::iterator::Iterator::__iterator_get_unchecked<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> Self::Item where @@ -1030,7 +1030,7 @@ fn core::clone::Clone::clone_from<'_0, '_1, Self>(@1: &'_0 mut (Self), @2: &'_1 fn core::iter::traits::collect::IntoIterator::into_iter(@1: Self) -> Self::IntoIter -fn core::ops::function::FnMut::call_mut<'_0, Self, Args>(@1: &'_0 mut (Self), @2: Args) -> (parents(Self)::[@TraitClause0])::Output +fn core::ops::function::FnMut::call_mut<'_0, Self, Args>(@1: &'_0 mut (Self), @2: Args) -> Self::parent_clause0::Output fn core::ops::function::FnOnce::call_once(@1: Self, @2: Args) -> Self::Output @@ -1042,7 +1042,7 @@ where fn core::ops::try_trait::Try::from_output(@1: Self::Output) -> Self -fn core::ops::try_trait::Try::branch(@1: Self) -> core::ops::control_flow::ControlFlow +fn core::ops::try_trait::Try::branch(@1: Self) -> core::ops::control_flow::ControlFlow[Self::parent_clause0::parent_clause0, Self::parent_clause1] fn core::ops::try_trait::FromResidual::from_residual(@1: R) -> Self @@ -1062,11 +1062,11 @@ where fn core::default::Default::default() -> Self -fn core::iter::traits::double_ended::DoubleEndedIterator::next_back<'_0, Self>(@1: &'_0 mut (Self)) -> core::option::Option<(parents(Self)::[@TraitClause0])::Item, (parents((parents(Self)::[@TraitClause0]))::[@TraitClause0])> +fn core::iter::traits::double_ended::DoubleEndedIterator::next_back<'_0, Self>(@1: &'_0 mut (Self)) -> core::option::Option[Self::parent_clause0::parent_clause0] -fn core::iter::traits::double_ended::DoubleEndedIterator::advance_back_by<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> core::result::Result<(), core::num::nonzero::NonZero, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26>, core::marker::Sized<()>, core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26>>> +fn core::iter::traits::double_ended::DoubleEndedIterator::advance_back_by<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> core::result::Result<(), core::num::nonzero::NonZero[core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26]>[core::marker::Sized<()>, core::marker::Sized[core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26]>] -fn core::iter::traits::double_ended::DoubleEndedIterator::nth_back<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> core::option::Option<(parents(Self)::[@TraitClause0])::Item, (parents((parents(Self)::[@TraitClause0]))::[@TraitClause0])> +fn core::iter::traits::double_ended::DoubleEndedIterator::nth_back<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> core::option::Option[Self::parent_clause0::parent_clause0] fn core::iter::traits::double_ended::DoubleEndedIterator::try_rfold<'_0, Self, B, F, R>(@1: &'_0 mut (Self), @2: B, @3: F) -> R where @@ -1074,9 +1074,9 @@ where [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::marker::Sized, - [@TraitClause4]: core::ops::function::FnMut, + [@TraitClause4]: core::ops::function::FnMut, [@TraitClause5]: core::ops::try_trait::Try, - (parents(@TraitClause4)::[@TraitClause0])::Output = R, + @TraitClause4::parent_clause0::Output = R, @TraitClause5::Output = B, fn core::iter::traits::double_ended::DoubleEndedIterator::rfold(@1: Self, @2: B, @3: F) -> B @@ -1084,15 +1084,15 @@ where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, - [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = B, + [@TraitClause3]: core::ops::function::FnMut, + @TraitClause3::parent_clause0::Output = B, -fn core::iter::traits::double_ended::DoubleEndedIterator::rfind<'_0, Self, P>(@1: &'_0 mut (Self), @2: P) -> core::option::Option<(parents(Self)::[@TraitClause0])::Item, (parents((parents(Self)::[@TraitClause0]))::[@TraitClause0])> +fn core::iter::traits::double_ended::DoubleEndedIterator::rfind<'_0, Self, P>(@1: &'_0 mut (Self), @2: P) -> core::option::Option[Self::parent_clause0::parent_clause0] where [@TraitClause0]: core::marker::Sized

, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + for<'_1_0> @TraitClause2::parent_clause0::Output = bool, -fn core::iter::traits::iterator::Iterator::filter_map(@1: Self, @2: F) -> core::iter::adapters::filter_map::FilterMap +fn core::iter::traits::iterator::Iterator::filter_map(@1: Self, @2: F) -> core::iter::adapters::filter_map::FilterMap[@TraitClause2, @TraitClause1] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = core::option::Option, + @TraitClause3::parent_clause0::Output = core::option::Option[@TraitClause0], -fn core::iter::traits::iterator::Iterator::enumerate(@1: Self) -> core::iter::adapters::enumerate::Enumerate +fn core::iter::traits::iterator::Iterator::enumerate(@1: Self) -> core::iter::adapters::enumerate::Enumerate[@TraitClause0] where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::peekable(@1: Self) -> core::iter::adapters::peekable::Peekable +fn core::iter::traits::iterator::Iterator::peekable(@1: Self) -> core::iter::adapters::peekable::Peekable[@TraitClause0, Self] where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::skip_while(@1: Self, @2: P) -> core::iter::adapters::skip_while::SkipWhile +fn core::iter::traits::iterator::Iterator::skip_while(@1: Self, @2: P) -> core::iter::adapters::skip_while::SkipWhile[@TraitClause1, @TraitClause0] where [@TraitClause0]: core::marker::Sized

, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + for<'_1_0> @TraitClause2::parent_clause0::Output = bool, -fn core::iter::traits::iterator::Iterator::take_while(@1: Self, @2: P) -> core::iter::adapters::take_while::TakeWhile +fn core::iter::traits::iterator::Iterator::take_while(@1: Self, @2: P) -> core::iter::adapters::take_while::TakeWhile[@TraitClause1, @TraitClause0] where [@TraitClause0]: core::marker::Sized

, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + for<'_1_0> @TraitClause2::parent_clause0::Output = bool, -fn core::iter::traits::iterator::Iterator::map_while(@1: Self, @2: P) -> core::iter::adapters::map_while::MapWhile +fn core::iter::traits::iterator::Iterator::map_while(@1: Self, @2: P) -> core::iter::adapters::map_while::MapWhile[@TraitClause2, @TraitClause1] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized

, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = core::option::Option, + @TraitClause3::parent_clause0::Output = core::option::Option[@TraitClause0], -fn core::iter::traits::iterator::Iterator::skip(@1: Self, @2: usize) -> core::iter::adapters::skip::Skip +fn core::iter::traits::iterator::Iterator::skip(@1: Self, @2: usize) -> core::iter::adapters::skip::Skip[@TraitClause0] where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::take(@1: Self, @2: usize) -> core::iter::adapters::take::Take +fn core::iter::traits::iterator::Iterator::take(@1: Self, @2: usize) -> core::iter::adapters::take::Take[@TraitClause0] where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::scan(@1: Self, @2: St, @3: F) -> core::iter::adapters::scan::Scan +fn core::iter::traits::iterator::Iterator::scan(@1: Self, @2: St, @3: F) -> core::iter::adapters::scan::Scan[@TraitClause3, @TraitClause0, @TraitClause2] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::marker::Sized, [@TraitClause4]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause4)::[@TraitClause0])::Output = core::option::Option, + for<'_1_0> @TraitClause4::parent_clause0::Output = core::option::Option[@TraitClause1], -fn core::iter::traits::iterator::Iterator::flat_map(@1: Self, @2: F) -> core::iter::adapters::flatten::FlatMap +fn core::iter::traits::iterator::Iterator::flat_map(@1: Self, @2: F) -> core::iter::adapters::flatten::FlatMap[@TraitClause2, @TraitClause0, @TraitClause1, @TraitClause3] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::iter::traits::collect::IntoIterator, [@TraitClause4]: core::ops::function::FnMut, - (parents(@TraitClause4)::[@TraitClause0])::Output = U, + @TraitClause4::parent_clause0::Output = U, -fn core::iter::traits::iterator::Iterator::flatten(@1: Self) -> core::iter::adapters::flatten::Flatten +fn core::iter::traits::iterator::Iterator::flatten(@1: Self) -> core::iter::adapters::flatten::Flatten[@TraitClause0, Self, @TraitClause1] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::iter::traits::collect::IntoIterator, -fn core::iter::traits::iterator::Iterator::map_windows(@1: Self, @2: F) -> core::iter::adapters::map_windows::MapWindows +fn core::iter::traits::iterator::Iterator::map_windows(@1: Self, @2: F) -> core::iter::adapters::map_windows::MapWindows[@TraitClause2, @TraitClause0, Self] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: for<'_1_0> core::ops::function::FnMut))>, - for<'_1_0> (parents(@TraitClause3)::[@TraitClause0])::Output = R, + for<'_1_0> @TraitClause3::parent_clause0::Output = R, -fn core::iter::traits::iterator::Iterator::fuse(@1: Self) -> core::iter::adapters::fuse::Fuse +fn core::iter::traits::iterator::Iterator::fuse(@1: Self) -> core::iter::adapters::fuse::Fuse[@TraitClause0] where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::inspect(@1: Self, @2: F) -> core::iter::adapters::inspect::Inspect +fn core::iter::traits::iterator::Iterator::inspect(@1: Self, @2: F) -> core::iter::adapters::inspect::Inspect[@TraitClause1, @TraitClause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause2)::[@TraitClause0])::Output = (), + for<'_1_0> @TraitClause2::parent_clause0::Output = (), fn core::iter::traits::iterator::Iterator::by_ref<'_0, Self>(@1: &'_0 mut (Self)) -> &'_0 mut (Self) where @@ -1113,7 +1113,7 @@ where [@TraitClause3]: core::default::Default, [@TraitClause4]: core::iter::traits::collect::Extend, [@TraitClause5]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause5)::[@TraitClause0])::Output = bool, + for<'_1_0> @TraitClause5::parent_clause0::Output = bool, fn core::iter::traits::iterator::Iterator::partition_in_place<'a, Self, T, P>(@1: Self, @2: P) -> usize where @@ -1124,14 +1124,14 @@ where [@TraitClause4]: for<'_1_0> core::ops::function::FnMut, T : 'a, Self::Item = &'a mut (T), - for<'_1_0> (parents(@TraitClause4)::[@TraitClause0])::Output = bool, + for<'_1_0> @TraitClause4::parent_clause0::Output = bool, fn core::iter::traits::iterator::Iterator::is_partitioned(@1: Self, @2: P) -> bool where [@TraitClause0]: core::marker::Sized

, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::ops::function::FnMut, - (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + @TraitClause2::parent_clause0::Output = bool, fn core::iter::traits::iterator::Iterator::try_fold<'_0, Self, B, F, R>(@1: &'_0 mut (Self), @2: B, @3: F) -> R where @@ -1141,7 +1141,7 @@ where [@TraitClause3]: core::marker::Sized, [@TraitClause4]: core::ops::function::FnMut, [@TraitClause5]: core::ops::try_trait::Try, - (parents(@TraitClause4)::[@TraitClause0])::Output = R, + @TraitClause4::parent_clause0::Output = R, @TraitClause5::Output = B, fn core::iter::traits::iterator::Iterator::try_for_each<'_0, Self, F, R>(@1: &'_0 mut (Self), @2: F) -> R @@ -1151,7 +1151,7 @@ where [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::function::FnMut, [@TraitClause4]: core::ops::try_trait::Try, - (parents(@TraitClause3)::[@TraitClause0])::Output = R, + @TraitClause3::parent_clause0::Output = R, @TraitClause4::Output = (), fn core::iter::traits::iterator::Iterator::fold(@1: Self, @2: B, @3: F) -> B @@ -1160,14 +1160,14 @@ where [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = B, + @TraitClause3::parent_clause0::Output = B, -fn core::iter::traits::iterator::Iterator::reduce(@1: Self, @2: F) -> core::option::Option +fn core::iter::traits::iterator::Iterator::reduce(@1: Self, @2: F) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::ops::function::FnMut, - (parents(@TraitClause2)::[@TraitClause0])::Output = Self::Item, + @TraitClause2::parent_clause0::Output = Self::Item, fn core::iter::traits::iterator::Iterator::try_reduce<'_0, Self, R, impl FnMut(Self::Item, Self::Item) -> R>(@1: &'_0 mut (Self), @2: impl FnMut(Self::Item, Self::Item) -> R) -> @TraitClause4::TryType where @@ -1175,39 +1175,39 @@ where [@TraitClause1]: core::marker::Sized R>, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::try_trait::Try, - [@TraitClause4]: core::ops::try_trait::Residual<@TraitClause3::Residual, core::option::Option>, + [@TraitClause4]: core::ops::try_trait::Residual<@TraitClause3::Residual, core::option::Option[Self::parent_clause0]>, [@TraitClause5]: core::ops::function::FnMut R, (Self::Item, Self::Item)>, @TraitClause3::Output = Self::Item, - (parents(@TraitClause5)::[@TraitClause0])::Output = R, + @TraitClause5::parent_clause0::Output = R, fn core::iter::traits::iterator::Iterator::all<'_0, Self, F>(@1: &'_0 mut (Self), @2: F) -> bool where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::ops::function::FnMut, - (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + @TraitClause2::parent_clause0::Output = bool, fn core::iter::traits::iterator::Iterator::any<'_0, Self, F>(@1: &'_0 mut (Self), @2: F) -> bool where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::ops::function::FnMut, - (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + @TraitClause2::parent_clause0::Output = bool, -fn core::iter::traits::iterator::Iterator::find<'_0, Self, P>(@1: &'_0 mut (Self), @2: P) -> core::option::Option +fn core::iter::traits::iterator::Iterator::find<'_0, Self, P>(@1: &'_0 mut (Self), @2: P) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized

, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + for<'_1_0> @TraitClause2::parent_clause0::Output = bool, -fn core::iter::traits::iterator::Iterator::find_map<'_0, Self, B, F>(@1: &'_0 mut (Self), @2: F) -> core::option::Option +fn core::iter::traits::iterator::Iterator::find_map<'_0, Self, B, F>(@1: &'_0 mut (Self), @2: F) -> core::option::Option[@TraitClause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = core::option::Option, + @TraitClause3::parent_clause0::Output = core::option::Option[@TraitClause0], fn core::iter::traits::iterator::Iterator::try_find<'_0, Self, R, impl FnMut(&Self::Item) -> R>(@1: &'_0 mut (Self), @2: impl FnMut(&Self::Item) -> R) -> @TraitClause4::TryType where @@ -1215,70 +1215,70 @@ where [@TraitClause1]: core::marker::Sized R>, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::try_trait::Try, - [@TraitClause4]: core::ops::try_trait::Residual<@TraitClause3::Residual, core::option::Option>, + [@TraitClause4]: core::ops::try_trait::Residual<@TraitClause3::Residual, core::option::Option[Self::parent_clause0]>, [@TraitClause5]: for<'_1_0> core::ops::function::FnMut R, (&'_1_0 (Self::Item))>, @TraitClause3::Output = bool, - for<'_1_0> (parents(@TraitClause5)::[@TraitClause0])::Output = R, + for<'_1_0> @TraitClause5::parent_clause0::Output = R, -fn core::iter::traits::iterator::Iterator::position<'_0, Self, P>(@1: &'_0 mut (Self), @2: P) -> core::option::Option> +fn core::iter::traits::iterator::Iterator::position<'_0, Self, P>(@1: &'_0 mut (Self), @2: P) -> core::option::Option[core::marker::Sized] where [@TraitClause0]: core::marker::Sized

, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::ops::function::FnMut, - (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + @TraitClause2::parent_clause0::Output = bool, -fn core::iter::traits::iterator::Iterator::rposition<'_0, Self, P>(@1: &'_0 mut (Self), @2: P) -> core::option::Option> +fn core::iter::traits::iterator::Iterator::rposition<'_0, Self, P>(@1: &'_0 mut (Self), @2: P) -> core::option::Option[core::marker::Sized] where [@TraitClause0]: core::marker::Sized

, [@TraitClause1]: core::ops::function::FnMut, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::iter::traits::exact_size::ExactSizeIterator, [@TraitClause4]: core::iter::traits::double_ended::DoubleEndedIterator, - (parents(@TraitClause1)::[@TraitClause0])::Output = bool, + @TraitClause1::parent_clause0::Output = bool, -fn core::iter::traits::iterator::Iterator::max(@1: Self) -> core::option::Option +fn core::iter::traits::iterator::Iterator::max(@1: Self) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::cmp::Ord, -fn core::iter::traits::iterator::Iterator::min(@1: Self) -> core::option::Option +fn core::iter::traits::iterator::Iterator::min(@1: Self) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::cmp::Ord, -fn core::iter::traits::iterator::Iterator::max_by_key(@1: Self, @2: F) -> core::option::Option +fn core::iter::traits::iterator::Iterator::max_by_key(@1: Self, @2: F) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::cmp::Ord, [@TraitClause3]: core::marker::Sized, [@TraitClause4]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause4)::[@TraitClause0])::Output = B, + for<'_1_0> @TraitClause4::parent_clause0::Output = B, -fn core::iter::traits::iterator::Iterator::max_by(@1: Self, @2: F) -> core::option::Option +fn core::iter::traits::iterator::Iterator::max_by(@1: Self, @2: F) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: for<'_1_0, '_1_1> core::ops::function::FnMut, - for<'_1_0, '_1_1> (parents(@TraitClause2)::[@TraitClause0])::Output = core::cmp::Ordering, + for<'_1_0, '_1_1> @TraitClause2::parent_clause0::Output = core::cmp::Ordering, -fn core::iter::traits::iterator::Iterator::min_by_key(@1: Self, @2: F) -> core::option::Option +fn core::iter::traits::iterator::Iterator::min_by_key(@1: Self, @2: F) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::cmp::Ord, [@TraitClause3]: core::marker::Sized, [@TraitClause4]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause4)::[@TraitClause0])::Output = B, + for<'_1_0> @TraitClause4::parent_clause0::Output = B, -fn core::iter::traits::iterator::Iterator::min_by(@1: Self, @2: F) -> core::option::Option +fn core::iter::traits::iterator::Iterator::min_by(@1: Self, @2: F) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: for<'_1_0, '_1_1> core::ops::function::FnMut, - for<'_1_0, '_1_1> (parents(@TraitClause2)::[@TraitClause0])::Output = core::cmp::Ordering, + for<'_1_0, '_1_1> @TraitClause2::parent_clause0::Output = core::cmp::Ordering, -fn core::iter::traits::iterator::Iterator::rev(@1: Self) -> core::iter::adapters::rev::Rev +fn core::iter::traits::iterator::Iterator::rev(@1: Self) -> core::iter::adapters::rev::Rev[@TraitClause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::iter::traits::double_ended::DoubleEndedIterator, @@ -1297,7 +1297,7 @@ where [@TraitClause9]: core::iter::traits::iterator::Iterator, Self::Item = (A, B), -fn core::iter::traits::iterator::Iterator::copied<'a, Self, T>(@1: Self) -> core::iter::adapters::copied::Copied +fn core::iter::traits::iterator::Iterator::copied<'a, Self, T>(@1: Self) -> core::iter::adapters::copied::Copied[@TraitClause1] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, @@ -1306,7 +1306,7 @@ where T : 'a, Self::Item = &'a (T), -fn core::iter::traits::iterator::Iterator::cloned<'a, Self, T>(@1: Self) -> core::iter::adapters::cloned::Cloned +fn core::iter::traits::iterator::Iterator::cloned<'a, Self, T>(@1: Self) -> core::iter::adapters::cloned::Cloned[@TraitClause1] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, @@ -1315,12 +1315,12 @@ where T : 'a, Self::Item = &'a (T), -fn core::iter::traits::iterator::Iterator::cycle(@1: Self) -> core::iter::adapters::cycle::Cycle +fn core::iter::traits::iterator::Iterator::cycle(@1: Self) -> core::iter::adapters::cycle::Cycle[@TraitClause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::clone::Clone, -fn core::iter::traits::iterator::Iterator::array_chunks(@1: Self) -> core::iter::adapters::array_chunks::ArrayChunks +fn core::iter::traits::iterator::Iterator::array_chunks(@1: Self) -> core::iter::adapters::array_chunks::ArrayChunks[@TraitClause0, Self] where [@TraitClause0]: core::marker::Sized, @@ -1351,23 +1351,23 @@ where [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::iter::traits::collect::IntoIterator, [@TraitClause4]: core::ops::function::FnMut, - (parents(@TraitClause4)::[@TraitClause0])::Output = core::cmp::Ordering, + @TraitClause4::parent_clause0::Output = core::cmp::Ordering, -fn core::iter::traits::iterator::Iterator::partial_cmp(@1: Self, @2: I) -> core::option::Option> +fn core::iter::traits::iterator::Iterator::partial_cmp(@1: Self, @2: I) -> core::option::Option[core::marker::Sized] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::iter::traits::collect::IntoIterator, [@TraitClause2]: core::cmp::PartialOrd, [@TraitClause3]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::partial_cmp_by(@1: Self, @2: I, @3: F) -> core::option::Option> +fn core::iter::traits::iterator::Iterator::partial_cmp_by(@1: Self, @2: I, @3: F) -> core::option::Option[core::marker::Sized] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::iter::traits::collect::IntoIterator, [@TraitClause4]: core::ops::function::FnMut, - (parents(@TraitClause4)::[@TraitClause0])::Output = core::option::Option>, + @TraitClause4::parent_clause0::Output = core::option::Option[core::marker::Sized], fn core::iter::traits::iterator::Iterator::eq(@1: Self, @2: I) -> bool where @@ -1383,7 +1383,7 @@ where [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::iter::traits::collect::IntoIterator, [@TraitClause4]: core::ops::function::FnMut, - (parents(@TraitClause4)::[@TraitClause0])::Output = bool, + @TraitClause4::parent_clause0::Output = bool, fn core::iter::traits::iterator::Iterator::ne(@1: Self, @2: I) -> bool where @@ -1430,7 +1430,7 @@ where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: for<'_1_0, '_1_1> core::ops::function::FnMut, - for<'_1_0, '_1_1> (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + for<'_1_0, '_1_1> @TraitClause2::parent_clause0::Output = bool, fn core::iter::traits::iterator::Iterator::is_sorted_by_key(@1: Self, @2: F) -> bool where @@ -1439,7 +1439,7 @@ where [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::function::FnMut, [@TraitClause4]: core::cmp::PartialOrd, - (parents(@TraitClause3)::[@TraitClause0])::Output = K, + @TraitClause3::parent_clause0::Output = K, unsafe fn core::iter::traits::iterator::Iterator::__iterator_get_unchecked<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> Self::Item where @@ -1474,7 +1474,7 @@ where fn core::ops::try_trait::Try::from_output(@1: Self::Output) -> Self -fn core::ops::try_trait::Try::branch(@1: Self) -> core::ops::control_flow::ControlFlow +fn core::ops::try_trait::Try::branch(@1: Self) -> core::ops::control_flow::ControlFlow[Self::parent_clause0::parent_clause0, Self::parent_clause1] fn core::ops::try_trait::FromResidual::from_residual(@1: R) -> Self @@ -1494,11 +1494,11 @@ where fn core::default::Default::default() -> Self -fn core::iter::traits::double_ended::DoubleEndedIterator::next_back<'_0, Self>(@1: &'_0 mut (Self)) -> core::option::Option<(parents(Self)::[@TraitClause0])::Item, (parents((parents(Self)::[@TraitClause0]))::[@TraitClause0])> +fn core::iter::traits::double_ended::DoubleEndedIterator::next_back<'_0, Self>(@1: &'_0 mut (Self)) -> core::option::Option[Self::parent_clause0::parent_clause0] -fn core::iter::traits::double_ended::DoubleEndedIterator::advance_back_by<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> core::result::Result<(), core::num::nonzero::NonZero, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26>, core::marker::Sized<()>, core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26>>> +fn core::iter::traits::double_ended::DoubleEndedIterator::advance_back_by<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> core::result::Result<(), core::num::nonzero::NonZero[core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26]>[core::marker::Sized<()>, core::marker::Sized[core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26]>] -fn core::iter::traits::double_ended::DoubleEndedIterator::nth_back<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> core::option::Option<(parents(Self)::[@TraitClause0])::Item, (parents((parents(Self)::[@TraitClause0]))::[@TraitClause0])> +fn core::iter::traits::double_ended::DoubleEndedIterator::nth_back<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> core::option::Option[Self::parent_clause0::parent_clause0] fn core::iter::traits::double_ended::DoubleEndedIterator::try_rfold<'_0, Self, B, F, R>(@1: &'_0 mut (Self), @2: B, @3: F) -> R where @@ -1506,9 +1506,9 @@ where [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::marker::Sized, - [@TraitClause4]: core::ops::function::FnMut, + [@TraitClause4]: core::ops::function::FnMut, [@TraitClause5]: core::ops::try_trait::Try, - (parents(@TraitClause4)::[@TraitClause0])::Output = R, + @TraitClause4::parent_clause0::Output = R, @TraitClause5::Output = B, fn core::iter::traits::double_ended::DoubleEndedIterator::rfold(@1: Self, @2: B, @3: F) -> B @@ -1516,15 +1516,15 @@ where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, - [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = B, + [@TraitClause3]: core::ops::function::FnMut, + @TraitClause3::parent_clause0::Output = B, -fn core::iter::traits::double_ended::DoubleEndedIterator::rfind<'_0, Self, P>(@1: &'_0 mut (Self), @2: P) -> core::option::Option<(parents(Self)::[@TraitClause0])::Item, (parents((parents(Self)::[@TraitClause0]))::[@TraitClause0])> +fn core::iter::traits::double_ended::DoubleEndedIterator::rfind<'_0, Self, P>(@1: &'_0 mut (Self), @2: P) -> core::option::Option[Self::parent_clause0::parent_clause0] where [@TraitClause0]: core::marker::Sized

, [@TraitClause1]: core::marker::Sized, - [@TraitClause2]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + [@TraitClause2]: for<'_1_0> core::ops::function::FnMut, + for<'_1_0> @TraitClause2::parent_clause0::Output = bool, fn core::iter::traits::exact_size::ExactSizeIterator::len<'_0, Self>(@1: &'_0 (Self)) -> usize diff --git a/charon/tests/ui/issue-70-override-provided-method.3.out b/charon/tests/ui/issue-70-override-provided-method.3.out index caa39131..219c351e 100644 --- a/charon/tests/ui/issue-70-override-provided-method.3.out +++ b/charon/tests/ui/issue-70-override-provided-method.3.out @@ -4,7 +4,7 @@ trait core::marker::Sized trait core::clone::Clone { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized fn clone : core::clone::Clone::clone fn clone_from : core::clone::Clone::clone_from } @@ -17,8 +17,8 @@ trait core::cmp::PartialEq trait test_crate::GenericTrait { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::clone::Clone + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::clone::Clone fn other_method : test_crate::GenericTrait::other_method fn provided : test_crate::GenericTrait::provided } @@ -41,32 +41,32 @@ enum core::option::Option trait core::marker::Copy { - parent_clause_0 : [@TraitClause0]: core::clone::Clone + parent_clause0 : [@TraitClause0]: core::clone::Clone } -fn core::option::{impl core::clone::Clone for core::option::Option}#5::clone<'_0, T>(@1: &'_0 (core::option::Option)) -> core::option::Option +fn core::option::{impl core::clone::Clone for core::option::Option[@TraitClause0]}#5::clone<'_0, T>(@1: &'_0 (core::option::Option[@TraitClause0])) -> core::option::Option[@TraitClause0] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::clone::Clone, -fn core::option::{impl core::clone::Clone for core::option::Option}#5::clone_from<'_0, '_1, T>(@1: &'_0 mut (core::option::Option), @2: &'_1 (core::option::Option)) +fn core::option::{impl core::clone::Clone for core::option::Option[@TraitClause0]}#5::clone_from<'_0, '_1, T>(@1: &'_0 mut (core::option::Option[@TraitClause0]), @2: &'_1 (core::option::Option[@TraitClause0])) where // Inherited clauses: [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::clone::Clone, -impl core::option::{impl core::clone::Clone for core::option::Option}#5 : core::clone::Clone> +impl core::option::{impl core::clone::Clone for core::option::Option[@TraitClause0]}#5 : core::clone::Clone[@TraitClause0]> where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::clone::Clone, { - parent_clause0 = core::marker::Sized> - fn clone = core::option::{impl core::clone::Clone for core::option::Option}#5::clone - fn clone_from = core::option::{impl core::clone::Clone for core::option::Option}#5::clone_from + parent_clause0 = core::marker::Sized[@TraitClause0]> + fn clone = core::option::{impl core::clone::Clone for core::option::Option[@TraitClause0]}#5::clone + fn clone_from = core::option::{impl core::clone::Clone for core::option::Option[@TraitClause0]}#5::clone_from } -fn test_crate::{impl test_crate::GenericTrait> for test_crate::Override}::other_method() +fn test_crate::{impl test_crate::GenericTrait[@TraitClause0]> for test_crate::Override[@TraitClause0]}::other_method() where // Inherited clauses: [@TraitClause0]: core::marker::Sized, @@ -85,7 +85,7 @@ fn core::cmp::PartialEq::eq<'_0, '_1, Self, Rhs>(@1: &'_0 (Self), @2: &'_1 (Rhs) fn test_crate::GenericTrait::other_method() -fn test_crate::{impl test_crate::GenericTrait> for test_crate::Override}::provided(@1: T, @2: U) +fn test_crate::{impl test_crate::GenericTrait[@TraitClause0]> for test_crate::Override[@TraitClause0]}::provided(@1: T, @2: U) where // Inherited clauses: [@TraitClause0]: core::marker::Sized, @@ -108,7 +108,7 @@ where if move (@3) { drop @5 drop @4 - @0 := test_crate::{impl test_crate::GenericTrait> for test_crate::Override}[@TraitClause0, @TraitClause1]::other_method() + @0 := test_crate::{impl test_crate::GenericTrait[@TraitClause0]> for test_crate::Override[@TraitClause0]}[@TraitClause0, @TraitClause1]::other_method() } else { drop @5 @@ -122,15 +122,15 @@ where return } -impl test_crate::{impl test_crate::GenericTrait> for test_crate::Override} : test_crate::GenericTrait, core::option::Option> +impl test_crate::{impl test_crate::GenericTrait[@TraitClause0]> for test_crate::Override[@TraitClause0]} : test_crate::GenericTrait[@TraitClause0], core::option::Option[@TraitClause0]> where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Copy, { - parent_clause0 = core::marker::Sized> - parent_clause1 = core::option::{impl core::clone::Clone for core::option::Option}#5[@TraitClause0, (parents(@TraitClause1)::[@TraitClause0])] - fn other_method = test_crate::{impl test_crate::GenericTrait> for test_crate::Override}::other_method - fn provided = test_crate::{impl test_crate::GenericTrait> for test_crate::Override}::provided + parent_clause0 = core::marker::Sized[@TraitClause0]> + parent_clause1 = core::option::{impl core::clone::Clone for core::option::Option[@TraitClause0]}#5[@TraitClause0, @TraitClause1::parent_clause0] + fn other_method = test_crate::{impl test_crate::GenericTrait[@TraitClause0]> for test_crate::Override[@TraitClause0]}::other_method + fn provided = test_crate::{impl test_crate::GenericTrait[@TraitClause0]> for test_crate::Override[@TraitClause0]}::provided } struct test_crate::NoOverride @@ -141,7 +141,7 @@ struct test_crate::NoOverride T, } -fn test_crate::{impl test_crate::GenericTrait> for test_crate::NoOverride}#1::other_method() +fn test_crate::{impl test_crate::GenericTrait[@TraitClause0]> for test_crate::NoOverride[@TraitClause0]}#1::other_method() where // Inherited clauses: [@TraitClause0]: core::marker::Sized, @@ -156,14 +156,14 @@ where return } -impl test_crate::{impl test_crate::GenericTrait> for test_crate::NoOverride}#1 : test_crate::GenericTrait, core::option::Option> +impl test_crate::{impl test_crate::GenericTrait[@TraitClause0]> for test_crate::NoOverride[@TraitClause0]}#1 : test_crate::GenericTrait[@TraitClause0], core::option::Option[@TraitClause0]> where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Copy, { - parent_clause0 = core::marker::Sized> - parent_clause1 = core::option::{impl core::clone::Clone for core::option::Option}#5[@TraitClause0, (parents(@TraitClause1)::[@TraitClause0])] - fn other_method = test_crate::{impl test_crate::GenericTrait> for test_crate::NoOverride}#1::other_method + parent_clause0 = core::marker::Sized[@TraitClause0]> + parent_clause1 = core::option::{impl core::clone::Clone for core::option::Option[@TraitClause0]}#5[@TraitClause0, @TraitClause1::parent_clause0] + fn other_method = test_crate::{impl test_crate::GenericTrait[@TraitClause0]> for test_crate::NoOverride[@TraitClause0]}#1::other_method } fn test_crate::GenericTrait::provided(@1: T, @2: U) diff --git a/charon/tests/ui/issue-70-override-provided-method.out b/charon/tests/ui/issue-70-override-provided-method.out index 64e9367e..9c99d709 100644 --- a/charon/tests/ui/issue-70-override-provided-method.out +++ b/charon/tests/ui/issue-70-override-provided-method.out @@ -16,18 +16,18 @@ trait core::cmp::PartialEq fn ne : core::cmp::PartialEq::ne } -fn core::option::{impl core::cmp::PartialEq> for core::option::Option}#14::eq<'_0, '_1, T>(@1: &'_0 (core::option::Option), @2: &'_1 (core::option::Option)) -> bool +fn core::option::{impl core::cmp::PartialEq[@TraitClause0]> for core::option::Option[@TraitClause0]}#14::eq<'_0, '_1, T>(@1: &'_0 (core::option::Option[@TraitClause0]), @2: &'_1 (core::option::Option[@TraitClause0])) -> bool where // Inherited clauses: [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::cmp::PartialEq, -impl core::option::{impl core::cmp::PartialEq> for core::option::Option}#14 : core::cmp::PartialEq, core::option::Option> +impl core::option::{impl core::cmp::PartialEq[@TraitClause0]> for core::option::Option[@TraitClause0]}#14 : core::cmp::PartialEq[@TraitClause0], core::option::Option[@TraitClause0]> where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::cmp::PartialEq, { - fn eq = core::option::{impl core::cmp::PartialEq> for core::option::Option}#14::eq + fn eq = core::option::{impl core::cmp::PartialEq[@TraitClause0]> for core::option::Option[@TraitClause0]}#14::eq } fn core::cmp::impls::{impl core::cmp::PartialEq for i32}#30::eq<'_0, '_1>(@1: &'_0 (i32), @2: &'_1 (i32)) -> bool @@ -46,17 +46,17 @@ fn test_crate::main() { let @0: (); // return let @1: bool; // anonymous local - let @2: &'_ (core::option::Option>); // anonymous local - let @3: core::option::Option>; // anonymous local - let @4: &'_ (core::option::Option>); // anonymous local - let @5: core::option::Option>; // anonymous local + let @2: &'_ (core::option::Option[core::marker::Sized]); // anonymous local + let @3: core::option::Option[core::marker::Sized]; // anonymous local + let @4: &'_ (core::option::Option[core::marker::Sized]); // anonymous local + let @5: core::option::Option[core::marker::Sized]; // anonymous local let @6: (); // anonymous local @3 := core::option::Option::Some { 0: const (1 : i32) } @2 := &@3 @5 := core::option::Option::Some { 0: const (1 : i32) } @4 := &@5 - @1 := core::option::{impl core::cmp::PartialEq> for core::option::Option}#14[core::marker::Sized, core::cmp::impls::{impl core::cmp::PartialEq for i32}#30]::eq(move (@2), move (@4)) + @1 := core::option::{impl core::cmp::PartialEq[@TraitClause0]> for core::option::Option[@TraitClause0]}#14[core::marker::Sized, core::cmp::impls::{impl core::cmp::PartialEq for i32}#30]::eq(move (@2), move (@4)) drop @4 drop @2 @fake_read(@1) @@ -107,7 +107,7 @@ enum core::cmp::Ordering = trait core::cmp::PartialOrd { - parent_clause_0 : [@TraitClause0]: core::cmp::PartialEq + parent_clause0 : [@TraitClause0]: core::cmp::PartialEq fn partial_cmp : core::cmp::PartialOrd::partial_cmp fn lt : core::cmp::PartialOrd::lt fn le : core::cmp::PartialOrd::le @@ -125,7 +125,7 @@ impl core::cmp::impls::{impl core::cmp::PartialEq for u32}#24 : core::cmp:: fn ne = core::cmp::impls::{impl core::cmp::PartialEq for u32}#24::ne } -fn core::cmp::impls::{impl core::cmp::PartialOrd for u32}#64::partial_cmp<'_0, '_1>(@1: &'_0 (u32), @2: &'_1 (u32)) -> core::option::Option> +fn core::cmp::impls::{impl core::cmp::PartialOrd for u32}#64::partial_cmp<'_0, '_1>(@1: &'_0 (u32), @2: &'_1 (u32)) -> core::option::Option[core::marker::Sized] fn core::cmp::impls::{impl core::cmp::PartialOrd for u32}#64::lt<'_0, '_1>(@1: &'_0 (u32), @2: &'_1 (u32)) -> bool @@ -145,11 +145,11 @@ impl core::cmp::impls::{impl core::cmp::PartialOrd for u32}#64 : core::cmp: fn ge = core::cmp::impls::{impl core::cmp::PartialOrd for u32}#64::ge } -fn core::cmp::PartialOrd::partial_cmp<'_0, '_1, Self, Rhs>(@1: &'_0 (Self), @2: &'_1 (Rhs)) -> core::option::Option> +fn core::cmp::PartialOrd::partial_cmp<'_0, '_1, Self, Rhs>(@1: &'_0 (Self), @2: &'_1 (Rhs)) -> core::option::Option[core::marker::Sized] -fn test_crate::{impl core::cmp::PartialOrd for test_crate::Foo}#2::partial_cmp<'_0, '_1>(@1: &'_0 (test_crate::Foo), @2: &'_1 (test_crate::Foo)) -> core::option::Option> +fn test_crate::{impl core::cmp::PartialOrd for test_crate::Foo}#2::partial_cmp<'_0, '_1>(@1: &'_0 (test_crate::Foo), @2: &'_1 (test_crate::Foo)) -> core::option::Option[core::marker::Sized] { - let @0: core::option::Option>; // return + let @0: core::option::Option[core::marker::Sized]; // return let self@1: &'_ (test_crate::Foo); // arg #1 let other@2: &'_ (test_crate::Foo); // arg #2 let @3: &'_ (u32); // anonymous local diff --git a/charon/tests/ui/issue-91-enum-to-discriminant-cast.out b/charon/tests/ui/issue-91-enum-to-discriminant-cast.out index 4298075d..adc61cc4 100644 --- a/charon/tests/ui/issue-91-enum-to-discriminant-cast.out +++ b/charon/tests/ui/issue-91-enum-to-discriminant-cast.out @@ -9,14 +9,14 @@ trait core::marker::Sized trait core::clone::Clone { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized fn clone : core::clone::Clone::clone fn clone_from : core::clone::Clone::clone_from } trait core::marker::Copy { - parent_clause_0 : [@TraitClause0]: core::clone::Clone + parent_clause0 : [@TraitClause0]: core::clone::Clone } fn test_crate::{impl core::clone::Clone for test_crate::Foo}#1::clone<'_0>(@1: &'_0 (test_crate::Foo)) -> test_crate::Foo diff --git a/charon/tests/ui/issue-93-recursive-traits-with-assoc-types.out b/charon/tests/ui/issue-93-recursive-traits-with-assoc-types.out index 1bbe4320..bb6b9200 100644 --- a/charon/tests/ui/issue-93-recursive-traits-with-assoc-types.out +++ b/charon/tests/ui/issue-93-recursive-traits-with-assoc-types.out @@ -4,16 +4,16 @@ trait core::marker::Sized trait test_crate::Trait1 { - parent_clause_0 : [@TraitClause0]: test_crate::Trait2 - parent_clause_1 : [@TraitClause1]: test_crate::Trait1 - parent_clause_2 : [@TraitClause2]: core::marker::Sized + parent_clause0 : [@TraitClause0]: test_crate::Trait2 + parent_clause1 : [@TraitClause1]: test_crate::Trait1 + parent_clause2 : [@TraitClause2]: core::marker::Sized type T } trait test_crate::Trait2 { - parent_clause_0 : [@TraitClause0]: test_crate::Trait1 - parent_clause_1 : [@TraitClause1]: core::marker::Sized + parent_clause0 : [@TraitClause0]: test_crate::Trait1 + parent_clause1 : [@TraitClause1]: core::marker::Sized type U } diff --git a/charon/tests/ui/issue-94-recursive-trait-defns.out b/charon/tests/ui/issue-94-recursive-trait-defns.out index 42dc0e77..d8b2b435 100644 --- a/charon/tests/ui/issue-94-recursive-trait-defns.out +++ b/charon/tests/ui/issue-94-recursive-trait-defns.out @@ -4,61 +4,61 @@ trait core::marker::Sized trait test_crate::Trait1 { - parent_clause_0 : [@TraitClause0]: test_crate::Trait2 - parent_clause_1 : [@TraitClause1]: test_crate::Trait1 - parent_clause_2 : [@TraitClause2]: core::marker::Sized + parent_clause0 : [@TraitClause0]: test_crate::Trait2 + parent_clause1 : [@TraitClause1]: test_crate::Trait1 + parent_clause2 : [@TraitClause2]: core::marker::Sized type T } trait test_crate::Trait2 { - parent_clause_0 : [@TraitClause0]: test_crate::Trait1 + parent_clause0 : [@TraitClause0]: test_crate::Trait1 } trait test_crate::T1 { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::marker::Sized - parent_clause_2 : [@TraitClause2]: test_crate::T2 + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::marker::Sized + parent_clause2 : [@TraitClause2]: test_crate::T2 } trait test_crate::T2 { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::marker::Sized - parent_clause_2 : [@TraitClause2]: test_crate::T1 + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::marker::Sized + parent_clause2 : [@TraitClause2]: test_crate::T1 } trait test_crate::T3 { - parent_clause_0 : [@TraitClause0]: test_crate::T5 - parent_clause_1 : [@TraitClause1]: core::marker::Sized + parent_clause0 : [@TraitClause0]: test_crate::T5 + parent_clause1 : [@TraitClause1]: core::marker::Sized type T } trait test_crate::T5 { - parent_clause_0 : [@TraitClause0]: test_crate::T4 - parent_clause_1 : [@TraitClause1]: test_crate::T3 - parent_clause_2 : [@TraitClause2]: core::marker::Sized + parent_clause0 : [@TraitClause0]: test_crate::T4 + parent_clause1 : [@TraitClause1]: test_crate::T3 + parent_clause2 : [@TraitClause2]: core::marker::Sized type T } trait test_crate::T4 { - parent_clause_0 : [@TraitClause0]: test_crate::T3 + parent_clause0 : [@TraitClause0]: test_crate::T3 } trait test_crate::T6 { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: test_crate::T7 + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: test_crate::T7 fn f : test_crate::T6::f } trait test_crate::T7 { - parent_clause_0 : [@TraitClause0]: test_crate::T6 + parent_clause0 : [@TraitClause0]: test_crate::T6 fn g : test_crate::T7::g } @@ -71,7 +71,7 @@ fn test_crate::T6::f(@1: u64) let @2: u64; // anonymous local @2 := copy (x@1) - @0 := (parents(Self)::[@TraitClause1])::g(move (@2)) + @0 := Self::parent_clause1::g(move (@2)) drop @2 @0 := () return diff --git a/charon/tests/ui/issue-97-missing-parent-item-clause.out b/charon/tests/ui/issue-97-missing-parent-item-clause.out index 879ac5e6..6656d6d0 100644 --- a/charon/tests/ui/issue-97-missing-parent-item-clause.out +++ b/charon/tests/ui/issue-97-missing-parent-item-clause.out @@ -12,30 +12,30 @@ struct test_crate::AVLTree x: T, } -fn test_crate::{test_crate::AVLTree}::insert<'_0, T>(@1: &'_0 mut (test_crate::AVLTree)) +fn test_crate::{test_crate::AVLTree[@TraitClause0]}::insert<'_0, T>(@1: &'_0 mut (test_crate::AVLTree[@TraitClause0])) where // Inherited clauses: [@TraitClause0]: core::marker::Sized, [@TraitClause1]: test_crate::Ord, { let @0: (); // return - let self@1: &'_ mut (test_crate::AVLTree); // arg #1 + let self@1: &'_ mut (test_crate::AVLTree[@TraitClause0]); // arg #1 panic(core::panicking::panic) } impl test_crate::{impl test_crate::Ord for u32}#1 : test_crate::Ord -fn test_crate::test(@1: test_crate::AVLTree>) +fn test_crate::test(@1: test_crate::AVLTree[core::marker::Sized]) { let @0: (); // return - let tree@1: test_crate::AVLTree>; // arg #1 + let tree@1: test_crate::AVLTree[core::marker::Sized]; // arg #1 let @2: (); // anonymous local - let @3: &'_ mut (test_crate::AVLTree>); // anonymous local + let @3: &'_ mut (test_crate::AVLTree[core::marker::Sized]); // anonymous local let @4: (); // anonymous local @3 := &two-phase-mut tree@1 - @2 := test_crate::{test_crate::AVLTree}::insert[core::marker::Sized, test_crate::{impl test_crate::Ord for u32}#1](move (@3)) + @2 := test_crate::{test_crate::AVLTree[@TraitClause0]}::insert[core::marker::Sized, test_crate::{impl test_crate::Ord for u32}#1](move (@3)) drop @3 drop @2 @4 := () diff --git a/charon/tests/ui/loops.out b/charon/tests/ui/loops.out index 666b92b3..f131b900 100644 --- a/charon/tests/ui/loops.out +++ b/charon/tests/ui/loops.out @@ -802,26 +802,26 @@ opaque type core::array::iter::IntoIter trait core::clone::Clone { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized fn clone : core::clone::Clone::clone fn clone_from : core::clone::Clone::clone_from } trait core::marker::Copy { - parent_clause_0 : [@TraitClause0]: core::clone::Clone + parent_clause0 : [@TraitClause0]: core::clone::Clone } trait core::num::nonzero::private::Sealed trait core::num::nonzero::ZeroablePrimitive { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::marker::Copy - parent_clause_2 : [@TraitClause2]: core::num::nonzero::private::Sealed - parent_clause_3 : [@TraitClause3]: core::marker::Copy - parent_clause_4 : [@TraitClause4]: core::clone::Clone - parent_clause_5 : [@TraitClause5]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::marker::Copy + parent_clause2 : [@TraitClause2]: core::num::nonzero::private::Sealed + parent_clause3 : [@TraitClause3]: core::marker::Copy + parent_clause4 : [@TraitClause4]: core::clone::Clone + parent_clause5 : [@TraitClause5]: core::marker::Sized type NonZeroInner } @@ -889,18 +889,18 @@ trait core::marker::Tuple trait core::ops::function::FnOnce { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::marker::Tuple - parent_clause_2 : [@TraitClause2]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::marker::Tuple + parent_clause2 : [@TraitClause2]: core::marker::Sized type Output fn call_once : core::ops::function::FnOnce::call_once } trait core::ops::function::FnMut { - parent_clause_0 : [@TraitClause0]: core::ops::function::FnOnce - parent_clause_1 : [@TraitClause1]: core::marker::Sized - parent_clause_2 : [@TraitClause2]: core::marker::Tuple + parent_clause0 : [@TraitClause0]: core::ops::function::FnOnce + parent_clause1 : [@TraitClause1]: core::marker::Sized + parent_clause2 : [@TraitClause2]: core::marker::Tuple fn call_mut : core::ops::function::FnMut::call_mut } @@ -963,7 +963,7 @@ opaque type core::iter::adapters::inspect::Inspect trait core::ops::try_trait::FromResidual { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized fn from_residual : core::ops::try_trait::FromResidual::from_residual } @@ -978,9 +978,9 @@ enum core::ops::control_flow::ControlFlow trait core::ops::try_trait::Try { - parent_clause_0 : [@TraitClause0]: core::ops::try_trait::FromResidual - parent_clause_1 : [@TraitClause1]: core::marker::Sized - parent_clause_2 : [@TraitClause2]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::ops::try_trait::FromResidual + parent_clause1 : [@TraitClause1]: core::marker::Sized + parent_clause2 : [@TraitClause2]: core::marker::Sized type Output type Residual fn from_output : core::ops::try_trait::Try::from_output @@ -989,19 +989,19 @@ trait core::ops::try_trait::Try trait core::ops::try_trait::Residual where - (parents(Self)::[@TraitClause1])::Residual = Self, - (parents(Self)::[@TraitClause1])::Output = O, + Self::parent_clause1::Residual = Self, + Self::parent_clause1::Output = O, { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::ops::try_trait::Try - parent_clause_2 : [@TraitClause2]: core::ops::try_trait::FromResidual - parent_clause_3 : [@TraitClause3]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::ops::try_trait::Try + parent_clause2 : [@TraitClause2]: core::ops::try_trait::FromResidual + parent_clause3 : [@TraitClause3]: core::marker::Sized type TryType } trait core::default::Default { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized fn default : core::default::Default::default } @@ -1013,7 +1013,7 @@ trait core::cmp::PartialEq trait core::cmp::Eq { - parent_clause_0 : [@TraitClause0]: core::cmp::PartialEq + parent_clause0 : [@TraitClause0]: core::cmp::PartialEq fn assert_receiver_is_total_eq : core::cmp::Eq::assert_receiver_is_total_eq } @@ -1025,7 +1025,7 @@ enum core::cmp::Ordering = trait core::cmp::PartialOrd { - parent_clause_0 : [@TraitClause0]: core::cmp::PartialEq + parent_clause0 : [@TraitClause0]: core::cmp::PartialEq fn partial_cmp : core::cmp::PartialOrd::partial_cmp fn lt : core::cmp::PartialOrd::lt fn le : core::cmp::PartialOrd::le @@ -1035,8 +1035,8 @@ trait core::cmp::PartialOrd trait core::cmp::Ord { - parent_clause_0 : [@TraitClause0]: core::cmp::Eq - parent_clause_1 : [@TraitClause1]: core::cmp::PartialOrd + parent_clause0 : [@TraitClause0]: core::cmp::Eq + parent_clause1 : [@TraitClause1]: core::cmp::PartialOrd fn cmp : core::cmp::Ord::cmp fn max : core::cmp::Ord::max fn min : core::cmp::Ord::min @@ -1061,7 +1061,7 @@ opaque type core::iter::adapters::cycle::Cycle trait core::iter::traits::iterator::Iterator { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized type Item fn next : core::iter::traits::iterator::Iterator::next fn next_chunk : core::iter::traits::iterator::Iterator::next_chunk @@ -1144,11 +1144,11 @@ trait core::iter::traits::iterator::Iterator trait core::iter::traits::collect::IntoIterator where - (parents(Self)::[@TraitClause1])::Item = Self::Item, + Self::parent_clause1::Item = Self::Item, { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::iter::traits::iterator::Iterator - parent_clause_2 : [@TraitClause2]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::iter::traits::iterator::Iterator + parent_clause2 : [@TraitClause2]: core::marker::Sized type Item type IntoIter fn into_iter : core::iter::traits::collect::IntoIterator::into_iter @@ -1192,14 +1192,14 @@ opaque type core::iter::adapters::map_windows::MapWindows trait core::iter::traits::collect::FromIterator { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::marker::Sized fn from_iter : core::iter::traits::collect::FromIterator::from_iter } trait core::iter::traits::collect::Extend { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized fn extend : core::iter::traits::collect::Extend::extend fn extend_one : core::iter::traits::collect::Extend::extend_one fn extend_reserve : core::iter::traits::collect::Extend::extend_reserve @@ -1208,7 +1208,7 @@ trait core::iter::traits::collect::Extend trait core::iter::traits::double_ended::DoubleEndedIterator { - parent_clause_0 : [@TraitClause0]: core::iter::traits::iterator::Iterator + parent_clause0 : [@TraitClause0]: core::iter::traits::iterator::Iterator fn next_back : core::iter::traits::double_ended::DoubleEndedIterator::next_back fn advance_back_by : core::iter::traits::double_ended::DoubleEndedIterator::advance_back_by fn nth_back : core::iter::traits::double_ended::DoubleEndedIterator::nth_back @@ -1219,7 +1219,7 @@ trait core::iter::traits::double_ended::DoubleEndedIterator trait core::iter::traits::exact_size::ExactSizeIterator { - parent_clause_0 : [@TraitClause0]: core::iter::traits::iterator::Iterator + parent_clause0 : [@TraitClause0]: core::iter::traits::iterator::Iterator fn len : core::iter::traits::exact_size::ExactSizeIterator::len fn is_empty : core::iter::traits::exact_size::ExactSizeIterator::is_empty } @@ -1231,21 +1231,21 @@ opaque type core::iter::adapters::array_chunks::ArrayChunks trait core::iter::traits::accum::Sum { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::marker::Sized fn sum : core::iter::traits::accum::Sum::sum } trait core::iter::traits::accum::Product { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::marker::Sized fn product : core::iter::traits::accum::Product::product } trait core::iter::adapters::zip::TrustedRandomAccessNoCoerce { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized const MAY_HAVE_SIDE_EFFECT : bool fn size : core::iter::adapters::zip::TrustedRandomAccessNoCoerce::size } @@ -1261,7 +1261,7 @@ where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::iter::traits::iterator::Iterator, { - parent_clause0 = (parents(@TraitClause1)::[@TraitClause0]) + parent_clause0 = @TraitClause1::parent_clause0 parent_clause1 = @TraitClause1 parent_clause2 = @TraitClause0 type Item = @TraitClause1::Item @@ -1271,9 +1271,9 @@ where trait core::iter::range::Step { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::clone::Clone - parent_clause_2 : [@TraitClause2]: core::cmp::PartialOrd + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::clone::Clone + parent_clause2 : [@TraitClause2]: core::cmp::PartialOrd fn steps_between : core::iter::range::Step::steps_between fn forward_checked : core::iter::range::Step::forward_checked fn backward_checked : core::iter::range::Step::backward_checked @@ -1283,43 +1283,43 @@ trait core::iter::range::Step fn backward_unchecked : core::iter::range::Step::backward_unchecked } -fn core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6::next<'_0, A>(@1: &'_0 mut (core::ops::range::Range)) -> core::option::Option +fn core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6::next<'_0, A>(@1: &'_0 mut (core::ops::range::Range[@TraitClause0])) -> core::option::Option[@TraitClause0] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::iter::range::Step, -fn core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6::size_hint<'_0, A>(@1: &'_0 (core::ops::range::Range)) -> (usize, core::option::Option>) +fn core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6::size_hint<'_0, A>(@1: &'_0 (core::ops::range::Range[@TraitClause0])) -> (usize, core::option::Option[core::marker::Sized]) where // Inherited clauses: [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::iter::range::Step, -fn core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6::count(@1: core::ops::range::Range) -> usize +fn core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6::count(@1: core::ops::range::Range[@TraitClause0]) -> usize where // Inherited clauses: [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::iter::range::Step, -fn core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6::last(@1: core::ops::range::Range) -> core::option::Option +fn core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6::last(@1: core::ops::range::Range[@TraitClause0]) -> core::option::Option[@TraitClause0] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::iter::range::Step, -fn core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6::advance_by<'_0, A>(@1: &'_0 mut (core::ops::range::Range), @2: usize) -> core::result::Result<(), core::num::nonzero::NonZero, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26>, core::marker::Sized<()>, core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26>>> +fn core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6::advance_by<'_0, A>(@1: &'_0 mut (core::ops::range::Range[@TraitClause0]), @2: usize) -> core::result::Result<(), core::num::nonzero::NonZero[core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26]>[core::marker::Sized<()>, core::marker::Sized[core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26]>] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::iter::range::Step, -fn core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6::nth<'_0, A>(@1: &'_0 mut (core::ops::range::Range), @2: usize) -> core::option::Option +fn core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6::nth<'_0, A>(@1: &'_0 mut (core::ops::range::Range[@TraitClause0]), @2: usize) -> core::option::Option[@TraitClause0] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::iter::range::Step, -fn core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6::max(@1: core::ops::range::Range) -> core::option::Option +fn core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6::max(@1: core::ops::range::Range[@TraitClause0]) -> core::option::Option[@TraitClause0] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, @@ -1327,7 +1327,7 @@ where // Local clauses: [@TraitClause2]: core::cmp::Ord, -fn core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6::min(@1: core::ops::range::Range) -> core::option::Option +fn core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6::min(@1: core::ops::range::Range[@TraitClause0]) -> core::option::Option[@TraitClause0] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, @@ -1335,37 +1335,37 @@ where // Local clauses: [@TraitClause2]: core::cmp::Ord, -fn core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6::is_sorted(@1: core::ops::range::Range) -> bool +fn core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6::is_sorted(@1: core::ops::range::Range[@TraitClause0]) -> bool where // Inherited clauses: [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::iter::range::Step, -unsafe fn core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6::__iterator_get_unchecked<'_0, A>(@1: &'_0 mut (core::ops::range::Range), @2: usize) -> core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6[@TraitClause0, @TraitClause1]::Item +unsafe fn core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6::__iterator_get_unchecked<'_0, A>(@1: &'_0 mut (core::ops::range::Range[@TraitClause0]), @2: usize) -> core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6[@TraitClause0, @TraitClause1]::Item where // Inherited clauses: [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::iter::range::Step, // Local clauses: - [@TraitClause2]: core::iter::adapters::zip::TrustedRandomAccessNoCoerce>, + [@TraitClause2]: core::iter::adapters::zip::TrustedRandomAccessNoCoerce[@TraitClause0]>, -impl core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6 : core::iter::traits::iterator::Iterator> +impl core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6 : core::iter::traits::iterator::Iterator[@TraitClause0]> where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::iter::range::Step, { parent_clause0 = @TraitClause0 type Item = A - fn next = core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6::next - fn size_hint = core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6::size_hint - fn count = core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6::count - fn last = core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6::last - fn advance_by = core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6::advance_by - fn nth = core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6::nth - fn max = core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6::max - fn min = core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6::min - fn is_sorted = core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6::is_sorted - fn __iterator_get_unchecked = core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6::__iterator_get_unchecked + fn next = core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6::next + fn size_hint = core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6::size_hint + fn count = core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6::count + fn last = core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6::last + fn advance_by = core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6::advance_by + fn nth = core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6::nth + fn max = core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6::max + fn min = core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6::min + fn is_sorted = core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6::is_sorted + fn __iterator_get_unchecked = core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6::__iterator_get_unchecked } fn core::clone::impls::{impl core::clone::Clone for i32}#14::clone<'_0>(@1: &'_0 (i32)) -> i32 @@ -1386,7 +1386,7 @@ impl core::cmp::impls::{impl core::cmp::PartialEq for i32}#30 : core::cmp:: fn ne = core::cmp::impls::{impl core::cmp::PartialEq for i32}#30::ne } -fn core::cmp::impls::{impl core::cmp::PartialOrd for i32}#76::partial_cmp<'_0, '_1>(@1: &'_0 (i32), @2: &'_1 (i32)) -> core::option::Option> +fn core::cmp::impls::{impl core::cmp::PartialOrd for i32}#76::partial_cmp<'_0, '_1>(@1: &'_0 (i32), @2: &'_1 (i32)) -> core::option::Option[core::marker::Sized] fn core::cmp::impls::{impl core::cmp::PartialOrd for i32}#76::lt<'_0, '_1>(@1: &'_0 (i32), @2: &'_1 (i32)) -> bool @@ -1406,11 +1406,11 @@ impl core::cmp::impls::{impl core::cmp::PartialOrd for i32}#76 : core::cmp: fn ge = core::cmp::impls::{impl core::cmp::PartialOrd for i32}#76::ge } -fn core::iter::range::{impl core::iter::range::Step for i32}#40::steps_between<'_0, '_1>(@1: &'_0 (i32), @2: &'_1 (i32)) -> core::option::Option> +fn core::iter::range::{impl core::iter::range::Step for i32}#40::steps_between<'_0, '_1>(@1: &'_0 (i32), @2: &'_1 (i32)) -> core::option::Option[core::marker::Sized] -fn core::iter::range::{impl core::iter::range::Step for i32}#40::forward_checked(@1: i32, @2: usize) -> core::option::Option> +fn core::iter::range::{impl core::iter::range::Step for i32}#40::forward_checked(@1: i32, @2: usize) -> core::option::Option[core::marker::Sized] -fn core::iter::range::{impl core::iter::range::Step for i32}#40::backward_checked(@1: i32, @2: usize) -> core::option::Option> +fn core::iter::range::{impl core::iter::range::Step for i32}#40::backward_checked(@1: i32, @2: usize) -> core::option::Option[core::marker::Sized] fn core::iter::range::{impl core::iter::range::Step for i32}#40::forward(@1: i32, @2: usize) -> i32 @@ -1436,7 +1436,7 @@ impl core::iter::range::{impl core::iter::range::Step for i32}#40 : core::iter:: fn core::iter::traits::collect::IntoIterator::into_iter(@1: Self) -> Self::IntoIter -fn core::iter::traits::iterator::Iterator::next<'_0, Self>(@1: &'_0 mut (Self)) -> core::option::Option +fn core::iter::traits::iterator::Iterator::next<'_0, Self>(@1: &'_0 mut (Self)) -> core::option::Option[Self::parent_clause0] fn core::cmp::impls::{impl core::cmp::PartialEq for usize}#21::eq<'_0, '_1>(@1: &'_0 (usize), @2: &'_1 (usize)) -> bool @@ -1448,7 +1448,7 @@ impl core::cmp::impls::{impl core::cmp::PartialEq for usize}#21 : core::c fn ne = core::cmp::impls::{impl core::cmp::PartialEq for usize}#21::ne } -fn core::cmp::impls::{impl core::cmp::PartialOrd for usize}#58::partial_cmp<'_0, '_1>(@1: &'_0 (usize), @2: &'_1 (usize)) -> core::option::Option> +fn core::cmp::impls::{impl core::cmp::PartialOrd for usize}#58::partial_cmp<'_0, '_1>(@1: &'_0 (usize), @2: &'_1 (usize)) -> core::option::Option[core::marker::Sized] fn core::cmp::impls::{impl core::cmp::PartialOrd for usize}#58::lt<'_0, '_1>(@1: &'_0 (usize), @2: &'_1 (usize)) -> bool @@ -1468,11 +1468,11 @@ impl core::cmp::impls::{impl core::cmp::PartialOrd for usize}#58 : core:: fn ge = core::cmp::impls::{impl core::cmp::PartialOrd for usize}#58::ge } -fn core::iter::range::{impl core::iter::range::Step for usize}#43::steps_between<'_0, '_1>(@1: &'_0 (usize), @2: &'_1 (usize)) -> core::option::Option> +fn core::iter::range::{impl core::iter::range::Step for usize}#43::steps_between<'_0, '_1>(@1: &'_0 (usize), @2: &'_1 (usize)) -> core::option::Option[core::marker::Sized] -fn core::iter::range::{impl core::iter::range::Step for usize}#43::forward_checked(@1: usize, @2: usize) -> core::option::Option> +fn core::iter::range::{impl core::iter::range::Step for usize}#43::forward_checked(@1: usize, @2: usize) -> core::option::Option[core::marker::Sized] -fn core::iter::range::{impl core::iter::range::Step for usize}#43::backward_checked(@1: usize, @2: usize) -> core::option::Option> +fn core::iter::range::{impl core::iter::range::Step for usize}#43::backward_checked(@1: usize, @2: usize) -> core::option::Option[core::marker::Sized] fn core::iter::range::{impl core::iter::range::Step for usize}#43::forward(@1: usize, @2: usize) -> usize @@ -1503,31 +1503,31 @@ fn test_crate::nested_loops_enum(@1: usize, @2: usize) -> usize let step_in@2: usize; // arg #2 let s@3: usize; // local let @4: (); // anonymous local - let @5: core::ops::range::Range>; // anonymous local - let @6: core::ops::range::Range>; // anonymous local - let iter@7: core::ops::range::Range>; // local + let @5: core::ops::range::Range[core::marker::Sized]; // anonymous local + let @6: core::ops::range::Range[core::marker::Sized]; // anonymous local + let iter@7: core::ops::range::Range[core::marker::Sized]; // local let @8: (); // anonymous local let @9: (); // anonymous local - let @10: core::option::Option>; // anonymous local - let @11: &'_ mut (core::ops::range::Range>); // anonymous local - let @12: &'_ mut (core::ops::range::Range>); // anonymous local + let @10: core::option::Option[core::marker::Sized]; // anonymous local + let @11: &'_ mut (core::ops::range::Range[core::marker::Sized]); // anonymous local + let @12: &'_ mut (core::ops::range::Range[core::marker::Sized]); // anonymous local let @13: (); // anonymous local - let @14: core::ops::range::Range>; // anonymous local - let @15: core::ops::range::Range>; // anonymous local + let @14: core::ops::range::Range[core::marker::Sized]; // anonymous local + let @15: core::ops::range::Range[core::marker::Sized]; // anonymous local let @16: usize; // anonymous local - let iter@17: core::ops::range::Range>; // local + let iter@17: core::ops::range::Range[core::marker::Sized]; // local let @18: (); // anonymous local - let @19: core::option::Option>; // anonymous local - let @20: &'_ mut (core::ops::range::Range>); // anonymous local - let @21: &'_ mut (core::ops::range::Range>); // anonymous local - let @22: core::ops::range::Range>; // anonymous local - let @23: core::ops::range::Range>; // anonymous local + let @19: core::option::Option[core::marker::Sized]; // anonymous local + let @20: &'_ mut (core::ops::range::Range[core::marker::Sized]); // anonymous local + let @21: &'_ mut (core::ops::range::Range[core::marker::Sized]); // anonymous local + let @22: core::ops::range::Range[core::marker::Sized]; // anonymous local + let @23: core::ops::range::Range[core::marker::Sized]; // anonymous local let @24: usize; // anonymous local - let iter@25: core::ops::range::Range>; // local + let iter@25: core::ops::range::Range[core::marker::Sized]; // local let @26: (); // anonymous local - let @27: core::option::Option>; // anonymous local - let @28: &'_ mut (core::ops::range::Range>); // anonymous local - let @29: &'_ mut (core::ops::range::Range>); // anonymous local + let @27: core::option::Option[core::marker::Sized]; // anonymous local + let @28: &'_ mut (core::ops::range::Range[core::marker::Sized]); // anonymous local + let @29: &'_ mut (core::ops::range::Range[core::marker::Sized]); // anonymous local let @30: (); // anonymous local let @31: (); // anonymous local let @32: (); // anonymous local @@ -1540,14 +1540,14 @@ fn test_crate::nested_loops_enum(@1: usize, @2: usize) -> usize s@3 := const (0 : usize) @fake_read(s@3) @6 := core::ops::range::Range { start: const (0 : i32), end: const (128 : i32) } - @5 := core::iter::traits::collect::{impl core::iter::traits::collect::IntoIterator for I}#1>>[core::marker::Sized>>, core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6[core::marker::Sized, core::iter::range::{impl core::iter::range::Step for i32}#40]]::into_iter(move (@6)) + @5 := core::iter::traits::collect::{impl core::iter::traits::collect::IntoIterator for I}#1[core::marker::Sized]>[core::marker::Sized[core::marker::Sized]>, core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6[core::marker::Sized, core::iter::range::{impl core::iter::range::Step for i32}#40]]::into_iter(move (@6)) drop @6 @fake_read(@5) iter@7 := move (@5) loop { @12 := &mut iter@7 @11 := &two-phase-mut *(@12) - @10 := core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6[core::marker::Sized, core::iter::range::{impl core::iter::range::Step for i32}#40]::next(move (@11)) + @10 := core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6[core::marker::Sized, core::iter::range::{impl core::iter::range::Step for i32}#40]::next(move (@11)) drop @11 @fake_read(@10) match @10 { @@ -1578,14 +1578,14 @@ fn test_crate::nested_loops_enum(@1: usize, @2: usize) -> usize @16 := copy (step_out@1) @15 := core::ops::range::Range { start: const (0 : usize), end: move (@16) } drop @16 - @14 := core::iter::traits::collect::{impl core::iter::traits::collect::IntoIterator for I}#1>>[core::marker::Sized>>, core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6[core::marker::Sized, core::iter::range::{impl core::iter::range::Step for usize}#43]]::into_iter(move (@15)) + @14 := core::iter::traits::collect::{impl core::iter::traits::collect::IntoIterator for I}#1[core::marker::Sized]>[core::marker::Sized[core::marker::Sized]>, core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6[core::marker::Sized, core::iter::range::{impl core::iter::range::Step for usize}#43]]::into_iter(move (@15)) drop @15 @fake_read(@14) iter@17 := move (@14) loop { @21 := &mut iter@17 @20 := &two-phase-mut *(@21) - @19 := core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6[core::marker::Sized, core::iter::range::{impl core::iter::range::Step for usize}#43]::next(move (@20)) + @19 := core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6[core::marker::Sized, core::iter::range::{impl core::iter::range::Step for usize}#43]::next(move (@20)) drop @20 @fake_read(@19) match @19 { @@ -1596,14 +1596,14 @@ fn test_crate::nested_loops_enum(@1: usize, @2: usize) -> usize @24 := copy (step_in@2) @23 := core::ops::range::Range { start: const (0 : usize), end: move (@24) } drop @24 - @22 := core::iter::traits::collect::{impl core::iter::traits::collect::IntoIterator for I}#1>>[core::marker::Sized>>, core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6[core::marker::Sized, core::iter::range::{impl core::iter::range::Step for usize}#43]]::into_iter(move (@23)) + @22 := core::iter::traits::collect::{impl core::iter::traits::collect::IntoIterator for I}#1[core::marker::Sized]>[core::marker::Sized[core::marker::Sized]>, core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6[core::marker::Sized, core::iter::range::{impl core::iter::range::Step for usize}#43]]::into_iter(move (@23)) drop @23 @fake_read(@22) iter@25 := move (@22) loop { @29 := &mut iter@25 @28 := &two-phase-mut *(@29) - @27 := core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6[core::marker::Sized, core::iter::range::{impl core::iter::range::Step for usize}#43]::next(move (@28)) + @27 := core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6[core::marker::Sized, core::iter::range::{impl core::iter::range::Step for usize}#43]::next(move (@28)) drop @28 @fake_read(@27) match @27 { @@ -1670,7 +1670,7 @@ impl core::cmp::impls::{impl core::cmp::PartialEq for u32}#24 : core::cmp:: fn ne = core::cmp::impls::{impl core::cmp::PartialEq for u32}#24::ne } -fn core::cmp::impls::{impl core::cmp::PartialOrd for u32}#64::partial_cmp<'_0, '_1>(@1: &'_0 (u32), @2: &'_1 (u32)) -> core::option::Option> +fn core::cmp::impls::{impl core::cmp::PartialOrd for u32}#64::partial_cmp<'_0, '_1>(@1: &'_0 (u32), @2: &'_1 (u32)) -> core::option::Option[core::marker::Sized] fn core::cmp::impls::{impl core::cmp::PartialOrd for u32}#64::lt<'_0, '_1>(@1: &'_0 (u32), @2: &'_1 (u32)) -> bool @@ -1690,11 +1690,11 @@ impl core::cmp::impls::{impl core::cmp::PartialOrd for u32}#64 : core::cmp: fn ge = core::cmp::impls::{impl core::cmp::PartialOrd for u32}#64::ge } -fn core::iter::range::{impl core::iter::range::Step for u32}#39::steps_between<'_0, '_1>(@1: &'_0 (u32), @2: &'_1 (u32)) -> core::option::Option> +fn core::iter::range::{impl core::iter::range::Step for u32}#39::steps_between<'_0, '_1>(@1: &'_0 (u32), @2: &'_1 (u32)) -> core::option::Option[core::marker::Sized] -fn core::iter::range::{impl core::iter::range::Step for u32}#39::forward_checked(@1: u32, @2: usize) -> core::option::Option> +fn core::iter::range::{impl core::iter::range::Step for u32}#39::forward_checked(@1: u32, @2: usize) -> core::option::Option[core::marker::Sized] -fn core::iter::range::{impl core::iter::range::Step for u32}#39::backward_checked(@1: u32, @2: usize) -> core::option::Option> +fn core::iter::range::{impl core::iter::range::Step for u32}#39::backward_checked(@1: u32, @2: usize) -> core::option::Option[core::marker::Sized] fn core::iter::range::{impl core::iter::range::Step for u32}#39::forward(@1: u32, @2: usize) -> u32 @@ -1726,15 +1726,15 @@ fn test_crate::loop_inside_if(@1: bool, @2: u32) -> u32 let @3: bool; // anonymous local let s@4: u32; // local let @5: (); // anonymous local - let @6: core::ops::range::Range>; // anonymous local - let @7: core::ops::range::Range>; // anonymous local + let @6: core::ops::range::Range[core::marker::Sized]; // anonymous local + let @7: core::ops::range::Range[core::marker::Sized]; // anonymous local let @8: u32; // anonymous local - let iter@9: core::ops::range::Range>; // local + let iter@9: core::ops::range::Range[core::marker::Sized]; // local let @10: (); // anonymous local let @11: (); // anonymous local - let @12: core::option::Option>; // anonymous local - let @13: &'_ mut (core::ops::range::Range>); // anonymous local - let @14: &'_ mut (core::ops::range::Range>); // anonymous local + let @12: core::option::Option[core::marker::Sized]; // anonymous local + let @13: &'_ mut (core::ops::range::Range[core::marker::Sized]); // anonymous local + let @14: &'_ mut (core::ops::range::Range[core::marker::Sized]); // anonymous local let i@15: u32; // local let @16: u32; // anonymous local let @17: (); // anonymous local @@ -1748,14 +1748,14 @@ fn test_crate::loop_inside_if(@1: bool, @2: u32) -> u32 @8 := copy (n@2) @7 := core::ops::range::Range { start: const (0 : u32), end: move (@8) } drop @8 - @6 := core::iter::traits::collect::{impl core::iter::traits::collect::IntoIterator for I}#1>>[core::marker::Sized>>, core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6[core::marker::Sized, core::iter::range::{impl core::iter::range::Step for u32}#39]]::into_iter(move (@7)) + @6 := core::iter::traits::collect::{impl core::iter::traits::collect::IntoIterator for I}#1[core::marker::Sized]>[core::marker::Sized[core::marker::Sized]>, core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6[core::marker::Sized, core::iter::range::{impl core::iter::range::Step for u32}#39]]::into_iter(move (@7)) drop @7 @fake_read(@6) iter@9 := move (@6) loop { @14 := &mut iter@9 @13 := &two-phase-mut *(@14) - @12 := core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6[core::marker::Sized, core::iter::range::{impl core::iter::range::Step for u32}#39]::next(move (@13)) + @12 := core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6[core::marker::Sized, core::iter::range::{impl core::iter::range::Step for u32}#39]::next(move (@13)) drop @13 @fake_read(@12) match @12 { @@ -1914,7 +1914,7 @@ opaque type alloc::vec::Vec struct alloc::alloc::Global = {} -fn alloc::vec::{alloc::vec::Vec}#1::len<'_0, T, A>(@1: &'_0 (alloc::vec::Vec)) -> usize +fn alloc::vec::{alloc::vec::Vec[@TraitClause0, @TraitClause1]}#1::len<'_0, T, A>(@1: &'_0 (alloc::vec::Vec[@TraitClause0, @TraitClause1])) -> usize where // Inherited clauses: [@TraitClause0]: core::marker::Sized, @@ -1928,7 +1928,7 @@ trait core::ops::index::Index trait core::ops::index::IndexMut { - parent_clause_0 : [@TraitClause0]: core::ops::index::Index + parent_clause0 : [@TraitClause0]: core::ops::index::Index fn index_mut : core::ops::index::IndexMut::index_mut } @@ -1936,7 +1936,7 @@ trait core::slice::index::private_slice_index::Sealed trait core::slice::index::SliceIndex { - parent_clause_0 : [@TraitClause0]: core::slice::index::private_slice_index::Sealed + parent_clause0 : [@TraitClause0]: core::slice::index::private_slice_index::Sealed type Output fn get : core::slice::index::SliceIndex::get fn get_mut : core::slice::index::SliceIndex::get_mut @@ -1946,7 +1946,7 @@ trait core::slice::index::SliceIndex fn index_mut : core::slice::index::SliceIndex::index_mut } -fn alloc::vec::{impl core::ops::index::Index for alloc::vec::Vec}#13::index<'_0, T, I, A>(@1: &'_0 (alloc::vec::Vec), @2: I) -> &'_0 (alloc::vec::{impl core::ops::index::Index for alloc::vec::Vec}#13[@TraitClause0, @TraitClause1, @TraitClause2, @TraitClause3]::Output) +fn alloc::vec::{impl core::ops::index::Index for alloc::vec::Vec[@TraitClause0, @TraitClause2]}#13::index<'_0, T, I, A>(@1: &'_0 (alloc::vec::Vec[@TraitClause0, @TraitClause2]), @2: I) -> &'_0 (alloc::vec::{impl core::ops::index::Index for alloc::vec::Vec[@TraitClause0, @TraitClause2]}#13[@TraitClause0, @TraitClause1, @TraitClause2, @TraitClause3]::Output) where // Inherited clauses: [@TraitClause0]: core::marker::Sized, @@ -1954,7 +1954,7 @@ where [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::slice::index::SliceIndex>, -impl alloc::vec::{impl core::ops::index::Index for alloc::vec::Vec}#13 : core::ops::index::Index, I> +impl alloc::vec::{impl core::ops::index::Index for alloc::vec::Vec[@TraitClause0, @TraitClause2]}#13 : core::ops::index::Index[@TraitClause0, @TraitClause2], I> where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, @@ -1962,10 +1962,10 @@ where [@TraitClause3]: core::slice::index::SliceIndex>, { type Output = @TraitClause3::Output - fn index = alloc::vec::{impl core::ops::index::Index for alloc::vec::Vec}#13::index + fn index = alloc::vec::{impl core::ops::index::Index for alloc::vec::Vec[@TraitClause0, @TraitClause2]}#13::index } -fn alloc::vec::{impl core::ops::index::IndexMut for alloc::vec::Vec}#14::index_mut<'_0, T, I, A>(@1: &'_0 mut (alloc::vec::Vec), @2: I) -> &'_0 mut (alloc::vec::{impl core::ops::index::Index for alloc::vec::Vec}#13[@TraitClause0, @TraitClause1, @TraitClause2, @TraitClause3]::Output) +fn alloc::vec::{impl core::ops::index::IndexMut for alloc::vec::Vec[@TraitClause0, @TraitClause2]}#14::index_mut<'_0, T, I, A>(@1: &'_0 mut (alloc::vec::Vec[@TraitClause0, @TraitClause2]), @2: I) -> &'_0 mut (alloc::vec::{impl core::ops::index::Index for alloc::vec::Vec[@TraitClause0, @TraitClause2]}#13[@TraitClause0, @TraitClause1, @TraitClause2, @TraitClause3]::Output) where // Inherited clauses: [@TraitClause0]: core::marker::Sized, @@ -1973,25 +1973,25 @@ where [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::slice::index::SliceIndex>, -impl alloc::vec::{impl core::ops::index::IndexMut for alloc::vec::Vec}#14 : core::ops::index::IndexMut, I> +impl alloc::vec::{impl core::ops::index::IndexMut for alloc::vec::Vec[@TraitClause0, @TraitClause2]}#14 : core::ops::index::IndexMut[@TraitClause0, @TraitClause2], I> where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::slice::index::SliceIndex>, { - parent_clause0 = alloc::vec::{impl core::ops::index::Index for alloc::vec::Vec}#13[@TraitClause0, @TraitClause1, @TraitClause2, @TraitClause3] - fn index_mut = alloc::vec::{impl core::ops::index::IndexMut for alloc::vec::Vec}#14::index_mut + parent_clause0 = alloc::vec::{impl core::ops::index::Index for alloc::vec::Vec[@TraitClause0, @TraitClause2]}#13[@TraitClause0, @TraitClause1, @TraitClause2, @TraitClause3] + fn index_mut = alloc::vec::{impl core::ops::index::IndexMut for alloc::vec::Vec[@TraitClause0, @TraitClause2]}#14::index_mut } impl core::slice::index::private_slice_index::{impl core::slice::index::private_slice_index::Sealed for usize} : core::slice::index::private_slice_index::Sealed -fn core::slice::index::{impl core::slice::index::SliceIndex> for usize}#2::get<'_0, T>(@1: usize, @2: &'_0 (Slice)) -> core::option::Option<&'_0 (T), core::marker::Sized<&'_1_0 (T)>> +fn core::slice::index::{impl core::slice::index::SliceIndex> for usize}#2::get<'_0, T>(@1: usize, @2: &'_0 (Slice)) -> core::option::Option<&'_0 (T)>[core::marker::Sized<&'_1_0 (T)>] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -fn core::slice::index::{impl core::slice::index::SliceIndex> for usize}#2::get_mut<'_0, T>(@1: usize, @2: &'_0 mut (Slice)) -> core::option::Option<&'_0 mut (T), core::marker::Sized<&'_1_0 mut (T)>> +fn core::slice::index::{impl core::slice::index::SliceIndex> for usize}#2::get_mut<'_0, T>(@1: usize, @2: &'_0 mut (Slice)) -> core::option::Option<&'_0 mut (T)>[core::marker::Sized<&'_1_0 mut (T)>] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, @@ -2030,20 +2030,20 @@ where fn index_mut = core::slice::index::{impl core::slice::index::SliceIndex> for usize}#2::index_mut } -fn core::ops::index::IndexMut::index_mut<'_0, Self, Idx>(@1: &'_0 mut (Self), @2: Idx) -> &'_0 mut ((parents(Self)::[@TraitClause0])::Output) +fn core::ops::index::IndexMut::index_mut<'_0, Self, Idx>(@1: &'_0 mut (Self), @2: Idx) -> &'_0 mut (Self::parent_clause0::Output) -fn test_crate::clear<'_0>(@1: &'_0 mut (alloc::vec::Vec, core::marker::Sized>)) +fn test_crate::clear<'_0>(@1: &'_0 mut (alloc::vec::Vec[core::marker::Sized, core::marker::Sized])) { let @0: (); // return - let v@1: &'_ mut (alloc::vec::Vec, core::marker::Sized>); // arg #1 + let v@1: &'_ mut (alloc::vec::Vec[core::marker::Sized, core::marker::Sized]); // arg #1 let i@2: usize; // local let @3: (); // anonymous local let @4: bool; // anonymous local let @5: usize; // anonymous local let @6: usize; // anonymous local - let @7: &'_ (alloc::vec::Vec, core::marker::Sized>); // anonymous local + let @7: &'_ (alloc::vec::Vec[core::marker::Sized, core::marker::Sized]); // anonymous local let @8: &'_ mut (u32); // anonymous local - let @9: &'_ mut (alloc::vec::Vec, core::marker::Sized>); // anonymous local + let @9: &'_ mut (alloc::vec::Vec[core::marker::Sized, core::marker::Sized]); // anonymous local let @10: usize; // anonymous local let @11: (); // anonymous local let @12: (); // anonymous local @@ -2054,7 +2054,7 @@ fn test_crate::clear<'_0>(@1: &'_0 mut (alloc::vec::Vec}#1::len[core::marker::Sized, core::marker::Sized](move (@7)) + @6 := alloc::vec::{alloc::vec::Vec[@TraitClause0, @TraitClause1]}#1::len[core::marker::Sized, core::marker::Sized](move (@7)) drop @7 @4 := move (@5) < move (@6) if move (@4) { @@ -2062,7 +2062,7 @@ fn test_crate::clear<'_0>(@1: &'_0 mut (alloc::vec::Vec for alloc::vec::Vec}#14[core::marker::Sized, core::marker::Sized, core::marker::Sized, core::slice::index::{impl core::slice::index::SliceIndex> for usize}#2[core::marker::Sized]]::index_mut(move (@9), move (@10)) + @8 := alloc::vec::{impl core::ops::index::IndexMut for alloc::vec::Vec[@TraitClause0, @TraitClause2]}#14[core::marker::Sized, core::marker::Sized, core::marker::Sized, core::slice::index::{impl core::slice::index::SliceIndex> for usize}#2[core::marker::Sized]]::index_mut(move (@9), move (@10)) drop @10 drop @9 *(@8) := const (0 : u32) @@ -2092,22 +2092,22 @@ enum test_crate::List where [@TraitClause0]: core::marker::Sized, = -| Cons(T, alloc::boxed::Box, core::marker::Sized>) +| Cons(T, alloc::boxed::Box[@TraitClause0]>[core::marker::Sized]) | Nil() -fn test_crate::get_elem_mut<'_0>(@1: &'_0 mut (test_crate::List>), @2: usize) -> &'_0 mut (usize) +fn test_crate::get_elem_mut<'_0>(@1: &'_0 mut (test_crate::List[core::marker::Sized]), @2: usize) -> &'_0 mut (usize) { let @0: &'_ mut (usize); // return - let ls@1: &'_ mut (test_crate::List>); // arg #1 + let ls@1: &'_ mut (test_crate::List[core::marker::Sized]); // arg #1 let x@2: usize; // arg #2 let @3: (); // anonymous local let y@4: &'_ mut (usize); // local - let tl@5: &'_ mut (alloc::boxed::Box>, core::marker::Sized>); // local + let tl@5: &'_ mut (alloc::boxed::Box[core::marker::Sized]>[core::marker::Sized]); // local let @6: bool; // anonymous local let @7: usize; // anonymous local let @8: usize; // anonymous local - let @9: &'_ mut (test_crate::List>); // anonymous local + let @9: &'_ mut (test_crate::List[core::marker::Sized]); // anonymous local let @10: (); // anonymous local loop { @@ -2149,20 +2149,20 @@ fn test_crate::get_elem_mut<'_0>(@1: &'_0 mut (test_crate::List(@1: &'_0 mut (test_crate::List), @2: u32) -> &'_0 mut (T) +fn test_crate::list_nth_mut_loop_with_id<'_0, T>(@1: &'_0 mut (test_crate::List[@TraitClause0]), @2: u32) -> &'_0 mut (T) where [@TraitClause0]: core::marker::Sized, { let @0: &'_ mut (T); // return - let ls@1: &'_ mut (test_crate::List); // arg #1 + let ls@1: &'_ mut (test_crate::List[@TraitClause0]); // arg #1 let i@2: u32; // arg #2 let @3: (); // anonymous local let @4: (); // anonymous local let x@5: &'_ mut (T); // local - let tl@6: &'_ mut (alloc::boxed::Box, core::marker::Sized>); // local + let tl@6: &'_ mut (alloc::boxed::Box[@TraitClause0]>[core::marker::Sized]); // local let @7: bool; // anonymous local let @8: u32; // anonymous local - let @9: &'_ mut (test_crate::List); // anonymous local + let @9: &'_ mut (test_crate::List[@TraitClause0]); // anonymous local let @10: (); // anonymous local let @11: (); // anonymous local let @12: (); // anonymous local @@ -2209,15 +2209,15 @@ where } } -fn core::iter::range::Step::steps_between<'_0, '_1, Self>(@1: &'_0 (Self), @2: &'_1 (Self)) -> core::option::Option> +fn core::iter::range::Step::steps_between<'_0, '_1, Self>(@1: &'_0 (Self), @2: &'_1 (Self)) -> core::option::Option[core::marker::Sized] -fn core::iter::range::Step::forward_checked(@1: Self, @2: usize) -> core::option::Option +fn core::iter::range::Step::forward_checked(@1: Self, @2: usize) -> core::option::Option[Self::parent_clause0] fn core::iter::range::Step::forward(@1: Self, @2: usize) -> Self unsafe fn core::iter::range::Step::forward_unchecked(@1: Self, @2: usize) -> Self -fn core::iter::range::Step::backward_checked(@1: Self, @2: usize) -> core::option::Option +fn core::iter::range::Step::backward_checked(@1: Self, @2: usize) -> core::option::Option[Self::parent_clause0] fn core::iter::range::Step::backward(@1: Self, @2: usize) -> Self @@ -2227,7 +2227,7 @@ fn core::clone::Clone::clone<'_0, Self>(@1: &'_0 (Self)) -> Self fn core::clone::Clone::clone_from<'_0, '_1, Self>(@1: &'_0 mut (Self), @2: &'_1 (Self)) -fn core::cmp::PartialOrd::partial_cmp<'_0, '_1, Self, Rhs>(@1: &'_0 (Self), @2: &'_1 (Rhs)) -> core::option::Option> +fn core::cmp::PartialOrd::partial_cmp<'_0, '_1, Self, Rhs>(@1: &'_0 (Self), @2: &'_1 (Rhs)) -> core::option::Option[core::marker::Sized] fn core::cmp::PartialOrd::lt<'_0, '_1, Self, Rhs>(@1: &'_0 (Self), @2: &'_1 (Rhs)) -> bool @@ -2241,162 +2241,162 @@ fn core::cmp::PartialEq::eq<'_0, '_1, Self, Rhs>(@1: &'_0 (Self), @2: &'_1 (Rhs) fn core::cmp::PartialEq::ne<'_0, '_1, Self, Rhs>(@1: &'_0 (Self), @2: &'_1 (Rhs)) -> bool -fn core::iter::traits::iterator::Iterator::next_chunk<'_0, Self, const N : usize>(@1: &'_0 mut (Self)) -> core::result::Result, core::array::iter::IntoIter, core::marker::Sized>, core::marker::Sized>> +fn core::iter::traits::iterator::Iterator::next_chunk<'_0, Self, const N : usize>(@1: &'_0 mut (Self)) -> core::result::Result, core::array::iter::IntoIter[Self::parent_clause0]>[core::marker::Sized>, core::marker::Sized[Self::parent_clause0]>] where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::size_hint<'_0, Self>(@1: &'_0 (Self)) -> (usize, core::option::Option>) +fn core::iter::traits::iterator::Iterator::size_hint<'_0, Self>(@1: &'_0 (Self)) -> (usize, core::option::Option[core::marker::Sized]) fn core::iter::traits::iterator::Iterator::count(@1: Self) -> usize where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::last(@1: Self) -> core::option::Option +fn core::iter::traits::iterator::Iterator::last(@1: Self) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::advance_by<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> core::result::Result<(), core::num::nonzero::NonZero, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26>, core::marker::Sized<()>, core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26>>> +fn core::iter::traits::iterator::Iterator::advance_by<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> core::result::Result<(), core::num::nonzero::NonZero[core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26]>[core::marker::Sized<()>, core::marker::Sized[core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26]>] -fn core::iter::traits::iterator::Iterator::nth<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> core::option::Option +fn core::iter::traits::iterator::Iterator::nth<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> core::option::Option[Self::parent_clause0] -fn core::iter::traits::iterator::Iterator::step_by(@1: Self, @2: usize) -> core::iter::adapters::step_by::StepBy +fn core::iter::traits::iterator::Iterator::step_by(@1: Self, @2: usize) -> core::iter::adapters::step_by::StepBy[@TraitClause0] where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::chain(@1: Self, @2: U) -> core::iter::adapters::chain::Chain +fn core::iter::traits::iterator::Iterator::chain(@1: Self, @2: U) -> core::iter::adapters::chain::Chain[@TraitClause1, @TraitClause2::parent_clause2] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::iter::traits::collect::IntoIterator, @TraitClause2::Item = Self::Item, -fn core::iter::traits::iterator::Iterator::zip(@1: Self, @2: U) -> core::iter::adapters::zip::Zip +fn core::iter::traits::iterator::Iterator::zip(@1: Self, @2: U) -> core::iter::adapters::zip::Zip[@TraitClause1, @TraitClause2::parent_clause2] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::iter::traits::collect::IntoIterator, -fn core::iter::traits::iterator::Iterator::intersperse(@1: Self, @2: Self::Item) -> core::iter::adapters::intersperse::Intersperse +fn core::iter::traits::iterator::Iterator::intersperse(@1: Self, @2: Self::Item) -> core::iter::adapters::intersperse::Intersperse[@TraitClause0, Self, @TraitClause1] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::clone::Clone, -fn core::iter::traits::iterator::Iterator::intersperse_with(@1: Self, @2: G) -> core::iter::adapters::intersperse::IntersperseWith +fn core::iter::traits::iterator::Iterator::intersperse_with(@1: Self, @2: G) -> core::iter::adapters::intersperse::IntersperseWith[@TraitClause1, @TraitClause0, Self] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::ops::function::FnMut, - (parents(@TraitClause2)::[@TraitClause0])::Output = Self::Item, + @TraitClause2::parent_clause0::Output = Self::Item, -fn core::iter::traits::iterator::Iterator::map(@1: Self, @2: F) -> core::iter::adapters::map::Map +fn core::iter::traits::iterator::Iterator::map(@1: Self, @2: F) -> core::iter::adapters::map::Map[@TraitClause2, @TraitClause1] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = B, + @TraitClause3::parent_clause0::Output = B, fn core::iter::traits::iterator::Iterator::for_each(@1: Self, @2: F) where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::ops::function::FnMut, - (parents(@TraitClause2)::[@TraitClause0])::Output = (), + @TraitClause2::parent_clause0::Output = (), -fn core::iter::traits::iterator::Iterator::filter(@1: Self, @2: P) -> core::iter::adapters::filter::Filter +fn core::iter::traits::iterator::Iterator::filter(@1: Self, @2: P) -> core::iter::adapters::filter::Filter[@TraitClause1, @TraitClause0] where [@TraitClause0]: core::marker::Sized

, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + for<'_1_0> @TraitClause2::parent_clause0::Output = bool, -fn core::iter::traits::iterator::Iterator::filter_map(@1: Self, @2: F) -> core::iter::adapters::filter_map::FilterMap +fn core::iter::traits::iterator::Iterator::filter_map(@1: Self, @2: F) -> core::iter::adapters::filter_map::FilterMap[@TraitClause2, @TraitClause1] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = core::option::Option, + @TraitClause3::parent_clause0::Output = core::option::Option[@TraitClause0], -fn core::iter::traits::iterator::Iterator::enumerate(@1: Self) -> core::iter::adapters::enumerate::Enumerate +fn core::iter::traits::iterator::Iterator::enumerate(@1: Self) -> core::iter::adapters::enumerate::Enumerate[@TraitClause0] where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::peekable(@1: Self) -> core::iter::adapters::peekable::Peekable +fn core::iter::traits::iterator::Iterator::peekable(@1: Self) -> core::iter::adapters::peekable::Peekable[@TraitClause0, Self] where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::skip_while(@1: Self, @2: P) -> core::iter::adapters::skip_while::SkipWhile +fn core::iter::traits::iterator::Iterator::skip_while(@1: Self, @2: P) -> core::iter::adapters::skip_while::SkipWhile[@TraitClause1, @TraitClause0] where [@TraitClause0]: core::marker::Sized

, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + for<'_1_0> @TraitClause2::parent_clause0::Output = bool, -fn core::iter::traits::iterator::Iterator::take_while(@1: Self, @2: P) -> core::iter::adapters::take_while::TakeWhile +fn core::iter::traits::iterator::Iterator::take_while(@1: Self, @2: P) -> core::iter::adapters::take_while::TakeWhile[@TraitClause1, @TraitClause0] where [@TraitClause0]: core::marker::Sized

, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + for<'_1_0> @TraitClause2::parent_clause0::Output = bool, -fn core::iter::traits::iterator::Iterator::map_while(@1: Self, @2: P) -> core::iter::adapters::map_while::MapWhile +fn core::iter::traits::iterator::Iterator::map_while(@1: Self, @2: P) -> core::iter::adapters::map_while::MapWhile[@TraitClause2, @TraitClause1] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized

, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = core::option::Option, + @TraitClause3::parent_clause0::Output = core::option::Option[@TraitClause0], -fn core::iter::traits::iterator::Iterator::skip(@1: Self, @2: usize) -> core::iter::adapters::skip::Skip +fn core::iter::traits::iterator::Iterator::skip(@1: Self, @2: usize) -> core::iter::adapters::skip::Skip[@TraitClause0] where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::take(@1: Self, @2: usize) -> core::iter::adapters::take::Take +fn core::iter::traits::iterator::Iterator::take(@1: Self, @2: usize) -> core::iter::adapters::take::Take[@TraitClause0] where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::scan(@1: Self, @2: St, @3: F) -> core::iter::adapters::scan::Scan +fn core::iter::traits::iterator::Iterator::scan(@1: Self, @2: St, @3: F) -> core::iter::adapters::scan::Scan[@TraitClause3, @TraitClause0, @TraitClause2] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::marker::Sized, [@TraitClause4]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause4)::[@TraitClause0])::Output = core::option::Option, + for<'_1_0> @TraitClause4::parent_clause0::Output = core::option::Option[@TraitClause1], -fn core::iter::traits::iterator::Iterator::flat_map(@1: Self, @2: F) -> core::iter::adapters::flatten::FlatMap +fn core::iter::traits::iterator::Iterator::flat_map(@1: Self, @2: F) -> core::iter::adapters::flatten::FlatMap[@TraitClause2, @TraitClause0, @TraitClause1, @TraitClause3] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::iter::traits::collect::IntoIterator, [@TraitClause4]: core::ops::function::FnMut, - (parents(@TraitClause4)::[@TraitClause0])::Output = U, + @TraitClause4::parent_clause0::Output = U, -fn core::iter::traits::iterator::Iterator::flatten(@1: Self) -> core::iter::adapters::flatten::Flatten +fn core::iter::traits::iterator::Iterator::flatten(@1: Self) -> core::iter::adapters::flatten::Flatten[@TraitClause0, Self, @TraitClause1] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::iter::traits::collect::IntoIterator, -fn core::iter::traits::iterator::Iterator::map_windows(@1: Self, @2: F) -> core::iter::adapters::map_windows::MapWindows +fn core::iter::traits::iterator::Iterator::map_windows(@1: Self, @2: F) -> core::iter::adapters::map_windows::MapWindows[@TraitClause2, @TraitClause0, Self] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: for<'_1_0> core::ops::function::FnMut))>, - for<'_1_0> (parents(@TraitClause3)::[@TraitClause0])::Output = R, + for<'_1_0> @TraitClause3::parent_clause0::Output = R, -fn core::iter::traits::iterator::Iterator::fuse(@1: Self) -> core::iter::adapters::fuse::Fuse +fn core::iter::traits::iterator::Iterator::fuse(@1: Self) -> core::iter::adapters::fuse::Fuse[@TraitClause0] where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::inspect(@1: Self, @2: F) -> core::iter::adapters::inspect::Inspect +fn core::iter::traits::iterator::Iterator::inspect(@1: Self, @2: F) -> core::iter::adapters::inspect::Inspect[@TraitClause1, @TraitClause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause2)::[@TraitClause0])::Output = (), + for<'_1_0> @TraitClause2::parent_clause0::Output = (), fn core::iter::traits::iterator::Iterator::by_ref<'_0, Self>(@1: &'_0 mut (Self)) -> &'_0 mut (Self) where @@ -2430,7 +2430,7 @@ where [@TraitClause3]: core::default::Default, [@TraitClause4]: core::iter::traits::collect::Extend, [@TraitClause5]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause5)::[@TraitClause0])::Output = bool, + for<'_1_0> @TraitClause5::parent_clause0::Output = bool, fn core::iter::traits::iterator::Iterator::partition_in_place<'a, Self, T, P>(@1: Self, @2: P) -> usize where @@ -2441,14 +2441,14 @@ where [@TraitClause4]: for<'_1_0> core::ops::function::FnMut, T : 'a, Self::Item = &'a mut (T), - for<'_1_0> (parents(@TraitClause4)::[@TraitClause0])::Output = bool, + for<'_1_0> @TraitClause4::parent_clause0::Output = bool, fn core::iter::traits::iterator::Iterator::is_partitioned(@1: Self, @2: P) -> bool where [@TraitClause0]: core::marker::Sized

, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::ops::function::FnMut, - (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + @TraitClause2::parent_clause0::Output = bool, fn core::iter::traits::iterator::Iterator::try_fold<'_0, Self, B, F, R>(@1: &'_0 mut (Self), @2: B, @3: F) -> R where @@ -2458,7 +2458,7 @@ where [@TraitClause3]: core::marker::Sized, [@TraitClause4]: core::ops::function::FnMut, [@TraitClause5]: core::ops::try_trait::Try, - (parents(@TraitClause4)::[@TraitClause0])::Output = R, + @TraitClause4::parent_clause0::Output = R, @TraitClause5::Output = B, fn core::iter::traits::iterator::Iterator::try_for_each<'_0, Self, F, R>(@1: &'_0 mut (Self), @2: F) -> R @@ -2468,7 +2468,7 @@ where [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::function::FnMut, [@TraitClause4]: core::ops::try_trait::Try, - (parents(@TraitClause3)::[@TraitClause0])::Output = R, + @TraitClause3::parent_clause0::Output = R, @TraitClause4::Output = (), fn core::iter::traits::iterator::Iterator::fold(@1: Self, @2: B, @3: F) -> B @@ -2477,14 +2477,14 @@ where [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = B, + @TraitClause3::parent_clause0::Output = B, -fn core::iter::traits::iterator::Iterator::reduce(@1: Self, @2: F) -> core::option::Option +fn core::iter::traits::iterator::Iterator::reduce(@1: Self, @2: F) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::ops::function::FnMut, - (parents(@TraitClause2)::[@TraitClause0])::Output = Self::Item, + @TraitClause2::parent_clause0::Output = Self::Item, fn core::iter::traits::iterator::Iterator::try_reduce<'_0, Self, R, impl FnMut(Self::Item, Self::Item) -> R>(@1: &'_0 mut (Self), @2: impl FnMut(Self::Item, Self::Item) -> R) -> @TraitClause4::TryType where @@ -2492,39 +2492,39 @@ where [@TraitClause1]: core::marker::Sized R>, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::try_trait::Try, - [@TraitClause4]: core::ops::try_trait::Residual<@TraitClause3::Residual, core::option::Option>, + [@TraitClause4]: core::ops::try_trait::Residual<@TraitClause3::Residual, core::option::Option[Self::parent_clause0]>, [@TraitClause5]: core::ops::function::FnMut R, (Self::Item, Self::Item)>, @TraitClause3::Output = Self::Item, - (parents(@TraitClause5)::[@TraitClause0])::Output = R, + @TraitClause5::parent_clause0::Output = R, fn core::iter::traits::iterator::Iterator::all<'_0, Self, F>(@1: &'_0 mut (Self), @2: F) -> bool where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::ops::function::FnMut, - (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + @TraitClause2::parent_clause0::Output = bool, fn core::iter::traits::iterator::Iterator::any<'_0, Self, F>(@1: &'_0 mut (Self), @2: F) -> bool where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::ops::function::FnMut, - (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + @TraitClause2::parent_clause0::Output = bool, -fn core::iter::traits::iterator::Iterator::find<'_0, Self, P>(@1: &'_0 mut (Self), @2: P) -> core::option::Option +fn core::iter::traits::iterator::Iterator::find<'_0, Self, P>(@1: &'_0 mut (Self), @2: P) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized

, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + for<'_1_0> @TraitClause2::parent_clause0::Output = bool, -fn core::iter::traits::iterator::Iterator::find_map<'_0, Self, B, F>(@1: &'_0 mut (Self), @2: F) -> core::option::Option +fn core::iter::traits::iterator::Iterator::find_map<'_0, Self, B, F>(@1: &'_0 mut (Self), @2: F) -> core::option::Option[@TraitClause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = core::option::Option, + @TraitClause3::parent_clause0::Output = core::option::Option[@TraitClause0], fn core::iter::traits::iterator::Iterator::try_find<'_0, Self, R, impl FnMut(&Self::Item) -> R>(@1: &'_0 mut (Self), @2: impl FnMut(&Self::Item) -> R) -> @TraitClause4::TryType where @@ -2532,70 +2532,70 @@ where [@TraitClause1]: core::marker::Sized R>, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::try_trait::Try, - [@TraitClause4]: core::ops::try_trait::Residual<@TraitClause3::Residual, core::option::Option>, + [@TraitClause4]: core::ops::try_trait::Residual<@TraitClause3::Residual, core::option::Option[Self::parent_clause0]>, [@TraitClause5]: for<'_1_0> core::ops::function::FnMut R, (&'_1_0 (Self::Item))>, @TraitClause3::Output = bool, - for<'_1_0> (parents(@TraitClause5)::[@TraitClause0])::Output = R, + for<'_1_0> @TraitClause5::parent_clause0::Output = R, -fn core::iter::traits::iterator::Iterator::position<'_0, Self, P>(@1: &'_0 mut (Self), @2: P) -> core::option::Option> +fn core::iter::traits::iterator::Iterator::position<'_0, Self, P>(@1: &'_0 mut (Self), @2: P) -> core::option::Option[core::marker::Sized] where [@TraitClause0]: core::marker::Sized

, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::ops::function::FnMut, - (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + @TraitClause2::parent_clause0::Output = bool, -fn core::iter::traits::iterator::Iterator::rposition<'_0, Self, P>(@1: &'_0 mut (Self), @2: P) -> core::option::Option> +fn core::iter::traits::iterator::Iterator::rposition<'_0, Self, P>(@1: &'_0 mut (Self), @2: P) -> core::option::Option[core::marker::Sized] where [@TraitClause0]: core::marker::Sized

, [@TraitClause1]: core::ops::function::FnMut, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::iter::traits::exact_size::ExactSizeIterator, [@TraitClause4]: core::iter::traits::double_ended::DoubleEndedIterator, - (parents(@TraitClause1)::[@TraitClause0])::Output = bool, + @TraitClause1::parent_clause0::Output = bool, -fn core::iter::traits::iterator::Iterator::max(@1: Self) -> core::option::Option +fn core::iter::traits::iterator::Iterator::max(@1: Self) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::cmp::Ord, -fn core::iter::traits::iterator::Iterator::min(@1: Self) -> core::option::Option +fn core::iter::traits::iterator::Iterator::min(@1: Self) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::cmp::Ord, -fn core::iter::traits::iterator::Iterator::max_by_key(@1: Self, @2: F) -> core::option::Option +fn core::iter::traits::iterator::Iterator::max_by_key(@1: Self, @2: F) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::cmp::Ord, [@TraitClause3]: core::marker::Sized, [@TraitClause4]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause4)::[@TraitClause0])::Output = B, + for<'_1_0> @TraitClause4::parent_clause0::Output = B, -fn core::iter::traits::iterator::Iterator::max_by(@1: Self, @2: F) -> core::option::Option +fn core::iter::traits::iterator::Iterator::max_by(@1: Self, @2: F) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: for<'_1_0, '_1_1> core::ops::function::FnMut, - for<'_1_0, '_1_1> (parents(@TraitClause2)::[@TraitClause0])::Output = core::cmp::Ordering, + for<'_1_0, '_1_1> @TraitClause2::parent_clause0::Output = core::cmp::Ordering, -fn core::iter::traits::iterator::Iterator::min_by_key(@1: Self, @2: F) -> core::option::Option +fn core::iter::traits::iterator::Iterator::min_by_key(@1: Self, @2: F) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::cmp::Ord, [@TraitClause3]: core::marker::Sized, [@TraitClause4]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause4)::[@TraitClause0])::Output = B, + for<'_1_0> @TraitClause4::parent_clause0::Output = B, -fn core::iter::traits::iterator::Iterator::min_by(@1: Self, @2: F) -> core::option::Option +fn core::iter::traits::iterator::Iterator::min_by(@1: Self, @2: F) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: for<'_1_0, '_1_1> core::ops::function::FnMut, - for<'_1_0, '_1_1> (parents(@TraitClause2)::[@TraitClause0])::Output = core::cmp::Ordering, + for<'_1_0, '_1_1> @TraitClause2::parent_clause0::Output = core::cmp::Ordering, -fn core::iter::traits::iterator::Iterator::rev(@1: Self) -> core::iter::adapters::rev::Rev +fn core::iter::traits::iterator::Iterator::rev(@1: Self) -> core::iter::adapters::rev::Rev[@TraitClause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::iter::traits::double_ended::DoubleEndedIterator, @@ -2614,7 +2614,7 @@ where [@TraitClause9]: core::iter::traits::iterator::Iterator, Self::Item = (A, B), -fn core::iter::traits::iterator::Iterator::copied<'a, Self, T>(@1: Self) -> core::iter::adapters::copied::Copied +fn core::iter::traits::iterator::Iterator::copied<'a, Self, T>(@1: Self) -> core::iter::adapters::copied::Copied[@TraitClause1] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, @@ -2623,7 +2623,7 @@ where T : 'a, Self::Item = &'a (T), -fn core::iter::traits::iterator::Iterator::cloned<'a, Self, T>(@1: Self) -> core::iter::adapters::cloned::Cloned +fn core::iter::traits::iterator::Iterator::cloned<'a, Self, T>(@1: Self) -> core::iter::adapters::cloned::Cloned[@TraitClause1] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, @@ -2632,12 +2632,12 @@ where T : 'a, Self::Item = &'a (T), -fn core::iter::traits::iterator::Iterator::cycle(@1: Self) -> core::iter::adapters::cycle::Cycle +fn core::iter::traits::iterator::Iterator::cycle(@1: Self) -> core::iter::adapters::cycle::Cycle[@TraitClause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::clone::Clone, -fn core::iter::traits::iterator::Iterator::array_chunks(@1: Self) -> core::iter::adapters::array_chunks::ArrayChunks +fn core::iter::traits::iterator::Iterator::array_chunks(@1: Self) -> core::iter::adapters::array_chunks::ArrayChunks[@TraitClause0, Self] where [@TraitClause0]: core::marker::Sized, @@ -2668,23 +2668,23 @@ where [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::iter::traits::collect::IntoIterator, [@TraitClause4]: core::ops::function::FnMut, - (parents(@TraitClause4)::[@TraitClause0])::Output = core::cmp::Ordering, + @TraitClause4::parent_clause0::Output = core::cmp::Ordering, -fn core::iter::traits::iterator::Iterator::partial_cmp(@1: Self, @2: I) -> core::option::Option> +fn core::iter::traits::iterator::Iterator::partial_cmp(@1: Self, @2: I) -> core::option::Option[core::marker::Sized] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::iter::traits::collect::IntoIterator, [@TraitClause2]: core::cmp::PartialOrd, [@TraitClause3]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::partial_cmp_by(@1: Self, @2: I, @3: F) -> core::option::Option> +fn core::iter::traits::iterator::Iterator::partial_cmp_by(@1: Self, @2: I, @3: F) -> core::option::Option[core::marker::Sized] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::iter::traits::collect::IntoIterator, [@TraitClause4]: core::ops::function::FnMut, - (parents(@TraitClause4)::[@TraitClause0])::Output = core::option::Option>, + @TraitClause4::parent_clause0::Output = core::option::Option[core::marker::Sized], fn core::iter::traits::iterator::Iterator::eq(@1: Self, @2: I) -> bool where @@ -2700,7 +2700,7 @@ where [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::iter::traits::collect::IntoIterator, [@TraitClause4]: core::ops::function::FnMut, - (parents(@TraitClause4)::[@TraitClause0])::Output = bool, + @TraitClause4::parent_clause0::Output = bool, fn core::iter::traits::iterator::Iterator::ne(@1: Self, @2: I) -> bool where @@ -2747,7 +2747,7 @@ where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: for<'_1_0, '_1_1> core::ops::function::FnMut, - for<'_1_0, '_1_1> (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + for<'_1_0, '_1_1> @TraitClause2::parent_clause0::Output = bool, fn core::iter::traits::iterator::Iterator::is_sorted_by_key(@1: Self, @2: F) -> bool where @@ -2756,15 +2756,15 @@ where [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::function::FnMut, [@TraitClause4]: core::cmp::PartialOrd, - (parents(@TraitClause3)::[@TraitClause0])::Output = K, + @TraitClause3::parent_clause0::Output = K, unsafe fn core::iter::traits::iterator::Iterator::__iterator_get_unchecked<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> Self::Item where [@TraitClause0]: core::iter::adapters::zip::TrustedRandomAccessNoCoerce, -fn core::slice::index::SliceIndex::get<'_0, Self, T>(@1: Self, @2: &'_0 (T)) -> core::option::Option<&'_0 (Self::Output), core::marker::Sized<&'_1_0 (Self::Output)>> +fn core::slice::index::SliceIndex::get<'_0, Self, T>(@1: Self, @2: &'_0 (T)) -> core::option::Option<&'_0 (Self::Output)>[core::marker::Sized<&'_1_0 (Self::Output)>] -fn core::slice::index::SliceIndex::get_mut<'_0, Self, T>(@1: Self, @2: &'_0 mut (T)) -> core::option::Option<&'_0 mut (Self::Output), core::marker::Sized<&'_1_0 mut (Self::Output)>> +fn core::slice::index::SliceIndex::get_mut<'_0, Self, T>(@1: Self, @2: &'_0 mut (T)) -> core::option::Option<&'_0 mut (Self::Output)>[core::marker::Sized<&'_1_0 mut (Self::Output)>] unsafe fn core::slice::index::SliceIndex::get_unchecked(@1: Self, @2: *const T) -> *const Self::Output @@ -2797,7 +2797,7 @@ fn core::iter::adapters::zip::TrustedRandomAccessNoCoerce::size<'_0, Self>(@1: & where [@TraitClause0]: core::iter::traits::iterator::Iterator, -fn core::ops::function::FnMut::call_mut<'_0, Self, Args>(@1: &'_0 mut (Self), @2: Args) -> (parents(Self)::[@TraitClause0])::Output +fn core::ops::function::FnMut::call_mut<'_0, Self, Args>(@1: &'_0 mut (Self), @2: Args) -> Self::parent_clause0::Output fn core::ops::function::FnOnce::call_once(@1: Self, @2: Args) -> Self::Output @@ -2809,7 +2809,7 @@ where fn core::ops::try_trait::Try::from_output(@1: Self::Output) -> Self -fn core::ops::try_trait::Try::branch(@1: Self) -> core::ops::control_flow::ControlFlow +fn core::ops::try_trait::Try::branch(@1: Self) -> core::ops::control_flow::ControlFlow[Self::parent_clause0::parent_clause0, Self::parent_clause1] fn core::ops::try_trait::FromResidual::from_residual(@1: R) -> Self @@ -2829,11 +2829,11 @@ where fn core::default::Default::default() -> Self -fn core::iter::traits::double_ended::DoubleEndedIterator::next_back<'_0, Self>(@1: &'_0 mut (Self)) -> core::option::Option<(parents(Self)::[@TraitClause0])::Item, (parents((parents(Self)::[@TraitClause0]))::[@TraitClause0])> +fn core::iter::traits::double_ended::DoubleEndedIterator::next_back<'_0, Self>(@1: &'_0 mut (Self)) -> core::option::Option[Self::parent_clause0::parent_clause0] -fn core::iter::traits::double_ended::DoubleEndedIterator::advance_back_by<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> core::result::Result<(), core::num::nonzero::NonZero, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26>, core::marker::Sized<()>, core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26>>> +fn core::iter::traits::double_ended::DoubleEndedIterator::advance_back_by<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> core::result::Result<(), core::num::nonzero::NonZero[core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26]>[core::marker::Sized<()>, core::marker::Sized[core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26]>] -fn core::iter::traits::double_ended::DoubleEndedIterator::nth_back<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> core::option::Option<(parents(Self)::[@TraitClause0])::Item, (parents((parents(Self)::[@TraitClause0]))::[@TraitClause0])> +fn core::iter::traits::double_ended::DoubleEndedIterator::nth_back<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> core::option::Option[Self::parent_clause0::parent_clause0] fn core::iter::traits::double_ended::DoubleEndedIterator::try_rfold<'_0, Self, B, F, R>(@1: &'_0 mut (Self), @2: B, @3: F) -> R where @@ -2841,9 +2841,9 @@ where [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::marker::Sized, - [@TraitClause4]: core::ops::function::FnMut, + [@TraitClause4]: core::ops::function::FnMut, [@TraitClause5]: core::ops::try_trait::Try, - (parents(@TraitClause4)::[@TraitClause0])::Output = R, + @TraitClause4::parent_clause0::Output = R, @TraitClause5::Output = B, fn core::iter::traits::double_ended::DoubleEndedIterator::rfold(@1: Self, @2: B, @3: F) -> B @@ -2851,15 +2851,15 @@ where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, - [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = B, + [@TraitClause3]: core::ops::function::FnMut, + @TraitClause3::parent_clause0::Output = B, -fn core::iter::traits::double_ended::DoubleEndedIterator::rfind<'_0, Self, P>(@1: &'_0 mut (Self), @2: P) -> core::option::Option<(parents(Self)::[@TraitClause0])::Item, (parents((parents(Self)::[@TraitClause0]))::[@TraitClause0])> +fn core::iter::traits::double_ended::DoubleEndedIterator::rfind<'_0, Self, P>(@1: &'_0 mut (Self), @2: P) -> core::option::Option[Self::parent_clause0::parent_clause0] where [@TraitClause0]: core::marker::Sized

, [@TraitClause1]: core::marker::Sized, - [@TraitClause2]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + [@TraitClause2]: for<'_1_0> core::ops::function::FnMut, + for<'_1_0> @TraitClause2::parent_clause0::Output = bool, fn core::iter::traits::exact_size::ExactSizeIterator::len<'_0, Self>(@1: &'_0 (Self)) -> usize diff --git a/charon/tests/ui/ml-name-matcher-tests.out b/charon/tests/ui/ml-name-matcher-tests.out index 7394bb14..ee63d48d 100644 --- a/charon/tests/ui/ml-name-matcher-tests.out +++ b/charon/tests/ui/ml-name-matcher-tests.out @@ -15,7 +15,7 @@ trait core::marker::Sized trait test_crate::Trait { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized fn method : test_crate::Trait::method } @@ -29,7 +29,7 @@ enum core::option::Option | Some(T) -fn test_crate::{impl test_crate::Trait> for alloc::boxed::Box>}::method() +fn test_crate::{impl test_crate::Trait[@TraitClause0]> for alloc::boxed::Box[core::marker::Sized]}::method() where // Inherited clauses: [@TraitClause0]: core::marker::Sized, @@ -45,15 +45,15 @@ where return } -impl test_crate::{impl test_crate::Trait> for alloc::boxed::Box>} : test_crate::Trait>, core::option::Option> +impl test_crate::{impl test_crate::Trait[@TraitClause0]> for alloc::boxed::Box[core::marker::Sized]} : test_crate::Trait[core::marker::Sized], core::option::Option[@TraitClause0]> where [@TraitClause0]: core::marker::Sized, { - parent_clause0 = core::marker::Sized> - fn method = test_crate::{impl test_crate::Trait> for alloc::boxed::Box>}::method + parent_clause0 = core::marker::Sized[@TraitClause0]> + fn method = test_crate::{impl test_crate::Trait[@TraitClause0]> for alloc::boxed::Box[core::marker::Sized]}::method } -fn test_crate::{impl test_crate::Trait>> for core::option::Option}#1::method() +fn test_crate::{impl test_crate::Trait[core::marker::Sized]> for core::option::Option[@TraitClause1]}#1::method() where // Inherited clauses: [@TraitClause0]: core::marker::Sized, @@ -70,13 +70,13 @@ where return } -impl test_crate::{impl test_crate::Trait>> for core::option::Option}#1 : test_crate::Trait, alloc::boxed::Box>> +impl test_crate::{impl test_crate::Trait[core::marker::Sized]> for core::option::Option[@TraitClause1]}#1 : test_crate::Trait[@TraitClause1], alloc::boxed::Box[core::marker::Sized]> where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, { - parent_clause0 = core::marker::Sized>> - fn method = test_crate::{impl test_crate::Trait>> for core::option::Option}#1::method + parent_clause0 = core::marker::Sized[core::marker::Sized]> + fn method = test_crate::{impl test_crate::Trait[core::marker::Sized]> for core::option::Option[@TraitClause1]}#1::method } struct core::ops::range::RangeFrom @@ -87,7 +87,7 @@ struct core::ops::range::RangeFrom start: Idx, } -fn core::option::{core::option::Option}::is_some<'_0, T>(@1: &'_0 (core::option::Option)) -> bool +fn core::option::{core::option::Option[@TraitClause0]}::is_some<'_0, T>(@1: &'_0 (core::option::Option[@TraitClause0])) -> bool where // Inherited clauses: [@TraitClause0]: core::marker::Sized, @@ -102,7 +102,7 @@ trait core::slice::index::private_slice_index::Sealed trait core::slice::index::SliceIndex { - parent_clause_0 : [@TraitClause0]: core::slice::index::private_slice_index::Sealed + parent_clause0 : [@TraitClause0]: core::slice::index::private_slice_index::Sealed type Output fn get : core::slice::index::SliceIndex::get fn get_mut : core::slice::index::SliceIndex::get_mut @@ -129,50 +129,50 @@ where fn index = core::slice::index::{impl core::ops::index::Index for Slice}::index } -impl core::slice::index::private_slice_index::{impl core::slice::index::private_slice_index::Sealed for core::ops::range::RangeFrom>}#3 : core::slice::index::private_slice_index::Sealed>> +impl core::slice::index::private_slice_index::{impl core::slice::index::private_slice_index::Sealed for core::ops::range::RangeFrom[core::marker::Sized]}#3 : core::slice::index::private_slice_index::Sealed[core::marker::Sized]> -fn core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::RangeFrom>}#7::get<'_0, T>(@1: core::ops::range::RangeFrom>, @2: &'_0 (Slice)) -> core::option::Option<&'_0 (Slice), core::marker::Sized<&'_1_0 (Slice)>> +fn core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::RangeFrom[core::marker::Sized]}#7::get<'_0, T>(@1: core::ops::range::RangeFrom[core::marker::Sized], @2: &'_0 (Slice)) -> core::option::Option<&'_0 (Slice)>[core::marker::Sized<&'_1_0 (Slice)>] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -fn core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::RangeFrom>}#7::get_mut<'_0, T>(@1: core::ops::range::RangeFrom>, @2: &'_0 mut (Slice)) -> core::option::Option<&'_0 mut (Slice), core::marker::Sized<&'_1_0 mut (Slice)>> +fn core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::RangeFrom[core::marker::Sized]}#7::get_mut<'_0, T>(@1: core::ops::range::RangeFrom[core::marker::Sized], @2: &'_0 mut (Slice)) -> core::option::Option<&'_0 mut (Slice)>[core::marker::Sized<&'_1_0 mut (Slice)>] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -unsafe fn core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::RangeFrom>}#7::get_unchecked(@1: core::ops::range::RangeFrom>, @2: *const Slice) -> *const Slice +unsafe fn core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::RangeFrom[core::marker::Sized]}#7::get_unchecked(@1: core::ops::range::RangeFrom[core::marker::Sized], @2: *const Slice) -> *const Slice where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -unsafe fn core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::RangeFrom>}#7::get_unchecked_mut(@1: core::ops::range::RangeFrom>, @2: *mut Slice) -> *mut Slice +unsafe fn core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::RangeFrom[core::marker::Sized]}#7::get_unchecked_mut(@1: core::ops::range::RangeFrom[core::marker::Sized], @2: *mut Slice) -> *mut Slice where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -fn core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::RangeFrom>}#7::index<'_0, T>(@1: core::ops::range::RangeFrom>, @2: &'_0 (Slice)) -> &'_0 (Slice) +fn core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::RangeFrom[core::marker::Sized]}#7::index<'_0, T>(@1: core::ops::range::RangeFrom[core::marker::Sized], @2: &'_0 (Slice)) -> &'_0 (Slice) where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -fn core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::RangeFrom>}#7::index_mut<'_0, T>(@1: core::ops::range::RangeFrom>, @2: &'_0 mut (Slice)) -> &'_0 mut (Slice) +fn core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::RangeFrom[core::marker::Sized]}#7::index_mut<'_0, T>(@1: core::ops::range::RangeFrom[core::marker::Sized], @2: &'_0 mut (Slice)) -> &'_0 mut (Slice) where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -impl core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::RangeFrom>}#7 : core::slice::index::SliceIndex>, Slice> +impl core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::RangeFrom[core::marker::Sized]}#7 : core::slice::index::SliceIndex[core::marker::Sized], Slice> where [@TraitClause0]: core::marker::Sized, { - parent_clause0 = core::slice::index::private_slice_index::{impl core::slice::index::private_slice_index::Sealed for core::ops::range::RangeFrom>}#3 + parent_clause0 = core::slice::index::private_slice_index::{impl core::slice::index::private_slice_index::Sealed for core::ops::range::RangeFrom[core::marker::Sized]}#3 type Output = Slice - fn get = core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::RangeFrom>}#7::get - fn get_mut = core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::RangeFrom>}#7::get_mut - fn get_unchecked = core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::RangeFrom>}#7::get_unchecked - fn get_unchecked_mut = core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::RangeFrom>}#7::get_unchecked_mut - fn index = core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::RangeFrom>}#7::index - fn index_mut = core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::RangeFrom>}#7::index_mut + fn get = core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::RangeFrom[core::marker::Sized]}#7::get + fn get_mut = core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::RangeFrom[core::marker::Sized]}#7::get_mut + fn get_unchecked = core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::RangeFrom[core::marker::Sized]}#7::get_unchecked + fn get_unchecked_mut = core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::RangeFrom[core::marker::Sized]}#7::get_unchecked_mut + fn index = core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::RangeFrom[core::marker::Sized]}#7::index + fn index_mut = core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::RangeFrom[core::marker::Sized]}#7::index_mut } fn core::ops::index::Index::index<'_0, Self, Idx>(@1: &'_0 (Self), @2: Idx) -> &'_0 (Self::Output) @@ -181,8 +181,8 @@ fn test_crate::foo() { let @0: (); // return let @1: bool; // anonymous local - let @2: &'_ (core::option::Option>); // anonymous local - let @3: core::option::Option>; // anonymous local + let @2: &'_ (core::option::Option[core::marker::Sized]); // anonymous local + let @3: core::option::Option[core::marker::Sized]; // anonymous local let slice@4: &'_ (Slice); // local let @5: &'_ (Array); // anonymous local let @6: &'_ (Array); // anonymous local @@ -190,12 +190,12 @@ fn test_crate::foo() let @8: &'_ (Slice); // anonymous local let @9: &'_ (Slice); // anonymous local let @10: &'_ (Slice); // anonymous local - let @11: core::ops::range::RangeFrom>; // anonymous local + let @11: core::ops::range::RangeFrom[core::marker::Sized]; // anonymous local let @12: (); // anonymous local @3 := core::option::Option::Some { 0: const (0 : i32) } @2 := &@3 - @1 := core::option::{core::option::Option}::is_some[core::marker::Sized](move (@2)) + @1 := core::option::{core::option::Option[@TraitClause0]}::is_some[core::marker::Sized](move (@2)) drop @2 @fake_read(@1) drop @3 @@ -209,7 +209,7 @@ fn test_crate::foo() drop @6 @10 := &*(slice@4) @11 := core::ops::range::RangeFrom { start: const (1 : usize) } - @9 := core::slice::index::{impl core::ops::index::Index for Slice}>>[core::marker::Sized, core::marker::Sized>>, core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::RangeFrom>}#7[core::marker::Sized]]::index(move (@10), move (@11)) + @9 := core::slice::index::{impl core::ops::index::Index for Slice}[core::marker::Sized]>[core::marker::Sized, core::marker::Sized[core::marker::Sized]>, core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::RangeFrom[core::marker::Sized]}#7[core::marker::Sized]]::index(move (@10), move (@11)) drop @11 drop @10 @8 := &*(@9) @@ -228,9 +228,9 @@ fn test_crate::Trait::method() where [@TraitClause0]: core::marker::Sized, -fn core::slice::index::SliceIndex::get<'_0, Self, T>(@1: Self, @2: &'_0 (T)) -> core::option::Option<&'_0 (Self::Output), core::marker::Sized<&'_1_0 (Self::Output)>> +fn core::slice::index::SliceIndex::get<'_0, Self, T>(@1: Self, @2: &'_0 (T)) -> core::option::Option<&'_0 (Self::Output)>[core::marker::Sized<&'_1_0 (Self::Output)>] -fn core::slice::index::SliceIndex::get_mut<'_0, Self, T>(@1: Self, @2: &'_0 mut (T)) -> core::option::Option<&'_0 mut (Self::Output), core::marker::Sized<&'_1_0 mut (Self::Output)>> +fn core::slice::index::SliceIndex::get_mut<'_0, Self, T>(@1: Self, @2: &'_0 mut (T)) -> core::option::Option<&'_0 mut (Self::Output)>[core::marker::Sized<&'_1_0 mut (Self::Output)>] unsafe fn core::slice::index::SliceIndex::get_unchecked(@1: Self, @2: *const T) -> *const Self::Output diff --git a/charon/tests/ui/no_nested_borrows.out b/charon/tests/ui/no_nested_borrows.out index 00025067..04190476 100644 --- a/charon/tests/ui/no_nested_borrows.out +++ b/charon/tests/ui/no_nested_borrows.out @@ -18,7 +18,7 @@ enum test_crate::List where [@TraitClause0]: core::marker::Sized, = -| Cons(T, alloc::boxed::Box, core::marker::Sized>) +| Cons(T, alloc::boxed::Box[@TraitClause0]>[core::marker::Sized]) | Nil() @@ -59,10 +59,10 @@ struct test_crate::Tuple T2, } -fn test_crate::use_tuple_struct<'_0>(@1: &'_0 mut (test_crate::Tuple, core::marker::Sized>)) +fn test_crate::use_tuple_struct<'_0>(@1: &'_0 mut (test_crate::Tuple[core::marker::Sized, core::marker::Sized])) { let @0: (); // return - let x@1: &'_ mut (test_crate::Tuple, core::marker::Sized>); // arg #1 + let x@1: &'_ mut (test_crate::Tuple[core::marker::Sized, core::marker::Sized]); // arg #1 let @2: (); // anonymous local (*(x@1)).0 := const (1 : u32) @@ -72,9 +72,9 @@ fn test_crate::use_tuple_struct<'_0>(@1: &'_0 mut (test_crate::Tuple test_crate::Tuple, core::marker::Sized> +fn test_crate::create_tuple_struct(@1: u32, @2: u64) -> test_crate::Tuple[core::marker::Sized, core::marker::Sized] { - let @0: test_crate::Tuple, core::marker::Sized>; // return + let @0: test_crate::Tuple[core::marker::Sized, core::marker::Sized]; // return let x@1: u32; // arg #1 let y@2: u64; // arg #2 let @3: u32; // anonymous local @@ -88,9 +88,9 @@ fn test_crate::create_tuple_struct(@1: u32, @2: u64) -> test_crate::Tuple test_crate::Pair, core::marker::Sized> +fn test_crate::create_pair(@1: u32, @2: u64) -> test_crate::Pair[core::marker::Sized, core::marker::Sized] { - let @0: test_crate::Pair, core::marker::Sized>; // return + let @0: test_crate::Pair[core::marker::Sized, core::marker::Sized]; // return let x@1: u32; // arg #1 let y@2: u64; // arg #2 let @3: u32; // anonymous local @@ -112,23 +112,23 @@ struct test_crate::IdType T, } -fn test_crate::use_id_type(@1: test_crate::IdType) -> T +fn test_crate::use_id_type(@1: test_crate::IdType[@TraitClause0]) -> T where [@TraitClause0]: core::marker::Sized, { let @0: T; // return - let x@1: test_crate::IdType; // arg #1 + let x@1: test_crate::IdType[@TraitClause0]; // arg #1 @0 := move ((x@1).0) drop x@1 return } -fn test_crate::create_id_type(@1: T) -> test_crate::IdType +fn test_crate::create_id_type(@1: T) -> test_crate::IdType[@TraitClause0] where [@TraitClause0]: core::marker::Sized, { - let @0: test_crate::IdType; // return + let @0: test_crate::IdType[@TraitClause0]; // return let x@1: T; // arg #1 let @2: T; // anonymous local @@ -181,11 +181,11 @@ fn test_crate::test2() let z@3: u32; // local let @4: u32; // anonymous local let @5: u32; // anonymous local - let p@6: test_crate::Pair, core::marker::Sized>; // local + let p@6: test_crate::Pair[core::marker::Sized, core::marker::Sized]; // local let @7: u32; // anonymous local let @8: u32; // anonymous local - let s@9: test_crate::Sum, core::marker::Sized>; // local - let o@10: test_crate::One>; // local + let s@9: test_crate::Sum[core::marker::Sized, core::marker::Sized]; // local + let o@10: test_crate::One[core::marker::Sized]; // local let e0@11: test_crate::EmptyEnum; // local let e1@12: test_crate::EmptyEnum; // local let enum0@13: test_crate::Enum; // local @@ -261,13 +261,13 @@ fn test_crate::get_max(@1: u32, @2: u32) -> u32 fn test_crate::test_list1() { let @0: (); // return - let l@1: test_crate::List>; // local - let @2: alloc::boxed::Box>, core::marker::Sized>; // anonymous local - let @3: test_crate::List>; // anonymous local + let l@1: test_crate::List[core::marker::Sized]; // local + let @2: alloc::boxed::Box[core::marker::Sized]>[core::marker::Sized]; // anonymous local + let @3: test_crate::List[core::marker::Sized]; // anonymous local let @4: (); // anonymous local @3 := test_crate::List::Nil { } - @2 := @BoxNew>>[core::marker::Sized>>](move (@3)) + @2 := @BoxNew[core::marker::Sized]>[core::marker::Sized[core::marker::Sized]>](move (@3)) drop @3 l@1 := test_crate::List::Cons { 0: const (0 : i32), 1: move (@2) } drop @2 @@ -289,48 +289,48 @@ trait core::ops::deref::Deref trait core::ops::deref::DerefMut { - parent_clause_0 : [@TraitClause0]: core::ops::deref::Deref + parent_clause0 : [@TraitClause0]: core::ops::deref::Deref fn deref_mut : core::ops::deref::DerefMut::deref_mut } -fn alloc::boxed::{impl core::ops::deref::Deref for alloc::boxed::Box}#38::deref<'_0, T, A>(@1: &'_0 (alloc::boxed::Box)) -> &'_0 (T) +fn alloc::boxed::{impl core::ops::deref::Deref for alloc::boxed::Box[@TraitClause0]}#38::deref<'_0, T, A>(@1: &'_0 (alloc::boxed::Box[@TraitClause0])) -> &'_0 (T) where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -impl alloc::boxed::{impl core::ops::deref::Deref for alloc::boxed::Box}#38 : core::ops::deref::Deref> +impl alloc::boxed::{impl core::ops::deref::Deref for alloc::boxed::Box[@TraitClause0]}#38 : core::ops::deref::Deref[@TraitClause0]> where [@TraitClause0]: core::marker::Sized, { type Target = T - fn deref = alloc::boxed::{impl core::ops::deref::Deref for alloc::boxed::Box}#38::deref + fn deref = alloc::boxed::{impl core::ops::deref::Deref for alloc::boxed::Box[@TraitClause0]}#38::deref } -fn alloc::boxed::{impl core::ops::deref::DerefMut for alloc::boxed::Box}#39::deref_mut<'_0, T, A>(@1: &'_0 mut (alloc::boxed::Box)) -> &'_0 mut (T) +fn alloc::boxed::{impl core::ops::deref::DerefMut for alloc::boxed::Box[@TraitClause0]}#39::deref_mut<'_0, T, A>(@1: &'_0 mut (alloc::boxed::Box[@TraitClause0])) -> &'_0 mut (T) where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -impl alloc::boxed::{impl core::ops::deref::DerefMut for alloc::boxed::Box}#39 : core::ops::deref::DerefMut> +impl alloc::boxed::{impl core::ops::deref::DerefMut for alloc::boxed::Box[@TraitClause0]}#39 : core::ops::deref::DerefMut[@TraitClause0]> where [@TraitClause0]: core::marker::Sized, { - parent_clause0 = alloc::boxed::{impl core::ops::deref::Deref for alloc::boxed::Box}#38[@TraitClause0] - fn deref_mut = alloc::boxed::{impl core::ops::deref::DerefMut for alloc::boxed::Box}#39::deref_mut + parent_clause0 = alloc::boxed::{impl core::ops::deref::Deref for alloc::boxed::Box[@TraitClause0]}#38[@TraitClause0] + fn deref_mut = alloc::boxed::{impl core::ops::deref::DerefMut for alloc::boxed::Box[@TraitClause0]}#39::deref_mut } -fn core::ops::deref::DerefMut::deref_mut<'_0, Self>(@1: &'_0 mut (Self)) -> &'_0 mut ((parents(Self)::[@TraitClause0])::Target) +fn core::ops::deref::DerefMut::deref_mut<'_0, Self>(@1: &'_0 mut (Self)) -> &'_0 mut (Self::parent_clause0::Target) fn core::ops::deref::Deref::deref<'_0, Self>(@1: &'_0 (Self)) -> &'_0 (Self::Target) fn test_crate::test_box1() { let @0: (); // return - let b@1: alloc::boxed::Box>; // local + let b@1: alloc::boxed::Box[core::marker::Sized]; // local let x@2: &'_ mut (i32); // local - let @3: &'_ mut (alloc::boxed::Box>); // anonymous local + let @3: &'_ mut (alloc::boxed::Box[core::marker::Sized]); // anonymous local let x@4: &'_ (i32); // local - let @5: &'_ (alloc::boxed::Box>); // anonymous local + let @5: &'_ (alloc::boxed::Box[core::marker::Sized]); // anonymous local let @6: (); // anonymous local let @7: bool; // anonymous local let @8: i32; // anonymous local @@ -340,12 +340,12 @@ fn test_crate::test_box1() b@1 := @BoxNew[core::marker::Sized](const (0 : i32)) @fake_read(b@1) @3 := &two-phase-mut b@1 - x@2 := alloc::boxed::{impl core::ops::deref::DerefMut for alloc::boxed::Box}#39[core::marker::Sized]::deref_mut(move (@3)) + x@2 := alloc::boxed::{impl core::ops::deref::DerefMut for alloc::boxed::Box[@TraitClause0]}#39[core::marker::Sized]::deref_mut(move (@3)) drop @3 @fake_read(x@2) *(x@2) := const (1 : i32) @5 := &b@1 - x@4 := alloc::boxed::{impl core::ops::deref::Deref for alloc::boxed::Box}#38[core::marker::Sized]::deref(move (@5)) + x@4 := alloc::boxed::{impl core::ops::deref::Deref for alloc::boxed::Box[@TraitClause0]}#38[core::marker::Sized]::deref(move (@5)) drop @5 @fake_read(x@4) @8 := copy (*(x@4)) @@ -400,12 +400,12 @@ fn test_crate::test_unreachable(@1: bool) panic(core::panicking::panic) } -fn test_crate::is_cons<'_0, T>(@1: &'_0 (test_crate::List)) -> bool +fn test_crate::is_cons<'_0, T>(@1: &'_0 (test_crate::List[@TraitClause0])) -> bool where [@TraitClause0]: core::marker::Sized, { let @0: bool; // return - let l@1: &'_ (test_crate::List); // arg #1 + let l@1: &'_ (test_crate::List[@TraitClause0]); // arg #1 @fake_read(l@1) match *(l@1) { @@ -419,16 +419,16 @@ where return } -fn test_crate::split_list(@1: test_crate::List) -> (T, test_crate::List) +fn test_crate::split_list(@1: test_crate::List[@TraitClause0]) -> (T, test_crate::List[@TraitClause0]) where [@TraitClause0]: core::marker::Sized, { - let @0: (T, test_crate::List); // return - let l@1: test_crate::List; // arg #1 + let @0: (T, test_crate::List[@TraitClause0]); // return + let l@1: test_crate::List[@TraitClause0]; // arg #1 let hd@2: T; // local - let tl@3: alloc::boxed::Box, core::marker::Sized>; // local + let tl@3: alloc::boxed::Box[@TraitClause0]>[core::marker::Sized]; // local let @4: T; // anonymous local - let @5: test_crate::List; // anonymous local + let @5: test_crate::List[@TraitClause0]; // anonymous local @fake_read(l@1) match l@1 { @@ -468,14 +468,14 @@ enum test_crate::Tree [@TraitClause0]: core::marker::Sized, = | Leaf(T) -| Node(T, test_crate::NodeElem, alloc::boxed::Box, core::marker::Sized>) +| Node(T, test_crate::NodeElem[@TraitClause0], alloc::boxed::Box[@TraitClause0]>[core::marker::Sized]) enum test_crate::NodeElem where [@TraitClause0]: core::marker::Sized, = -| Cons(alloc::boxed::Box, core::marker::Sized>, alloc::boxed::Box, core::marker::Sized>) +| Cons(alloc::boxed::Box[@TraitClause0]>[core::marker::Sized], alloc::boxed::Box[@TraitClause0]>[core::marker::Sized]) | Nil() @@ -605,9 +605,9 @@ struct test_crate::StructWithTuple p: (T1, T2), } -fn test_crate::new_tuple1() -> test_crate::StructWithTuple, core::marker::Sized> +fn test_crate::new_tuple1() -> test_crate::StructWithTuple[core::marker::Sized, core::marker::Sized] { - let @0: test_crate::StructWithTuple, core::marker::Sized>; // return + let @0: test_crate::StructWithTuple[core::marker::Sized, core::marker::Sized]; // return let @1: (u32, u32); // anonymous local @1 := (const (1 : u32), const (2 : u32)) @@ -616,9 +616,9 @@ fn test_crate::new_tuple1() -> test_crate::StructWithTuple test_crate::StructWithTuple, core::marker::Sized> +fn test_crate::new_tuple2() -> test_crate::StructWithTuple[core::marker::Sized, core::marker::Sized] { - let @0: test_crate::StructWithTuple, core::marker::Sized>; // return + let @0: test_crate::StructWithTuple[core::marker::Sized, core::marker::Sized]; // return let @1: (i16, i16); // anonymous local @1 := (const (1 : i16), const (2 : i16)) @@ -627,9 +627,9 @@ fn test_crate::new_tuple2() -> test_crate::StructWithTuple test_crate::StructWithTuple, core::marker::Sized> +fn test_crate::new_tuple3() -> test_crate::StructWithTuple[core::marker::Sized, core::marker::Sized] { - let @0: test_crate::StructWithTuple, core::marker::Sized>; // return + let @0: test_crate::StructWithTuple[core::marker::Sized, core::marker::Sized]; // return let @1: (u64, i64); // anonymous local @1 := (const (1 : u64), const (2 : i64)) @@ -644,13 +644,13 @@ struct test_crate::StructWithPair [@TraitClause1]: core::marker::Sized, = { - p: test_crate::Pair, + p: test_crate::Pair[@TraitClause0, @TraitClause1], } -fn test_crate::new_pair1() -> test_crate::StructWithPair, core::marker::Sized> +fn test_crate::new_pair1() -> test_crate::StructWithPair[core::marker::Sized, core::marker::Sized] { - let @0: test_crate::StructWithPair, core::marker::Sized>; // return - let @1: test_crate::Pair, core::marker::Sized>; // anonymous local + let @0: test_crate::StructWithPair[core::marker::Sized, core::marker::Sized]; // return + let @1: test_crate::Pair[core::marker::Sized, core::marker::Sized]; // anonymous local // This actually doesn't make rustc generate a constant... // I guess it only happens for tuples. diff --git a/charon/tests/ui/opacity.out b/charon/tests/ui/opacity.out index 8d4e1804..536a0e5a 100644 --- a/charon/tests/ui/opacity.out +++ b/charon/tests/ui/opacity.out @@ -10,13 +10,13 @@ enum core::option::Option | Some(T) -fn core::option::{core::option::Option}::is_some<'_0, T>(@1: &'_0 (core::option::Option)) -> bool +fn core::option::{core::option::Option[@TraitClause0]}::is_some<'_0, T>(@1: &'_0 (core::option::Option[@TraitClause0])) -> bool where // Inherited clauses: [@TraitClause0]: core::marker::Sized, { let @0: bool; // return - let self@1: &'_ (core::option::Option); // arg #1 + let self@1: &'_ (core::option::Option[@TraitClause0]); // arg #1 match *(self@1) { 1 => { @@ -31,15 +31,15 @@ where trait core::convert::Into { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::marker::Sized fn into : core::convert::Into::into } trait core::convert::From { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::marker::Sized fn from : core::convert::From::from } @@ -92,8 +92,8 @@ fn test_crate::foo() { let @0: (); // return let @1: bool; // anonymous local - let @2: &'_ (core::option::Option>); // anonymous local - let @3: core::option::Option>; // anonymous local + let @2: &'_ (core::option::Option[core::marker::Sized]); // anonymous local + let @3: core::option::Option[core::marker::Sized]; // anonymous local let @4: u64; // anonymous local let @5: &'_ (Slice); // anonymous local let @6: &'_ (i32); // anonymous local @@ -103,7 +103,7 @@ fn test_crate::foo() @3 := core::option::Option::Some { 0: const (0 : i32) } @2 := &@3 - @1 := core::option::{core::option::Option}::is_some[core::marker::Sized](move (@2)) + @1 := core::option::{core::option::Option[@TraitClause0]}::is_some[core::marker::Sized](move (@2)) drop @2 @fake_read(@1) drop @3 diff --git a/charon/tests/ui/opaque_attribute.out b/charon/tests/ui/opaque_attribute.out index 5319a3e8..488949af 100644 --- a/charon/tests/ui/opaque_attribute.out +++ b/charon/tests/ui/opaque_attribute.out @@ -30,7 +30,7 @@ enum core::option::Option | Some(T) -fn test_crate::test_bool_trait_option(@1: core::option::Option) -> bool +fn test_crate::test_bool_trait_option(@1: core::option::Option[@TraitClause0]) -> bool where [@TraitClause0]: core::marker::Sized, diff --git a/charon/tests/ui/params.out b/charon/tests/ui/params.out index b77f19d1..80a62c73 100644 --- a/charon/tests/ui/params.out +++ b/charon/tests/ui/params.out @@ -38,7 +38,7 @@ enum test_crate::E1<'a, 'b, T1, T2> T1 : 'b, = | V1(&'a mut (T1), &'b mut (T2)) -| V2(alloc::boxed::Box, core::marker::Sized>) +| V2(alloc::boxed::Box[@TraitClause1, @TraitClause0]>[core::marker::Sized]) enum test_crate::E2<'a, 'b, T1, T2> @@ -51,7 +51,7 @@ enum test_crate::E2<'a, 'b, T1, T2> T2 : 'a, = | V1(&'a mut (T1), &'b mut (T2)) -| V3(alloc::boxed::Box, core::marker::Sized>) +| V3(alloc::boxed::Box[@TraitClause0, @TraitClause1]>[core::marker::Sized]) enum test_crate::E3<'a, 'b, 'c, T1, T2> @@ -68,8 +68,8 @@ enum test_crate::E3<'a, 'b, 'c, T1, T2> 'b : 'c, = | V1(&'a mut (T1), &'b mut (T2)) -| V2(alloc::boxed::Box, core::marker::Sized>) -| V3(alloc::boxed::Box, core::marker::Sized>) +| V2(alloc::boxed::Box[@TraitClause1, @TraitClause0]>[core::marker::Sized]) +| V3(alloc::boxed::Box[@TraitClause0, @TraitClause1]>[core::marker::Sized]) | V4(&'c (&'a (T1))) @@ -89,8 +89,8 @@ enum test_crate::E4<'a, 'b, 'c, T1, T2, T3> 'b : 'c, = | V1(&'a mut (T1), &'b mut (T2)) -| V2(alloc::boxed::Box, core::marker::Sized>) -| V3(alloc::boxed::Box, core::marker::Sized>) +| V2(alloc::boxed::Box[@TraitClause1, @TraitClause0, @TraitClause2]>[core::marker::Sized]) +| V3(alloc::boxed::Box[@TraitClause0, @TraitClause1, @TraitClause2]>[core::marker::Sized]) | V4(&'c (&'a (T3))) @@ -110,8 +110,8 @@ enum test_crate::E5<'a, 'b, 'c, T1, T2, T3> 'c : 'b, = | V1(&'a mut (T1), &'b mut (T2)) -| V2(alloc::boxed::Box, core::marker::Sized>) -| V3(alloc::boxed::Box, core::marker::Sized>) +| V2(alloc::boxed::Box[@TraitClause1, @TraitClause0, @TraitClause2]>[core::marker::Sized]) +| V3(alloc::boxed::Box[@TraitClause0, @TraitClause1, @TraitClause2]>[core::marker::Sized]) | V4(&'a (&'c (T3))) @@ -123,7 +123,7 @@ struct test_crate::S1<'a, 'b, 'c, 'd> 'c : 'b, = { - x: test_crate::E1<'a, 'b, &'c mut (u32), &'d (u32), core::marker::Sized<&'_ mut (u32)>, core::marker::Sized<&'_ (u32)>>, + x: test_crate::E1<'a, 'b, &'c mut (u32), &'d (u32)>[core::marker::Sized<&'_ mut (u32)>, core::marker::Sized<&'_ (u32)>], } diff --git a/charon/tests/ui/polonius_map.out b/charon/tests/ui/polonius_map.out index 50d4cb44..a4690bae 100644 --- a/charon/tests/ui/polonius_map.out +++ b/charon/tests/ui/polonius_map.out @@ -26,7 +26,7 @@ trait core::cmp::PartialEq trait core::cmp::Eq { - parent_clause_0 : [@TraitClause0]: core::cmp::PartialEq + parent_clause0 : [@TraitClause0]: core::cmp::PartialEq fn assert_receiver_is_total_eq : core::cmp::Eq::assert_receiver_is_total_eq } @@ -58,8 +58,8 @@ trait core::hash::Hash trait core::hash::BuildHasher { - parent_clause_0 : [@TraitClause0]: core::hash::Hasher - parent_clause_1 : [@TraitClause1]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::hash::Hasher + parent_clause1 : [@TraitClause1]: core::marker::Sized type Hasher fn build_hasher : core::hash::BuildHasher::build_hasher fn hash_one : core::hash::BuildHasher::hash_one @@ -70,7 +70,7 @@ trait core::borrow::Borrow fn borrow : core::borrow::Borrow::borrow } -fn std::collections::hash::map::{std::collections::hash::map::HashMap}#2::get<'_0, '_1, K, V, S, Q>(@1: &'_0 (std::collections::hash::map::HashMap), @2: &'_1 (Q)) -> core::option::Option<&'_0 (V), core::marker::Sized<&'_1_0 (V)>> +fn std::collections::hash::map::{std::collections::hash::map::HashMap[@TraitClause0, @TraitClause1, @TraitClause2]}#2::get<'_0, '_1, K, V, S, Q>(@1: &'_0 (std::collections::hash::map::HashMap[@TraitClause0, @TraitClause1, @TraitClause2]), @2: &'_1 (Q)) -> core::option::Option<&'_0 (V)>[core::marker::Sized<&'_1_0 (V)>] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, @@ -147,7 +147,7 @@ impl std::hash::random::{impl core::hash::BuildHasher for std::hash::random::Ran fn build_hasher = std::hash::random::{impl core::hash::BuildHasher for std::hash::random::RandomState}#1::build_hasher } -fn std::collections::hash::map::{std::collections::hash::map::HashMap}#2::insert<'_0, K, V, S>(@1: &'_0 mut (std::collections::hash::map::HashMap), @2: K, @3: V) -> core::option::Option +fn std::collections::hash::map::{std::collections::hash::map::HashMap[@TraitClause0, @TraitClause1, @TraitClause2]}#2::insert<'_0, K, V, S>(@1: &'_0 mut (std::collections::hash::map::HashMap[@TraitClause0, @TraitClause1, @TraitClause2]), @2: K, @3: V) -> core::option::Option[@TraitClause1] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, @@ -163,7 +163,7 @@ trait core::ops::index::Index fn index : core::ops::index::Index::index } -fn std::collections::hash::map::{impl core::ops::index::Index<&'_0 (Q)> for std::collections::hash::map::HashMap}#9::index<'_0, '_1, '_2, K, Q, V, S>(@1: &'_1 (std::collections::hash::map::HashMap), @2: &'_2 (Q)) -> &'_1 (V) +fn std::collections::hash::map::{impl core::ops::index::Index<&'_0 (Q)> for std::collections::hash::map::HashMap[@TraitClause0, @TraitClause1, @TraitClause2]}#9::index<'_0, '_1, '_2, K, Q, V, S>(@1: &'_1 (std::collections::hash::map::HashMap[@TraitClause0, @TraitClause1, @TraitClause2]), @2: &'_2 (Q)) -> &'_1 (V) where // Inherited clauses: [@TraitClause0]: core::marker::Sized, @@ -176,7 +176,7 @@ where [@TraitClause7]: core::hash::Hash, [@TraitClause8]: core::hash::BuildHasher, -impl<'_0, K, Q, V, S> std::collections::hash::map::{impl core::ops::index::Index<&'_0 (Q)> for std::collections::hash::map::HashMap}#9<'_0, K, Q, V, S> : core::ops::index::Index, &'_0 (Q)> +impl<'_0, K, Q, V, S> std::collections::hash::map::{impl core::ops::index::Index<&'_0 (Q)> for std::collections::hash::map::HashMap[@TraitClause0, @TraitClause1, @TraitClause2]}#9<'_0, K, Q, V, S> : core::ops::index::Index[@TraitClause0, @TraitClause1, @TraitClause2], &'_0 (Q)> where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, @@ -189,26 +189,26 @@ where [@TraitClause8]: core::hash::BuildHasher, { type Output = V - fn index = std::collections::hash::map::{impl core::ops::index::Index<&'_0 (Q)> for std::collections::hash::map::HashMap}#9::index + fn index = std::collections::hash::map::{impl core::ops::index::Index<&'_0 (Q)> for std::collections::hash::map::HashMap[@TraitClause0, @TraitClause1, @TraitClause2]}#9::index } fn core::ops::index::Index::index<'_0, Self, Idx>(@1: &'_0 (Self), @2: Idx) -> &'_0 (Self::Output) -fn test_crate::get_or_insert<'_0>(@1: &'_0 mut (std::collections::hash::map::HashMap, core::marker::Sized, core::marker::Sized>)) -> &'_0 (u32) +fn test_crate::get_or_insert<'_0>(@1: &'_0 mut (std::collections::hash::map::HashMap[core::marker::Sized, core::marker::Sized, core::marker::Sized])) -> &'_0 (u32) { let @0: &'_ (u32); // return - let map@1: &'_ mut (std::collections::hash::map::HashMap, core::marker::Sized, core::marker::Sized>); // arg #1 - let @2: core::option::Option<&'_ (u32), core::marker::Sized<&'_ (u32)>>; // anonymous local - let @3: &'_ (std::collections::hash::map::HashMap, core::marker::Sized, core::marker::Sized>); // anonymous local + let map@1: &'_ mut (std::collections::hash::map::HashMap[core::marker::Sized, core::marker::Sized, core::marker::Sized]); // arg #1 + let @2: core::option::Option<&'_ (u32)>[core::marker::Sized<&'_ (u32)>]; // anonymous local + let @3: &'_ (std::collections::hash::map::HashMap[core::marker::Sized, core::marker::Sized, core::marker::Sized]); // anonymous local let @4: &'_ (u32); // anonymous local let @5: &'_ (u32); // anonymous local let @6: u32; // anonymous local let v@7: &'_ (u32); // local - let @8: core::option::Option>; // anonymous local - let @9: &'_ mut (std::collections::hash::map::HashMap, core::marker::Sized, core::marker::Sized>); // anonymous local + let @8: core::option::Option[core::marker::Sized]; // anonymous local + let @9: &'_ mut (std::collections::hash::map::HashMap[core::marker::Sized, core::marker::Sized, core::marker::Sized]); // anonymous local let @10: &'_ (u32); // anonymous local let @11: &'_ (u32); // anonymous local - let @12: &'_ (std::collections::hash::map::HashMap, core::marker::Sized, core::marker::Sized>); // anonymous local + let @12: &'_ (std::collections::hash::map::HashMap[core::marker::Sized, core::marker::Sized, core::marker::Sized]); // anonymous local let @13: &'_ (u32); // anonymous local let @14: &'_ (u32); // anonymous local let @15: u32; // anonymous local @@ -217,21 +217,21 @@ fn test_crate::get_or_insert<'_0>(@1: &'_0 mut (std::collections::hash::map::Has @6 := const (22 : u32) @5 := &@6 @4 := &*(@5) - @2 := std::collections::hash::map::{std::collections::hash::map::HashMap}#2::get[core::borrow::{impl core::borrow::Borrow for T}, core::hash::impls::{impl core::hash::Hash for u32}#11, core::cmp::impls::{impl core::cmp::Eq for u32}#43, core::marker::Sized, core::marker::Sized, core::marker::Sized, core::cmp::impls::{impl core::cmp::Eq for u32}#43, core::hash::impls::{impl core::hash::Hash for u32}#11, std::hash::random::{impl core::hash::BuildHasher for std::hash::random::RandomState}#1](move (@3), move (@4)) + @2 := std::collections::hash::map::{std::collections::hash::map::HashMap[@TraitClause0, @TraitClause1, @TraitClause2]}#2::get[core::borrow::{impl core::borrow::Borrow for T}, core::hash::impls::{impl core::hash::Hash for u32}#11, core::cmp::impls::{impl core::cmp::Eq for u32}#43, core::marker::Sized, core::marker::Sized, core::marker::Sized, core::cmp::impls::{impl core::cmp::Eq for u32}#43, core::hash::impls::{impl core::hash::Hash for u32}#11, std::hash::random::{impl core::hash::BuildHasher for std::hash::random::RandomState}#1](move (@3), move (@4)) drop @4 drop @3 @fake_read(@2) match @2 { 0 => { @9 := &two-phase-mut *(map@1) - @8 := std::collections::hash::map::{std::collections::hash::map::HashMap}#2::insert[core::marker::Sized, core::marker::Sized, core::marker::Sized, core::cmp::impls::{impl core::cmp::Eq for u32}#43, core::hash::impls::{impl core::hash::Hash for u32}#11, std::hash::random::{impl core::hash::BuildHasher for std::hash::random::RandomState}#1](move (@9), const (22 : u32), const (33 : u32)) + @8 := std::collections::hash::map::{std::collections::hash::map::HashMap[@TraitClause0, @TraitClause1, @TraitClause2]}#2::insert[core::marker::Sized, core::marker::Sized, core::marker::Sized, core::cmp::impls::{impl core::cmp::Eq for u32}#43, core::hash::impls::{impl core::hash::Hash for u32}#11, std::hash::random::{impl core::hash::BuildHasher for std::hash::random::RandomState}#1](move (@9), const (22 : u32), const (33 : u32)) drop @9 drop @8 @12 := &*(map@1) @15 := const (22 : u32) @14 := &@15 @13 := &*(@14) - @11 := std::collections::hash::map::{impl core::ops::index::Index<&'_0 (Q)> for std::collections::hash::map::HashMap}#9<'_, u32, u32, u32, std::hash::random::RandomState>[core::marker::Sized, core::marker::Sized, core::marker::Sized, core::cmp::impls::{impl core::cmp::Eq for u32}#43, core::hash::impls::{impl core::hash::Hash for u32}#11, core::borrow::{impl core::borrow::Borrow for T}, core::cmp::impls::{impl core::cmp::Eq for u32}#43, core::hash::impls::{impl core::hash::Hash for u32}#11, std::hash::random::{impl core::hash::BuildHasher for std::hash::random::RandomState}#1]::index(move (@12), move (@13)) + @11 := std::collections::hash::map::{impl core::ops::index::Index<&'_0 (Q)> for std::collections::hash::map::HashMap[@TraitClause0, @TraitClause1, @TraitClause2]}#9<'_, u32, u32, u32, std::hash::random::RandomState>[core::marker::Sized, core::marker::Sized, core::marker::Sized, core::cmp::impls::{impl core::cmp::Eq for u32}#43, core::hash::impls::{impl core::hash::Hash for u32}#11, core::borrow::{impl core::borrow::Borrow for T}, core::cmp::impls::{impl core::cmp::Eq for u32}#43, core::hash::impls::{impl core::hash::Hash for u32}#11, std::hash::random::{impl core::hash::BuildHasher for std::hash::random::RandomState}#1]::index(move (@12), move (@13)) drop @13 drop @12 @10 := &*(@11) diff --git a/charon/tests/ui/predicates-on-late-bound-vars.out b/charon/tests/ui/predicates-on-late-bound-vars.out index 6534e494..57f6300a 100644 --- a/charon/tests/ui/predicates-on-late-bound-vars.out +++ b/charon/tests/ui/predicates-on-late-bound-vars.out @@ -10,9 +10,9 @@ enum core::option::Option | Some(T) -fn test_crate::wrap<'a>(@1: &'a (u32)) -> core::option::Option<&'a (u32), core::marker::Sized<&'a (u32)>> +fn test_crate::wrap<'a>(@1: &'a (u32)) -> core::option::Option<&'a (u32)>[core::marker::Sized<&'a (u32)>] { - let @0: core::option::Option<&'_ (u32), core::marker::Sized<&'_ (u32)>>; // return + let @0: core::option::Option<&'_ (u32)>[core::marker::Sized<&'_ (u32)>]; // return let x@1: &'_ (u32); // arg #1 let @2: &'_ (u32); // anonymous local @@ -24,16 +24,16 @@ fn test_crate::wrap<'a>(@1: &'a (u32)) -> core::option::Option<&'a (u32), core:: trait core::clone::Clone { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized fn clone : core::clone::Clone::clone fn clone_from : core::clone::Clone::clone_from } -fn test_crate::wrap2<'a>(@1: &'a (u32)) -> core::option::Option<&'a (u32), core::marker::Sized<&'_ (u32)>> +fn test_crate::wrap2<'a>(@1: &'a (u32)) -> core::option::Option<&'a (u32)>[core::marker::Sized<&'_ (u32)>] where [@TraitClause0]: core::clone::Clone<&'_ (())>, { - let @0: core::option::Option<&'_ (u32), core::marker::Sized<&'_ (u32)>>; // return + let @0: core::option::Option<&'_ (u32)>[core::marker::Sized<&'_ (u32)>]; // return let x@1: &'_ (u32); // arg #1 let @2: &'_ (u32); // anonymous local @@ -65,13 +65,13 @@ where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -fn core::cell::{core::cell::RefCell}#22::try_borrow<'_0, T>(@1: &'_0 (core::cell::RefCell)) -> core::result::Result, core::cell::BorrowError, core::marker::Sized>, core::marker::Sized> +fn core::cell::{core::cell::RefCell}#22::try_borrow<'_0, T>(@1: &'_0 (core::cell::RefCell)) -> core::result::Result, core::cell::BorrowError>[core::marker::Sized>, core::marker::Sized] fn test_crate::foo() { let @0: (); // return let ref_b@1: core::cell::RefCell; // local - let @2: core::result::Result, core::cell::BorrowError, core::marker::Sized>, core::marker::Sized>; // anonymous local + let @2: core::result::Result, core::cell::BorrowError>[core::marker::Sized>, core::marker::Sized]; // anonymous local let @3: &'_ (core::cell::RefCell); // anonymous local let @4: (); // anonymous local @@ -93,11 +93,11 @@ fn test_crate::foo() trait test_crate::Foo { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized type S } -fn test_crate::f() -> core::option::Option<@TraitClause2::S, (parents(@TraitClause3)::[@TraitClause0])> +fn test_crate::f() -> core::option::Option<@TraitClause2::S>[@TraitClause3::parent_clause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, @@ -105,7 +105,7 @@ where [@TraitClause3]: test_crate::Foo, @TraitClause2::S = @TraitClause3::S, { - let @0: core::option::Option<@TraitClause3::S, (parents(@TraitClause3)::[@TraitClause0])>; // return + let @0: core::option::Option<@TraitClause3::S>[@TraitClause3::parent_clause0]; // return panic(core::panicking::panic) } diff --git a/charon/tests/ui/region-inference-vars.out b/charon/tests/ui/region-inference-vars.out index cb8d2f82..42e2a8f2 100644 --- a/charon/tests/ui/region-inference-vars.out +++ b/charon/tests/ui/region-inference-vars.out @@ -13,15 +13,15 @@ enum core::result::Result trait test_crate::MyTryFrom { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::marker::Sized type Error fn from : test_crate::MyTryFrom::from } -fn test_crate::{impl test_crate::MyTryFrom<&'_0 (bool)> for bool}::from<'_0, '_1>(@1: &'_1 (bool)) -> core::result::Result for bool}<'_>::Error, core::marker::Sized, core::marker::Sized<()>> +fn test_crate::{impl test_crate::MyTryFrom<&'_0 (bool)> for bool}::from<'_0, '_1>(@1: &'_1 (bool)) -> core::result::Result for bool}<'_>::Error>[core::marker::Sized, core::marker::Sized<()>] { - let @0: core::result::Result, core::marker::Sized<()>>; // return + let @0: core::result::Result[core::marker::Sized, core::marker::Sized<()>]; // return let v@1: &'_ (bool); // arg #1 let @2: bool; // anonymous local @@ -39,7 +39,7 @@ impl<'_0> test_crate::{impl test_crate::MyTryFrom<&'_0 (bool)> for bool}<'_0> : fn from = test_crate::{impl test_crate::MyTryFrom<&'_0 (bool)> for bool}::from } -fn test_crate::MyTryFrom::from(@1: T) -> core::result::Result +fn test_crate::MyTryFrom::from(@1: T) -> core::result::Result[@TraitClause0, Self::parent_clause1] where [@TraitClause0]: core::marker::Sized, diff --git a/charon/tests/ui/result-unwrap.out b/charon/tests/ui/result-unwrap.out index 41104e4c..99665d12 100644 --- a/charon/tests/ui/result-unwrap.out +++ b/charon/tests/ui/result-unwrap.out @@ -34,8 +34,8 @@ struct core::fmt::Formatter<'a> flags: u32, fill: char, align: core::fmt::rt::Alignment, - width: core::option::Option>, - precision: core::option::Option>, + width: core::option::Option[core::marker::Sized], + precision: core::option::Option[core::marker::Sized], buf: &'a mut (dyn (exists(TODO))), } @@ -48,7 +48,7 @@ trait core::fmt::Debug fn core::result::unwrap_failed<'_0, '_1>(@1: &'_0 (Str), @2: &'_1 (dyn (exists(TODO)))) -> ! -fn core::result::{core::result::Result}::unwrap(@1: core::result::Result) -> T +fn core::result::{core::result::Result[@TraitClause0, @TraitClause1]}::unwrap(@1: core::result::Result[@TraitClause0, @TraitClause1]) -> T where // Inherited clauses: [@TraitClause0]: core::marker::Sized, @@ -57,7 +57,7 @@ where [@TraitClause2]: core::fmt::Debug, { let t@0: T; // return - let self@1: core::result::Result; // arg #1 + let self@1: core::result::Result[@TraitClause0, @TraitClause1]; // arg #1 let e@2: E; // local let @3: !; // anonymous local let @4: &'_ (dyn (exists(TODO))); // anonymous local @@ -82,46 +82,46 @@ trait core::fmt::Display fn fmt : core::fmt::Display::fmt } -fn core::fmt::num::imp::{impl core::fmt::Display for u32}#5::fmt<'_0, '_1, '_2>(@1: &'_0 (u32), @2: &'_1 mut (core::fmt::Formatter<'_2>)) -> core::result::Result<(), core::fmt::Error, core::marker::Sized<()>, core::marker::Sized> +fn core::fmt::num::imp::{impl core::fmt::Display for u32}#5::fmt<'_0, '_1, '_2>(@1: &'_0 (u32), @2: &'_1 mut (core::fmt::Formatter<'_2>)) -> core::result::Result<(), core::fmt::Error>[core::marker::Sized<()>, core::marker::Sized] impl core::fmt::num::imp::{impl core::fmt::Display for u32}#5 : core::fmt::Display { fn fmt = core::fmt::num::imp::{impl core::fmt::Display for u32}#5::fmt } -fn core::fmt::Display::fmt<'_0, '_1, '_2, Self>(@1: &'_0 (Self), @2: &'_1 mut (core::fmt::Formatter<'_2>)) -> core::result::Result<(), core::fmt::Error, core::marker::Sized<()>, core::marker::Sized> +fn core::fmt::Display::fmt<'_0, '_1, '_2, Self>(@1: &'_0 (Self), @2: &'_1 mut (core::fmt::Formatter<'_2>)) -> core::result::Result<(), core::fmt::Error>[core::marker::Sized<()>, core::marker::Sized] trait core::fmt::UpperHex { fn fmt : core::fmt::UpperHex::fmt } -fn core::fmt::num::{impl core::fmt::UpperHex for u32}#61::fmt<'_0, '_1, '_2>(@1: &'_0 (u32), @2: &'_1 mut (core::fmt::Formatter<'_2>)) -> core::result::Result<(), core::fmt::Error, core::marker::Sized<()>, core::marker::Sized> +fn core::fmt::num::{impl core::fmt::UpperHex for u32}#61::fmt<'_0, '_1, '_2>(@1: &'_0 (u32), @2: &'_1 mut (core::fmt::Formatter<'_2>)) -> core::result::Result<(), core::fmt::Error>[core::marker::Sized<()>, core::marker::Sized] impl core::fmt::num::{impl core::fmt::UpperHex for u32}#61 : core::fmt::UpperHex { fn fmt = core::fmt::num::{impl core::fmt::UpperHex for u32}#61::fmt } -fn core::fmt::UpperHex::fmt<'_0, '_1, '_2, Self>(@1: &'_0 (Self), @2: &'_1 mut (core::fmt::Formatter<'_2>)) -> core::result::Result<(), core::fmt::Error, core::marker::Sized<()>, core::marker::Sized> +fn core::fmt::UpperHex::fmt<'_0, '_1, '_2, Self>(@1: &'_0 (Self), @2: &'_1 mut (core::fmt::Formatter<'_2>)) -> core::result::Result<(), core::fmt::Error>[core::marker::Sized<()>, core::marker::Sized] trait core::fmt::LowerHex { fn fmt : core::fmt::LowerHex::fmt } -fn core::fmt::num::{impl core::fmt::LowerHex for u32}#60::fmt<'_0, '_1, '_2>(@1: &'_0 (u32), @2: &'_1 mut (core::fmt::Formatter<'_2>)) -> core::result::Result<(), core::fmt::Error, core::marker::Sized<()>, core::marker::Sized> +fn core::fmt::num::{impl core::fmt::LowerHex for u32}#60::fmt<'_0, '_1, '_2>(@1: &'_0 (u32), @2: &'_1 mut (core::fmt::Formatter<'_2>)) -> core::result::Result<(), core::fmt::Error>[core::marker::Sized<()>, core::marker::Sized] impl core::fmt::num::{impl core::fmt::LowerHex for u32}#60 : core::fmt::LowerHex { fn fmt = core::fmt::num::{impl core::fmt::LowerHex for u32}#60::fmt } -fn core::fmt::LowerHex::fmt<'_0, '_1, '_2, Self>(@1: &'_0 (Self), @2: &'_1 mut (core::fmt::Formatter<'_2>)) -> core::result::Result<(), core::fmt::Error, core::marker::Sized<()>, core::marker::Sized> +fn core::fmt::LowerHex::fmt<'_0, '_1, '_2, Self>(@1: &'_0 (Self), @2: &'_1 mut (core::fmt::Formatter<'_2>)) -> core::result::Result<(), core::fmt::Error>[core::marker::Sized<()>, core::marker::Sized] -fn core::fmt::num::{impl core::fmt::Debug for u32}#86::fmt<'_0, '_1, '_2>(@1: &'_0 (u32), @2: &'_1 mut (core::fmt::Formatter<'_2>)) -> core::result::Result<(), core::fmt::Error, core::marker::Sized<()>, core::marker::Sized> +fn core::fmt::num::{impl core::fmt::Debug for u32}#86::fmt<'_0, '_1, '_2>(@1: &'_0 (u32), @2: &'_1 mut (core::fmt::Formatter<'_2>)) -> core::result::Result<(), core::fmt::Error>[core::marker::Sized<()>, core::marker::Sized] { - let @0: core::result::Result<(), core::fmt::Error, core::marker::Sized<()>, core::marker::Sized>; // return + let @0: core::result::Result<(), core::fmt::Error>[core::marker::Sized<()>, core::marker::Sized]; // return let self@1: &'_ (u32); // arg #1 let f@2: &'_ mut (core::fmt::Formatter<'_>); // arg #2 let @3: u32; // anonymous local @@ -162,19 +162,19 @@ impl core::fmt::num::{impl core::fmt::Debug for u32}#86 : core::fmt::Debug fn fmt = core::fmt::num::{impl core::fmt::Debug for u32}#86::fmt } -fn test_crate::unwrap(@1: core::result::Result, core::marker::Sized>) -> u32 +fn test_crate::unwrap(@1: core::result::Result[core::marker::Sized, core::marker::Sized]) -> u32 { let @0: u32; // return - let res@1: core::result::Result, core::marker::Sized>; // arg #1 - let @2: core::result::Result, core::marker::Sized>; // anonymous local + let res@1: core::result::Result[core::marker::Sized, core::marker::Sized]; // arg #1 + let @2: core::result::Result[core::marker::Sized, core::marker::Sized]; // anonymous local @2 := copy (res@1) - @0 := core::result::{core::result::Result}::unwrap[core::fmt::num::{impl core::fmt::Debug for u32}#86, core::marker::Sized, core::marker::Sized](move (@2)) + @0 := core::result::{core::result::Result[@TraitClause0, @TraitClause1]}::unwrap[core::fmt::num::{impl core::fmt::Debug for u32}#86, core::marker::Sized, core::marker::Sized](move (@2)) drop @2 return } -fn core::fmt::Debug::fmt<'_0, '_1, '_2, Self>(@1: &'_0 (Self), @2: &'_1 mut (core::fmt::Formatter<'_2>)) -> core::result::Result<(), core::fmt::Error, core::marker::Sized<()>, core::marker::Sized> +fn core::fmt::Debug::fmt<'_0, '_1, '_2, Self>(@1: &'_0 (Self), @2: &'_1 mut (core::fmt::Formatter<'_2>)) -> core::result::Result<(), core::fmt::Error>[core::marker::Sized<()>, core::marker::Sized] diff --git a/charon/tests/ui/rvalues.out b/charon/tests/ui/rvalues.out index e8740206..b1d9846e 100644 --- a/charon/tests/ui/rvalues.out +++ b/charon/tests/ui/rvalues.out @@ -227,8 +227,8 @@ struct alloc::alloc::Global = {} fn test_crate::boxes() { let @0: (); // return - let @1: alloc::boxed::Box>; // anonymous local - let @2: alloc::boxed::Box>; // anonymous local + let @1: alloc::boxed::Box[core::marker::Sized]; // anonymous local + let @2: alloc::boxed::Box[core::marker::Sized]; // anonymous local let @3: (); // anonymous local @2 := @BoxNew[core::marker::Sized](const (42 : i32)) @@ -296,7 +296,7 @@ where // This one seems to be optimized out. size@1 := size_of align@2 := align_of - offset@3 := offset_of(?)> + offset@3 := offset_of(?)[@TraitClause0]> @4 := copy (size@1) + copy (align@2) @0 := copy (@4) + copy (offset@3) return diff --git a/charon/tests/ui/trait-instance-id.out b/charon/tests/ui/trait-instance-id.out index a3438e6c..18fe36f6 100644 --- a/charon/tests/ui/trait-instance-id.out +++ b/charon/tests/ui/trait-instance-id.out @@ -53,26 +53,26 @@ enum core::result::Result trait core::clone::Clone { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized fn clone : core::clone::Clone::clone fn clone_from : core::clone::Clone::clone_from } trait core::marker::Copy { - parent_clause_0 : [@TraitClause0]: core::clone::Clone + parent_clause0 : [@TraitClause0]: core::clone::Clone } trait core::num::nonzero::private::Sealed trait core::num::nonzero::ZeroablePrimitive { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::marker::Copy - parent_clause_2 : [@TraitClause2]: core::num::nonzero::private::Sealed - parent_clause_3 : [@TraitClause3]: core::marker::Copy - parent_clause_4 : [@TraitClause4]: core::clone::Clone - parent_clause_5 : [@TraitClause5]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::marker::Copy + parent_clause2 : [@TraitClause2]: core::num::nonzero::private::Sealed + parent_clause3 : [@TraitClause3]: core::marker::Copy + parent_clause4 : [@TraitClause4]: core::clone::Clone + parent_clause5 : [@TraitClause5]: core::marker::Sized type NonZeroInner } @@ -140,18 +140,18 @@ trait core::marker::Tuple trait core::ops::function::FnOnce { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::marker::Tuple - parent_clause_2 : [@TraitClause2]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::marker::Tuple + parent_clause2 : [@TraitClause2]: core::marker::Sized type Output fn call_once : core::ops::function::FnOnce::call_once } trait core::ops::function::FnMut { - parent_clause_0 : [@TraitClause0]: core::ops::function::FnOnce - parent_clause_1 : [@TraitClause1]: core::marker::Sized - parent_clause_2 : [@TraitClause2]: core::marker::Tuple + parent_clause0 : [@TraitClause0]: core::ops::function::FnOnce + parent_clause1 : [@TraitClause1]: core::marker::Sized + parent_clause2 : [@TraitClause2]: core::marker::Tuple fn call_mut : core::ops::function::FnMut::call_mut } @@ -214,7 +214,7 @@ opaque type core::iter::adapters::inspect::Inspect trait core::ops::try_trait::FromResidual { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized fn from_residual : core::ops::try_trait::FromResidual::from_residual } @@ -229,9 +229,9 @@ enum core::ops::control_flow::ControlFlow trait core::ops::try_trait::Try { - parent_clause_0 : [@TraitClause0]: core::ops::try_trait::FromResidual - parent_clause_1 : [@TraitClause1]: core::marker::Sized - parent_clause_2 : [@TraitClause2]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::ops::try_trait::FromResidual + parent_clause1 : [@TraitClause1]: core::marker::Sized + parent_clause2 : [@TraitClause2]: core::marker::Sized type Output type Residual fn from_output : core::ops::try_trait::Try::from_output @@ -240,19 +240,19 @@ trait core::ops::try_trait::Try trait core::ops::try_trait::Residual where - (parents(Self)::[@TraitClause1])::Residual = Self, - (parents(Self)::[@TraitClause1])::Output = O, + Self::parent_clause1::Residual = Self, + Self::parent_clause1::Output = O, { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::ops::try_trait::Try - parent_clause_2 : [@TraitClause2]: core::ops::try_trait::FromResidual - parent_clause_3 : [@TraitClause3]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::ops::try_trait::Try + parent_clause2 : [@TraitClause2]: core::ops::try_trait::FromResidual + parent_clause3 : [@TraitClause3]: core::marker::Sized type TryType } trait core::default::Default { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized fn default : core::default::Default::default } @@ -264,7 +264,7 @@ trait core::cmp::PartialEq trait core::cmp::Eq { - parent_clause_0 : [@TraitClause0]: core::cmp::PartialEq + parent_clause0 : [@TraitClause0]: core::cmp::PartialEq fn assert_receiver_is_total_eq : core::cmp::Eq::assert_receiver_is_total_eq } @@ -276,7 +276,7 @@ enum core::cmp::Ordering = trait core::cmp::PartialOrd { - parent_clause_0 : [@TraitClause0]: core::cmp::PartialEq + parent_clause0 : [@TraitClause0]: core::cmp::PartialEq fn partial_cmp : core::cmp::PartialOrd::partial_cmp fn lt : core::cmp::PartialOrd::lt fn le : core::cmp::PartialOrd::le @@ -286,8 +286,8 @@ trait core::cmp::PartialOrd trait core::cmp::Ord { - parent_clause_0 : [@TraitClause0]: core::cmp::Eq - parent_clause_1 : [@TraitClause1]: core::cmp::PartialOrd + parent_clause0 : [@TraitClause0]: core::cmp::Eq + parent_clause1 : [@TraitClause1]: core::cmp::PartialOrd fn cmp : core::cmp::Ord::cmp fn max : core::cmp::Ord::max fn min : core::cmp::Ord::min @@ -312,11 +312,11 @@ opaque type core::iter::adapters::cycle::Cycle trait core::iter::traits::collect::IntoIterator where - (parents(Self)::[@TraitClause1])::Item = Self::Item, + Self::parent_clause1::Item = Self::Item, { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::iter::traits::iterator::Iterator - parent_clause_2 : [@TraitClause2]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::iter::traits::iterator::Iterator + parent_clause2 : [@TraitClause2]: core::marker::Sized type Item type IntoIter fn into_iter : core::iter::traits::collect::IntoIterator::into_iter @@ -324,7 +324,7 @@ where trait core::iter::traits::iterator::Iterator { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized type Item fn next : core::iter::traits::iterator::Iterator::next fn next_chunk : core::iter::traits::iterator::Iterator::next_chunk @@ -443,14 +443,14 @@ opaque type core::iter::adapters::map_windows::MapWindows trait core::iter::traits::collect::FromIterator { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::marker::Sized fn from_iter : core::iter::traits::collect::FromIterator::from_iter } trait core::iter::traits::collect::Extend { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized fn extend : core::iter::traits::collect::Extend::extend fn extend_one : core::iter::traits::collect::Extend::extend_one fn extend_reserve : core::iter::traits::collect::Extend::extend_reserve @@ -459,7 +459,7 @@ trait core::iter::traits::collect::Extend trait core::iter::traits::double_ended::DoubleEndedIterator { - parent_clause_0 : [@TraitClause0]: core::iter::traits::iterator::Iterator + parent_clause0 : [@TraitClause0]: core::iter::traits::iterator::Iterator fn next_back : core::iter::traits::double_ended::DoubleEndedIterator::next_back fn advance_back_by : core::iter::traits::double_ended::DoubleEndedIterator::advance_back_by fn nth_back : core::iter::traits::double_ended::DoubleEndedIterator::nth_back @@ -470,7 +470,7 @@ trait core::iter::traits::double_ended::DoubleEndedIterator trait core::iter::traits::exact_size::ExactSizeIterator { - parent_clause_0 : [@TraitClause0]: core::iter::traits::iterator::Iterator + parent_clause0 : [@TraitClause0]: core::iter::traits::iterator::Iterator fn len : core::iter::traits::exact_size::ExactSizeIterator::len fn is_empty : core::iter::traits::exact_size::ExactSizeIterator::is_empty } @@ -482,51 +482,51 @@ opaque type core::iter::adapters::array_chunks::ArrayChunks trait core::iter::traits::accum::Sum { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::marker::Sized fn sum : core::iter::traits::accum::Sum::sum } trait core::iter::traits::accum::Product { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::marker::Sized fn product : core::iter::traits::accum::Product::product } trait core::iter::adapters::zip::TrustedRandomAccessNoCoerce { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized const MAY_HAVE_SIDE_EFFECT : bool fn size : core::iter::adapters::zip::TrustedRandomAccessNoCoerce::size } -fn core::array::iter::{impl core::iter::traits::iterator::Iterator for core::array::iter::IntoIter}#2::next<'_0, T, const N : usize>(@1: &'_0 mut (core::array::iter::IntoIter)) -> core::option::Option}#2[@TraitClause0]::Item, @TraitClause0> +fn core::array::iter::{impl core::iter::traits::iterator::Iterator for core::array::iter::IntoIter[@TraitClause0]}#2::next<'_0, T, const N : usize>(@1: &'_0 mut (core::array::iter::IntoIter[@TraitClause0])) -> core::option::Option[@TraitClause0]}#2[@TraitClause0]::Item>[@TraitClause0] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -fn core::array::iter::{impl core::iter::traits::iterator::Iterator for core::array::iter::IntoIter}#2::size_hint<'_0, T, const N : usize>(@1: &'_0 (core::array::iter::IntoIter)) -> (usize, core::option::Option>) +fn core::array::iter::{impl core::iter::traits::iterator::Iterator for core::array::iter::IntoIter[@TraitClause0]}#2::size_hint<'_0, T, const N : usize>(@1: &'_0 (core::array::iter::IntoIter[@TraitClause0])) -> (usize, core::option::Option[core::marker::Sized]) where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -fn core::array::iter::{impl core::iter::traits::iterator::Iterator for core::array::iter::IntoIter}#2::count(@1: core::array::iter::IntoIter) -> usize +fn core::array::iter::{impl core::iter::traits::iterator::Iterator for core::array::iter::IntoIter[@TraitClause0]}#2::count(@1: core::array::iter::IntoIter[@TraitClause0]) -> usize where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -fn core::array::iter::{impl core::iter::traits::iterator::Iterator for core::array::iter::IntoIter}#2::last(@1: core::array::iter::IntoIter) -> core::option::Option}#2[@TraitClause0]::Item, @TraitClause0> +fn core::array::iter::{impl core::iter::traits::iterator::Iterator for core::array::iter::IntoIter[@TraitClause0]}#2::last(@1: core::array::iter::IntoIter[@TraitClause0]) -> core::option::Option[@TraitClause0]}#2[@TraitClause0]::Item>[@TraitClause0] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -fn core::array::iter::{impl core::iter::traits::iterator::Iterator for core::array::iter::IntoIter}#2::advance_by<'_0, T, const N : usize>(@1: &'_0 mut (core::array::iter::IntoIter), @2: usize) -> core::result::Result<(), core::num::nonzero::NonZero, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26>, core::marker::Sized<()>, core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26>>> +fn core::array::iter::{impl core::iter::traits::iterator::Iterator for core::array::iter::IntoIter[@TraitClause0]}#2::advance_by<'_0, T, const N : usize>(@1: &'_0 mut (core::array::iter::IntoIter[@TraitClause0]), @2: usize) -> core::result::Result<(), core::num::nonzero::NonZero[core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26]>[core::marker::Sized<()>, core::marker::Sized[core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26]>] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -fn core::array::iter::{impl core::iter::traits::iterator::Iterator for core::array::iter::IntoIter}#2::fold(@1: core::array::iter::IntoIter, @2: Acc, @3: Fold) -> Acc +fn core::array::iter::{impl core::iter::traits::iterator::Iterator for core::array::iter::IntoIter[@TraitClause0]}#2::fold(@1: core::array::iter::IntoIter[@TraitClause0], @2: Acc, @3: Fold) -> Acc where // Inherited clauses: [@TraitClause0]: core::marker::Sized, @@ -534,26 +534,26 @@ where [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = Acc, + @TraitClause3::parent_clause0::Output = Acc, -unsafe fn core::array::iter::{impl core::iter::traits::iterator::Iterator for core::array::iter::IntoIter}#2::__iterator_get_unchecked<'_0, T, const N : usize>(@1: &'_0 mut (core::array::iter::IntoIter), @2: usize) -> core::array::iter::{impl core::iter::traits::iterator::Iterator for core::array::iter::IntoIter}#2[@TraitClause0]::Item +unsafe fn core::array::iter::{impl core::iter::traits::iterator::Iterator for core::array::iter::IntoIter[@TraitClause0]}#2::__iterator_get_unchecked<'_0, T, const N : usize>(@1: &'_0 mut (core::array::iter::IntoIter[@TraitClause0]), @2: usize) -> core::array::iter::{impl core::iter::traits::iterator::Iterator for core::array::iter::IntoIter[@TraitClause0]}#2[@TraitClause0]::Item where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -impl core::array::iter::{impl core::iter::traits::iterator::Iterator for core::array::iter::IntoIter}#2 : core::iter::traits::iterator::Iterator> +impl core::array::iter::{impl core::iter::traits::iterator::Iterator for core::array::iter::IntoIter[@TraitClause0]}#2 : core::iter::traits::iterator::Iterator[@TraitClause0]> where [@TraitClause0]: core::marker::Sized, { parent_clause0 = @TraitClause0 type Item = T - fn next = core::array::iter::{impl core::iter::traits::iterator::Iterator for core::array::iter::IntoIter}#2::next - fn size_hint = core::array::iter::{impl core::iter::traits::iterator::Iterator for core::array::iter::IntoIter}#2::size_hint - fn count = core::array::iter::{impl core::iter::traits::iterator::Iterator for core::array::iter::IntoIter}#2::count - fn last = core::array::iter::{impl core::iter::traits::iterator::Iterator for core::array::iter::IntoIter}#2::last - fn advance_by = core::array::iter::{impl core::iter::traits::iterator::Iterator for core::array::iter::IntoIter}#2::advance_by - fn fold = core::array::iter::{impl core::iter::traits::iterator::Iterator for core::array::iter::IntoIter}#2::fold - fn __iterator_get_unchecked = core::array::iter::{impl core::iter::traits::iterator::Iterator for core::array::iter::IntoIter}#2::__iterator_get_unchecked + fn next = core::array::iter::{impl core::iter::traits::iterator::Iterator for core::array::iter::IntoIter[@TraitClause0]}#2::next + fn size_hint = core::array::iter::{impl core::iter::traits::iterator::Iterator for core::array::iter::IntoIter[@TraitClause0]}#2::size_hint + fn count = core::array::iter::{impl core::iter::traits::iterator::Iterator for core::array::iter::IntoIter[@TraitClause0]}#2::count + fn last = core::array::iter::{impl core::iter::traits::iterator::Iterator for core::array::iter::IntoIter[@TraitClause0]}#2::last + fn advance_by = core::array::iter::{impl core::iter::traits::iterator::Iterator for core::array::iter::IntoIter[@TraitClause0]}#2::advance_by + fn fold = core::array::iter::{impl core::iter::traits::iterator::Iterator for core::array::iter::IntoIter[@TraitClause0]}#2::fold + fn __iterator_get_unchecked = core::array::iter::{impl core::iter::traits::iterator::Iterator for core::array::iter::IntoIter[@TraitClause0]}#2::__iterator_get_unchecked } fn core::array::iter::{impl core::iter::traits::collect::IntoIterator for Array}::into_iter(@1: Array) -> core::array::iter::{impl core::iter::traits::collect::IntoIterator for Array}[@TraitClause0]::IntoIter @@ -566,10 +566,10 @@ where [@TraitClause0]: core::marker::Sized, { parent_clause0 = @TraitClause0 - parent_clause1 = core::array::iter::{impl core::iter::traits::iterator::Iterator for core::array::iter::IntoIter}#2[@TraitClause0] - parent_clause2 = core::marker::Sized> + parent_clause1 = core::array::iter::{impl core::iter::traits::iterator::Iterator for core::array::iter::IntoIter[@TraitClause0]}#2[@TraitClause0] + parent_clause2 = core::marker::Sized[@TraitClause0]> type Item = T - type IntoIter = core::array::iter::IntoIter + type IntoIter = core::array::iter::IntoIter[@TraitClause0] fn into_iter = core::array::iter::{impl core::iter::traits::collect::IntoIterator for Array}::into_iter } @@ -586,7 +586,7 @@ where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::iter::traits::iterator::Iterator, { - parent_clause0 = (parents(@TraitClause1)::[@TraitClause0]) + parent_clause0 = @TraitClause1::parent_clause0 parent_clause1 = @TraitClause1 parent_clause2 = @TraitClause0 type Item = @TraitClause1::Item @@ -594,54 +594,54 @@ where fn into_iter = core::iter::traits::collect::{impl core::iter::traits::collect::IntoIterator for I}#1::into_iter } -fn core::iter::traits::iterator::Iterator::next<'_0, Self>(@1: &'_0 mut (Self)) -> core::option::Option +fn core::iter::traits::iterator::Iterator::next<'_0, Self>(@1: &'_0 mut (Self)) -> core::option::Option[Self::parent_clause0] -fn core::slice::{Slice}::iter<'_0, T>(@1: &'_0 (Slice)) -> core::slice::iter::Iter<'_0, T, @TraitClause0> +fn core::slice::{Slice}::iter<'_0, T>(@1: &'_0 (Slice)) -> core::slice::iter::Iter<'_0, T>[@TraitClause0] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::next<'a, '_1, T>(@1: &'_1 mut (core::slice::iter::Iter<'a, T, @TraitClause0>)) -> core::option::Option<&'a (T), core::marker::Sized<&'_ (T)>> +fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::next<'a, '_1, T>(@1: &'_1 mut (core::slice::iter::Iter<'a, T>[@TraitClause0])) -> core::option::Option<&'a (T)>[core::marker::Sized<&'_ (T)>] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::size_hint<'a, '_1, T>(@1: &'_1 (core::slice::iter::Iter<'a, T, @TraitClause0>)) -> (usize, core::option::Option>) +fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::size_hint<'a, '_1, T>(@1: &'_1 (core::slice::iter::Iter<'a, T>[@TraitClause0])) -> (usize, core::option::Option[core::marker::Sized]) where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::count<'a, T>(@1: core::slice::iter::Iter<'a, T, @TraitClause0>) -> usize +fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::count<'a, T>(@1: core::slice::iter::Iter<'a, T>[@TraitClause0]) -> usize where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::last<'a, T>(@1: core::slice::iter::Iter<'a, T, @TraitClause0>) -> core::option::Option<&'a (T), core::marker::Sized<&'_ (T)>> +fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::last<'a, T>(@1: core::slice::iter::Iter<'a, T>[@TraitClause0]) -> core::option::Option<&'a (T)>[core::marker::Sized<&'_ (T)>] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::advance_by<'a, '_1, T>(@1: &'_1 mut (core::slice::iter::Iter<'a, T, @TraitClause0>), @2: usize) -> core::result::Result<(), core::num::nonzero::NonZero, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26>, core::marker::Sized<()>, core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26>>> +fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::advance_by<'a, '_1, T>(@1: &'_1 mut (core::slice::iter::Iter<'a, T>[@TraitClause0]), @2: usize) -> core::result::Result<(), core::num::nonzero::NonZero[core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26]>[core::marker::Sized<()>, core::marker::Sized[core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26]>] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::nth<'a, '_1, T>(@1: &'_1 mut (core::slice::iter::Iter<'a, T, @TraitClause0>), @2: usize) -> core::option::Option<&'a (T), core::marker::Sized<&'_ (T)>> +fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::nth<'a, '_1, T>(@1: &'_1 mut (core::slice::iter::Iter<'a, T>[@TraitClause0]), @2: usize) -> core::option::Option<&'a (T)>[core::marker::Sized<&'_ (T)>] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::for_each<'a, T, F>(@1: core::slice::iter::Iter<'a, T, @TraitClause0>, @2: F) +fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::for_each<'a, T, F>(@1: core::slice::iter::Iter<'a, T>[@TraitClause0], @2: F) where // Inherited clauses: [@TraitClause0]: core::marker::Sized, // Local clauses: [@TraitClause1]: core::marker::Sized, - [@TraitClause2]: core::marker::Sized>, + [@TraitClause2]: core::marker::Sized[@TraitClause0]>, [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = (), + @TraitClause3::parent_clause0::Output = (), -fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::fold<'a, T, B, F>(@1: core::slice::iter::Iter<'a, T, @TraitClause0>, @2: B, @3: F) -> B +fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::fold<'a, T, B, F>(@1: core::slice::iter::Iter<'a, T>[@TraitClause0], @2: B, @3: F) -> B where // Inherited clauses: [@TraitClause0]: core::marker::Sized, @@ -649,113 +649,113 @@ where [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = B, + @TraitClause3::parent_clause0::Output = B, -fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::all<'a, '_1, T, F>(@1: &'_1 mut (core::slice::iter::Iter<'a, T, @TraitClause0>), @2: F) -> bool +fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::all<'a, '_1, T, F>(@1: &'_1 mut (core::slice::iter::Iter<'a, T>[@TraitClause0]), @2: F) -> bool where // Inherited clauses: [@TraitClause0]: core::marker::Sized, // Local clauses: [@TraitClause1]: core::marker::Sized, - [@TraitClause2]: core::marker::Sized>, + [@TraitClause2]: core::marker::Sized[@TraitClause0]>, [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = bool, + @TraitClause3::parent_clause0::Output = bool, -fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::any<'a, '_1, T, F>(@1: &'_1 mut (core::slice::iter::Iter<'a, T, @TraitClause0>), @2: F) -> bool +fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::any<'a, '_1, T, F>(@1: &'_1 mut (core::slice::iter::Iter<'a, T>[@TraitClause0]), @2: F) -> bool where // Inherited clauses: [@TraitClause0]: core::marker::Sized, // Local clauses: [@TraitClause1]: core::marker::Sized, - [@TraitClause2]: core::marker::Sized>, + [@TraitClause2]: core::marker::Sized[@TraitClause0]>, [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = bool, + @TraitClause3::parent_clause0::Output = bool, -fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::find<'a, '_1, T, P>(@1: &'_1 mut (core::slice::iter::Iter<'a, T, @TraitClause0>), @2: P) -> core::option::Option}#182<'_, T>[@TraitClause0]::Item, core::marker::Sized<&'_ (T)>> +fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::find<'a, '_1, T, P>(@1: &'_1 mut (core::slice::iter::Iter<'a, T>[@TraitClause0]), @2: P) -> core::option::Option[@TraitClause0]}#182<'_, T>[@TraitClause0]::Item>[core::marker::Sized<&'_ (T)>] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, // Local clauses: [@TraitClause1]: core::marker::Sized

, - [@TraitClause2]: core::marker::Sized>, + [@TraitClause2]: core::marker::Sized[@TraitClause0]>, [@TraitClause3]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause3)::[@TraitClause0])::Output = bool, + for<'_1_0> @TraitClause3::parent_clause0::Output = bool, -fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::find_map<'a, '_1, T, B, F>(@1: &'_1 mut (core::slice::iter::Iter<'a, T, @TraitClause0>), @2: F) -> core::option::Option +fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::find_map<'a, '_1, T, B, F>(@1: &'_1 mut (core::slice::iter::Iter<'a, T>[@TraitClause0]), @2: F) -> core::option::Option[@TraitClause1] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, // Local clauses: [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, - [@TraitClause3]: core::marker::Sized>, + [@TraitClause3]: core::marker::Sized[@TraitClause0]>, [@TraitClause4]: core::ops::function::FnMut, - (parents(@TraitClause4)::[@TraitClause0])::Output = core::option::Option, + @TraitClause4::parent_clause0::Output = core::option::Option[@TraitClause1], -fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::position<'a, '_1, T, P>(@1: &'_1 mut (core::slice::iter::Iter<'a, T, @TraitClause0>), @2: P) -> core::option::Option> +fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::position<'a, '_1, T, P>(@1: &'_1 mut (core::slice::iter::Iter<'a, T>[@TraitClause0]), @2: P) -> core::option::Option[core::marker::Sized] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, // Local clauses: [@TraitClause1]: core::marker::Sized

, - [@TraitClause2]: core::marker::Sized>, + [@TraitClause2]: core::marker::Sized[@TraitClause0]>, [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = bool, + @TraitClause3::parent_clause0::Output = bool, -fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::rposition<'a, '_1, T, P>(@1: &'_1 mut (core::slice::iter::Iter<'a, T, @TraitClause0>), @2: P) -> core::option::Option> +fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::rposition<'a, '_1, T, P>(@1: &'_1 mut (core::slice::iter::Iter<'a, T>[@TraitClause0]), @2: P) -> core::option::Option[core::marker::Sized] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, // Local clauses: [@TraitClause1]: core::marker::Sized

, - [@TraitClause2]: core::ops::function::FnMut, - [@TraitClause3]: core::marker::Sized>, - [@TraitClause4]: core::iter::traits::exact_size::ExactSizeIterator>, - [@TraitClause5]: core::iter::traits::double_ended::DoubleEndedIterator>, - (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + [@TraitClause2]: core::ops::function::FnMut, + [@TraitClause3]: core::marker::Sized[@TraitClause0]>, + [@TraitClause4]: core::iter::traits::exact_size::ExactSizeIterator[@TraitClause0]>, + [@TraitClause5]: core::iter::traits::double_ended::DoubleEndedIterator[@TraitClause0]>, + @TraitClause2::parent_clause0::Output = bool, -fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::is_sorted_by<'a, T, F>(@1: core::slice::iter::Iter<'a, T, @TraitClause0>, @2: F) -> bool +fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::is_sorted_by<'a, T, F>(@1: core::slice::iter::Iter<'a, T>[@TraitClause0], @2: F) -> bool where // Inherited clauses: [@TraitClause0]: core::marker::Sized, // Local clauses: [@TraitClause1]: core::marker::Sized, - [@TraitClause2]: core::marker::Sized>, + [@TraitClause2]: core::marker::Sized[@TraitClause0]>, [@TraitClause3]: for<'_1_0, '_1_1> core::ops::function::FnMut, - for<'_1_0, '_1_1> (parents(@TraitClause3)::[@TraitClause0])::Output = bool, + for<'_1_0, '_1_1> @TraitClause3::parent_clause0::Output = bool, -unsafe fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::__iterator_get_unchecked<'a, '_1, T>(@1: &'_1 mut (core::slice::iter::Iter<'a, T, @TraitClause0>), @2: usize) -> core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182<'_, T>[@TraitClause0]::Item +unsafe fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::__iterator_get_unchecked<'a, '_1, T>(@1: &'_1 mut (core::slice::iter::Iter<'a, T>[@TraitClause0]), @2: usize) -> core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182<'_, T>[@TraitClause0]::Item where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -impl<'a, T> core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182<'a, T> : core::iter::traits::iterator::Iterator> +impl<'a, T> core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182<'a, T> : core::iter::traits::iterator::Iterator[@TraitClause0]> where [@TraitClause0]: core::marker::Sized, { parent_clause0 = core::marker::Sized<&'_ (T)> type Item = &'a (T) - fn next = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::next - fn size_hint = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::size_hint - fn count = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::count - fn last = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::last - fn advance_by = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::advance_by - fn nth = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::nth - fn for_each = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::for_each - fn fold = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::fold - fn all = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::all - fn any = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::any - fn find = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::find - fn find_map = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::find_map - fn position = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::position - fn rposition = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::rposition - fn is_sorted_by = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::is_sorted_by - fn __iterator_get_unchecked = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::__iterator_get_unchecked + fn next = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::next + fn size_hint = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::size_hint + fn count = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::count + fn last = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::last + fn advance_by = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::advance_by + fn nth = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::nth + fn for_each = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::for_each + fn fold = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::fold + fn all = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::all + fn any = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::any + fn find = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::find + fn find_map = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::find_map + fn position = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::position + fn rposition = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::rposition + fn is_sorted_by = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::is_sorted_by + fn __iterator_get_unchecked = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::__iterator_get_unchecked } trait core::ops::arith::AddAssign { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized fn add_assign : core::ops::arith::AddAssign::add_assign } @@ -769,102 +769,102 @@ impl<'_0> core::ops::arith::{impl core::ops::arith::AddAssign<&'_0 (i32)> for i3 fn core::ops::arith::AddAssign::add_assign<'_0, Self, Rhs>(@1: &'_0 mut (Self), @2: Rhs) -fn core::slice::{Slice}::chunks<'_0, T>(@1: &'_0 (Slice), @2: usize) -> core::slice::iter::Chunks<'_0, T, @TraitClause0> +fn core::slice::{Slice}::chunks<'_0, T>(@1: &'_0 (Slice), @2: usize) -> core::slice::iter::Chunks<'_0, T>[@TraitClause0] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Chunks<'a, T, @TraitClause0>}#71::next<'a, '_1, T>(@1: &'_1 mut (core::slice::iter::Chunks<'a, T, @TraitClause0>)) -> core::option::Option<&'a (Slice), core::marker::Sized<&'_ (Slice)>> +fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Chunks<'a, T>[@TraitClause0]}#71::next<'a, '_1, T>(@1: &'_1 mut (core::slice::iter::Chunks<'a, T>[@TraitClause0])) -> core::option::Option<&'a (Slice)>[core::marker::Sized<&'_ (Slice)>] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Chunks<'a, T, @TraitClause0>}#71::size_hint<'a, '_1, T>(@1: &'_1 (core::slice::iter::Chunks<'a, T, @TraitClause0>)) -> (usize, core::option::Option>) +fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Chunks<'a, T>[@TraitClause0]}#71::size_hint<'a, '_1, T>(@1: &'_1 (core::slice::iter::Chunks<'a, T>[@TraitClause0])) -> (usize, core::option::Option[core::marker::Sized]) where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Chunks<'a, T, @TraitClause0>}#71::count<'a, T>(@1: core::slice::iter::Chunks<'a, T, @TraitClause0>) -> usize +fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Chunks<'a, T>[@TraitClause0]}#71::count<'a, T>(@1: core::slice::iter::Chunks<'a, T>[@TraitClause0]) -> usize where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Chunks<'a, T, @TraitClause0>}#71::last<'a, T>(@1: core::slice::iter::Chunks<'a, T, @TraitClause0>) -> core::option::Option}#71<'_, T>[@TraitClause0]::Item, core::marker::Sized<&'_ (Slice)>> +fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Chunks<'a, T>[@TraitClause0]}#71::last<'a, T>(@1: core::slice::iter::Chunks<'a, T>[@TraitClause0]) -> core::option::Option[@TraitClause0]}#71<'_, T>[@TraitClause0]::Item>[core::marker::Sized<&'_ (Slice)>] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Chunks<'a, T, @TraitClause0>}#71::nth<'a, '_1, T>(@1: &'_1 mut (core::slice::iter::Chunks<'a, T, @TraitClause0>), @2: usize) -> core::option::Option}#71<'_, T>[@TraitClause0]::Item, core::marker::Sized<&'_ (Slice)>> +fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Chunks<'a, T>[@TraitClause0]}#71::nth<'a, '_1, T>(@1: &'_1 mut (core::slice::iter::Chunks<'a, T>[@TraitClause0]), @2: usize) -> core::option::Option[@TraitClause0]}#71<'_, T>[@TraitClause0]::Item>[core::marker::Sized<&'_ (Slice)>] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -unsafe fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Chunks<'a, T, @TraitClause0>}#71::__iterator_get_unchecked<'a, '_1, T>(@1: &'_1 mut (core::slice::iter::Chunks<'a, T, @TraitClause0>), @2: usize) -> core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Chunks<'a, T, @TraitClause0>}#71<'_, T>[@TraitClause0]::Item +unsafe fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Chunks<'a, T>[@TraitClause0]}#71::__iterator_get_unchecked<'a, '_1, T>(@1: &'_1 mut (core::slice::iter::Chunks<'a, T>[@TraitClause0]), @2: usize) -> core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Chunks<'a, T>[@TraitClause0]}#71<'_, T>[@TraitClause0]::Item where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -impl<'a, T> core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Chunks<'a, T, @TraitClause0>}#71<'a, T> : core::iter::traits::iterator::Iterator> +impl<'a, T> core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Chunks<'a, T>[@TraitClause0]}#71<'a, T> : core::iter::traits::iterator::Iterator[@TraitClause0]> where [@TraitClause0]: core::marker::Sized, { parent_clause0 = core::marker::Sized<&'_ (Slice)> type Item = &'a (Slice) - fn next = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Chunks<'a, T, @TraitClause0>}#71::next - fn size_hint = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Chunks<'a, T, @TraitClause0>}#71::size_hint - fn count = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Chunks<'a, T, @TraitClause0>}#71::count - fn last = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Chunks<'a, T, @TraitClause0>}#71::last - fn nth = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Chunks<'a, T, @TraitClause0>}#71::nth - fn __iterator_get_unchecked = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Chunks<'a, T, @TraitClause0>}#71::__iterator_get_unchecked + fn next = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Chunks<'a, T>[@TraitClause0]}#71::next + fn size_hint = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Chunks<'a, T>[@TraitClause0]}#71::size_hint + fn count = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Chunks<'a, T>[@TraitClause0]}#71::count + fn last = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Chunks<'a, T>[@TraitClause0]}#71::last + fn nth = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Chunks<'a, T>[@TraitClause0]}#71::nth + fn __iterator_get_unchecked = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Chunks<'a, T>[@TraitClause0]}#71::__iterator_get_unchecked } -fn core::slice::{Slice}::chunks_exact<'_0, T>(@1: &'_0 (Slice), @2: usize) -> core::slice::iter::ChunksExact<'_0, T, @TraitClause0> +fn core::slice::{Slice}::chunks_exact<'_0, T>(@1: &'_0 (Slice), @2: usize) -> core::slice::iter::ChunksExact<'_0, T>[@TraitClause0] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::ChunksExact<'a, T, @TraitClause0>}#90::next<'a, '_1, T>(@1: &'_1 mut (core::slice::iter::ChunksExact<'a, T, @TraitClause0>)) -> core::option::Option<&'a (Slice), core::marker::Sized<&'_ (Slice)>> +fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::ChunksExact<'a, T>[@TraitClause0]}#90::next<'a, '_1, T>(@1: &'_1 mut (core::slice::iter::ChunksExact<'a, T>[@TraitClause0])) -> core::option::Option<&'a (Slice)>[core::marker::Sized<&'_ (Slice)>] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::ChunksExact<'a, T, @TraitClause0>}#90::size_hint<'a, '_1, T>(@1: &'_1 (core::slice::iter::ChunksExact<'a, T, @TraitClause0>)) -> (usize, core::option::Option>) +fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::ChunksExact<'a, T>[@TraitClause0]}#90::size_hint<'a, '_1, T>(@1: &'_1 (core::slice::iter::ChunksExact<'a, T>[@TraitClause0])) -> (usize, core::option::Option[core::marker::Sized]) where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::ChunksExact<'a, T, @TraitClause0>}#90::count<'a, T>(@1: core::slice::iter::ChunksExact<'a, T, @TraitClause0>) -> usize +fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::ChunksExact<'a, T>[@TraitClause0]}#90::count<'a, T>(@1: core::slice::iter::ChunksExact<'a, T>[@TraitClause0]) -> usize where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::ChunksExact<'a, T, @TraitClause0>}#90::last<'a, T>(@1: core::slice::iter::ChunksExact<'a, T, @TraitClause0>) -> core::option::Option}#90<'_, T>[@TraitClause0]::Item, core::marker::Sized<&'_ (Slice)>> +fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::ChunksExact<'a, T>[@TraitClause0]}#90::last<'a, T>(@1: core::slice::iter::ChunksExact<'a, T>[@TraitClause0]) -> core::option::Option[@TraitClause0]}#90<'_, T>[@TraitClause0]::Item>[core::marker::Sized<&'_ (Slice)>] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::ChunksExact<'a, T, @TraitClause0>}#90::nth<'a, '_1, T>(@1: &'_1 mut (core::slice::iter::ChunksExact<'a, T, @TraitClause0>), @2: usize) -> core::option::Option}#90<'_, T>[@TraitClause0]::Item, core::marker::Sized<&'_ (Slice)>> +fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::ChunksExact<'a, T>[@TraitClause0]}#90::nth<'a, '_1, T>(@1: &'_1 mut (core::slice::iter::ChunksExact<'a, T>[@TraitClause0]), @2: usize) -> core::option::Option[@TraitClause0]}#90<'_, T>[@TraitClause0]::Item>[core::marker::Sized<&'_ (Slice)>] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -unsafe fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::ChunksExact<'a, T, @TraitClause0>}#90::__iterator_get_unchecked<'a, '_1, T>(@1: &'_1 mut (core::slice::iter::ChunksExact<'a, T, @TraitClause0>), @2: usize) -> core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::ChunksExact<'a, T, @TraitClause0>}#90<'_, T>[@TraitClause0]::Item +unsafe fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::ChunksExact<'a, T>[@TraitClause0]}#90::__iterator_get_unchecked<'a, '_1, T>(@1: &'_1 mut (core::slice::iter::ChunksExact<'a, T>[@TraitClause0]), @2: usize) -> core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::ChunksExact<'a, T>[@TraitClause0]}#90<'_, T>[@TraitClause0]::Item where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -impl<'a, T> core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::ChunksExact<'a, T, @TraitClause0>}#90<'a, T> : core::iter::traits::iterator::Iterator> +impl<'a, T> core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::ChunksExact<'a, T>[@TraitClause0]}#90<'a, T> : core::iter::traits::iterator::Iterator[@TraitClause0]> where [@TraitClause0]: core::marker::Sized, { parent_clause0 = core::marker::Sized<&'_ (Slice)> type Item = &'a (Slice) - fn next = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::ChunksExact<'a, T, @TraitClause0>}#90::next - fn size_hint = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::ChunksExact<'a, T, @TraitClause0>}#90::size_hint - fn count = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::ChunksExact<'a, T, @TraitClause0>}#90::count - fn last = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::ChunksExact<'a, T, @TraitClause0>}#90::last - fn nth = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::ChunksExact<'a, T, @TraitClause0>}#90::nth - fn __iterator_get_unchecked = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::ChunksExact<'a, T, @TraitClause0>}#90::__iterator_get_unchecked + fn next = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::ChunksExact<'a, T>[@TraitClause0]}#90::next + fn size_hint = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::ChunksExact<'a, T>[@TraitClause0]}#90::size_hint + fn count = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::ChunksExact<'a, T>[@TraitClause0]}#90::count + fn last = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::ChunksExact<'a, T>[@TraitClause0]}#90::last + fn nth = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::ChunksExact<'a, T>[@TraitClause0]}#90::nth + fn __iterator_get_unchecked = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::ChunksExact<'a, T>[@TraitClause0]}#90::__iterator_get_unchecked } fn test_crate::main() @@ -873,51 +873,51 @@ fn test_crate::main() let a@1: Array; // local let i@2: i32; // local let @3: (); // anonymous local - let @4: core::array::iter::IntoIter>; // anonymous local - let @5: core::array::iter::IntoIter>; // anonymous local + let @4: core::array::iter::IntoIter[core::marker::Sized]; // anonymous local + let @5: core::array::iter::IntoIter[core::marker::Sized]; // anonymous local let @6: Array; // anonymous local - let iter@7: core::array::iter::IntoIter>; // local + let iter@7: core::array::iter::IntoIter[core::marker::Sized]; // local let @8: (); // anonymous local let @9: (); // anonymous local - let @10: core::option::Option>; // anonymous local - let @11: &'_ mut (core::array::iter::IntoIter>); // anonymous local - let @12: &'_ mut (core::array::iter::IntoIter>); // anonymous local + let @10: core::option::Option[core::marker::Sized]; // anonymous local + let @11: &'_ mut (core::array::iter::IntoIter[core::marker::Sized]); // anonymous local + let @12: &'_ mut (core::array::iter::IntoIter[core::marker::Sized]); // anonymous local let v@13: i32; // local let @14: i32; // anonymous local let @15: (); // anonymous local - let @16: core::slice::iter::Iter<'_, i32, core::marker::Sized>; // anonymous local - let @17: core::slice::iter::Iter<'_, i32, core::marker::Sized>; // anonymous local + let @16: core::slice::iter::Iter<'_, i32>[core::marker::Sized]; // anonymous local + let @17: core::slice::iter::Iter<'_, i32>[core::marker::Sized]; // anonymous local let @18: &'_ (Slice); // anonymous local let @19: &'_ (Array); // anonymous local - let iter@20: core::slice::iter::Iter<'_, i32, core::marker::Sized>; // local + let iter@20: core::slice::iter::Iter<'_, i32>[core::marker::Sized]; // local let @21: (); // anonymous local - let @22: core::option::Option<&'_ (i32), core::marker::Sized<&'_ (i32)>>; // anonymous local - let @23: &'_ mut (core::slice::iter::Iter<'_, i32, core::marker::Sized>); // anonymous local - let @24: &'_ mut (core::slice::iter::Iter<'_, i32, core::marker::Sized>); // anonymous local + let @22: core::option::Option<&'_ (i32)>[core::marker::Sized<&'_ (i32)>]; // anonymous local + let @23: &'_ mut (core::slice::iter::Iter<'_, i32>[core::marker::Sized]); // anonymous local + let @24: &'_ mut (core::slice::iter::Iter<'_, i32>[core::marker::Sized]); // anonymous local let v@25: &'_ (i32); // local let @26: (); // anonymous local let @27: &'_ mut (i32); // anonymous local let @28: &'_ (i32); // anonymous local let @29: (); // anonymous local - let @30: core::slice::iter::Chunks<'_, i32, core::marker::Sized>; // anonymous local - let @31: core::slice::iter::Chunks<'_, i32, core::marker::Sized>; // anonymous local + let @30: core::slice::iter::Chunks<'_, i32>[core::marker::Sized]; // anonymous local + let @31: core::slice::iter::Chunks<'_, i32>[core::marker::Sized]; // anonymous local let @32: &'_ (Slice); // anonymous local let @33: &'_ (Array); // anonymous local - let iter@34: core::slice::iter::Chunks<'_, i32, core::marker::Sized>; // local + let iter@34: core::slice::iter::Chunks<'_, i32>[core::marker::Sized]; // local let @35: (); // anonymous local - let @36: core::option::Option<&'_ (Slice), core::marker::Sized<&'_ (Slice)>>; // anonymous local - let @37: &'_ mut (core::slice::iter::Chunks<'_, i32, core::marker::Sized>); // anonymous local - let @38: &'_ mut (core::slice::iter::Chunks<'_, i32, core::marker::Sized>); // anonymous local + let @36: core::option::Option<&'_ (Slice)>[core::marker::Sized<&'_ (Slice)>]; // anonymous local + let @37: &'_ mut (core::slice::iter::Chunks<'_, i32>[core::marker::Sized]); // anonymous local + let @38: &'_ mut (core::slice::iter::Chunks<'_, i32>[core::marker::Sized]); // anonymous local let @39: (); // anonymous local - let @40: core::slice::iter::ChunksExact<'_, i32, core::marker::Sized>; // anonymous local - let @41: core::slice::iter::ChunksExact<'_, i32, core::marker::Sized>; // anonymous local + let @40: core::slice::iter::ChunksExact<'_, i32>[core::marker::Sized]; // anonymous local + let @41: core::slice::iter::ChunksExact<'_, i32>[core::marker::Sized]; // anonymous local let @42: &'_ (Slice); // anonymous local let @43: &'_ (Array); // anonymous local - let iter@44: core::slice::iter::ChunksExact<'_, i32, core::marker::Sized>; // local + let iter@44: core::slice::iter::ChunksExact<'_, i32>[core::marker::Sized]; // local let @45: (); // anonymous local - let @46: core::option::Option<&'_ (Slice), core::marker::Sized<&'_ (Slice)>>; // anonymous local - let @47: &'_ mut (core::slice::iter::ChunksExact<'_, i32, core::marker::Sized>); // anonymous local - let @48: &'_ mut (core::slice::iter::ChunksExact<'_, i32, core::marker::Sized>); // anonymous local + let @46: core::option::Option<&'_ (Slice)>[core::marker::Sized<&'_ (Slice)>]; // anonymous local + let @47: &'_ mut (core::slice::iter::ChunksExact<'_, i32>[core::marker::Sized]); // anonymous local + let @48: &'_ mut (core::slice::iter::ChunksExact<'_, i32>[core::marker::Sized]); // anonymous local let expected@49: i32; // local let @50: (); // anonymous local let @51: (&'_ (i32), &'_ (i32)); // anonymous local @@ -934,7 +934,7 @@ fn test_crate::main() let @62: &'_ (i32); // anonymous local let @63: &'_ (i32); // anonymous local let @64: &'_ (i32); // anonymous local - let @65: core::option::Option, core::marker::Sized>>; // anonymous local + let @65: core::option::Option>[core::marker::Sized>]; // anonymous local let @66: (); // anonymous local let @67: (); // anonymous local let @68: (); // anonymous local @@ -957,14 +957,14 @@ fn test_crate::main() @6 := copy (a@1) @5 := core::array::iter::{impl core::iter::traits::collect::IntoIterator for Array}[core::marker::Sized]::into_iter(move (@6)) drop @6 - @4 := core::iter::traits::collect::{impl core::iter::traits::collect::IntoIterator for I}#1>>[core::marker::Sized>>, core::array::iter::{impl core::iter::traits::iterator::Iterator for core::array::iter::IntoIter}#2[core::marker::Sized]]::into_iter(move (@5)) + @4 := core::iter::traits::collect::{impl core::iter::traits::collect::IntoIterator for I}#1[core::marker::Sized]>[core::marker::Sized[core::marker::Sized]>, core::array::iter::{impl core::iter::traits::iterator::Iterator for core::array::iter::IntoIter[@TraitClause0]}#2[core::marker::Sized]]::into_iter(move (@5)) drop @5 @fake_read(@4) iter@7 := move (@4) loop { @12 := &mut iter@7 @11 := &two-phase-mut *(@12) - @10 := core::array::iter::{impl core::iter::traits::iterator::Iterator for core::array::iter::IntoIter}#2[core::marker::Sized]::next(move (@11)) + @10 := core::array::iter::{impl core::iter::traits::iterator::Iterator for core::array::iter::IntoIter[@TraitClause0]}#2[core::marker::Sized]::next(move (@11)) drop @11 @fake_read(@10) match @10 { @@ -1003,14 +1003,14 @@ fn test_crate::main() drop @19 @17 := core::slice::{Slice}::iter[core::marker::Sized](move (@18)) drop @18 - @16 := core::iter::traits::collect::{impl core::iter::traits::collect::IntoIterator for I}#1>>[core::marker::Sized>>, core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182<'_, i32>[core::marker::Sized]]::into_iter(move (@17)) + @16 := core::iter::traits::collect::{impl core::iter::traits::collect::IntoIterator for I}#1[core::marker::Sized]>[core::marker::Sized[core::marker::Sized]>, core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182<'_, i32>[core::marker::Sized]]::into_iter(move (@17)) drop @17 @fake_read(@16) iter@20 := move (@16) loop { @24 := &mut iter@20 @23 := &two-phase-mut *(@24) - @22 := core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182<'_, i32>[core::marker::Sized]::next(move (@23)) + @22 := core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182<'_, i32>[core::marker::Sized]::next(move (@23)) drop @23 @fake_read(@22) match @22 { @@ -1050,14 +1050,14 @@ fn test_crate::main() drop @33 @31 := core::slice::{Slice}::chunks[core::marker::Sized](move (@32), const (2 : usize)) drop @32 - @30 := core::iter::traits::collect::{impl core::iter::traits::collect::IntoIterator for I}#1>>[core::marker::Sized>>, core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Chunks<'a, T, @TraitClause0>}#71<'_, i32>[core::marker::Sized]]::into_iter(move (@31)) + @30 := core::iter::traits::collect::{impl core::iter::traits::collect::IntoIterator for I}#1[core::marker::Sized]>[core::marker::Sized[core::marker::Sized]>, core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Chunks<'a, T>[@TraitClause0]}#71<'_, i32>[core::marker::Sized]]::into_iter(move (@31)) drop @31 @fake_read(@30) iter@34 := move (@30) loop { @38 := &mut iter@34 @37 := &two-phase-mut *(@38) - @36 := core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Chunks<'a, T, @TraitClause0>}#71<'_, i32>[core::marker::Sized]::next(move (@37)) + @36 := core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Chunks<'a, T>[@TraitClause0]}#71<'_, i32>[core::marker::Sized]::next(move (@37)) drop @37 @fake_read(@36) match @36 { @@ -1090,14 +1090,14 @@ fn test_crate::main() drop @43 @41 := core::slice::{Slice}::chunks_exact[core::marker::Sized](move (@42), const (2 : usize)) drop @42 - @40 := core::iter::traits::collect::{impl core::iter::traits::collect::IntoIterator for I}#1>>[core::marker::Sized>>, core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::ChunksExact<'a, T, @TraitClause0>}#90<'_, i32>[core::marker::Sized]]::into_iter(move (@41)) + @40 := core::iter::traits::collect::{impl core::iter::traits::collect::IntoIterator for I}#1[core::marker::Sized]>[core::marker::Sized[core::marker::Sized]>, core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::ChunksExact<'a, T>[@TraitClause0]}#90<'_, i32>[core::marker::Sized]]::into_iter(move (@41)) drop @41 @fake_read(@40) iter@44 := move (@40) loop { @48 := &mut iter@44 @47 := &two-phase-mut *(@48) - @46 := core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::ChunksExact<'a, T, @TraitClause0>}#90<'_, i32>[core::marker::Sized]::next(move (@47)) + @46 := core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::ChunksExact<'a, T>[@TraitClause0]}#90<'_, i32>[core::marker::Sized]::next(move (@47)) drop @47 @fake_read(@46) match @46 { @@ -1171,162 +1171,162 @@ fn test_crate::main() return } -fn core::iter::traits::iterator::Iterator::next_chunk<'_0, Self, const N : usize>(@1: &'_0 mut (Self)) -> core::result::Result, core::array::iter::IntoIter, core::marker::Sized>, core::marker::Sized>> +fn core::iter::traits::iterator::Iterator::next_chunk<'_0, Self, const N : usize>(@1: &'_0 mut (Self)) -> core::result::Result, core::array::iter::IntoIter[Self::parent_clause0]>[core::marker::Sized>, core::marker::Sized[Self::parent_clause0]>] where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::size_hint<'_0, Self>(@1: &'_0 (Self)) -> (usize, core::option::Option>) +fn core::iter::traits::iterator::Iterator::size_hint<'_0, Self>(@1: &'_0 (Self)) -> (usize, core::option::Option[core::marker::Sized]) fn core::iter::traits::iterator::Iterator::count(@1: Self) -> usize where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::last(@1: Self) -> core::option::Option +fn core::iter::traits::iterator::Iterator::last(@1: Self) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::advance_by<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> core::result::Result<(), core::num::nonzero::NonZero, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26>, core::marker::Sized<()>, core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26>>> +fn core::iter::traits::iterator::Iterator::advance_by<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> core::result::Result<(), core::num::nonzero::NonZero[core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26]>[core::marker::Sized<()>, core::marker::Sized[core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26]>] -fn core::iter::traits::iterator::Iterator::nth<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> core::option::Option +fn core::iter::traits::iterator::Iterator::nth<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> core::option::Option[Self::parent_clause0] -fn core::iter::traits::iterator::Iterator::step_by(@1: Self, @2: usize) -> core::iter::adapters::step_by::StepBy +fn core::iter::traits::iterator::Iterator::step_by(@1: Self, @2: usize) -> core::iter::adapters::step_by::StepBy[@TraitClause0] where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::chain(@1: Self, @2: U) -> core::iter::adapters::chain::Chain +fn core::iter::traits::iterator::Iterator::chain(@1: Self, @2: U) -> core::iter::adapters::chain::Chain[@TraitClause1, @TraitClause2::parent_clause2] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::iter::traits::collect::IntoIterator, @TraitClause2::Item = Self::Item, -fn core::iter::traits::iterator::Iterator::zip(@1: Self, @2: U) -> core::iter::adapters::zip::Zip +fn core::iter::traits::iterator::Iterator::zip(@1: Self, @2: U) -> core::iter::adapters::zip::Zip[@TraitClause1, @TraitClause2::parent_clause2] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::iter::traits::collect::IntoIterator, -fn core::iter::traits::iterator::Iterator::intersperse(@1: Self, @2: Self::Item) -> core::iter::adapters::intersperse::Intersperse +fn core::iter::traits::iterator::Iterator::intersperse(@1: Self, @2: Self::Item) -> core::iter::adapters::intersperse::Intersperse[@TraitClause0, Self, @TraitClause1] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::clone::Clone, -fn core::iter::traits::iterator::Iterator::intersperse_with(@1: Self, @2: G) -> core::iter::adapters::intersperse::IntersperseWith +fn core::iter::traits::iterator::Iterator::intersperse_with(@1: Self, @2: G) -> core::iter::adapters::intersperse::IntersperseWith[@TraitClause1, @TraitClause0, Self] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::ops::function::FnMut, - (parents(@TraitClause2)::[@TraitClause0])::Output = Self::Item, + @TraitClause2::parent_clause0::Output = Self::Item, -fn core::iter::traits::iterator::Iterator::map(@1: Self, @2: F) -> core::iter::adapters::map::Map +fn core::iter::traits::iterator::Iterator::map(@1: Self, @2: F) -> core::iter::adapters::map::Map[@TraitClause2, @TraitClause1] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = B, + @TraitClause3::parent_clause0::Output = B, fn core::iter::traits::iterator::Iterator::for_each(@1: Self, @2: F) where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::ops::function::FnMut, - (parents(@TraitClause2)::[@TraitClause0])::Output = (), + @TraitClause2::parent_clause0::Output = (), -fn core::iter::traits::iterator::Iterator::filter(@1: Self, @2: P) -> core::iter::adapters::filter::Filter +fn core::iter::traits::iterator::Iterator::filter(@1: Self, @2: P) -> core::iter::adapters::filter::Filter[@TraitClause1, @TraitClause0] where [@TraitClause0]: core::marker::Sized

, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + for<'_1_0> @TraitClause2::parent_clause0::Output = bool, -fn core::iter::traits::iterator::Iterator::filter_map(@1: Self, @2: F) -> core::iter::adapters::filter_map::FilterMap +fn core::iter::traits::iterator::Iterator::filter_map(@1: Self, @2: F) -> core::iter::adapters::filter_map::FilterMap[@TraitClause2, @TraitClause1] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = core::option::Option, + @TraitClause3::parent_clause0::Output = core::option::Option[@TraitClause0], -fn core::iter::traits::iterator::Iterator::enumerate(@1: Self) -> core::iter::adapters::enumerate::Enumerate +fn core::iter::traits::iterator::Iterator::enumerate(@1: Self) -> core::iter::adapters::enumerate::Enumerate[@TraitClause0] where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::peekable(@1: Self) -> core::iter::adapters::peekable::Peekable +fn core::iter::traits::iterator::Iterator::peekable(@1: Self) -> core::iter::adapters::peekable::Peekable[@TraitClause0, Self] where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::skip_while(@1: Self, @2: P) -> core::iter::adapters::skip_while::SkipWhile +fn core::iter::traits::iterator::Iterator::skip_while(@1: Self, @2: P) -> core::iter::adapters::skip_while::SkipWhile[@TraitClause1, @TraitClause0] where [@TraitClause0]: core::marker::Sized

, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + for<'_1_0> @TraitClause2::parent_clause0::Output = bool, -fn core::iter::traits::iterator::Iterator::take_while(@1: Self, @2: P) -> core::iter::adapters::take_while::TakeWhile +fn core::iter::traits::iterator::Iterator::take_while(@1: Self, @2: P) -> core::iter::adapters::take_while::TakeWhile[@TraitClause1, @TraitClause0] where [@TraitClause0]: core::marker::Sized

, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + for<'_1_0> @TraitClause2::parent_clause0::Output = bool, -fn core::iter::traits::iterator::Iterator::map_while(@1: Self, @2: P) -> core::iter::adapters::map_while::MapWhile +fn core::iter::traits::iterator::Iterator::map_while(@1: Self, @2: P) -> core::iter::adapters::map_while::MapWhile[@TraitClause2, @TraitClause1] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized

, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = core::option::Option, + @TraitClause3::parent_clause0::Output = core::option::Option[@TraitClause0], -fn core::iter::traits::iterator::Iterator::skip(@1: Self, @2: usize) -> core::iter::adapters::skip::Skip +fn core::iter::traits::iterator::Iterator::skip(@1: Self, @2: usize) -> core::iter::adapters::skip::Skip[@TraitClause0] where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::take(@1: Self, @2: usize) -> core::iter::adapters::take::Take +fn core::iter::traits::iterator::Iterator::take(@1: Self, @2: usize) -> core::iter::adapters::take::Take[@TraitClause0] where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::scan(@1: Self, @2: St, @3: F) -> core::iter::adapters::scan::Scan +fn core::iter::traits::iterator::Iterator::scan(@1: Self, @2: St, @3: F) -> core::iter::adapters::scan::Scan[@TraitClause3, @TraitClause0, @TraitClause2] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::marker::Sized, [@TraitClause4]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause4)::[@TraitClause0])::Output = core::option::Option, + for<'_1_0> @TraitClause4::parent_clause0::Output = core::option::Option[@TraitClause1], -fn core::iter::traits::iterator::Iterator::flat_map(@1: Self, @2: F) -> core::iter::adapters::flatten::FlatMap +fn core::iter::traits::iterator::Iterator::flat_map(@1: Self, @2: F) -> core::iter::adapters::flatten::FlatMap[@TraitClause2, @TraitClause0, @TraitClause1, @TraitClause3] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::iter::traits::collect::IntoIterator, [@TraitClause4]: core::ops::function::FnMut, - (parents(@TraitClause4)::[@TraitClause0])::Output = U, + @TraitClause4::parent_clause0::Output = U, -fn core::iter::traits::iterator::Iterator::flatten(@1: Self) -> core::iter::adapters::flatten::Flatten +fn core::iter::traits::iterator::Iterator::flatten(@1: Self) -> core::iter::adapters::flatten::Flatten[@TraitClause0, Self, @TraitClause1] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::iter::traits::collect::IntoIterator, -fn core::iter::traits::iterator::Iterator::map_windows(@1: Self, @2: F) -> core::iter::adapters::map_windows::MapWindows +fn core::iter::traits::iterator::Iterator::map_windows(@1: Self, @2: F) -> core::iter::adapters::map_windows::MapWindows[@TraitClause2, @TraitClause0, Self] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: for<'_1_0> core::ops::function::FnMut))>, - for<'_1_0> (parents(@TraitClause3)::[@TraitClause0])::Output = R, + for<'_1_0> @TraitClause3::parent_clause0::Output = R, -fn core::iter::traits::iterator::Iterator::fuse(@1: Self) -> core::iter::adapters::fuse::Fuse +fn core::iter::traits::iterator::Iterator::fuse(@1: Self) -> core::iter::adapters::fuse::Fuse[@TraitClause0] where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::inspect(@1: Self, @2: F) -> core::iter::adapters::inspect::Inspect +fn core::iter::traits::iterator::Iterator::inspect(@1: Self, @2: F) -> core::iter::adapters::inspect::Inspect[@TraitClause1, @TraitClause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause2)::[@TraitClause0])::Output = (), + for<'_1_0> @TraitClause2::parent_clause0::Output = (), fn core::iter::traits::iterator::Iterator::by_ref<'_0, Self>(@1: &'_0 mut (Self)) -> &'_0 mut (Self) where @@ -1360,7 +1360,7 @@ where [@TraitClause3]: core::default::Default, [@TraitClause4]: core::iter::traits::collect::Extend, [@TraitClause5]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause5)::[@TraitClause0])::Output = bool, + for<'_1_0> @TraitClause5::parent_clause0::Output = bool, fn core::iter::traits::iterator::Iterator::partition_in_place<'a, Self, T, P>(@1: Self, @2: P) -> usize where @@ -1371,14 +1371,14 @@ where [@TraitClause4]: for<'_1_0> core::ops::function::FnMut, T : 'a, Self::Item = &'a mut (T), - for<'_1_0> (parents(@TraitClause4)::[@TraitClause0])::Output = bool, + for<'_1_0> @TraitClause4::parent_clause0::Output = bool, fn core::iter::traits::iterator::Iterator::is_partitioned(@1: Self, @2: P) -> bool where [@TraitClause0]: core::marker::Sized

, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::ops::function::FnMut, - (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + @TraitClause2::parent_clause0::Output = bool, fn core::iter::traits::iterator::Iterator::try_fold<'_0, Self, B, F, R>(@1: &'_0 mut (Self), @2: B, @3: F) -> R where @@ -1388,7 +1388,7 @@ where [@TraitClause3]: core::marker::Sized, [@TraitClause4]: core::ops::function::FnMut, [@TraitClause5]: core::ops::try_trait::Try, - (parents(@TraitClause4)::[@TraitClause0])::Output = R, + @TraitClause4::parent_clause0::Output = R, @TraitClause5::Output = B, fn core::iter::traits::iterator::Iterator::try_for_each<'_0, Self, F, R>(@1: &'_0 mut (Self), @2: F) -> R @@ -1398,7 +1398,7 @@ where [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::function::FnMut, [@TraitClause4]: core::ops::try_trait::Try, - (parents(@TraitClause3)::[@TraitClause0])::Output = R, + @TraitClause3::parent_clause0::Output = R, @TraitClause4::Output = (), fn core::iter::traits::iterator::Iterator::fold(@1: Self, @2: B, @3: F) -> B @@ -1407,14 +1407,14 @@ where [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = B, + @TraitClause3::parent_clause0::Output = B, -fn core::iter::traits::iterator::Iterator::reduce(@1: Self, @2: F) -> core::option::Option +fn core::iter::traits::iterator::Iterator::reduce(@1: Self, @2: F) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::ops::function::FnMut, - (parents(@TraitClause2)::[@TraitClause0])::Output = Self::Item, + @TraitClause2::parent_clause0::Output = Self::Item, fn core::iter::traits::iterator::Iterator::try_reduce<'_0, Self, R, impl FnMut(Self::Item, Self::Item) -> R>(@1: &'_0 mut (Self), @2: impl FnMut(Self::Item, Self::Item) -> R) -> @TraitClause4::TryType where @@ -1422,39 +1422,39 @@ where [@TraitClause1]: core::marker::Sized R>, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::try_trait::Try, - [@TraitClause4]: core::ops::try_trait::Residual<@TraitClause3::Residual, core::option::Option>, + [@TraitClause4]: core::ops::try_trait::Residual<@TraitClause3::Residual, core::option::Option[Self::parent_clause0]>, [@TraitClause5]: core::ops::function::FnMut R, (Self::Item, Self::Item)>, @TraitClause3::Output = Self::Item, - (parents(@TraitClause5)::[@TraitClause0])::Output = R, + @TraitClause5::parent_clause0::Output = R, fn core::iter::traits::iterator::Iterator::all<'_0, Self, F>(@1: &'_0 mut (Self), @2: F) -> bool where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::ops::function::FnMut, - (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + @TraitClause2::parent_clause0::Output = bool, fn core::iter::traits::iterator::Iterator::any<'_0, Self, F>(@1: &'_0 mut (Self), @2: F) -> bool where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::ops::function::FnMut, - (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + @TraitClause2::parent_clause0::Output = bool, -fn core::iter::traits::iterator::Iterator::find<'_0, Self, P>(@1: &'_0 mut (Self), @2: P) -> core::option::Option +fn core::iter::traits::iterator::Iterator::find<'_0, Self, P>(@1: &'_0 mut (Self), @2: P) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized

, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + for<'_1_0> @TraitClause2::parent_clause0::Output = bool, -fn core::iter::traits::iterator::Iterator::find_map<'_0, Self, B, F>(@1: &'_0 mut (Self), @2: F) -> core::option::Option +fn core::iter::traits::iterator::Iterator::find_map<'_0, Self, B, F>(@1: &'_0 mut (Self), @2: F) -> core::option::Option[@TraitClause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = core::option::Option, + @TraitClause3::parent_clause0::Output = core::option::Option[@TraitClause0], fn core::iter::traits::iterator::Iterator::try_find<'_0, Self, R, impl FnMut(&Self::Item) -> R>(@1: &'_0 mut (Self), @2: impl FnMut(&Self::Item) -> R) -> @TraitClause4::TryType where @@ -1462,70 +1462,70 @@ where [@TraitClause1]: core::marker::Sized R>, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::try_trait::Try, - [@TraitClause4]: core::ops::try_trait::Residual<@TraitClause3::Residual, core::option::Option>, + [@TraitClause4]: core::ops::try_trait::Residual<@TraitClause3::Residual, core::option::Option[Self::parent_clause0]>, [@TraitClause5]: for<'_1_0> core::ops::function::FnMut R, (&'_1_0 (Self::Item))>, @TraitClause3::Output = bool, - for<'_1_0> (parents(@TraitClause5)::[@TraitClause0])::Output = R, + for<'_1_0> @TraitClause5::parent_clause0::Output = R, -fn core::iter::traits::iterator::Iterator::position<'_0, Self, P>(@1: &'_0 mut (Self), @2: P) -> core::option::Option> +fn core::iter::traits::iterator::Iterator::position<'_0, Self, P>(@1: &'_0 mut (Self), @2: P) -> core::option::Option[core::marker::Sized] where [@TraitClause0]: core::marker::Sized

, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::ops::function::FnMut, - (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + @TraitClause2::parent_clause0::Output = bool, -fn core::iter::traits::iterator::Iterator::rposition<'_0, Self, P>(@1: &'_0 mut (Self), @2: P) -> core::option::Option> +fn core::iter::traits::iterator::Iterator::rposition<'_0, Self, P>(@1: &'_0 mut (Self), @2: P) -> core::option::Option[core::marker::Sized] where [@TraitClause0]: core::marker::Sized

, [@TraitClause1]: core::ops::function::FnMut, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::iter::traits::exact_size::ExactSizeIterator, [@TraitClause4]: core::iter::traits::double_ended::DoubleEndedIterator, - (parents(@TraitClause1)::[@TraitClause0])::Output = bool, + @TraitClause1::parent_clause0::Output = bool, -fn core::iter::traits::iterator::Iterator::max(@1: Self) -> core::option::Option +fn core::iter::traits::iterator::Iterator::max(@1: Self) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::cmp::Ord, -fn core::iter::traits::iterator::Iterator::min(@1: Self) -> core::option::Option +fn core::iter::traits::iterator::Iterator::min(@1: Self) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::cmp::Ord, -fn core::iter::traits::iterator::Iterator::max_by_key(@1: Self, @2: F) -> core::option::Option +fn core::iter::traits::iterator::Iterator::max_by_key(@1: Self, @2: F) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::cmp::Ord, [@TraitClause3]: core::marker::Sized, [@TraitClause4]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause4)::[@TraitClause0])::Output = B, + for<'_1_0> @TraitClause4::parent_clause0::Output = B, -fn core::iter::traits::iterator::Iterator::max_by(@1: Self, @2: F) -> core::option::Option +fn core::iter::traits::iterator::Iterator::max_by(@1: Self, @2: F) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: for<'_1_0, '_1_1> core::ops::function::FnMut, - for<'_1_0, '_1_1> (parents(@TraitClause2)::[@TraitClause0])::Output = core::cmp::Ordering, + for<'_1_0, '_1_1> @TraitClause2::parent_clause0::Output = core::cmp::Ordering, -fn core::iter::traits::iterator::Iterator::min_by_key(@1: Self, @2: F) -> core::option::Option +fn core::iter::traits::iterator::Iterator::min_by_key(@1: Self, @2: F) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::cmp::Ord, [@TraitClause3]: core::marker::Sized, [@TraitClause4]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause4)::[@TraitClause0])::Output = B, + for<'_1_0> @TraitClause4::parent_clause0::Output = B, -fn core::iter::traits::iterator::Iterator::min_by(@1: Self, @2: F) -> core::option::Option +fn core::iter::traits::iterator::Iterator::min_by(@1: Self, @2: F) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: for<'_1_0, '_1_1> core::ops::function::FnMut, - for<'_1_0, '_1_1> (parents(@TraitClause2)::[@TraitClause0])::Output = core::cmp::Ordering, + for<'_1_0, '_1_1> @TraitClause2::parent_clause0::Output = core::cmp::Ordering, -fn core::iter::traits::iterator::Iterator::rev(@1: Self) -> core::iter::adapters::rev::Rev +fn core::iter::traits::iterator::Iterator::rev(@1: Self) -> core::iter::adapters::rev::Rev[@TraitClause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::iter::traits::double_ended::DoubleEndedIterator, @@ -1544,7 +1544,7 @@ where [@TraitClause9]: core::iter::traits::iterator::Iterator, Self::Item = (A, B), -fn core::iter::traits::iterator::Iterator::copied<'a, Self, T>(@1: Self) -> core::iter::adapters::copied::Copied +fn core::iter::traits::iterator::Iterator::copied<'a, Self, T>(@1: Self) -> core::iter::adapters::copied::Copied[@TraitClause1] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, @@ -1553,7 +1553,7 @@ where T : 'a, Self::Item = &'a (T), -fn core::iter::traits::iterator::Iterator::cloned<'a, Self, T>(@1: Self) -> core::iter::adapters::cloned::Cloned +fn core::iter::traits::iterator::Iterator::cloned<'a, Self, T>(@1: Self) -> core::iter::adapters::cloned::Cloned[@TraitClause1] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, @@ -1562,12 +1562,12 @@ where T : 'a, Self::Item = &'a (T), -fn core::iter::traits::iterator::Iterator::cycle(@1: Self) -> core::iter::adapters::cycle::Cycle +fn core::iter::traits::iterator::Iterator::cycle(@1: Self) -> core::iter::adapters::cycle::Cycle[@TraitClause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::clone::Clone, -fn core::iter::traits::iterator::Iterator::array_chunks(@1: Self) -> core::iter::adapters::array_chunks::ArrayChunks +fn core::iter::traits::iterator::Iterator::array_chunks(@1: Self) -> core::iter::adapters::array_chunks::ArrayChunks[@TraitClause0, Self] where [@TraitClause0]: core::marker::Sized, @@ -1598,23 +1598,23 @@ where [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::iter::traits::collect::IntoIterator, [@TraitClause4]: core::ops::function::FnMut, - (parents(@TraitClause4)::[@TraitClause0])::Output = core::cmp::Ordering, + @TraitClause4::parent_clause0::Output = core::cmp::Ordering, -fn core::iter::traits::iterator::Iterator::partial_cmp(@1: Self, @2: I) -> core::option::Option> +fn core::iter::traits::iterator::Iterator::partial_cmp(@1: Self, @2: I) -> core::option::Option[core::marker::Sized] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::iter::traits::collect::IntoIterator, [@TraitClause2]: core::cmp::PartialOrd, [@TraitClause3]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::partial_cmp_by(@1: Self, @2: I, @3: F) -> core::option::Option> +fn core::iter::traits::iterator::Iterator::partial_cmp_by(@1: Self, @2: I, @3: F) -> core::option::Option[core::marker::Sized] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::iter::traits::collect::IntoIterator, [@TraitClause4]: core::ops::function::FnMut, - (parents(@TraitClause4)::[@TraitClause0])::Output = core::option::Option>, + @TraitClause4::parent_clause0::Output = core::option::Option[core::marker::Sized], fn core::iter::traits::iterator::Iterator::eq(@1: Self, @2: I) -> bool where @@ -1630,7 +1630,7 @@ where [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::iter::traits::collect::IntoIterator, [@TraitClause4]: core::ops::function::FnMut, - (parents(@TraitClause4)::[@TraitClause0])::Output = bool, + @TraitClause4::parent_clause0::Output = bool, fn core::iter::traits::iterator::Iterator::ne(@1: Self, @2: I) -> bool where @@ -1677,7 +1677,7 @@ where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: for<'_1_0, '_1_1> core::ops::function::FnMut, - for<'_1_0, '_1_1> (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + for<'_1_0, '_1_1> @TraitClause2::parent_clause0::Output = bool, fn core::iter::traits::iterator::Iterator::is_sorted_by_key(@1: Self, @2: F) -> bool where @@ -1686,13 +1686,13 @@ where [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::function::FnMut, [@TraitClause4]: core::cmp::PartialOrd, - (parents(@TraitClause3)::[@TraitClause0])::Output = K, + @TraitClause3::parent_clause0::Output = K, unsafe fn core::iter::traits::iterator::Iterator::__iterator_get_unchecked<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> Self::Item where [@TraitClause0]: core::iter::adapters::zip::TrustedRandomAccessNoCoerce, -fn core::ops::function::FnMut::call_mut<'_0, Self, Args>(@1: &'_0 mut (Self), @2: Args) -> (parents(Self)::[@TraitClause0])::Output +fn core::ops::function::FnMut::call_mut<'_0, Self, Args>(@1: &'_0 mut (Self), @2: Args) -> Self::parent_clause0::Output fn core::ops::function::FnOnce::call_once(@1: Self, @2: Args) -> Self::Output @@ -1708,7 +1708,7 @@ where fn core::ops::try_trait::Try::from_output(@1: Self::Output) -> Self -fn core::ops::try_trait::Try::branch(@1: Self) -> core::ops::control_flow::ControlFlow +fn core::ops::try_trait::Try::branch(@1: Self) -> core::ops::control_flow::ControlFlow[Self::parent_clause0::parent_clause0, Self::parent_clause1] fn core::ops::try_trait::FromResidual::from_residual(@1: R) -> Self @@ -1728,11 +1728,11 @@ where fn core::default::Default::default() -> Self -fn core::iter::traits::double_ended::DoubleEndedIterator::next_back<'_0, Self>(@1: &'_0 mut (Self)) -> core::option::Option<(parents(Self)::[@TraitClause0])::Item, (parents((parents(Self)::[@TraitClause0]))::[@TraitClause0])> +fn core::iter::traits::double_ended::DoubleEndedIterator::next_back<'_0, Self>(@1: &'_0 mut (Self)) -> core::option::Option[Self::parent_clause0::parent_clause0] -fn core::iter::traits::double_ended::DoubleEndedIterator::advance_back_by<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> core::result::Result<(), core::num::nonzero::NonZero, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26>, core::marker::Sized<()>, core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26>>> +fn core::iter::traits::double_ended::DoubleEndedIterator::advance_back_by<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> core::result::Result<(), core::num::nonzero::NonZero[core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26]>[core::marker::Sized<()>, core::marker::Sized[core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26]>] -fn core::iter::traits::double_ended::DoubleEndedIterator::nth_back<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> core::option::Option<(parents(Self)::[@TraitClause0])::Item, (parents((parents(Self)::[@TraitClause0]))::[@TraitClause0])> +fn core::iter::traits::double_ended::DoubleEndedIterator::nth_back<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> core::option::Option[Self::parent_clause0::parent_clause0] fn core::iter::traits::double_ended::DoubleEndedIterator::try_rfold<'_0, Self, B, F, R>(@1: &'_0 mut (Self), @2: B, @3: F) -> R where @@ -1740,9 +1740,9 @@ where [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::marker::Sized, - [@TraitClause4]: core::ops::function::FnMut, + [@TraitClause4]: core::ops::function::FnMut, [@TraitClause5]: core::ops::try_trait::Try, - (parents(@TraitClause4)::[@TraitClause0])::Output = R, + @TraitClause4::parent_clause0::Output = R, @TraitClause5::Output = B, fn core::iter::traits::double_ended::DoubleEndedIterator::rfold(@1: Self, @2: B, @3: F) -> B @@ -1750,15 +1750,15 @@ where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, - [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = B, + [@TraitClause3]: core::ops::function::FnMut, + @TraitClause3::parent_clause0::Output = B, -fn core::iter::traits::double_ended::DoubleEndedIterator::rfind<'_0, Self, P>(@1: &'_0 mut (Self), @2: P) -> core::option::Option<(parents(Self)::[@TraitClause0])::Item, (parents((parents(Self)::[@TraitClause0]))::[@TraitClause0])> +fn core::iter::traits::double_ended::DoubleEndedIterator::rfind<'_0, Self, P>(@1: &'_0 mut (Self), @2: P) -> core::option::Option[Self::parent_clause0::parent_clause0] where [@TraitClause0]: core::marker::Sized

, [@TraitClause1]: core::marker::Sized, - [@TraitClause2]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + [@TraitClause2]: for<'_1_0> core::ops::function::FnMut, + for<'_1_0> @TraitClause2::parent_clause0::Output = bool, fn core::iter::traits::exact_size::ExactSizeIterator::len<'_0, Self>(@1: &'_0 (Self)) -> usize @@ -1785,7 +1785,7 @@ fn core::cmp::PartialEq::eq<'_0, '_1, Self, Rhs>(@1: &'_0 (Self), @2: &'_1 (Rhs) fn core::cmp::PartialEq::ne<'_0, '_1, Self, Rhs>(@1: &'_0 (Self), @2: &'_1 (Rhs)) -> bool -fn core::cmp::PartialOrd::partial_cmp<'_0, '_1, Self, Rhs>(@1: &'_0 (Self), @2: &'_1 (Rhs)) -> core::option::Option> +fn core::cmp::PartialOrd::partial_cmp<'_0, '_1, Self, Rhs>(@1: &'_0 (Self), @2: &'_1 (Rhs)) -> core::option::Option[core::marker::Sized] fn core::cmp::PartialOrd::lt<'_0, '_1, Self, Rhs>(@1: &'_0 (Self), @2: &'_1 (Rhs)) -> bool diff --git a/charon/tests/ui/traits.out b/charon/tests/ui/traits.out index 691b0d15..74c3d69d 100644 --- a/charon/tests/ui/traits.out +++ b/charon/tests/ui/traits.out @@ -65,13 +65,13 @@ enum core::option::Option | Some(T) -fn test_crate::{impl test_crate::BoolTrait for core::option::Option}#1::get_bool<'_0, T>(@1: &'_0 (core::option::Option)) -> bool +fn test_crate::{impl test_crate::BoolTrait for core::option::Option[@TraitClause0]}#1::get_bool<'_0, T>(@1: &'_0 (core::option::Option[@TraitClause0])) -> bool where // Inherited clauses: [@TraitClause0]: core::marker::Sized, { let @0: bool; // return - let self@1: &'_ (core::option::Option); // arg #1 + let self@1: &'_ (core::option::Option[@TraitClause0]); // arg #1 @fake_read(self@1) match *(self@1) { @@ -85,29 +85,29 @@ where return } -impl test_crate::{impl test_crate::BoolTrait for core::option::Option}#1 : test_crate::BoolTrait> +impl test_crate::{impl test_crate::BoolTrait for core::option::Option[@TraitClause0]}#1 : test_crate::BoolTrait[@TraitClause0]> where [@TraitClause0]: core::marker::Sized, { - fn get_bool = test_crate::{impl test_crate::BoolTrait for core::option::Option}#1::get_bool + fn get_bool = test_crate::{impl test_crate::BoolTrait for core::option::Option[@TraitClause0]}#1::get_bool } -fn test_crate::test_bool_trait_option(@1: core::option::Option) -> bool +fn test_crate::test_bool_trait_option(@1: core::option::Option[@TraitClause0]) -> bool where [@TraitClause0]: core::marker::Sized, { let @0: bool; // return - let x@1: core::option::Option; // arg #1 + let x@1: core::option::Option[@TraitClause0]; // arg #1 let @2: bool; // anonymous local - let @3: &'_ (core::option::Option); // anonymous local - let @4: &'_ (core::option::Option); // anonymous local + let @3: &'_ (core::option::Option[@TraitClause0]); // anonymous local + let @4: &'_ (core::option::Option[@TraitClause0]); // anonymous local @3 := &x@1 - @2 := test_crate::{impl test_crate::BoolTrait for core::option::Option}#1[@TraitClause0]::get_bool(move (@3)) + @2 := test_crate::{impl test_crate::BoolTrait for core::option::Option[@TraitClause0]}#1[@TraitClause0]::get_bool(move (@3)) if move (@2) { drop @3 @4 := &x@1 - @0 := test_crate::{impl test_crate::BoolTrait for core::option::Option}#1[@TraitClause0]::ret_true(move (@4)) + @0 := test_crate::{impl test_crate::BoolTrait for core::option::Option[@TraitClause0]}#1[@TraitClause0]::ret_true(move (@4)) drop @4 } else { @@ -242,14 +242,14 @@ struct test_crate::Wrapper x: T, } -fn test_crate::{impl test_crate::ToU64 for test_crate::Wrapper}#4::to_u64(@1: test_crate::Wrapper) -> u64 +fn test_crate::{impl test_crate::ToU64 for test_crate::Wrapper[@TraitClause0]}#4::to_u64(@1: test_crate::Wrapper[@TraitClause0]) -> u64 where // Inherited clauses: [@TraitClause0]: core::marker::Sized, [@TraitClause1]: test_crate::ToU64, { let @0: u64; // return - let self@1: test_crate::Wrapper; // arg #1 + let self@1: test_crate::Wrapper[@TraitClause0]; // arg #1 let @2: T; // anonymous local @2 := move ((self@1).x) @@ -259,37 +259,37 @@ where return } -impl test_crate::{impl test_crate::ToU64 for test_crate::Wrapper}#4 : test_crate::ToU64> +impl test_crate::{impl test_crate::ToU64 for test_crate::Wrapper[@TraitClause0]}#4 : test_crate::ToU64[@TraitClause0]> where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: test_crate::ToU64, { - fn to_u64 = test_crate::{impl test_crate::ToU64 for test_crate::Wrapper}#4::to_u64 + fn to_u64 = test_crate::{impl test_crate::ToU64 for test_crate::Wrapper[@TraitClause0]}#4::to_u64 } -fn test_crate::h1(@1: test_crate::Wrapper>) -> u64 +fn test_crate::h1(@1: test_crate::Wrapper[core::marker::Sized]) -> u64 { let @0: u64; // return - let x@1: test_crate::Wrapper>; // arg #1 - let @2: test_crate::Wrapper>; // anonymous local + let x@1: test_crate::Wrapper[core::marker::Sized]; // arg #1 + let @2: test_crate::Wrapper[core::marker::Sized]; // anonymous local @2 := move (x@1) - @0 := test_crate::{impl test_crate::ToU64 for test_crate::Wrapper}#4[core::marker::Sized, test_crate::{impl test_crate::ToU64 for u64}#2]::to_u64(move (@2)) + @0 := test_crate::{impl test_crate::ToU64 for test_crate::Wrapper[@TraitClause0]}#4[core::marker::Sized, test_crate::{impl test_crate::ToU64 for u64}#2]::to_u64(move (@2)) drop @2 return } -fn test_crate::h2(@1: test_crate::Wrapper) -> u64 +fn test_crate::h2(@1: test_crate::Wrapper[@TraitClause0]) -> u64 where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: test_crate::ToU64, { let @0: u64; // return - let x@1: test_crate::Wrapper; // arg #1 - let @2: test_crate::Wrapper; // anonymous local + let x@1: test_crate::Wrapper[@TraitClause0]; // arg #1 + let @2: test_crate::Wrapper[@TraitClause0]; // anonymous local @2 := move (x@1) - @0 := test_crate::{impl test_crate::ToU64 for test_crate::Wrapper}#4[@TraitClause0, @TraitClause1]::to_u64(move (@2)) + @0 := test_crate::{impl test_crate::ToU64 for test_crate::Wrapper[@TraitClause0]}#4[@TraitClause0, @TraitClause1]::to_u64(move (@2)) drop @2 drop x@1 return @@ -297,7 +297,7 @@ where trait test_crate::ToType { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized fn to_type : test_crate::ToType::to_type } @@ -350,9 +350,9 @@ where trait test_crate::OfTypeBis { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: test_crate::ToType - parent_clause_2 : [@TraitClause2]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: test_crate::ToType + parent_clause2 : [@TraitClause2]: core::marker::Sized fn of_type : test_crate::OfTypeBis::of_type } @@ -386,20 +386,20 @@ struct test_crate::TestType T, } -struct test_crate::{test_crate::TestType}#6::test::TestType1 = +struct test_crate::{test_crate::TestType[@TraitClause0]}#6::test::TestType1 = { u64, } -trait test_crate::{test_crate::TestType}#6::test::TestTrait +trait test_crate::{test_crate::TestType[@TraitClause0]}#6::test::TestTrait { - fn test : test_crate::{test_crate::TestType}#6::test::TestTrait::test + fn test : test_crate::{test_crate::TestType[@TraitClause0]}#6::test::TestTrait::test } -fn test_crate::{test_crate::TestType}#6::test::{impl test_crate::{test_crate::TestType}#6::test::TestTrait for test_crate::{test_crate::TestType}#6::test::TestType1}::test<'_0>(@1: &'_0 (test_crate::{test_crate::TestType}#6::test::TestType1)) -> bool +fn test_crate::{test_crate::TestType[@TraitClause0]}#6::test::{impl test_crate::{test_crate::TestType[@TraitClause0]}#6::test::TestTrait for test_crate::{test_crate::TestType[@TraitClause0]}#6::test::TestType1}::test<'_0>(@1: &'_0 (test_crate::{test_crate::TestType[@TraitClause0]}#6::test::TestType1)) -> bool { let @0: bool; // return - let self@1: &'_ (test_crate::{test_crate::TestType}#6::test::TestType1); // arg #1 + let self@1: &'_ (test_crate::{test_crate::TestType[@TraitClause0]}#6::test::TestType1); // arg #1 let @2: u64; // anonymous local @2 := copy ((*(self@1)).0) @@ -408,28 +408,28 @@ fn test_crate::{test_crate::TestType}#6::test::{impl test_crat return } -impl test_crate::{test_crate::TestType}#6::test::{impl test_crate::{test_crate::TestType}#6::test::TestTrait for test_crate::{test_crate::TestType}#6::test::TestType1} : test_crate::{test_crate::TestType}#6::test::TestTrait}#6::test::TestType1> +impl test_crate::{test_crate::TestType[@TraitClause0]}#6::test::{impl test_crate::{test_crate::TestType[@TraitClause0]}#6::test::TestTrait for test_crate::{test_crate::TestType[@TraitClause0]}#6::test::TestType1} : test_crate::{test_crate::TestType[@TraitClause0]}#6::test::TestTrait[@TraitClause0]}#6::test::TestType1> { - fn test = test_crate::{test_crate::TestType}#6::test::{impl test_crate::{test_crate::TestType}#6::test::TestTrait for test_crate::{test_crate::TestType}#6::test::TestType1}::test + fn test = test_crate::{test_crate::TestType[@TraitClause0]}#6::test::{impl test_crate::{test_crate::TestType[@TraitClause0]}#6::test::TestTrait for test_crate::{test_crate::TestType[@TraitClause0]}#6::test::TestType1}::test } -fn test_crate::{test_crate::TestType}#6::test::TestTrait::test<'_0, Self>(@1: &'_0 (Self)) -> bool +fn test_crate::{test_crate::TestType[@TraitClause0]}#6::test::TestTrait::test<'_0, Self>(@1: &'_0 (Self)) -> bool -fn test_crate::{test_crate::TestType}#6::test<'_0, T>(@1: &'_0 (test_crate::TestType), @2: T) -> bool +fn test_crate::{test_crate::TestType[@TraitClause0]}#6::test<'_0, T>(@1: &'_0 (test_crate::TestType[@TraitClause0]), @2: T) -> bool where // Inherited clauses: [@TraitClause0]: core::marker::Sized, [@TraitClause1]: test_crate::ToU64, { let @0: bool; // return - let self@1: &'_ (test_crate::TestType); // arg #1 + let self@1: &'_ (test_crate::TestType[@TraitClause0]); // arg #1 let x@2: T; // arg #2 let x@3: u64; // local let @4: T; // anonymous local - let y@5: test_crate::{test_crate::TestType}#6::test::TestType1; // local + let y@5: test_crate::{test_crate::TestType[@TraitClause0]}#6::test::TestType1; // local let @6: bool; // anonymous local let @7: u64; // anonymous local - let @8: &'_ (test_crate::{test_crate::TestType}#6::test::TestType1); // anonymous local + let @8: &'_ (test_crate::{test_crate::TestType[@TraitClause0]}#6::test::TestType1); // anonymous local // Remark: we can't write: impl TestTrait for TestType, // we have to use a *local* parameter (can't use the outer T). @@ -440,14 +440,14 @@ where x@3 := @TraitClause1::to_u64(move (@4)) drop @4 @fake_read(x@3) - y@5 := test_crate::{test_crate::TestType}#6::test::TestType1 { 0: const (0 : u64) } + y@5 := test_crate::{test_crate::TestType[@TraitClause0]}#6::test::TestType1 { 0: const (0 : u64) } @fake_read(y@5) @7 := copy (x@3) @6 := move (@7) > const (0 : u64) if move (@6) { drop @7 @8 := &y@5 - @0 := test_crate::{test_crate::TestType}#6::test::{impl test_crate::{test_crate::TestType}#6::test::TestTrait for test_crate::{test_crate::TestType}#6::test::TestType1}::test(move (@8)) + @0 := test_crate::{test_crate::TestType[@TraitClause0]}#6::test::{impl test_crate::{test_crate::TestType[@TraitClause0]}#6::test::TestTrait for test_crate::{test_crate::TestType[@TraitClause0]}#6::test::TestType1}::test(move (@8)) drop @8 } else { @@ -502,9 +502,9 @@ global test_crate::WithConstTy::LEN2 { trait test_crate::WithConstTy { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: test_crate::ToU64 - parent_clause_2 : [@TraitClause2]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: test_crate::ToU64 + parent_clause2 : [@TraitClause2]: core::marker::Sized const LEN1 : usize const LEN2 : usize type V @@ -581,7 +581,7 @@ where let @2: @TraitClause1::W; // anonymous local @2 := move (x@1) - @0 := (parents(@TraitClause1)::[@TraitClause1])::to_u64(move (@2)) + @0 := @TraitClause1::parent_clause1::to_u64(move (@2)) drop @2 drop x@1 return @@ -622,7 +622,7 @@ opaque type alloc::string::String trait test_crate::ParentTrait0 { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized type W fn get_name : test_crate::ParentTrait0::get_name fn get_w : test_crate::ParentTrait0::get_w @@ -632,8 +632,8 @@ trait test_crate::ParentTrait1 trait test_crate::ChildTrait { - parent_clause_0 : [@TraitClause0]: test_crate::ParentTrait0 - parent_clause_1 : [@TraitClause1]: test_crate::ParentTrait1 + parent_clause0 : [@TraitClause0]: test_crate::ParentTrait0 + parent_clause1 : [@TraitClause1]: test_crate::ParentTrait1 } fn test_crate::ParentTrait0::get_name<'_0, Self>(@1: &'_0 (Self)) -> alloc::string::String @@ -648,24 +648,24 @@ where let @2: &'_ (T); // anonymous local @2 := &*(x@1) - @0 := (parents(@TraitClause1)::[@TraitClause0])::get_name(move (@2)) + @0 := @TraitClause1::parent_clause0::get_name(move (@2)) drop @2 return } fn test_crate::ParentTrait0::get_w<'_0, Self>(@1: &'_0 (Self)) -> Self::W -fn test_crate::test_child_trait2<'_0, T>(@1: &'_0 (T)) -> (parents(@TraitClause1)::[@TraitClause0])::W +fn test_crate::test_child_trait2<'_0, T>(@1: &'_0 (T)) -> @TraitClause1::parent_clause0::W where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: test_crate::ChildTrait, { - let @0: (parents(@TraitClause1)::[@TraitClause0])::W; // return + let @0: @TraitClause1::parent_clause0::W; // return let x@1: &'_ (T); // arg #1 let @2: &'_ (T); // anonymous local @2 := &*(x@1) - @0 := (parents(@TraitClause1)::[@TraitClause0])::get_w(move (@2)) + @0 := @TraitClause1::parent_clause0::get_w(move (@2)) drop @2 return } @@ -689,7 +689,7 @@ where trait test_crate::ChildTrait1 { - parent_clause_0 : [@TraitClause0]: test_crate::ParentTrait1 + parent_clause0 : [@TraitClause0]: test_crate::ParentTrait1 } impl test_crate::{impl test_crate::ParentTrait1 for usize}#9 : test_crate::ParentTrait1 @@ -701,17 +701,17 @@ impl test_crate::{impl test_crate::ChildTrait1 for usize}#10 : test_crate::Child trait test_crate::Iterator { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized type Item } trait test_crate::IntoIterator where - (parents(Self)::[@TraitClause1])::Item = Self::Item, + Self::parent_clause1::Item = Self::Item, { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: test_crate::Iterator - parent_clause_2 : [@TraitClause2]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: test_crate::Iterator + parent_clause2 : [@TraitClause2]: core::marker::Sized type Item type IntoIter fn into_iter : test_crate::IntoIterator::into_iter @@ -719,32 +719,32 @@ where trait test_crate::FromResidual { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized } trait test_crate::Try { - parent_clause_0 : [@TraitClause0]: test_crate::FromResidual - parent_clause_1 : [@TraitClause1]: core::marker::Sized + parent_clause0 : [@TraitClause0]: test_crate::FromResidual + parent_clause1 : [@TraitClause1]: core::marker::Sized type Residual } trait test_crate::WithTarget { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized type Target } trait test_crate::ParentTrait2 { - parent_clause_0 : [@TraitClause0]: test_crate::WithTarget - parent_clause_1 : [@TraitClause1]: core::marker::Sized + parent_clause0 : [@TraitClause0]: test_crate::WithTarget + parent_clause1 : [@TraitClause1]: core::marker::Sized type U } trait test_crate::ChildTrait2 { - parent_clause_0 : [@TraitClause0]: test_crate::ParentTrait2 + parent_clause0 : [@TraitClause0]: test_crate::ParentTrait2 fn convert : test_crate::ChildTrait2::convert } @@ -778,29 +778,29 @@ impl test_crate::{impl test_crate::ChildTrait2 for u32}#13 : test_crate::ChildTr trait test_crate::CFnOnce { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::marker::Sized type Output fn call_once : test_crate::CFnOnce::call_once } trait test_crate::CFnMut { - parent_clause_0 : [@TraitClause0]: test_crate::CFnOnce - parent_clause_1 : [@TraitClause1]: core::marker::Sized + parent_clause0 : [@TraitClause0]: test_crate::CFnOnce + parent_clause1 : [@TraitClause1]: core::marker::Sized fn call_mut : test_crate::CFnMut::call_mut } trait test_crate::CFn { - parent_clause_0 : [@TraitClause0]: test_crate::CFnMut - parent_clause_1 : [@TraitClause1]: core::marker::Sized + parent_clause0 : [@TraitClause0]: test_crate::CFnMut + parent_clause1 : [@TraitClause1]: core::marker::Sized fn call : test_crate::CFn::call } trait test_crate::GetTrait { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized type W fn get_w : test_crate::GetTrait::get_w } @@ -844,7 +844,7 @@ where const LEN = test_crate::{impl test_crate::Trait for Array}#14::LEN[@TraitClause0] } -global test_crate::{impl test_crate::Trait for test_crate::Wrapper}#15::LEN +global test_crate::{impl test_crate::Trait for test_crate::Wrapper[@TraitClause0]}#15::LEN where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: test_crate::Trait, @@ -855,12 +855,12 @@ global test_crate::{impl test_crate::Trait for test_crate::Wrapper test_crate::{impl test_crate::Trait for test_crate::Wrapper}#15 : test_crate::Trait> +impl test_crate::{impl test_crate::Trait for test_crate::Wrapper[@TraitClause0]}#15 : test_crate::Trait[@TraitClause0]> where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: test_crate::Trait, { - const LEN = test_crate::{impl test_crate::Trait for test_crate::Wrapper}#15::LEN[@TraitClause0, @TraitClause1] + const LEN = test_crate::{impl test_crate::Trait for test_crate::Wrapper[@TraitClause0]}#15::LEN[@TraitClause0, @TraitClause1] } fn test_crate::use_wrapper_len() -> usize @@ -870,7 +870,7 @@ where { let @0: usize; // return - @0 := const (test_crate::{impl test_crate::Trait for test_crate::Wrapper}#15[@TraitClause0, @TraitClause1]::LEN) + @0 := const (test_crate::{impl test_crate::Trait for test_crate::Wrapper[@TraitClause0]}#15[@TraitClause0, @TraitClause1]::LEN) return } @@ -893,50 +893,50 @@ enum core::result::Result | Err(E) -global test_crate::{test_crate::Foo}#16::FOO +global test_crate::{test_crate::Foo[@TraitClause0, @TraitClause1]}#16::FOO where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: test_crate::Trait, { - let @0: core::result::Result>; // return + let @0: core::result::Result[@TraitClause0, core::marker::Sized]; // return @0 := core::result::Result::Err { 0: const (0 : i32) } return } -fn test_crate::use_foo1() -> core::result::Result> +fn test_crate::use_foo1() -> core::result::Result[@TraitClause0, core::marker::Sized] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: test_crate::Trait, { - let @0: core::result::Result>; // return - let @1: core::result::Result>; // anonymous local + let @0: core::result::Result[@TraitClause0, core::marker::Sized]; // return + let @1: core::result::Result[@TraitClause0, core::marker::Sized]; // anonymous local - @1 := test_crate::{test_crate::Foo}#16::FOO[@TraitClause0, @TraitClause1, @TraitClause2] + @1 := test_crate::{test_crate::Foo[@TraitClause0, @TraitClause1]}#16::FOO[@TraitClause0, @TraitClause1, @TraitClause2] @0 := move (@1) return } -fn test_crate::use_foo2() -> core::result::Result> +fn test_crate::use_foo2() -> core::result::Result[@TraitClause1, core::marker::Sized] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: test_crate::Trait, { - let @0: core::result::Result>; // return - let @1: core::result::Result>; // anonymous local + let @0: core::result::Result[@TraitClause1, core::marker::Sized]; // return + let @1: core::result::Result[@TraitClause1, core::marker::Sized]; // anonymous local - @1 := test_crate::{test_crate::Foo}#16::FOO[@TraitClause1, @TraitClause0, @TraitClause2] + @1 := test_crate::{test_crate::Foo[@TraitClause0, @TraitClause1]}#16::FOO[@TraitClause1, @TraitClause0, @TraitClause2] @0 := move (@1) return } trait test_crate::RecursiveImpl { - parent_clause_0 : [@TraitClause0]: test_crate::RecursiveImpl - parent_clause_1 : [@TraitClause1]: core::marker::Sized + parent_clause0 : [@TraitClause0]: test_crate::RecursiveImpl + parent_clause1 : [@TraitClause1]: core::marker::Sized type Item } @@ -951,13 +951,13 @@ fn test_crate::WithConstTy::f<'_0, '_1, Self, const LEN : usize>(@1: &'_0 mut (S fn test_crate::IntoIterator::into_iter(@1: Self) -> Self::IntoIter -fn test_crate::ChildTrait2::convert(@1: (parents(Self)::[@TraitClause0])::U) -> (parents((parents(Self)::[@TraitClause0]))::[@TraitClause0])::Target +fn test_crate::ChildTrait2::convert(@1: Self::parent_clause0::U) -> Self::parent_clause0::parent_clause0::Target fn test_crate::CFnOnce::call_once(@1: Self, @2: Args) -> Self::Output -fn test_crate::CFnMut::call_mut<'_0, Self, Args>(@1: &'_0 mut (Self), @2: Args) -> (parents(Self)::[@TraitClause0])::Output +fn test_crate::CFnMut::call_mut<'_0, Self, Args>(@1: &'_0 mut (Self), @2: Args) -> Self::parent_clause0::Output -fn test_crate::CFn::call<'_0, Self, Args>(@1: &'_0 (Self), @2: Args) -> (parents((parents(Self)::[@TraitClause0]))::[@TraitClause0])::Output +fn test_crate::CFn::call<'_0, Self, Args>(@1: &'_0 (Self), @2: Args) -> Self::parent_clause0::parent_clause0::Output diff --git a/charon/tests/ui/traits_special.out b/charon/tests/ui/traits_special.out index e2e67c50..018cb4b0 100644 --- a/charon/tests/ui/traits_special.out +++ b/charon/tests/ui/traits_special.out @@ -13,15 +13,15 @@ enum core::result::Result trait test_crate::From { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::marker::Sized type Error fn from : test_crate::From::from } -fn test_crate::{impl test_crate::From<&'_0 (bool)> for bool}::from<'_0, '_1>(@1: &'_1 (bool)) -> core::result::Result for bool}<'_>::Error, core::marker::Sized, core::marker::Sized<()>> +fn test_crate::{impl test_crate::From<&'_0 (bool)> for bool}::from<'_0, '_1>(@1: &'_1 (bool)) -> core::result::Result for bool}<'_>::Error>[core::marker::Sized, core::marker::Sized<()>] { - let @0: core::result::Result, core::marker::Sized<()>>; // return + let @0: core::result::Result[core::marker::Sized, core::marker::Sized<()>]; // return let v@1: &'_ (bool); // arg #1 let @2: bool; // anonymous local @@ -39,7 +39,7 @@ impl<'_0> test_crate::{impl test_crate::From<&'_0 (bool)> for bool}<'_0> : test_ fn from = test_crate::{impl test_crate::From<&'_0 (bool)> for bool}::from } -fn test_crate::From::from(@1: T) -> core::result::Result +fn test_crate::From::from(@1: T) -> core::result::Result[@TraitClause0, Self::parent_clause1] where [@TraitClause0]: core::marker::Sized, diff --git a/charon/tests/ui/type_alias.out b/charon/tests/ui/type_alias.out index 783691d7..7a4dbf20 100644 --- a/charon/tests/ui/type_alias.out +++ b/charon/tests/ui/type_alias.out @@ -10,7 +10,7 @@ type test_crate::Generic<'a, T> trait core::clone::Clone { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized fn clone : core::clone::Clone::clone fn clone_from : core::clone::Clone::clone_from } @@ -22,8 +22,8 @@ trait core::borrow::Borrow trait alloc::borrow::ToOwned { - parent_clause_0 : [@TraitClause0]: core::borrow::Borrow - parent_clause_1 : [@TraitClause1]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::borrow::Borrow + parent_clause1 : [@TraitClause1]: core::marker::Sized type Owned fn to_owned : alloc::borrow::ToOwned::to_owned fn clone_into : alloc::borrow::ToOwned::clone_into @@ -44,29 +44,29 @@ opaque type alloc::vec::Vec [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, -fn alloc::slice::{impl core::borrow::Borrow> for alloc::vec::Vec}#5::borrow<'_0, T, A>(@1: &'_0 (alloc::vec::Vec)) -> &'_0 (Slice) +fn alloc::slice::{impl core::borrow::Borrow> for alloc::vec::Vec[@TraitClause0, @TraitClause1]}#5::borrow<'_0, T, A>(@1: &'_0 (alloc::vec::Vec[@TraitClause0, @TraitClause1])) -> &'_0 (Slice) where // Inherited clauses: [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, -impl alloc::slice::{impl core::borrow::Borrow> for alloc::vec::Vec}#5 : core::borrow::Borrow, Slice> +impl alloc::slice::{impl core::borrow::Borrow> for alloc::vec::Vec[@TraitClause0, @TraitClause1]}#5 : core::borrow::Borrow[@TraitClause0, @TraitClause1], Slice> where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, { - fn borrow = alloc::slice::{impl core::borrow::Borrow> for alloc::vec::Vec}#5::borrow + fn borrow = alloc::slice::{impl core::borrow::Borrow> for alloc::vec::Vec[@TraitClause0, @TraitClause1]}#5::borrow } struct alloc::alloc::Global = {} -fn alloc::slice::{impl alloc::borrow::ToOwned for Slice}#9::to_owned<'_0, T>(@1: &'_0 (Slice)) -> alloc::vec::Vec> +fn alloc::slice::{impl alloc::borrow::ToOwned for Slice}#9::to_owned<'_0, T>(@1: &'_0 (Slice)) -> alloc::vec::Vec[@TraitClause0, core::marker::Sized] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::clone::Clone, -fn alloc::slice::{impl alloc::borrow::ToOwned for Slice}#9::clone_into<'_0, '_1, T>(@1: &'_0 (Slice), @2: &'_1 mut (alloc::vec::Vec>)) +fn alloc::slice::{impl alloc::borrow::ToOwned for Slice}#9::clone_into<'_0, '_1, T>(@1: &'_0 (Slice), @2: &'_1 mut (alloc::vec::Vec[@TraitClause0, core::marker::Sized])) where // Inherited clauses: [@TraitClause0]: core::marker::Sized, @@ -77,9 +77,9 @@ where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::clone::Clone, { - parent_clause0 = alloc::slice::{impl core::borrow::Borrow> for alloc::vec::Vec}#5[@TraitClause0, core::marker::Sized] - parent_clause1 = core::marker::Sized>> - type Owned = alloc::vec::Vec> + parent_clause0 = alloc::slice::{impl core::borrow::Borrow> for alloc::vec::Vec[@TraitClause0, @TraitClause1]}#5[@TraitClause0, core::marker::Sized] + parent_clause1 = core::marker::Sized[@TraitClause0, core::marker::Sized]> + type Owned = alloc::vec::Vec[@TraitClause0, core::marker::Sized] fn to_owned = alloc::slice::{impl alloc::borrow::ToOwned for Slice}#9::to_owned fn clone_into = alloc::slice::{impl alloc::borrow::ToOwned for Slice}#9::clone_into } @@ -87,11 +87,11 @@ where type test_crate::Generic2<'a, T> where [@TraitClause0]: core::marker::Sized, - [@TraitClause1]: core::clone::Clone, = alloc::borrow::Cow<'a, Slice, alloc::slice::{impl alloc::borrow::ToOwned for Slice}#9[@TraitClause0, @TraitClause1]> + [@TraitClause1]: core::clone::Clone, = alloc::borrow::Cow<'a, Slice>[alloc::slice::{impl alloc::borrow::ToOwned for Slice}#9[@TraitClause0, @TraitClause1]] type test_crate::GenericWithoutBound<'a, T> where - [@TraitClause0]: core::marker::Sized, = alloc::borrow::Cow<'a, Slice, UNKNOWN(Could not find a clause for `Binder { value: <[T] as std::borrow::ToOwned>, bound_vars: [] }` in the current context: `Unimplemented`)> + [@TraitClause0]: core::marker::Sized, = alloc::borrow::Cow<'a, Slice>[UNKNOWN(Could not find a clause for `Binder { value: <[T] as std::borrow::ToOwned>, bound_vars: [] }` in the current context: `Unimplemented`)] fn alloc::borrow::ToOwned::to_owned<'_0, Self>(@1: &'_0 (Self)) -> Self::Owned diff --git a/charon/tests/ui/unsize.out b/charon/tests/ui/unsize.out index 1e7ce3b0..00a6f4c5 100644 --- a/charon/tests/ui/unsize.out +++ b/charon/tests/ui/unsize.out @@ -10,7 +10,7 @@ opaque type alloc::rc::Rc opaque type alloc::string::String -fn alloc::rc::{alloc::rc::Rc>}#8::new(@1: T) -> alloc::rc::Rc> +fn alloc::rc::{alloc::rc::Rc[core::marker::Sized]}#8::new(@1: T) -> alloc::rc::Rc[core::marker::Sized] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, @@ -19,7 +19,7 @@ fn alloc::string::{alloc::string::String}::new() -> alloc::string::String trait core::clone::Clone { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized fn clone : core::clone::Clone::clone fn clone_from : core::clone::Clone::clone_from } @@ -44,22 +44,22 @@ fn test_crate::foo() let @2: &'_ (Slice); // anonymous local let @3: &'_ (Array); // anonymous local let @4: &'_ (Array); // anonymous local - let @5: alloc::boxed::Box, core::marker::Sized>; // anonymous local - let @6: alloc::boxed::Box, core::marker::Sized>; // anonymous local + let @5: alloc::boxed::Box>[core::marker::Sized]; // anonymous local + let @6: alloc::boxed::Box>[core::marker::Sized]; // anonymous local let @7: Array; // anonymous local - let @8: alloc::rc::Rc, alloc::alloc::Global, core::marker::Sized>; // anonymous local - let @9: alloc::rc::Rc, alloc::alloc::Global, core::marker::Sized>; // anonymous local + let @8: alloc::rc::Rc, alloc::alloc::Global>[core::marker::Sized]; // anonymous local + let @9: alloc::rc::Rc, alloc::alloc::Global>[core::marker::Sized]; // anonymous local let @10: Array; // anonymous local let string@11: alloc::string::String; // local let @12: &'_ (dyn (exists(TODO))); // anonymous local let @13: &'_ (alloc::string::String); // anonymous local let @14: &'_ (alloc::string::String); // anonymous local - let @15: alloc::boxed::Box>; // anonymous local - let @16: alloc::boxed::Box>; // anonymous local + let @15: alloc::boxed::Box[core::marker::Sized]; // anonymous local + let @16: alloc::boxed::Box[core::marker::Sized]; // anonymous local let @17: alloc::string::String; // anonymous local let @18: &'_ (alloc::string::String); // anonymous local - let @19: alloc::rc::Rc>; // anonymous local - let @20: alloc::rc::Rc>; // anonymous local + let @19: alloc::rc::Rc[core::marker::Sized]; // anonymous local + let @20: alloc::rc::Rc[core::marker::Sized]; // anonymous local let @21: alloc::string::String; // anonymous local let @22: &'_ (alloc::string::String); // anonymous local let @23: (); // anonymous local @@ -75,7 +75,7 @@ fn test_crate::foo() drop @2 @7 := copy (array@1) @6 := @BoxNew>[core::marker::Sized>](move (@7)) - @5 := unsize_cast, core::marker::Sized>, alloc::boxed::Box, core::marker::Sized>>(move (@6)) + @5 := unsize_cast>[core::marker::Sized], alloc::boxed::Box>[core::marker::Sized]>(move (@6)) drop @6 drop @7 drop @6 @@ -83,8 +83,8 @@ fn test_crate::foo() drop @5 drop @5 @10 := copy (array@1) - @9 := alloc::rc::{alloc::rc::Rc>}#8::new>[core::marker::Sized>](move (@10)) - @8 := unsize_cast, alloc::alloc::Global, core::marker::Sized>, alloc::rc::Rc, alloc::alloc::Global, core::marker::Sized>>(move (@9)) + @9 := alloc::rc::{alloc::rc::Rc[core::marker::Sized]}#8::new>[core::marker::Sized>](move (@10)) + @8 := unsize_cast, alloc::alloc::Global>[core::marker::Sized], alloc::rc::Rc, alloc::alloc::Global>[core::marker::Sized]>(move (@9)) drop @9 drop @10 drop @9 @@ -104,7 +104,7 @@ fn test_crate::foo() @17 := alloc::string::{impl core::clone::Clone for alloc::string::String}#6::clone(move (@18)) drop @18 @16 := @BoxNew[core::marker::Sized](move (@17)) - @15 := unsize_cast>, alloc::boxed::Box>>(move (@16)) + @15 := unsize_cast[core::marker::Sized], alloc::boxed::Box[core::marker::Sized]>(move (@16)) drop @16 drop @17 drop @16 @@ -114,8 +114,8 @@ fn test_crate::foo() @22 := &string@11 @21 := alloc::string::{impl core::clone::Clone for alloc::string::String}#6::clone(move (@22)) drop @22 - @20 := alloc::rc::{alloc::rc::Rc>}#8::new[core::marker::Sized](move (@21)) - @19 := unsize_cast>, alloc::rc::Rc>>(move (@20)) + @20 := alloc::rc::{alloc::rc::Rc[core::marker::Sized]}#8::new[core::marker::Sized](move (@21)) + @19 := unsize_cast[core::marker::Sized], alloc::rc::Rc[core::marker::Sized]>(move (@20)) drop @20 drop @21 drop @20 diff --git a/charon/tests/ui/unsupported/issue-79-bound-regions.out b/charon/tests/ui/unsupported/issue-79-bound-regions.out index b20df50b..3605441d 100644 --- a/charon/tests/ui/unsupported/issue-79-bound-regions.out +++ b/charon/tests/ui/unsupported/issue-79-bound-regions.out @@ -16,7 +16,7 @@ opaque type core::slice::iter::Iter<'a, T> T : 'a, T : 'a, -fn core::slice::{Slice}::iter<'_0, T>(@1: &'_0 (Slice)) -> core::slice::iter::Iter<'_0, T, @TraitClause0> +fn core::slice::{Slice}::iter<'_0, T>(@1: &'_0 (Slice)) -> core::slice::iter::Iter<'_0, T>[@TraitClause0] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, @@ -36,26 +36,26 @@ opaque type core::array::iter::IntoIter trait core::clone::Clone { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized fn clone : core::clone::Clone::clone fn clone_from : core::clone::Clone::clone_from } trait core::marker::Copy { - parent_clause_0 : [@TraitClause0]: core::clone::Clone + parent_clause0 : [@TraitClause0]: core::clone::Clone } trait core::num::nonzero::private::Sealed trait core::num::nonzero::ZeroablePrimitive { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::marker::Copy - parent_clause_2 : [@TraitClause2]: core::num::nonzero::private::Sealed - parent_clause_3 : [@TraitClause3]: core::marker::Copy - parent_clause_4 : [@TraitClause4]: core::clone::Clone - parent_clause_5 : [@TraitClause5]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::marker::Copy + parent_clause2 : [@TraitClause2]: core::num::nonzero::private::Sealed + parent_clause3 : [@TraitClause3]: core::marker::Copy + parent_clause4 : [@TraitClause4]: core::clone::Clone + parent_clause5 : [@TraitClause5]: core::marker::Sized type NonZeroInner } @@ -123,18 +123,18 @@ trait core::marker::Tuple trait core::ops::function::FnOnce { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::marker::Tuple - parent_clause_2 : [@TraitClause2]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::marker::Tuple + parent_clause2 : [@TraitClause2]: core::marker::Sized type Output fn call_once : core::ops::function::FnOnce::call_once } trait core::ops::function::FnMut { - parent_clause_0 : [@TraitClause0]: core::ops::function::FnOnce - parent_clause_1 : [@TraitClause1]: core::marker::Sized - parent_clause_2 : [@TraitClause2]: core::marker::Tuple + parent_clause0 : [@TraitClause0]: core::ops::function::FnOnce + parent_clause1 : [@TraitClause1]: core::marker::Sized + parent_clause2 : [@TraitClause2]: core::marker::Tuple fn call_mut : core::ops::function::FnMut::call_mut } @@ -197,7 +197,7 @@ opaque type core::iter::adapters::inspect::Inspect trait core::ops::try_trait::FromResidual { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized fn from_residual : core::ops::try_trait::FromResidual::from_residual } @@ -212,9 +212,9 @@ enum core::ops::control_flow::ControlFlow trait core::ops::try_trait::Try { - parent_clause_0 : [@TraitClause0]: core::ops::try_trait::FromResidual - parent_clause_1 : [@TraitClause1]: core::marker::Sized - parent_clause_2 : [@TraitClause2]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::ops::try_trait::FromResidual + parent_clause1 : [@TraitClause1]: core::marker::Sized + parent_clause2 : [@TraitClause2]: core::marker::Sized type Output type Residual fn from_output : core::ops::try_trait::Try::from_output @@ -223,19 +223,19 @@ trait core::ops::try_trait::Try trait core::ops::try_trait::Residual where - (parents(Self)::[@TraitClause1])::Residual = Self, - (parents(Self)::[@TraitClause1])::Output = O, + Self::parent_clause1::Residual = Self, + Self::parent_clause1::Output = O, { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::ops::try_trait::Try - parent_clause_2 : [@TraitClause2]: core::ops::try_trait::FromResidual - parent_clause_3 : [@TraitClause3]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::ops::try_trait::Try + parent_clause2 : [@TraitClause2]: core::ops::try_trait::FromResidual + parent_clause3 : [@TraitClause3]: core::marker::Sized type TryType } trait core::default::Default { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized fn default : core::default::Default::default } @@ -247,7 +247,7 @@ trait core::cmp::PartialEq trait core::cmp::Eq { - parent_clause_0 : [@TraitClause0]: core::cmp::PartialEq + parent_clause0 : [@TraitClause0]: core::cmp::PartialEq fn assert_receiver_is_total_eq : core::cmp::Eq::assert_receiver_is_total_eq } @@ -259,7 +259,7 @@ enum core::cmp::Ordering = trait core::cmp::PartialOrd { - parent_clause_0 : [@TraitClause0]: core::cmp::PartialEq + parent_clause0 : [@TraitClause0]: core::cmp::PartialEq fn partial_cmp : core::cmp::PartialOrd::partial_cmp fn lt : core::cmp::PartialOrd::lt fn le : core::cmp::PartialOrd::le @@ -269,8 +269,8 @@ trait core::cmp::PartialOrd trait core::cmp::Ord { - parent_clause_0 : [@TraitClause0]: core::cmp::Eq - parent_clause_1 : [@TraitClause1]: core::cmp::PartialOrd + parent_clause0 : [@TraitClause0]: core::cmp::Eq + parent_clause1 : [@TraitClause1]: core::cmp::PartialOrd fn cmp : core::cmp::Ord::cmp fn max : core::cmp::Ord::max fn min : core::cmp::Ord::min @@ -295,7 +295,7 @@ opaque type core::iter::adapters::cycle::Cycle trait core::iter::traits::iterator::Iterator { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized type Item fn next : core::iter::traits::iterator::Iterator::next fn next_chunk : core::iter::traits::iterator::Iterator::next_chunk @@ -378,11 +378,11 @@ trait core::iter::traits::iterator::Iterator trait core::iter::traits::collect::IntoIterator where - (parents(Self)::[@TraitClause1])::Item = Self::Item, + Self::parent_clause1::Item = Self::Item, { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::iter::traits::iterator::Iterator - parent_clause_2 : [@TraitClause2]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::iter::traits::iterator::Iterator + parent_clause2 : [@TraitClause2]: core::marker::Sized type Item type IntoIter fn into_iter : core::iter::traits::collect::IntoIterator::into_iter @@ -426,14 +426,14 @@ opaque type core::iter::adapters::map_windows::MapWindows trait core::iter::traits::collect::FromIterator { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::marker::Sized fn from_iter : core::iter::traits::collect::FromIterator::from_iter } trait core::iter::traits::collect::Extend { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized fn extend : core::iter::traits::collect::Extend::extend fn extend_one : core::iter::traits::collect::Extend::extend_one fn extend_reserve : core::iter::traits::collect::Extend::extend_reserve @@ -442,7 +442,7 @@ trait core::iter::traits::collect::Extend trait core::iter::traits::double_ended::DoubleEndedIterator { - parent_clause_0 : [@TraitClause0]: core::iter::traits::iterator::Iterator + parent_clause0 : [@TraitClause0]: core::iter::traits::iterator::Iterator fn next_back : core::iter::traits::double_ended::DoubleEndedIterator::next_back fn advance_back_by : core::iter::traits::double_ended::DoubleEndedIterator::advance_back_by fn nth_back : core::iter::traits::double_ended::DoubleEndedIterator::nth_back @@ -453,7 +453,7 @@ trait core::iter::traits::double_ended::DoubleEndedIterator trait core::iter::traits::exact_size::ExactSizeIterator { - parent_clause_0 : [@TraitClause0]: core::iter::traits::iterator::Iterator + parent_clause0 : [@TraitClause0]: core::iter::traits::iterator::Iterator fn len : core::iter::traits::exact_size::ExactSizeIterator::len fn is_empty : core::iter::traits::exact_size::ExactSizeIterator::is_empty } @@ -465,66 +465,66 @@ opaque type core::iter::adapters::array_chunks::ArrayChunks trait core::iter::traits::accum::Sum { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::marker::Sized fn sum : core::iter::traits::accum::Sum::sum } trait core::iter::traits::accum::Product { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::marker::Sized fn product : core::iter::traits::accum::Product::product } trait core::iter::adapters::zip::TrustedRandomAccessNoCoerce { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized const MAY_HAVE_SIDE_EFFECT : bool fn size : core::iter::adapters::zip::TrustedRandomAccessNoCoerce::size } -fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::next<'a, '_1, T>(@1: &'_1 mut (core::slice::iter::Iter<'a, T, @TraitClause0>)) -> core::option::Option<&'a (T), core::marker::Sized<&'_ (T)>> +fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::next<'a, '_1, T>(@1: &'_1 mut (core::slice::iter::Iter<'a, T>[@TraitClause0])) -> core::option::Option<&'a (T)>[core::marker::Sized<&'_ (T)>] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::size_hint<'a, '_1, T>(@1: &'_1 (core::slice::iter::Iter<'a, T, @TraitClause0>)) -> (usize, core::option::Option>) +fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::size_hint<'a, '_1, T>(@1: &'_1 (core::slice::iter::Iter<'a, T>[@TraitClause0])) -> (usize, core::option::Option[core::marker::Sized]) where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::count<'a, T>(@1: core::slice::iter::Iter<'a, T, @TraitClause0>) -> usize +fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::count<'a, T>(@1: core::slice::iter::Iter<'a, T>[@TraitClause0]) -> usize where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::last<'a, T>(@1: core::slice::iter::Iter<'a, T, @TraitClause0>) -> core::option::Option<&'a (T), core::marker::Sized<&'_ (T)>> +fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::last<'a, T>(@1: core::slice::iter::Iter<'a, T>[@TraitClause0]) -> core::option::Option<&'a (T)>[core::marker::Sized<&'_ (T)>] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::advance_by<'a, '_1, T>(@1: &'_1 mut (core::slice::iter::Iter<'a, T, @TraitClause0>), @2: usize) -> core::result::Result<(), core::num::nonzero::NonZero, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26>, core::marker::Sized<()>, core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26>>> +fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::advance_by<'a, '_1, T>(@1: &'_1 mut (core::slice::iter::Iter<'a, T>[@TraitClause0]), @2: usize) -> core::result::Result<(), core::num::nonzero::NonZero[core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26]>[core::marker::Sized<()>, core::marker::Sized[core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26]>] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::nth<'a, '_1, T>(@1: &'_1 mut (core::slice::iter::Iter<'a, T, @TraitClause0>), @2: usize) -> core::option::Option<&'a (T), core::marker::Sized<&'_ (T)>> +fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::nth<'a, '_1, T>(@1: &'_1 mut (core::slice::iter::Iter<'a, T>[@TraitClause0]), @2: usize) -> core::option::Option<&'a (T)>[core::marker::Sized<&'_ (T)>] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::for_each<'a, T, F>(@1: core::slice::iter::Iter<'a, T, @TraitClause0>, @2: F) +fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::for_each<'a, T, F>(@1: core::slice::iter::Iter<'a, T>[@TraitClause0], @2: F) where // Inherited clauses: [@TraitClause0]: core::marker::Sized, // Local clauses: [@TraitClause1]: core::marker::Sized, - [@TraitClause2]: core::marker::Sized>, + [@TraitClause2]: core::marker::Sized[@TraitClause0]>, [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = (), + @TraitClause3::parent_clause0::Output = (), -fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::fold<'a, T, B, F>(@1: core::slice::iter::Iter<'a, T, @TraitClause0>, @2: B, @3: F) -> B +fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::fold<'a, T, B, F>(@1: core::slice::iter::Iter<'a, T>[@TraitClause0], @2: B, @3: F) -> B where // Inherited clauses: [@TraitClause0]: core::marker::Sized, @@ -532,111 +532,111 @@ where [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = B, + @TraitClause3::parent_clause0::Output = B, -fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::all<'a, '_1, T, F>(@1: &'_1 mut (core::slice::iter::Iter<'a, T, @TraitClause0>), @2: F) -> bool +fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::all<'a, '_1, T, F>(@1: &'_1 mut (core::slice::iter::Iter<'a, T>[@TraitClause0]), @2: F) -> bool where // Inherited clauses: [@TraitClause0]: core::marker::Sized, // Local clauses: [@TraitClause1]: core::marker::Sized, - [@TraitClause2]: core::marker::Sized>, + [@TraitClause2]: core::marker::Sized[@TraitClause0]>, [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = bool, + @TraitClause3::parent_clause0::Output = bool, -fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::any<'a, '_1, T, F>(@1: &'_1 mut (core::slice::iter::Iter<'a, T, @TraitClause0>), @2: F) -> bool +fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::any<'a, '_1, T, F>(@1: &'_1 mut (core::slice::iter::Iter<'a, T>[@TraitClause0]), @2: F) -> bool where // Inherited clauses: [@TraitClause0]: core::marker::Sized, // Local clauses: [@TraitClause1]: core::marker::Sized, - [@TraitClause2]: core::marker::Sized>, + [@TraitClause2]: core::marker::Sized[@TraitClause0]>, [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = bool, + @TraitClause3::parent_clause0::Output = bool, -fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::find<'a, '_1, T, P>(@1: &'_1 mut (core::slice::iter::Iter<'a, T, @TraitClause0>), @2: P) -> core::option::Option}#182<'_, T>[@TraitClause0]::Item, core::marker::Sized<&'_ (T)>> +fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::find<'a, '_1, T, P>(@1: &'_1 mut (core::slice::iter::Iter<'a, T>[@TraitClause0]), @2: P) -> core::option::Option[@TraitClause0]}#182<'_, T>[@TraitClause0]::Item>[core::marker::Sized<&'_ (T)>] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, // Local clauses: [@TraitClause1]: core::marker::Sized

, - [@TraitClause2]: core::marker::Sized>, + [@TraitClause2]: core::marker::Sized[@TraitClause0]>, [@TraitClause3]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause3)::[@TraitClause0])::Output = bool, + for<'_1_0> @TraitClause3::parent_clause0::Output = bool, -fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::find_map<'a, '_1, T, B, F>(@1: &'_1 mut (core::slice::iter::Iter<'a, T, @TraitClause0>), @2: F) -> core::option::Option +fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::find_map<'a, '_1, T, B, F>(@1: &'_1 mut (core::slice::iter::Iter<'a, T>[@TraitClause0]), @2: F) -> core::option::Option[@TraitClause1] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, // Local clauses: [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, - [@TraitClause3]: core::marker::Sized>, + [@TraitClause3]: core::marker::Sized[@TraitClause0]>, [@TraitClause4]: core::ops::function::FnMut, - (parents(@TraitClause4)::[@TraitClause0])::Output = core::option::Option, + @TraitClause4::parent_clause0::Output = core::option::Option[@TraitClause1], -fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::position<'a, '_1, T, P>(@1: &'_1 mut (core::slice::iter::Iter<'a, T, @TraitClause0>), @2: P) -> core::option::Option> +fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::position<'a, '_1, T, P>(@1: &'_1 mut (core::slice::iter::Iter<'a, T>[@TraitClause0]), @2: P) -> core::option::Option[core::marker::Sized] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, // Local clauses: [@TraitClause1]: core::marker::Sized

, - [@TraitClause2]: core::marker::Sized>, + [@TraitClause2]: core::marker::Sized[@TraitClause0]>, [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = bool, + @TraitClause3::parent_clause0::Output = bool, -fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::rposition<'a, '_1, T, P>(@1: &'_1 mut (core::slice::iter::Iter<'a, T, @TraitClause0>), @2: P) -> core::option::Option> +fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::rposition<'a, '_1, T, P>(@1: &'_1 mut (core::slice::iter::Iter<'a, T>[@TraitClause0]), @2: P) -> core::option::Option[core::marker::Sized] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, // Local clauses: [@TraitClause1]: core::marker::Sized

, - [@TraitClause2]: core::ops::function::FnMut, - [@TraitClause3]: core::marker::Sized>, - [@TraitClause4]: core::iter::traits::exact_size::ExactSizeIterator>, - [@TraitClause5]: core::iter::traits::double_ended::DoubleEndedIterator>, - (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + [@TraitClause2]: core::ops::function::FnMut, + [@TraitClause3]: core::marker::Sized[@TraitClause0]>, + [@TraitClause4]: core::iter::traits::exact_size::ExactSizeIterator[@TraitClause0]>, + [@TraitClause5]: core::iter::traits::double_ended::DoubleEndedIterator[@TraitClause0]>, + @TraitClause2::parent_clause0::Output = bool, -fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::is_sorted_by<'a, T, F>(@1: core::slice::iter::Iter<'a, T, @TraitClause0>, @2: F) -> bool +fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::is_sorted_by<'a, T, F>(@1: core::slice::iter::Iter<'a, T>[@TraitClause0], @2: F) -> bool where // Inherited clauses: [@TraitClause0]: core::marker::Sized, // Local clauses: [@TraitClause1]: core::marker::Sized, - [@TraitClause2]: core::marker::Sized>, + [@TraitClause2]: core::marker::Sized[@TraitClause0]>, [@TraitClause3]: for<'_1_0, '_1_1> core::ops::function::FnMut, - for<'_1_0, '_1_1> (parents(@TraitClause3)::[@TraitClause0])::Output = bool, + for<'_1_0, '_1_1> @TraitClause3::parent_clause0::Output = bool, -unsafe fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::__iterator_get_unchecked<'a, '_1, T>(@1: &'_1 mut (core::slice::iter::Iter<'a, T, @TraitClause0>), @2: usize) -> core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182<'_, T>[@TraitClause0]::Item +unsafe fn core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::__iterator_get_unchecked<'a, '_1, T>(@1: &'_1 mut (core::slice::iter::Iter<'a, T>[@TraitClause0]), @2: usize) -> core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182<'_, T>[@TraitClause0]::Item where // Inherited clauses: [@TraitClause0]: core::marker::Sized, -impl<'a, T> core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182<'a, T> : core::iter::traits::iterator::Iterator> +impl<'a, T> core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182<'a, T> : core::iter::traits::iterator::Iterator[@TraitClause0]> where [@TraitClause0]: core::marker::Sized, { parent_clause0 = core::marker::Sized<&'_ (T)> type Item = &'a (T) - fn next = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::next - fn size_hint = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::size_hint - fn count = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::count - fn last = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::last - fn advance_by = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::advance_by - fn nth = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::nth - fn for_each = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::for_each - fn fold = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::fold - fn all = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::all - fn any = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::any - fn find = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::find - fn find_map = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::find_map - fn position = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::position - fn rposition = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::rposition - fn is_sorted_by = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::is_sorted_by - fn __iterator_get_unchecked = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182::__iterator_get_unchecked + fn next = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::next + fn size_hint = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::size_hint + fn count = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::count + fn last = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::last + fn advance_by = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::advance_by + fn nth = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::nth + fn for_each = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::for_each + fn fold = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::fold + fn all = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::all + fn any = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::any + fn find = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::find + fn find_map = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::find_map + fn position = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::position + fn rposition = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::rposition + fn is_sorted_by = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::is_sorted_by + fn __iterator_get_unchecked = core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182::__iterator_get_unchecked } -fn core::iter::traits::iterator::Iterator::next<'_0, Self>(@1: &'_0 mut (Self)) -> core::option::Option +fn core::iter::traits::iterator::Iterator::next<'_0, Self>(@1: &'_0 mut (Self)) -> core::option::Option[Self::parent_clause0] fn test_crate::main() { @@ -645,9 +645,9 @@ fn test_crate::main() let @2: &'_ (Array); // anonymous local let @3: &'_ (Array); // anonymous local let @4: Array; // anonymous local - let @5: core::option::Option<&'_ (i32), core::marker::Sized<&'_ (i32)>>; // anonymous local - let @6: &'_ mut (core::slice::iter::Iter<'_, i32, core::marker::Sized>); // anonymous local - let @7: core::slice::iter::Iter<'_, i32, core::marker::Sized>; // anonymous local + let @5: core::option::Option<&'_ (i32)>[core::marker::Sized<&'_ (i32)>]; // anonymous local + let @6: &'_ mut (core::slice::iter::Iter<'_, i32>[core::marker::Sized]); // anonymous local + let @7: core::slice::iter::Iter<'_, i32>[core::marker::Sized]; // anonymous local let @8: &'_ (Slice); // anonymous local let @9: (); // anonymous local @@ -662,7 +662,7 @@ fn test_crate::main() @7 := core::slice::{Slice}::iter[core::marker::Sized](move (@8)) @6 := &two-phase-mut @7 drop @8 - @5 := core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T, @TraitClause0>}#182<'_, i32>[core::marker::Sized]::next(move (@6)) + @5 := core::slice::iter::{impl core::iter::traits::iterator::Iterator for core::slice::iter::Iter<'a, T>[@TraitClause0]}#182<'_, i32>[core::marker::Sized]::next(move (@6)) drop @6 @fake_read(@5) drop @7 @@ -675,162 +675,162 @@ fn test_crate::main() return } -fn core::iter::traits::iterator::Iterator::next_chunk<'_0, Self, const N : usize>(@1: &'_0 mut (Self)) -> core::result::Result, core::array::iter::IntoIter, core::marker::Sized>, core::marker::Sized>> +fn core::iter::traits::iterator::Iterator::next_chunk<'_0, Self, const N : usize>(@1: &'_0 mut (Self)) -> core::result::Result, core::array::iter::IntoIter[Self::parent_clause0]>[core::marker::Sized>, core::marker::Sized[Self::parent_clause0]>] where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::size_hint<'_0, Self>(@1: &'_0 (Self)) -> (usize, core::option::Option>) +fn core::iter::traits::iterator::Iterator::size_hint<'_0, Self>(@1: &'_0 (Self)) -> (usize, core::option::Option[core::marker::Sized]) fn core::iter::traits::iterator::Iterator::count(@1: Self) -> usize where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::last(@1: Self) -> core::option::Option +fn core::iter::traits::iterator::Iterator::last(@1: Self) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::advance_by<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> core::result::Result<(), core::num::nonzero::NonZero, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26>, core::marker::Sized<()>, core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26>>> +fn core::iter::traits::iterator::Iterator::advance_by<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> core::result::Result<(), core::num::nonzero::NonZero[core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26]>[core::marker::Sized<()>, core::marker::Sized[core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26]>] -fn core::iter::traits::iterator::Iterator::nth<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> core::option::Option +fn core::iter::traits::iterator::Iterator::nth<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> core::option::Option[Self::parent_clause0] -fn core::iter::traits::iterator::Iterator::step_by(@1: Self, @2: usize) -> core::iter::adapters::step_by::StepBy +fn core::iter::traits::iterator::Iterator::step_by(@1: Self, @2: usize) -> core::iter::adapters::step_by::StepBy[@TraitClause0] where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::chain(@1: Self, @2: U) -> core::iter::adapters::chain::Chain +fn core::iter::traits::iterator::Iterator::chain(@1: Self, @2: U) -> core::iter::adapters::chain::Chain[@TraitClause1, @TraitClause2::parent_clause2] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::iter::traits::collect::IntoIterator, @TraitClause2::Item = Self::Item, -fn core::iter::traits::iterator::Iterator::zip(@1: Self, @2: U) -> core::iter::adapters::zip::Zip +fn core::iter::traits::iterator::Iterator::zip(@1: Self, @2: U) -> core::iter::adapters::zip::Zip[@TraitClause1, @TraitClause2::parent_clause2] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::iter::traits::collect::IntoIterator, -fn core::iter::traits::iterator::Iterator::intersperse(@1: Self, @2: Self::Item) -> core::iter::adapters::intersperse::Intersperse +fn core::iter::traits::iterator::Iterator::intersperse(@1: Self, @2: Self::Item) -> core::iter::adapters::intersperse::Intersperse[@TraitClause0, Self, @TraitClause1] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::clone::Clone, -fn core::iter::traits::iterator::Iterator::intersperse_with(@1: Self, @2: G) -> core::iter::adapters::intersperse::IntersperseWith +fn core::iter::traits::iterator::Iterator::intersperse_with(@1: Self, @2: G) -> core::iter::adapters::intersperse::IntersperseWith[@TraitClause1, @TraitClause0, Self] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::ops::function::FnMut, - (parents(@TraitClause2)::[@TraitClause0])::Output = Self::Item, + @TraitClause2::parent_clause0::Output = Self::Item, -fn core::iter::traits::iterator::Iterator::map(@1: Self, @2: F) -> core::iter::adapters::map::Map +fn core::iter::traits::iterator::Iterator::map(@1: Self, @2: F) -> core::iter::adapters::map::Map[@TraitClause2, @TraitClause1] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = B, + @TraitClause3::parent_clause0::Output = B, fn core::iter::traits::iterator::Iterator::for_each(@1: Self, @2: F) where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::ops::function::FnMut, - (parents(@TraitClause2)::[@TraitClause0])::Output = (), + @TraitClause2::parent_clause0::Output = (), -fn core::iter::traits::iterator::Iterator::filter(@1: Self, @2: P) -> core::iter::adapters::filter::Filter +fn core::iter::traits::iterator::Iterator::filter(@1: Self, @2: P) -> core::iter::adapters::filter::Filter[@TraitClause1, @TraitClause0] where [@TraitClause0]: core::marker::Sized

, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + for<'_1_0> @TraitClause2::parent_clause0::Output = bool, -fn core::iter::traits::iterator::Iterator::filter_map(@1: Self, @2: F) -> core::iter::adapters::filter_map::FilterMap +fn core::iter::traits::iterator::Iterator::filter_map(@1: Self, @2: F) -> core::iter::adapters::filter_map::FilterMap[@TraitClause2, @TraitClause1] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = core::option::Option, + @TraitClause3::parent_clause0::Output = core::option::Option[@TraitClause0], -fn core::iter::traits::iterator::Iterator::enumerate(@1: Self) -> core::iter::adapters::enumerate::Enumerate +fn core::iter::traits::iterator::Iterator::enumerate(@1: Self) -> core::iter::adapters::enumerate::Enumerate[@TraitClause0] where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::peekable(@1: Self) -> core::iter::adapters::peekable::Peekable +fn core::iter::traits::iterator::Iterator::peekable(@1: Self) -> core::iter::adapters::peekable::Peekable[@TraitClause0, Self] where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::skip_while(@1: Self, @2: P) -> core::iter::adapters::skip_while::SkipWhile +fn core::iter::traits::iterator::Iterator::skip_while(@1: Self, @2: P) -> core::iter::adapters::skip_while::SkipWhile[@TraitClause1, @TraitClause0] where [@TraitClause0]: core::marker::Sized

, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + for<'_1_0> @TraitClause2::parent_clause0::Output = bool, -fn core::iter::traits::iterator::Iterator::take_while(@1: Self, @2: P) -> core::iter::adapters::take_while::TakeWhile +fn core::iter::traits::iterator::Iterator::take_while(@1: Self, @2: P) -> core::iter::adapters::take_while::TakeWhile[@TraitClause1, @TraitClause0] where [@TraitClause0]: core::marker::Sized

, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + for<'_1_0> @TraitClause2::parent_clause0::Output = bool, -fn core::iter::traits::iterator::Iterator::map_while(@1: Self, @2: P) -> core::iter::adapters::map_while::MapWhile +fn core::iter::traits::iterator::Iterator::map_while(@1: Self, @2: P) -> core::iter::adapters::map_while::MapWhile[@TraitClause2, @TraitClause1] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized

, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = core::option::Option, + @TraitClause3::parent_clause0::Output = core::option::Option[@TraitClause0], -fn core::iter::traits::iterator::Iterator::skip(@1: Self, @2: usize) -> core::iter::adapters::skip::Skip +fn core::iter::traits::iterator::Iterator::skip(@1: Self, @2: usize) -> core::iter::adapters::skip::Skip[@TraitClause0] where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::take(@1: Self, @2: usize) -> core::iter::adapters::take::Take +fn core::iter::traits::iterator::Iterator::take(@1: Self, @2: usize) -> core::iter::adapters::take::Take[@TraitClause0] where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::scan(@1: Self, @2: St, @3: F) -> core::iter::adapters::scan::Scan +fn core::iter::traits::iterator::Iterator::scan(@1: Self, @2: St, @3: F) -> core::iter::adapters::scan::Scan[@TraitClause3, @TraitClause0, @TraitClause2] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::marker::Sized, [@TraitClause4]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause4)::[@TraitClause0])::Output = core::option::Option, + for<'_1_0> @TraitClause4::parent_clause0::Output = core::option::Option[@TraitClause1], -fn core::iter::traits::iterator::Iterator::flat_map(@1: Self, @2: F) -> core::iter::adapters::flatten::FlatMap +fn core::iter::traits::iterator::Iterator::flat_map(@1: Self, @2: F) -> core::iter::adapters::flatten::FlatMap[@TraitClause2, @TraitClause0, @TraitClause1, @TraitClause3] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::iter::traits::collect::IntoIterator, [@TraitClause4]: core::ops::function::FnMut, - (parents(@TraitClause4)::[@TraitClause0])::Output = U, + @TraitClause4::parent_clause0::Output = U, -fn core::iter::traits::iterator::Iterator::flatten(@1: Self) -> core::iter::adapters::flatten::Flatten +fn core::iter::traits::iterator::Iterator::flatten(@1: Self) -> core::iter::adapters::flatten::Flatten[@TraitClause0, Self, @TraitClause1] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::iter::traits::collect::IntoIterator, -fn core::iter::traits::iterator::Iterator::map_windows(@1: Self, @2: F) -> core::iter::adapters::map_windows::MapWindows +fn core::iter::traits::iterator::Iterator::map_windows(@1: Self, @2: F) -> core::iter::adapters::map_windows::MapWindows[@TraitClause2, @TraitClause0, Self] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: for<'_1_0> core::ops::function::FnMut))>, - for<'_1_0> (parents(@TraitClause3)::[@TraitClause0])::Output = R, + for<'_1_0> @TraitClause3::parent_clause0::Output = R, -fn core::iter::traits::iterator::Iterator::fuse(@1: Self) -> core::iter::adapters::fuse::Fuse +fn core::iter::traits::iterator::Iterator::fuse(@1: Self) -> core::iter::adapters::fuse::Fuse[@TraitClause0] where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::inspect(@1: Self, @2: F) -> core::iter::adapters::inspect::Inspect +fn core::iter::traits::iterator::Iterator::inspect(@1: Self, @2: F) -> core::iter::adapters::inspect::Inspect[@TraitClause1, @TraitClause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause2)::[@TraitClause0])::Output = (), + for<'_1_0> @TraitClause2::parent_clause0::Output = (), fn core::iter::traits::iterator::Iterator::by_ref<'_0, Self>(@1: &'_0 mut (Self)) -> &'_0 mut (Self) where @@ -864,7 +864,7 @@ where [@TraitClause3]: core::default::Default, [@TraitClause4]: core::iter::traits::collect::Extend, [@TraitClause5]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause5)::[@TraitClause0])::Output = bool, + for<'_1_0> @TraitClause5::parent_clause0::Output = bool, fn core::iter::traits::iterator::Iterator::partition_in_place<'a, Self, T, P>(@1: Self, @2: P) -> usize where @@ -875,14 +875,14 @@ where [@TraitClause4]: for<'_1_0> core::ops::function::FnMut, T : 'a, Self::Item = &'a mut (T), - for<'_1_0> (parents(@TraitClause4)::[@TraitClause0])::Output = bool, + for<'_1_0> @TraitClause4::parent_clause0::Output = bool, fn core::iter::traits::iterator::Iterator::is_partitioned(@1: Self, @2: P) -> bool where [@TraitClause0]: core::marker::Sized

, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::ops::function::FnMut, - (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + @TraitClause2::parent_clause0::Output = bool, fn core::iter::traits::iterator::Iterator::try_fold<'_0, Self, B, F, R>(@1: &'_0 mut (Self), @2: B, @3: F) -> R where @@ -892,7 +892,7 @@ where [@TraitClause3]: core::marker::Sized, [@TraitClause4]: core::ops::function::FnMut, [@TraitClause5]: core::ops::try_trait::Try, - (parents(@TraitClause4)::[@TraitClause0])::Output = R, + @TraitClause4::parent_clause0::Output = R, @TraitClause5::Output = B, fn core::iter::traits::iterator::Iterator::try_for_each<'_0, Self, F, R>(@1: &'_0 mut (Self), @2: F) -> R @@ -902,7 +902,7 @@ where [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::function::FnMut, [@TraitClause4]: core::ops::try_trait::Try, - (parents(@TraitClause3)::[@TraitClause0])::Output = R, + @TraitClause3::parent_clause0::Output = R, @TraitClause4::Output = (), fn core::iter::traits::iterator::Iterator::fold(@1: Self, @2: B, @3: F) -> B @@ -911,14 +911,14 @@ where [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = B, + @TraitClause3::parent_clause0::Output = B, -fn core::iter::traits::iterator::Iterator::reduce(@1: Self, @2: F) -> core::option::Option +fn core::iter::traits::iterator::Iterator::reduce(@1: Self, @2: F) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::ops::function::FnMut, - (parents(@TraitClause2)::[@TraitClause0])::Output = Self::Item, + @TraitClause2::parent_clause0::Output = Self::Item, fn core::iter::traits::iterator::Iterator::try_reduce<'_0, Self, R, impl FnMut(Self::Item, Self::Item) -> R>(@1: &'_0 mut (Self), @2: impl FnMut(Self::Item, Self::Item) -> R) -> @TraitClause4::TryType where @@ -926,39 +926,39 @@ where [@TraitClause1]: core::marker::Sized R>, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::try_trait::Try, - [@TraitClause4]: core::ops::try_trait::Residual<@TraitClause3::Residual, core::option::Option>, + [@TraitClause4]: core::ops::try_trait::Residual<@TraitClause3::Residual, core::option::Option[Self::parent_clause0]>, [@TraitClause5]: core::ops::function::FnMut R, (Self::Item, Self::Item)>, @TraitClause3::Output = Self::Item, - (parents(@TraitClause5)::[@TraitClause0])::Output = R, + @TraitClause5::parent_clause0::Output = R, fn core::iter::traits::iterator::Iterator::all<'_0, Self, F>(@1: &'_0 mut (Self), @2: F) -> bool where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::ops::function::FnMut, - (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + @TraitClause2::parent_clause0::Output = bool, fn core::iter::traits::iterator::Iterator::any<'_0, Self, F>(@1: &'_0 mut (Self), @2: F) -> bool where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::ops::function::FnMut, - (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + @TraitClause2::parent_clause0::Output = bool, -fn core::iter::traits::iterator::Iterator::find<'_0, Self, P>(@1: &'_0 mut (Self), @2: P) -> core::option::Option +fn core::iter::traits::iterator::Iterator::find<'_0, Self, P>(@1: &'_0 mut (Self), @2: P) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized

, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + for<'_1_0> @TraitClause2::parent_clause0::Output = bool, -fn core::iter::traits::iterator::Iterator::find_map<'_0, Self, B, F>(@1: &'_0 mut (Self), @2: F) -> core::option::Option +fn core::iter::traits::iterator::Iterator::find_map<'_0, Self, B, F>(@1: &'_0 mut (Self), @2: F) -> core::option::Option[@TraitClause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = core::option::Option, + @TraitClause3::parent_clause0::Output = core::option::Option[@TraitClause0], fn core::iter::traits::iterator::Iterator::try_find<'_0, Self, R, impl FnMut(&Self::Item) -> R>(@1: &'_0 mut (Self), @2: impl FnMut(&Self::Item) -> R) -> @TraitClause4::TryType where @@ -966,70 +966,70 @@ where [@TraitClause1]: core::marker::Sized R>, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::try_trait::Try, - [@TraitClause4]: core::ops::try_trait::Residual<@TraitClause3::Residual, core::option::Option>, + [@TraitClause4]: core::ops::try_trait::Residual<@TraitClause3::Residual, core::option::Option[Self::parent_clause0]>, [@TraitClause5]: for<'_1_0> core::ops::function::FnMut R, (&'_1_0 (Self::Item))>, @TraitClause3::Output = bool, - for<'_1_0> (parents(@TraitClause5)::[@TraitClause0])::Output = R, + for<'_1_0> @TraitClause5::parent_clause0::Output = R, -fn core::iter::traits::iterator::Iterator::position<'_0, Self, P>(@1: &'_0 mut (Self), @2: P) -> core::option::Option> +fn core::iter::traits::iterator::Iterator::position<'_0, Self, P>(@1: &'_0 mut (Self), @2: P) -> core::option::Option[core::marker::Sized] where [@TraitClause0]: core::marker::Sized

, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::ops::function::FnMut, - (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + @TraitClause2::parent_clause0::Output = bool, -fn core::iter::traits::iterator::Iterator::rposition<'_0, Self, P>(@1: &'_0 mut (Self), @2: P) -> core::option::Option> +fn core::iter::traits::iterator::Iterator::rposition<'_0, Self, P>(@1: &'_0 mut (Self), @2: P) -> core::option::Option[core::marker::Sized] where [@TraitClause0]: core::marker::Sized

, [@TraitClause1]: core::ops::function::FnMut, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::iter::traits::exact_size::ExactSizeIterator, [@TraitClause4]: core::iter::traits::double_ended::DoubleEndedIterator, - (parents(@TraitClause1)::[@TraitClause0])::Output = bool, + @TraitClause1::parent_clause0::Output = bool, -fn core::iter::traits::iterator::Iterator::max(@1: Self) -> core::option::Option +fn core::iter::traits::iterator::Iterator::max(@1: Self) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::cmp::Ord, -fn core::iter::traits::iterator::Iterator::min(@1: Self) -> core::option::Option +fn core::iter::traits::iterator::Iterator::min(@1: Self) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::cmp::Ord, -fn core::iter::traits::iterator::Iterator::max_by_key(@1: Self, @2: F) -> core::option::Option +fn core::iter::traits::iterator::Iterator::max_by_key(@1: Self, @2: F) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::cmp::Ord, [@TraitClause3]: core::marker::Sized, [@TraitClause4]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause4)::[@TraitClause0])::Output = B, + for<'_1_0> @TraitClause4::parent_clause0::Output = B, -fn core::iter::traits::iterator::Iterator::max_by(@1: Self, @2: F) -> core::option::Option +fn core::iter::traits::iterator::Iterator::max_by(@1: Self, @2: F) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: for<'_1_0, '_1_1> core::ops::function::FnMut, - for<'_1_0, '_1_1> (parents(@TraitClause2)::[@TraitClause0])::Output = core::cmp::Ordering, + for<'_1_0, '_1_1> @TraitClause2::parent_clause0::Output = core::cmp::Ordering, -fn core::iter::traits::iterator::Iterator::min_by_key(@1: Self, @2: F) -> core::option::Option +fn core::iter::traits::iterator::Iterator::min_by_key(@1: Self, @2: F) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::cmp::Ord, [@TraitClause3]: core::marker::Sized, [@TraitClause4]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause4)::[@TraitClause0])::Output = B, + for<'_1_0> @TraitClause4::parent_clause0::Output = B, -fn core::iter::traits::iterator::Iterator::min_by(@1: Self, @2: F) -> core::option::Option +fn core::iter::traits::iterator::Iterator::min_by(@1: Self, @2: F) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: for<'_1_0, '_1_1> core::ops::function::FnMut, - for<'_1_0, '_1_1> (parents(@TraitClause2)::[@TraitClause0])::Output = core::cmp::Ordering, + for<'_1_0, '_1_1> @TraitClause2::parent_clause0::Output = core::cmp::Ordering, -fn core::iter::traits::iterator::Iterator::rev(@1: Self) -> core::iter::adapters::rev::Rev +fn core::iter::traits::iterator::Iterator::rev(@1: Self) -> core::iter::adapters::rev::Rev[@TraitClause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::iter::traits::double_ended::DoubleEndedIterator, @@ -1048,7 +1048,7 @@ where [@TraitClause9]: core::iter::traits::iterator::Iterator, Self::Item = (A, B), -fn core::iter::traits::iterator::Iterator::copied<'a, Self, T>(@1: Self) -> core::iter::adapters::copied::Copied +fn core::iter::traits::iterator::Iterator::copied<'a, Self, T>(@1: Self) -> core::iter::adapters::copied::Copied[@TraitClause1] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, @@ -1057,7 +1057,7 @@ where T : 'a, Self::Item = &'a (T), -fn core::iter::traits::iterator::Iterator::cloned<'a, Self, T>(@1: Self) -> core::iter::adapters::cloned::Cloned +fn core::iter::traits::iterator::Iterator::cloned<'a, Self, T>(@1: Self) -> core::iter::adapters::cloned::Cloned[@TraitClause1] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, @@ -1066,12 +1066,12 @@ where T : 'a, Self::Item = &'a (T), -fn core::iter::traits::iterator::Iterator::cycle(@1: Self) -> core::iter::adapters::cycle::Cycle +fn core::iter::traits::iterator::Iterator::cycle(@1: Self) -> core::iter::adapters::cycle::Cycle[@TraitClause0] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::clone::Clone, -fn core::iter::traits::iterator::Iterator::array_chunks(@1: Self) -> core::iter::adapters::array_chunks::ArrayChunks +fn core::iter::traits::iterator::Iterator::array_chunks(@1: Self) -> core::iter::adapters::array_chunks::ArrayChunks[@TraitClause0, Self] where [@TraitClause0]: core::marker::Sized, @@ -1102,23 +1102,23 @@ where [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::iter::traits::collect::IntoIterator, [@TraitClause4]: core::ops::function::FnMut, - (parents(@TraitClause4)::[@TraitClause0])::Output = core::cmp::Ordering, + @TraitClause4::parent_clause0::Output = core::cmp::Ordering, -fn core::iter::traits::iterator::Iterator::partial_cmp(@1: Self, @2: I) -> core::option::Option> +fn core::iter::traits::iterator::Iterator::partial_cmp(@1: Self, @2: I) -> core::option::Option[core::marker::Sized] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::iter::traits::collect::IntoIterator, [@TraitClause2]: core::cmp::PartialOrd, [@TraitClause3]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::partial_cmp_by(@1: Self, @2: I, @3: F) -> core::option::Option> +fn core::iter::traits::iterator::Iterator::partial_cmp_by(@1: Self, @2: I, @3: F) -> core::option::Option[core::marker::Sized] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::iter::traits::collect::IntoIterator, [@TraitClause4]: core::ops::function::FnMut, - (parents(@TraitClause4)::[@TraitClause0])::Output = core::option::Option>, + @TraitClause4::parent_clause0::Output = core::option::Option[core::marker::Sized], fn core::iter::traits::iterator::Iterator::eq(@1: Self, @2: I) -> bool where @@ -1134,7 +1134,7 @@ where [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::iter::traits::collect::IntoIterator, [@TraitClause4]: core::ops::function::FnMut, - (parents(@TraitClause4)::[@TraitClause0])::Output = bool, + @TraitClause4::parent_clause0::Output = bool, fn core::iter::traits::iterator::Iterator::ne(@1: Self, @2: I) -> bool where @@ -1181,7 +1181,7 @@ where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: for<'_1_0, '_1_1> core::ops::function::FnMut, - for<'_1_0, '_1_1> (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + for<'_1_0, '_1_1> @TraitClause2::parent_clause0::Output = bool, fn core::iter::traits::iterator::Iterator::is_sorted_by_key(@1: Self, @2: F) -> bool where @@ -1190,7 +1190,7 @@ where [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::function::FnMut, [@TraitClause4]: core::cmp::PartialOrd, - (parents(@TraitClause3)::[@TraitClause0])::Output = K, + @TraitClause3::parent_clause0::Output = K, unsafe fn core::iter::traits::iterator::Iterator::__iterator_get_unchecked<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> Self::Item where @@ -1202,7 +1202,7 @@ fn core::clone::Clone::clone_from<'_0, '_1, Self>(@1: &'_0 mut (Self), @2: &'_1 fn core::iter::traits::collect::IntoIterator::into_iter(@1: Self) -> Self::IntoIter -fn core::ops::function::FnMut::call_mut<'_0, Self, Args>(@1: &'_0 mut (Self), @2: Args) -> (parents(Self)::[@TraitClause0])::Output +fn core::ops::function::FnMut::call_mut<'_0, Self, Args>(@1: &'_0 mut (Self), @2: Args) -> Self::parent_clause0::Output fn core::ops::function::FnOnce::call_once(@1: Self, @2: Args) -> Self::Output @@ -1214,7 +1214,7 @@ where fn core::ops::try_trait::Try::from_output(@1: Self::Output) -> Self -fn core::ops::try_trait::Try::branch(@1: Self) -> core::ops::control_flow::ControlFlow +fn core::ops::try_trait::Try::branch(@1: Self) -> core::ops::control_flow::ControlFlow[Self::parent_clause0::parent_clause0, Self::parent_clause1] fn core::ops::try_trait::FromResidual::from_residual(@1: R) -> Self @@ -1234,11 +1234,11 @@ where fn core::default::Default::default() -> Self -fn core::iter::traits::double_ended::DoubleEndedIterator::next_back<'_0, Self>(@1: &'_0 mut (Self)) -> core::option::Option<(parents(Self)::[@TraitClause0])::Item, (parents((parents(Self)::[@TraitClause0]))::[@TraitClause0])> +fn core::iter::traits::double_ended::DoubleEndedIterator::next_back<'_0, Self>(@1: &'_0 mut (Self)) -> core::option::Option[Self::parent_clause0::parent_clause0] -fn core::iter::traits::double_ended::DoubleEndedIterator::advance_back_by<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> core::result::Result<(), core::num::nonzero::NonZero, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26>, core::marker::Sized<()>, core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26>>> +fn core::iter::traits::double_ended::DoubleEndedIterator::advance_back_by<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> core::result::Result<(), core::num::nonzero::NonZero[core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26]>[core::marker::Sized<()>, core::marker::Sized[core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26]>] -fn core::iter::traits::double_ended::DoubleEndedIterator::nth_back<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> core::option::Option<(parents(Self)::[@TraitClause0])::Item, (parents((parents(Self)::[@TraitClause0]))::[@TraitClause0])> +fn core::iter::traits::double_ended::DoubleEndedIterator::nth_back<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> core::option::Option[Self::parent_clause0::parent_clause0] fn core::iter::traits::double_ended::DoubleEndedIterator::try_rfold<'_0, Self, B, F, R>(@1: &'_0 mut (Self), @2: B, @3: F) -> R where @@ -1246,9 +1246,9 @@ where [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::marker::Sized, - [@TraitClause4]: core::ops::function::FnMut, + [@TraitClause4]: core::ops::function::FnMut, [@TraitClause5]: core::ops::try_trait::Try, - (parents(@TraitClause4)::[@TraitClause0])::Output = R, + @TraitClause4::parent_clause0::Output = R, @TraitClause5::Output = B, fn core::iter::traits::double_ended::DoubleEndedIterator::rfold(@1: Self, @2: B, @3: F) -> B @@ -1256,15 +1256,15 @@ where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, - [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = B, + [@TraitClause3]: core::ops::function::FnMut, + @TraitClause3::parent_clause0::Output = B, -fn core::iter::traits::double_ended::DoubleEndedIterator::rfind<'_0, Self, P>(@1: &'_0 mut (Self), @2: P) -> core::option::Option<(parents(Self)::[@TraitClause0])::Item, (parents((parents(Self)::[@TraitClause0]))::[@TraitClause0])> +fn core::iter::traits::double_ended::DoubleEndedIterator::rfind<'_0, Self, P>(@1: &'_0 mut (Self), @2: P) -> core::option::Option[Self::parent_clause0::parent_clause0] where [@TraitClause0]: core::marker::Sized

, [@TraitClause1]: core::marker::Sized, - [@TraitClause2]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + [@TraitClause2]: for<'_1_0> core::ops::function::FnMut, + for<'_1_0> @TraitClause2::parent_clause0::Output = bool, fn core::iter::traits::exact_size::ExactSizeIterator::len<'_0, Self>(@1: &'_0 (Self)) -> usize @@ -1291,7 +1291,7 @@ fn core::cmp::PartialEq::eq<'_0, '_1, Self, Rhs>(@1: &'_0 (Self), @2: &'_1 (Rhs) fn core::cmp::PartialEq::ne<'_0, '_1, Self, Rhs>(@1: &'_0 (Self), @2: &'_1 (Rhs)) -> bool -fn core::cmp::PartialOrd::partial_cmp<'_0, '_1, Self, Rhs>(@1: &'_0 (Self), @2: &'_1 (Rhs)) -> core::option::Option> +fn core::cmp::PartialOrd::partial_cmp<'_0, '_1, Self, Rhs>(@1: &'_0 (Self), @2: &'_1 (Rhs)) -> core::option::Option[core::marker::Sized] fn core::cmp::PartialOrd::lt<'_0, '_1, Self, Rhs>(@1: &'_0 (Self), @2: &'_1 (Rhs)) -> bool

, [@TraitClause1]: core::marker::Sized, - [@TraitClause2]: for<'_1_0> core::ops::function::FnMut, - for<'_1_0> (parents(@TraitClause2)::[@TraitClause0])::Output = bool, + [@TraitClause2]: for<'_1_0> core::ops::function::FnMut, + for<'_1_0> @TraitClause2::parent_clause0::Output = bool, fn core::iter::traits::exact_size::ExactSizeIterator::len<'_0, Self>(@1: &'_0 (Self)) -> usize @@ -1119,7 +1119,7 @@ fn core::cmp::PartialEq::eq<'_0, '_1, Self, Rhs>(@1: &'_0 (Self), @2: &'_1 (Rhs) fn core::cmp::PartialEq::ne<'_0, '_1, Self, Rhs>(@1: &'_0 (Self), @2: &'_1 (Rhs)) -> bool -fn core::cmp::PartialOrd::partial_cmp<'_0, '_1, Self, Rhs>(@1: &'_0 (Self), @2: &'_1 (Rhs)) -> core::option::Option> +fn core::cmp::PartialOrd::partial_cmp<'_0, '_1, Self, Rhs>(@1: &'_0 (Self), @2: &'_1 (Rhs)) -> core::option::Option[core::marker::Sized] fn core::cmp::PartialOrd::lt<'_0, '_1, Self, Rhs>(@1: &'_0 (Self), @2: &'_1 (Rhs)) -> bool diff --git a/charon/tests/ui/issue-4-slice-try-into-array.out b/charon/tests/ui/issue-4-slice-try-into-array.out index d1ccb3f4..642605eb 100644 --- a/charon/tests/ui/issue-4-slice-try-into-array.out +++ b/charon/tests/ui/issue-4-slice-try-into-array.out @@ -15,23 +15,23 @@ opaque type core::array::TryFromSliceError trait core::convert::TryInto { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::marker::Sized - parent_clause_2 : [@TraitClause2]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::marker::Sized + parent_clause2 : [@TraitClause2]: core::marker::Sized type Error fn try_into : core::convert::TryInto::try_into } trait core::convert::TryFrom { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::marker::Sized - parent_clause_2 : [@TraitClause2]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::marker::Sized + parent_clause2 : [@TraitClause2]: core::marker::Sized type Error fn try_from : core::convert::TryFrom::try_from } -fn core::convert::{impl core::convert::TryInto for T}#6::try_into(@1: T) -> core::result::Result +fn core::convert::{impl core::convert::TryInto for T}#6::try_into(@1: T) -> core::result::Result[@TraitClause1, @TraitClause2::parent_clause2] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, @@ -46,24 +46,24 @@ where { parent_clause0 = @TraitClause0 parent_clause1 = @TraitClause1 - parent_clause2 = (parents(@TraitClause2)::[@TraitClause2]) + parent_clause2 = @TraitClause2::parent_clause2 type Error = @TraitClause2::Error fn try_into = core::convert::{impl core::convert::TryInto for T}#6::try_into } trait core::clone::Clone { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized fn clone : core::clone::Clone::clone fn clone_from : core::clone::Clone::clone_from } trait core::marker::Copy { - parent_clause_0 : [@TraitClause0]: core::clone::Clone + parent_clause0 : [@TraitClause0]: core::clone::Clone } -fn core::array::{impl core::convert::TryFrom<&'_0 (Slice)> for Array}#7::try_from<'_0, '_1, T, const N : usize>(@1: &'_1 (Slice)) -> core::result::Result, core::array::TryFromSliceError, core::marker::Sized>, core::marker::Sized> +fn core::array::{impl core::convert::TryFrom<&'_0 (Slice)> for Array}#7::try_from<'_0, '_1, T, const N : usize>(@1: &'_1 (Slice)) -> core::result::Result, core::array::TryFromSliceError>[core::marker::Sized>, core::marker::Sized] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, @@ -94,7 +94,7 @@ impl core::marker::{impl core::marker::Copy for u8}#38 : core::marker::Copy parent_clause0 = core::clone::impls::{impl core::clone::Clone for u8}#6 } -fn core::convert::TryInto::try_into(@1: Self) -> core::result::Result +fn core::convert::TryInto::try_into(@1: Self) -> core::result::Result[Self::parent_clause1, Self::parent_clause2] opaque type core::fmt::Formatter<'a> where @@ -107,7 +107,7 @@ trait core::fmt::Debug fn fmt : core::fmt::Debug::fmt } -fn core::result::{core::result::Result}::unwrap(@1: core::result::Result) -> T +fn core::result::{core::result::Result[@TraitClause0, @TraitClause1]}::unwrap(@1: core::result::Result[@TraitClause0, @TraitClause1]) -> T where // Inherited clauses: [@TraitClause0]: core::marker::Sized, @@ -115,7 +115,7 @@ where // Local clauses: [@TraitClause2]: core::fmt::Debug, -fn core::array::{impl core::fmt::Debug for core::array::TryFromSliceError}#26::fmt<'_0, '_1, '_2>(@1: &'_0 (core::array::TryFromSliceError), @2: &'_1 mut (core::fmt::Formatter<'_2>)) -> core::result::Result<(), core::fmt::Error, core::marker::Sized<()>, core::marker::Sized> +fn core::array::{impl core::fmt::Debug for core::array::TryFromSliceError}#26::fmt<'_0, '_1, '_2>(@1: &'_0 (core::array::TryFromSliceError), @2: &'_1 mut (core::fmt::Formatter<'_2>)) -> core::result::Result<(), core::fmt::Error>[core::marker::Sized<()>, core::marker::Sized] impl core::array::{impl core::fmt::Debug for core::array::TryFromSliceError}#26 : core::fmt::Debug { @@ -127,14 +127,14 @@ fn test_crate::trait_error<'_0>(@1: &'_0 (Slice)) let @0: (); // return let s@1: &'_ (Slice); // arg #1 let _array@2: Array; // local - let @3: core::result::Result, core::array::TryFromSliceError, core::marker::Sized>, core::marker::Sized>; // anonymous local + let @3: core::result::Result, core::array::TryFromSliceError>[core::marker::Sized>, core::marker::Sized]; // anonymous local let @4: &'_ (Slice); // anonymous local let @5: (); // anonymous local @4 := &*(s@1) @3 := core::convert::{impl core::convert::TryInto for T}#6<&'_ (Slice), Array>[core::marker::Sized<&'_ (Slice)>, core::marker::Sized>, core::array::{impl core::convert::TryFrom<&'_0 (Slice)> for Array}#7<'_, u8, 4 : usize>[core::marker::Sized, core::marker::{impl core::marker::Copy for u8}#38]]::try_into(move (@4)) drop @4 - _array@2 := core::result::{core::result::Result}::unwrap, core::array::TryFromSliceError>[core::array::{impl core::fmt::Debug for core::array::TryFromSliceError}#26, core::marker::Sized>, core::marker::Sized](move (@3)) + _array@2 := core::result::{core::result::Result[@TraitClause0, @TraitClause1]}::unwrap, core::array::TryFromSliceError>[core::array::{impl core::fmt::Debug for core::array::TryFromSliceError}#26, core::marker::Sized>, core::marker::Sized](move (@3)) drop @3 @fake_read(_array@2) @5 := () @@ -144,13 +144,13 @@ fn test_crate::trait_error<'_0>(@1: &'_0 (Slice)) return } -fn core::convert::TryFrom::try_from(@1: T) -> core::result::Result +fn core::convert::TryFrom::try_from(@1: T) -> core::result::Result[Self::parent_clause0, Self::parent_clause2] fn core::clone::Clone::clone<'_0, Self>(@1: &'_0 (Self)) -> Self fn core::clone::Clone::clone_from<'_0, '_1, Self>(@1: &'_0 mut (Self), @2: &'_1 (Self)) -fn core::fmt::Debug::fmt<'_0, '_1, '_2, Self>(@1: &'_0 (Self), @2: &'_1 mut (core::fmt::Formatter<'_2>)) -> core::result::Result<(), core::fmt::Error, core::marker::Sized<()>, core::marker::Sized> +fn core::fmt::Debug::fmt<'_0, '_1, '_2, Self>(@1: &'_0 (Self), @2: &'_1 mut (core::fmt::Formatter<'_2>)) -> core::result::Result<(), core::fmt::Error>[core::marker::Sized<()>, core::marker::Sized] diff --git a/charon/tests/ui/issue-4-traits.out b/charon/tests/ui/issue-4-traits.out index d1ccb3f4..642605eb 100644 --- a/charon/tests/ui/issue-4-traits.out +++ b/charon/tests/ui/issue-4-traits.out @@ -15,23 +15,23 @@ opaque type core::array::TryFromSliceError trait core::convert::TryInto { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::marker::Sized - parent_clause_2 : [@TraitClause2]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::marker::Sized + parent_clause2 : [@TraitClause2]: core::marker::Sized type Error fn try_into : core::convert::TryInto::try_into } trait core::convert::TryFrom { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::marker::Sized - parent_clause_2 : [@TraitClause2]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::marker::Sized + parent_clause2 : [@TraitClause2]: core::marker::Sized type Error fn try_from : core::convert::TryFrom::try_from } -fn core::convert::{impl core::convert::TryInto for T}#6::try_into(@1: T) -> core::result::Result +fn core::convert::{impl core::convert::TryInto for T}#6::try_into(@1: T) -> core::result::Result[@TraitClause1, @TraitClause2::parent_clause2] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, @@ -46,24 +46,24 @@ where { parent_clause0 = @TraitClause0 parent_clause1 = @TraitClause1 - parent_clause2 = (parents(@TraitClause2)::[@TraitClause2]) + parent_clause2 = @TraitClause2::parent_clause2 type Error = @TraitClause2::Error fn try_into = core::convert::{impl core::convert::TryInto for T}#6::try_into } trait core::clone::Clone { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized fn clone : core::clone::Clone::clone fn clone_from : core::clone::Clone::clone_from } trait core::marker::Copy { - parent_clause_0 : [@TraitClause0]: core::clone::Clone + parent_clause0 : [@TraitClause0]: core::clone::Clone } -fn core::array::{impl core::convert::TryFrom<&'_0 (Slice)> for Array}#7::try_from<'_0, '_1, T, const N : usize>(@1: &'_1 (Slice)) -> core::result::Result, core::array::TryFromSliceError, core::marker::Sized>, core::marker::Sized> +fn core::array::{impl core::convert::TryFrom<&'_0 (Slice)> for Array}#7::try_from<'_0, '_1, T, const N : usize>(@1: &'_1 (Slice)) -> core::result::Result, core::array::TryFromSliceError>[core::marker::Sized>, core::marker::Sized] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, @@ -94,7 +94,7 @@ impl core::marker::{impl core::marker::Copy for u8}#38 : core::marker::Copy parent_clause0 = core::clone::impls::{impl core::clone::Clone for u8}#6 } -fn core::convert::TryInto::try_into(@1: Self) -> core::result::Result +fn core::convert::TryInto::try_into(@1: Self) -> core::result::Result[Self::parent_clause1, Self::parent_clause2] opaque type core::fmt::Formatter<'a> where @@ -107,7 +107,7 @@ trait core::fmt::Debug fn fmt : core::fmt::Debug::fmt } -fn core::result::{core::result::Result}::unwrap(@1: core::result::Result) -> T +fn core::result::{core::result::Result[@TraitClause0, @TraitClause1]}::unwrap(@1: core::result::Result[@TraitClause0, @TraitClause1]) -> T where // Inherited clauses: [@TraitClause0]: core::marker::Sized, @@ -115,7 +115,7 @@ where // Local clauses: [@TraitClause2]: core::fmt::Debug, -fn core::array::{impl core::fmt::Debug for core::array::TryFromSliceError}#26::fmt<'_0, '_1, '_2>(@1: &'_0 (core::array::TryFromSliceError), @2: &'_1 mut (core::fmt::Formatter<'_2>)) -> core::result::Result<(), core::fmt::Error, core::marker::Sized<()>, core::marker::Sized> +fn core::array::{impl core::fmt::Debug for core::array::TryFromSliceError}#26::fmt<'_0, '_1, '_2>(@1: &'_0 (core::array::TryFromSliceError), @2: &'_1 mut (core::fmt::Formatter<'_2>)) -> core::result::Result<(), core::fmt::Error>[core::marker::Sized<()>, core::marker::Sized] impl core::array::{impl core::fmt::Debug for core::array::TryFromSliceError}#26 : core::fmt::Debug { @@ -127,14 +127,14 @@ fn test_crate::trait_error<'_0>(@1: &'_0 (Slice)) let @0: (); // return let s@1: &'_ (Slice); // arg #1 let _array@2: Array; // local - let @3: core::result::Result, core::array::TryFromSliceError, core::marker::Sized>, core::marker::Sized>; // anonymous local + let @3: core::result::Result, core::array::TryFromSliceError>[core::marker::Sized>, core::marker::Sized]; // anonymous local let @4: &'_ (Slice); // anonymous local let @5: (); // anonymous local @4 := &*(s@1) @3 := core::convert::{impl core::convert::TryInto for T}#6<&'_ (Slice), Array>[core::marker::Sized<&'_ (Slice)>, core::marker::Sized>, core::array::{impl core::convert::TryFrom<&'_0 (Slice)> for Array}#7<'_, u8, 4 : usize>[core::marker::Sized, core::marker::{impl core::marker::Copy for u8}#38]]::try_into(move (@4)) drop @4 - _array@2 := core::result::{core::result::Result}::unwrap, core::array::TryFromSliceError>[core::array::{impl core::fmt::Debug for core::array::TryFromSliceError}#26, core::marker::Sized>, core::marker::Sized](move (@3)) + _array@2 := core::result::{core::result::Result[@TraitClause0, @TraitClause1]}::unwrap, core::array::TryFromSliceError>[core::array::{impl core::fmt::Debug for core::array::TryFromSliceError}#26, core::marker::Sized>, core::marker::Sized](move (@3)) drop @3 @fake_read(_array@2) @5 := () @@ -144,13 +144,13 @@ fn test_crate::trait_error<'_0>(@1: &'_0 (Slice)) return } -fn core::convert::TryFrom::try_from(@1: T) -> core::result::Result +fn core::convert::TryFrom::try_from(@1: T) -> core::result::Result[Self::parent_clause0, Self::parent_clause2] fn core::clone::Clone::clone<'_0, Self>(@1: &'_0 (Self)) -> Self fn core::clone::Clone::clone_from<'_0, '_1, Self>(@1: &'_0 mut (Self), @2: &'_1 (Self)) -fn core::fmt::Debug::fmt<'_0, '_1, '_2, Self>(@1: &'_0 (Self), @2: &'_1 mut (core::fmt::Formatter<'_2>)) -> core::result::Result<(), core::fmt::Error, core::marker::Sized<()>, core::marker::Sized> +fn core::fmt::Debug::fmt<'_0, '_1, '_2, Self>(@1: &'_0 (Self), @2: &'_1 mut (core::fmt::Formatter<'_2>)) -> core::result::Result<(), core::fmt::Error>[core::marker::Sized<()>, core::marker::Sized] diff --git a/charon/tests/ui/issue-45-misc.out b/charon/tests/ui/issue-45-misc.out index 4ffcfdfb..f4ac4c34 100644 --- a/charon/tests/ui/issue-45-misc.out +++ b/charon/tests/ui/issue-45-misc.out @@ -16,18 +16,18 @@ trait core::marker::Tuple trait core::ops::function::FnOnce { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::marker::Tuple - parent_clause_2 : [@TraitClause2]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::marker::Tuple + parent_clause2 : [@TraitClause2]: core::marker::Sized type Output fn call_once : core::ops::function::FnOnce::call_once } trait core::ops::function::FnMut { - parent_clause_0 : [@TraitClause0]: core::ops::function::FnOnce - parent_clause_1 : [@TraitClause1]: core::marker::Sized - parent_clause_2 : [@TraitClause2]: core::marker::Tuple + parent_clause0 : [@TraitClause0]: core::ops::function::FnOnce + parent_clause1 : [@TraitClause1]: core::marker::Sized + parent_clause2 : [@TraitClause2]: core::marker::Tuple fn call_mut : core::ops::function::FnMut::call_mut } @@ -39,7 +39,7 @@ where [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = U, + @TraitClause3::parent_clause0::Output = U, fn test_crate::map(@1: Array) -> Array { @@ -96,26 +96,26 @@ opaque type core::array::iter::IntoIter trait core::clone::Clone { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized fn clone : core::clone::Clone::clone fn clone_from : core::clone::Clone::clone_from } trait core::marker::Copy { - parent_clause_0 : [@TraitClause0]: core::clone::Clone + parent_clause0 : [@TraitClause0]: core::clone::Clone } trait core::num::nonzero::private::Sealed trait core::num::nonzero::ZeroablePrimitive { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::marker::Copy - parent_clause_2 : [@TraitClause2]: core::num::nonzero::private::Sealed - parent_clause_3 : [@TraitClause3]: core::marker::Copy - parent_clause_4 : [@TraitClause4]: core::clone::Clone - parent_clause_5 : [@TraitClause5]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::marker::Copy + parent_clause2 : [@TraitClause2]: core::num::nonzero::private::Sealed + parent_clause3 : [@TraitClause3]: core::marker::Copy + parent_clause4 : [@TraitClause4]: core::clone::Clone + parent_clause5 : [@TraitClause5]: core::marker::Sized type NonZeroInner } @@ -238,7 +238,7 @@ opaque type core::iter::adapters::inspect::Inspect trait core::ops::try_trait::FromResidual { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized fn from_residual : core::ops::try_trait::FromResidual::from_residual } @@ -253,9 +253,9 @@ enum core::ops::control_flow::ControlFlow trait core::ops::try_trait::Try { - parent_clause_0 : [@TraitClause0]: core::ops::try_trait::FromResidual - parent_clause_1 : [@TraitClause1]: core::marker::Sized - parent_clause_2 : [@TraitClause2]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::ops::try_trait::FromResidual + parent_clause1 : [@TraitClause1]: core::marker::Sized + parent_clause2 : [@TraitClause2]: core::marker::Sized type Output type Residual fn from_output : core::ops::try_trait::Try::from_output @@ -264,19 +264,19 @@ trait core::ops::try_trait::Try trait core::ops::try_trait::Residual where - (parents(Self)::[@TraitClause1])::Residual = Self, - (parents(Self)::[@TraitClause1])::Output = O, + Self::parent_clause1::Residual = Self, + Self::parent_clause1::Output = O, { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::ops::try_trait::Try - parent_clause_2 : [@TraitClause2]: core::ops::try_trait::FromResidual - parent_clause_3 : [@TraitClause3]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::ops::try_trait::Try + parent_clause2 : [@TraitClause2]: core::ops::try_trait::FromResidual + parent_clause3 : [@TraitClause3]: core::marker::Sized type TryType } trait core::default::Default { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized fn default : core::default::Default::default } @@ -288,7 +288,7 @@ trait core::cmp::PartialEq trait core::cmp::Eq { - parent_clause_0 : [@TraitClause0]: core::cmp::PartialEq + parent_clause0 : [@TraitClause0]: core::cmp::PartialEq fn assert_receiver_is_total_eq : core::cmp::Eq::assert_receiver_is_total_eq } @@ -300,7 +300,7 @@ enum core::cmp::Ordering = trait core::cmp::PartialOrd { - parent_clause_0 : [@TraitClause0]: core::cmp::PartialEq + parent_clause0 : [@TraitClause0]: core::cmp::PartialEq fn partial_cmp : core::cmp::PartialOrd::partial_cmp fn lt : core::cmp::PartialOrd::lt fn le : core::cmp::PartialOrd::le @@ -310,8 +310,8 @@ trait core::cmp::PartialOrd trait core::cmp::Ord { - parent_clause_0 : [@TraitClause0]: core::cmp::Eq - parent_clause_1 : [@TraitClause1]: core::cmp::PartialOrd + parent_clause0 : [@TraitClause0]: core::cmp::Eq + parent_clause1 : [@TraitClause1]: core::cmp::PartialOrd fn cmp : core::cmp::Ord::cmp fn max : core::cmp::Ord::max fn min : core::cmp::Ord::min @@ -336,7 +336,7 @@ opaque type core::iter::adapters::cycle::Cycle trait core::iter::traits::iterator::Iterator { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized type Item fn next : core::iter::traits::iterator::Iterator::next fn next_chunk : core::iter::traits::iterator::Iterator::next_chunk @@ -419,11 +419,11 @@ trait core::iter::traits::iterator::Iterator trait core::iter::traits::collect::IntoIterator where - (parents(Self)::[@TraitClause1])::Item = Self::Item, + Self::parent_clause1::Item = Self::Item, { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::iter::traits::iterator::Iterator - parent_clause_2 : [@TraitClause2]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::iter::traits::iterator::Iterator + parent_clause2 : [@TraitClause2]: core::marker::Sized type Item type IntoIter fn into_iter : core::iter::traits::collect::IntoIterator::into_iter @@ -467,14 +467,14 @@ opaque type core::iter::adapters::map_windows::MapWindows trait core::iter::traits::collect::FromIterator { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::marker::Sized fn from_iter : core::iter::traits::collect::FromIterator::from_iter } trait core::iter::traits::collect::Extend { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized fn extend : core::iter::traits::collect::Extend::extend fn extend_one : core::iter::traits::collect::Extend::extend_one fn extend_reserve : core::iter::traits::collect::Extend::extend_reserve @@ -483,7 +483,7 @@ trait core::iter::traits::collect::Extend trait core::iter::traits::double_ended::DoubleEndedIterator { - parent_clause_0 : [@TraitClause0]: core::iter::traits::iterator::Iterator + parent_clause0 : [@TraitClause0]: core::iter::traits::iterator::Iterator fn next_back : core::iter::traits::double_ended::DoubleEndedIterator::next_back fn advance_back_by : core::iter::traits::double_ended::DoubleEndedIterator::advance_back_by fn nth_back : core::iter::traits::double_ended::DoubleEndedIterator::nth_back @@ -494,7 +494,7 @@ trait core::iter::traits::double_ended::DoubleEndedIterator trait core::iter::traits::exact_size::ExactSizeIterator { - parent_clause_0 : [@TraitClause0]: core::iter::traits::iterator::Iterator + parent_clause0 : [@TraitClause0]: core::iter::traits::iterator::Iterator fn len : core::iter::traits::exact_size::ExactSizeIterator::len fn is_empty : core::iter::traits::exact_size::ExactSizeIterator::is_empty } @@ -506,21 +506,21 @@ opaque type core::iter::adapters::array_chunks::ArrayChunks trait core::iter::traits::accum::Sum { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::marker::Sized fn sum : core::iter::traits::accum::Sum::sum } trait core::iter::traits::accum::Product { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::marker::Sized fn product : core::iter::traits::accum::Product::product } trait core::iter::adapters::zip::TrustedRandomAccessNoCoerce { - parent_clause_0 : [@TraitClause0]: core::marker::Sized + parent_clause0 : [@TraitClause0]: core::marker::Sized const MAY_HAVE_SIDE_EFFECT : bool fn size : core::iter::adapters::zip::TrustedRandomAccessNoCoerce::size } @@ -536,7 +536,7 @@ where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::iter::traits::iterator::Iterator, { - parent_clause0 = (parents(@TraitClause1)::[@TraitClause0]) + parent_clause0 = @TraitClause1::parent_clause0 parent_clause1 = @TraitClause1 parent_clause2 = @TraitClause0 type Item = @TraitClause1::Item @@ -546,9 +546,9 @@ where trait core::iter::range::Step { - parent_clause_0 : [@TraitClause0]: core::marker::Sized - parent_clause_1 : [@TraitClause1]: core::clone::Clone - parent_clause_2 : [@TraitClause2]: core::cmp::PartialOrd + parent_clause0 : [@TraitClause0]: core::marker::Sized + parent_clause1 : [@TraitClause1]: core::clone::Clone + parent_clause2 : [@TraitClause2]: core::cmp::PartialOrd fn steps_between : core::iter::range::Step::steps_between fn forward_checked : core::iter::range::Step::forward_checked fn backward_checked : core::iter::range::Step::backward_checked @@ -558,43 +558,43 @@ trait core::iter::range::Step fn backward_unchecked : core::iter::range::Step::backward_unchecked } -fn core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6::next<'_0, A>(@1: &'_0 mut (core::ops::range::Range)) -> core::option::Option +fn core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6::next<'_0, A>(@1: &'_0 mut (core::ops::range::Range[@TraitClause0])) -> core::option::Option[@TraitClause0] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::iter::range::Step, -fn core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6::size_hint<'_0, A>(@1: &'_0 (core::ops::range::Range)) -> (usize, core::option::Option>) +fn core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6::size_hint<'_0, A>(@1: &'_0 (core::ops::range::Range[@TraitClause0])) -> (usize, core::option::Option[core::marker::Sized]) where // Inherited clauses: [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::iter::range::Step, -fn core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6::count(@1: core::ops::range::Range) -> usize +fn core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6::count(@1: core::ops::range::Range[@TraitClause0]) -> usize where // Inherited clauses: [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::iter::range::Step, -fn core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6::last(@1: core::ops::range::Range) -> core::option::Option +fn core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6::last(@1: core::ops::range::Range[@TraitClause0]) -> core::option::Option[@TraitClause0] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::iter::range::Step, -fn core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6::advance_by<'_0, A>(@1: &'_0 mut (core::ops::range::Range), @2: usize) -> core::result::Result<(), core::num::nonzero::NonZero, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26>, core::marker::Sized<()>, core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26>>> +fn core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6::advance_by<'_0, A>(@1: &'_0 mut (core::ops::range::Range[@TraitClause0]), @2: usize) -> core::result::Result<(), core::num::nonzero::NonZero[core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26]>[core::marker::Sized<()>, core::marker::Sized[core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26]>] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::iter::range::Step, -fn core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6::nth<'_0, A>(@1: &'_0 mut (core::ops::range::Range), @2: usize) -> core::option::Option +fn core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6::nth<'_0, A>(@1: &'_0 mut (core::ops::range::Range[@TraitClause0]), @2: usize) -> core::option::Option[@TraitClause0] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::iter::range::Step, -fn core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6::max(@1: core::ops::range::Range) -> core::option::Option +fn core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6::max(@1: core::ops::range::Range[@TraitClause0]) -> core::option::Option[@TraitClause0] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, @@ -602,7 +602,7 @@ where // Local clauses: [@TraitClause2]: core::cmp::Ord, -fn core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6::min(@1: core::ops::range::Range) -> core::option::Option +fn core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6::min(@1: core::ops::range::Range[@TraitClause0]) -> core::option::Option[@TraitClause0] where // Inherited clauses: [@TraitClause0]: core::marker::Sized, @@ -610,37 +610,37 @@ where // Local clauses: [@TraitClause2]: core::cmp::Ord, -fn core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6::is_sorted(@1: core::ops::range::Range) -> bool +fn core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6::is_sorted(@1: core::ops::range::Range[@TraitClause0]) -> bool where // Inherited clauses: [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::iter::range::Step, -unsafe fn core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6::__iterator_get_unchecked<'_0, A>(@1: &'_0 mut (core::ops::range::Range), @2: usize) -> core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6[@TraitClause0, @TraitClause1]::Item +unsafe fn core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6::__iterator_get_unchecked<'_0, A>(@1: &'_0 mut (core::ops::range::Range[@TraitClause0]), @2: usize) -> core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6[@TraitClause0, @TraitClause1]::Item where // Inherited clauses: [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::iter::range::Step, // Local clauses: - [@TraitClause2]: core::iter::adapters::zip::TrustedRandomAccessNoCoerce>, + [@TraitClause2]: core::iter::adapters::zip::TrustedRandomAccessNoCoerce[@TraitClause0]>, -impl core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6 : core::iter::traits::iterator::Iterator> +impl core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6 : core::iter::traits::iterator::Iterator[@TraitClause0]> where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::iter::range::Step, { parent_clause0 = @TraitClause0 type Item = A - fn next = core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6::next - fn size_hint = core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6::size_hint - fn count = core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6::count - fn last = core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6::last - fn advance_by = core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6::advance_by - fn nth = core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6::nth - fn max = core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6::max - fn min = core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6::min - fn is_sorted = core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6::is_sorted - fn __iterator_get_unchecked = core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6::__iterator_get_unchecked + fn next = core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6::next + fn size_hint = core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6::size_hint + fn count = core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6::count + fn last = core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6::last + fn advance_by = core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6::advance_by + fn nth = core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6::nth + fn max = core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6::max + fn min = core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6::min + fn is_sorted = core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6::is_sorted + fn __iterator_get_unchecked = core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6::__iterator_get_unchecked } fn core::clone::impls::{impl core::clone::Clone for u8}#6::clone<'_0>(@1: &'_0 (u8)) -> u8 @@ -661,7 +661,7 @@ impl core::cmp::impls::{impl core::cmp::PartialEq for u8}#22 : core::cmp::Pa fn ne = core::cmp::impls::{impl core::cmp::PartialEq for u8}#22::ne } -fn core::cmp::impls::{impl core::cmp::PartialOrd for u8}#60::partial_cmp<'_0, '_1>(@1: &'_0 (u8), @2: &'_1 (u8)) -> core::option::Option> +fn core::cmp::impls::{impl core::cmp::PartialOrd for u8}#60::partial_cmp<'_0, '_1>(@1: &'_0 (u8), @2: &'_1 (u8)) -> core::option::Option[core::marker::Sized] fn core::cmp::impls::{impl core::cmp::PartialOrd for u8}#60::lt<'_0, '_1>(@1: &'_0 (u8), @2: &'_1 (u8)) -> bool @@ -681,11 +681,11 @@ impl core::cmp::impls::{impl core::cmp::PartialOrd for u8}#60 : core::cmp::P fn ge = core::cmp::impls::{impl core::cmp::PartialOrd for u8}#60::ge } -fn core::iter::range::{impl core::iter::range::Step for u8}#35::steps_between<'_0, '_1>(@1: &'_0 (u8), @2: &'_1 (u8)) -> core::option::Option> +fn core::iter::range::{impl core::iter::range::Step for u8}#35::steps_between<'_0, '_1>(@1: &'_0 (u8), @2: &'_1 (u8)) -> core::option::Option[core::marker::Sized] -fn core::iter::range::{impl core::iter::range::Step for u8}#35::forward_checked(@1: u8, @2: usize) -> core::option::Option> +fn core::iter::range::{impl core::iter::range::Step for u8}#35::forward_checked(@1: u8, @2: usize) -> core::option::Option[core::marker::Sized] -fn core::iter::range::{impl core::iter::range::Step for u8}#35::backward_checked(@1: u8, @2: usize) -> core::option::Option> +fn core::iter::range::{impl core::iter::range::Step for u8}#35::backward_checked(@1: u8, @2: usize) -> core::option::Option[core::marker::Sized] fn core::iter::range::{impl core::iter::range::Step for u8}#35::forward(@1: u8, @2: usize) -> u8 @@ -711,20 +711,20 @@ impl core::iter::range::{impl core::iter::range::Step for u8}#35 : core::iter::r fn core::iter::traits::collect::IntoIterator::into_iter(@1: Self) -> Self::IntoIter -fn core::iter::traits::iterator::Iterator::next<'_0, Self>(@1: &'_0 mut (Self)) -> core::option::Option +fn core::iter::traits::iterator::Iterator::next<'_0, Self>(@1: &'_0 mut (Self)) -> core::option::Option[Self::parent_clause0] fn test_crate::cbd(@1: Array) { let @0: (); // return let prf_input@1: Array; // arg #1 - let @2: core::ops::range::Range>; // anonymous local - let @3: core::ops::range::Range>; // anonymous local - let iter@4: core::ops::range::Range>; // local + let @2: core::ops::range::Range[core::marker::Sized]; // anonymous local + let @3: core::ops::range::Range[core::marker::Sized]; // anonymous local + let iter@4: core::ops::range::Range[core::marker::Sized]; // local let @5: (); // anonymous local let @6: (); // anonymous local - let @7: core::option::Option>; // anonymous local - let @8: &'_ mut (core::ops::range::Range>); // anonymous local - let @9: &'_ mut (core::ops::range::Range>); // anonymous local + let @7: core::option::Option[core::marker::Sized]; // anonymous local + let @8: &'_ mut (core::ops::range::Range[core::marker::Sized]); // anonymous local + let @9: &'_ mut (core::ops::range::Range[core::marker::Sized]); // anonymous local let i@10: u8; // local let @11: u8; // anonymous local let @12: usize; // anonymous local @@ -735,14 +735,14 @@ fn test_crate::cbd(@1: Array) let @17: &'_ mut (u8); // anonymous local @3 := core::ops::range::Range { start: const (0 : u8), end: const (3 : u8) } - @2 := core::iter::traits::collect::{impl core::iter::traits::collect::IntoIterator for I}#1>>[core::marker::Sized>>, core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6[core::marker::Sized, core::iter::range::{impl core::iter::range::Step for u8}#35]]::into_iter(move (@3)) + @2 := core::iter::traits::collect::{impl core::iter::traits::collect::IntoIterator for I}#1[core::marker::Sized]>[core::marker::Sized[core::marker::Sized]>, core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6[core::marker::Sized, core::iter::range::{impl core::iter::range::Step for u8}#35]]::into_iter(move (@3)) drop @3 @fake_read(@2) iter@4 := move (@2) loop { @9 := &mut iter@4 @8 := &two-phase-mut *(@9) - @7 := core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range}#6[core::marker::Sized, core::iter::range::{impl core::iter::range::Step for u8}#35]::next(move (@8)) + @7 := core::iter::range::{impl core::iter::traits::iterator::Iterator for core::ops::range::Range[@TraitClause0]}#6[core::marker::Sized, core::iter::range::{impl core::iter::range::Step for u8}#35]::next(move (@8)) drop @8 @fake_read(@7) match @7 { @@ -822,7 +822,7 @@ fn test_crate::select<'_0, '_1>(@1: &'_0 (Slice), @2: &'_1 (Slice)) let @21: &'_ (usize); // anonymous local let @22: &'_ (usize); // anonymous local let @23: &'_ (usize); // anonymous local - let @24: core::option::Option, core::marker::Sized>>; // anonymous local + let @24: core::option::Option>[core::marker::Sized>]; // anonymous local let @25: (); // anonymous local let @26: (); // anonymous local let @27: (); // anonymous local @@ -888,19 +888,19 @@ fn test_crate::select<'_0, '_1>(@1: &'_0 (Slice), @2: &'_1 (Slice)) return } -fn core::ops::function::FnMut::call_mut<'_0, Self, Args>(@1: &'_0 mut (Self), @2: Args) -> (parents(Self)::[@TraitClause0])::Output +fn core::ops::function::FnMut::call_mut<'_0, Self, Args>(@1: &'_0 mut (Self), @2: Args) -> Self::parent_clause0::Output fn core::ops::function::FnOnce::call_once(@1: Self, @2: Args) -> Self::Output -fn core::iter::range::Step::steps_between<'_0, '_1, Self>(@1: &'_0 (Self), @2: &'_1 (Self)) -> core::option::Option> +fn core::iter::range::Step::steps_between<'_0, '_1, Self>(@1: &'_0 (Self), @2: &'_1 (Self)) -> core::option::Option[core::marker::Sized] -fn core::iter::range::Step::forward_checked(@1: Self, @2: usize) -> core::option::Option +fn core::iter::range::Step::forward_checked(@1: Self, @2: usize) -> core::option::Option[Self::parent_clause0] fn core::iter::range::Step::forward(@1: Self, @2: usize) -> Self unsafe fn core::iter::range::Step::forward_unchecked(@1: Self, @2: usize) -> Self -fn core::iter::range::Step::backward_checked(@1: Self, @2: usize) -> core::option::Option +fn core::iter::range::Step::backward_checked(@1: Self, @2: usize) -> core::option::Option[Self::parent_clause0] fn core::iter::range::Step::backward(@1: Self, @2: usize) -> Self @@ -910,7 +910,7 @@ fn core::clone::Clone::clone<'_0, Self>(@1: &'_0 (Self)) -> Self fn core::clone::Clone::clone_from<'_0, '_1, Self>(@1: &'_0 mut (Self), @2: &'_1 (Self)) -fn core::cmp::PartialOrd::partial_cmp<'_0, '_1, Self, Rhs>(@1: &'_0 (Self), @2: &'_1 (Rhs)) -> core::option::Option> +fn core::cmp::PartialOrd::partial_cmp<'_0, '_1, Self, Rhs>(@1: &'_0 (Self), @2: &'_1 (Rhs)) -> core::option::Option[core::marker::Sized] fn core::cmp::PartialOrd::lt<'_0, '_1, Self, Rhs>(@1: &'_0 (Self), @2: &'_1 (Rhs)) -> bool @@ -924,162 +924,162 @@ fn core::cmp::PartialEq::eq<'_0, '_1, Self, Rhs>(@1: &'_0 (Self), @2: &'_1 (Rhs) fn core::cmp::PartialEq::ne<'_0, '_1, Self, Rhs>(@1: &'_0 (Self), @2: &'_1 (Rhs)) -> bool -fn core::iter::traits::iterator::Iterator::next_chunk<'_0, Self, const N : usize>(@1: &'_0 mut (Self)) -> core::result::Result, core::array::iter::IntoIter, core::marker::Sized>, core::marker::Sized>> +fn core::iter::traits::iterator::Iterator::next_chunk<'_0, Self, const N : usize>(@1: &'_0 mut (Self)) -> core::result::Result, core::array::iter::IntoIter[Self::parent_clause0]>[core::marker::Sized>, core::marker::Sized[Self::parent_clause0]>] where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::size_hint<'_0, Self>(@1: &'_0 (Self)) -> (usize, core::option::Option>) +fn core::iter::traits::iterator::Iterator::size_hint<'_0, Self>(@1: &'_0 (Self)) -> (usize, core::option::Option[core::marker::Sized]) fn core::iter::traits::iterator::Iterator::count(@1: Self) -> usize where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::last(@1: Self) -> core::option::Option +fn core::iter::traits::iterator::Iterator::last(@1: Self) -> core::option::Option[Self::parent_clause0] where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::advance_by<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> core::result::Result<(), core::num::nonzero::NonZero, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26>, core::marker::Sized<()>, core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26>>> +fn core::iter::traits::iterator::Iterator::advance_by<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> core::result::Result<(), core::num::nonzero::NonZero[core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26]>[core::marker::Sized<()>, core::marker::Sized[core::marker::Sized, core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26]>] -fn core::iter::traits::iterator::Iterator::nth<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> core::option::Option +fn core::iter::traits::iterator::Iterator::nth<'_0, Self>(@1: &'_0 mut (Self), @2: usize) -> core::option::Option[Self::parent_clause0] -fn core::iter::traits::iterator::Iterator::step_by(@1: Self, @2: usize) -> core::iter::adapters::step_by::StepBy +fn core::iter::traits::iterator::Iterator::step_by(@1: Self, @2: usize) -> core::iter::adapters::step_by::StepBy[@TraitClause0] where [@TraitClause0]: core::marker::Sized, -fn core::iter::traits::iterator::Iterator::chain(@1: Self, @2: U) -> core::iter::adapters::chain::Chain +fn core::iter::traits::iterator::Iterator::chain(@1: Self, @2: U) -> core::iter::adapters::chain::Chain[@TraitClause1, @TraitClause2::parent_clause2] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::iter::traits::collect::IntoIterator, @TraitClause2::Item = Self::Item, -fn core::iter::traits::iterator::Iterator::zip(@1: Self, @2: U) -> core::iter::adapters::zip::Zip +fn core::iter::traits::iterator::Iterator::zip(@1: Self, @2: U) -> core::iter::adapters::zip::Zip[@TraitClause1, @TraitClause2::parent_clause2] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::iter::traits::collect::IntoIterator, -fn core::iter::traits::iterator::Iterator::intersperse(@1: Self, @2: Self::Item) -> core::iter::adapters::intersperse::Intersperse +fn core::iter::traits::iterator::Iterator::intersperse(@1: Self, @2: Self::Item) -> core::iter::adapters::intersperse::Intersperse[@TraitClause0, Self, @TraitClause1] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::clone::Clone, -fn core::iter::traits::iterator::Iterator::intersperse_with(@1: Self, @2: G) -> core::iter::adapters::intersperse::IntersperseWith +fn core::iter::traits::iterator::Iterator::intersperse_with(@1: Self, @2: G) -> core::iter::adapters::intersperse::IntersperseWith[@TraitClause1, @TraitClause0, Self] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::ops::function::FnMut, - (parents(@TraitClause2)::[@TraitClause0])::Output = Self::Item, + @TraitClause2::parent_clause0::Output = Self::Item, -fn core::iter::traits::iterator::Iterator::map(@1: Self, @2: F) -> core::iter::adapters::map::Map +fn core::iter::traits::iterator::Iterator::map(@1: Self, @2: F) -> core::iter::adapters::map::Map[@TraitClause2, @TraitClause1] where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::marker::Sized, [@TraitClause3]: core::ops::function::FnMut, - (parents(@TraitClause3)::[@TraitClause0])::Output = B, + @TraitClause3::parent_clause0::Output = B, fn core::iter::traits::iterator::Iterator::for_each(@1: Self, @2: F) where [@TraitClause0]: core::marker::Sized, [@TraitClause1]: core::marker::Sized, [@TraitClause2]: core::ops::function::FnMut, - (parents(@TraitClause2)::[@TraitClause0])::Output = (), + @TraitClause2::parent_clause0::Output = (), -fn core::iter::traits::iterator::Iterator::filter(@1: Self, @2: P) -> core::iter::adapters::filter::Filter +fn core::iter::traits::iterator::Iterator::filter(@1: Self, @2: P) -> core::iter::adapters::filter::Filter[@TraitClause1, @TraitClause0] where [@TraitClause0]: core::marker::Sized