diff --git a/charon/Cargo.lock b/charon/Cargo.lock index 48988846..f48bfa57 100644 --- a/charon/Cargo.lock +++ b/charon/Cargo.lock @@ -472,7 +472,7 @@ dependencies = [ [[package]] name = "hax-adt-into" version = "0.1.0-pre.1" -source = "git+https://github.com/hacspec/hax?branch=main#5d041ae795226aa7c35460d36760a519dd55d61e" +source = "git+https://github.com/Nadrieril/hax?branch=update-rustc#25223de23cf34ef4744684223f0f4a8c26a2b577" dependencies = [ "itertools 0.11.0", "proc-macro2", @@ -483,7 +483,7 @@ dependencies = [ [[package]] name = "hax-frontend-exporter" version = "0.1.0-pre.1" -source = "git+https://github.com/hacspec/hax?branch=main#5d041ae795226aa7c35460d36760a519dd55d61e" +source = "git+https://github.com/Nadrieril/hax?branch=update-rustc#25223de23cf34ef4744684223f0f4a8c26a2b577" dependencies = [ "bincode", "extension-traits", @@ -501,7 +501,7 @@ dependencies = [ [[package]] name = "hax-frontend-exporter-options" version = "0.1.0-pre.1" -source = "git+https://github.com/hacspec/hax?branch=main#5d041ae795226aa7c35460d36760a519dd55d61e" +source = "git+https://github.com/Nadrieril/hax?branch=update-rustc#25223de23cf34ef4744684223f0f4a8c26a2b577" dependencies = [ "bincode", "hax-adt-into", diff --git a/charon/Cargo.toml b/charon/Cargo.toml index 1d6cd238..9b6d1cdb 100644 --- a/charon/Cargo.toml +++ b/charon/Cargo.toml @@ -69,7 +69,7 @@ tracing-tree = "0.3" tracing = { version = "0.1", features = [ "max_level_trace", "release_max_level_warn" ] } which = "6.0.1" -hax-frontend-exporter = { git = "https://github.com/hacspec/hax", branch = "main", optional = true } +hax-frontend-exporter = { git = "https://github.com/Nadrieril/hax", branch = "update-rustc", optional = true } # hax-frontend-exporter = { path = "../../hax/frontend/exporter", optional = true } macros = { path = "./macros" } diff --git a/charon/src/bin/charon-driver/main.rs b/charon/src/bin/charon-driver/main.rs index f9e4a1e3..adb3e335 100644 --- a/charon/src/bin/charon-driver/main.rs +++ b/charon/src/bin/charon-driver/main.rs @@ -7,7 +7,6 @@ #![feature(iter_array_chunks)] #![feature(iterator_try_collect)] #![feature(let_chains)] -#![feature(lint_reasons)] extern crate rustc_ast; extern crate rustc_ast_pretty; diff --git a/charon/src/bin/charon-driver/translate/translate_functions_to_ullbc.rs b/charon/src/bin/charon-driver/translate/translate_functions_to_ullbc.rs index 62a30a15..a7f70696 100644 --- a/charon/src/bin/charon-driver/translate/translate_functions_to_ullbc.rs +++ b/charon/src/bin/charon-driver/translate/translate_functions_to_ullbc.rs @@ -1162,17 +1162,6 @@ impl<'tcx, 'ctx, 'ctx1> BodyTransCtx<'tcx, 'ctx, 'ctx1> { target, } } - TerminatorKind::Yield { - value: _, - resume: _, - resume_arg: _, - drop: _, - } => { - error_or_panic!(self, rustc_span, "Unsupported terminator: yield"); - } - TerminatorKind::CoroutineDrop => { - error_or_panic!(self, rustc_span, "Unsupported terminator: coroutine drop"); - } TerminatorKind::FalseEdge { real_target, imaginary_target, @@ -1203,6 +1192,15 @@ impl<'tcx, 'ctx, 'ctx1> BodyTransCtx<'tcx, 'ctx, 'ctx1> { TerminatorKind::InlineAsm { .. } => { error_or_panic!(self, rustc_span, "Inline assembly is not supported"); } + TerminatorKind::CoroutineDrop + | TerminatorKind::TailCall { .. } + | TerminatorKind::Yield { .. } => { + error_or_panic!( + self, + rustc_span, + format!("Unsupported terminator: {:?}", terminator.kind) + ); + } }; // Add the span information diff --git a/charon/src/lib.rs b/charon/src/lib.rs index 1e7c9917..beb452cb 100644 --- a/charon/src/lib.rs +++ b/charon/src/lib.rs @@ -19,7 +19,6 @@ #![feature(impl_trait_in_assoc_type)] #![feature(iterator_try_collect)] #![feature(let_chains)] -#![feature(lint_reasons)] #![feature(trait_alias)] #![feature(register_tool)] // For when we use charon on itself :3 diff --git a/charon/tests/crate_data.rs b/charon/tests/crate_data.rs index ea1c2d6f..a374f12c 100644 --- a/charon/tests/crate_data.rs +++ b/charon/tests/crate_data.rs @@ -1,5 +1,4 @@ #![feature(rustc_private)] -#![feature(lint_reasons)] use assert_cmd::prelude::{CommandCargoExt, OutputAssertExt}; use itertools::Itertools; diff --git a/charon/tests/ui/external.out b/charon/tests/ui/external.out index 2cadd5b1..248f1b41 100644 --- a/charon/tests/ui/external.out +++ b/charon/tests/ui/external.out @@ -52,7 +52,7 @@ impl core::clone::impls::{impl core::clone::Clone for u32}#8 : core::clone::Clon fn clone = core::clone::impls::{impl core::clone::Clone for u32}#8::clone } -impl core::marker::{impl core::marker::Copy for u32}#41 : core::marker::Copy +impl core::marker::{impl core::marker::Copy for u32}#40 : core::marker::Copy { parent_clause0 = core::clone::impls::{impl core::clone::Clone for u32}#8 } @@ -75,7 +75,7 @@ impl core::num::nonzero::private::{impl core::marker::Copy for core::num::nonzer impl core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for u32}#20 : core::num::nonzero::ZeroablePrimitive { - parent_clause0 = core::marker::{impl core::marker::Copy for u32}#41 + parent_clause0 = core::marker::{impl core::marker::Copy for u32}#40 parent_clause1 = core::num::nonzero::{impl core::num::nonzero::private::Sealed for u32}#19 parent_clause2 = core::num::nonzero::private::{impl core::marker::Copy for core::num::nonzero::private::NonZeroU32Inner}#12 parent_clause3 = core::num::nonzero::private::{impl core::clone::Clone for core::num::nonzero::private::NonZeroU32Inner}#11 @@ -153,7 +153,7 @@ fn test_crate::use_get<'_0>(@1: &'_0 (core::cell::Cell)) -> u32 let @2: &'_ (core::cell::Cell); // anonymous local @2 := &*(rc@1) - @0 := core::cell::{core::cell::Cell}#10::get[core::marker::{impl core::marker::Copy for u32}#41](move (@2)) + @0 := core::cell::{core::cell::Cell}#10::get[core::marker::{impl core::marker::Copy for u32}#40](move (@2)) drop @2 return } diff --git a/charon/tests/ui/generic-associated-types.out b/charon/tests/ui/generic-associated-types.out index e38151e0..881382ef 100644 --- a/charon/tests/ui/generic-associated-types.out +++ b/charon/tests/ui/generic-associated-types.out @@ -16,7 +16,7 @@ error: Ignoring the following item due to an error: test_crate::{impl#0} 10 | impl<'a, T> LendingIterator for Option<&'a T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -thread 'rustc' panicked at /rustc/6b0f4b5ec3aa707ecaa78230722117324a4ce23c/compiler/rustc_type_ir/src/binder.rs:785:9: +thread 'rustc' panicked at /rustc/730d5d4095a264ef5f7c0a0781eea68c15431d45/compiler/rustc_type_ir/src/binder.rs:783:9: const parameter `'a/#1` ('a/#1/1) out of range when instantiating args=[Self/#0] note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace error: Thread panicked when extracting item `test_crate::LendingIterator::next`. @@ -38,9 +38,10 @@ warning[E9999]: Hax frontend found a projected type with escaping bound vars. Pl - alias_ty: AliasTy { args: [ impl for<'a> FnMut(I::Item<'a>)/#1, - (Alias(Projection, AliasTy { args: [I/#0, '^0.Named(test_crate::for_each::'a, "'a")], def_id: test_crate::LendingIterator::Item }),), + (Alias(Projection, AliasTy { args: [I/#0, '^0.Named(test_crate::for_each::'a, "'a")], def_id: test_crate::LendingIterator::Item, .. }),), ], def_id: core::ops::function::FnOnce::Output, + .. } - alias_kind: Projection - trait_ref: FnMut(I::Item<'a>) as std::ops::FnOnce<(::Item<'a>,)>> @@ -50,17 +51,17 @@ warning[E9999]: Hax frontend found a projected type with escaping bound vars. Pl ) - rebased_generics: [ impl for<'a> FnMut(I::Item<'a>)/#1, - (Alias(Projection, AliasTy { args: [I/#0, '^0.Named(test_crate::for_each::'a, "'a")], def_id: test_crate::LendingIterator::Item }),), - (Alias(Projection, AliasTy { args: [I/#0, '^0.Named(test_crate::for_each::'a, "'a")], def_id: test_crate::LendingIterator::Item }),), + (Alias(Projection, AliasTy { args: [I/#0, '^0.Named(test_crate::for_each::'a, "'a")], def_id: test_crate::LendingIterator::Item, .. }),), + (Alias(Projection, AliasTy { args: [I/#0, '^0.Named(test_crate::for_each::'a, "'a")], def_id: test_crate::LendingIterator::Item, .. }),), ] - norm_rebased_generics: Err( Type( - (Alias(Projection, AliasTy { args: [impl for<'a> FnMut(I::Item<'a>)/#1, '^0.Named(test_crate::for_each::'a, "'a")], def_id: test_crate::LendingIterator::Item }),), + (Alias(Projection, AliasTy { args: [impl for<'a> FnMut(I::Item<'a>)/#1, '^0.Named(test_crate::for_each::'a, "'a")], def_id: test_crate::LendingIterator::Item, .. }),), ), ) - norm_generics: Err( Type( - (Alias(Projection, AliasTy { args: [impl for<'a> FnMut(I::Item<'a>)/#1, '^0.Named(test_crate::for_each::'a, "'a")], def_id: test_crate::LendingIterator::Item }),), + (Alias(Projection, AliasTy { args: [impl for<'a> FnMut(I::Item<'a>)/#1, '^0.Named(test_crate::for_each::'a, "'a")], def_id: test_crate::LendingIterator::Item, .. }),), ), ) - early_binder_generics: Ok( @@ -73,7 +74,7 @@ warning[E9999]: Hax frontend found a projected type with escaping bound vars. Pl = note: ⚠️ This is a bug in Hax's frontend. Please report this error to https://github.com/hacspec/hax/issues with some context (e.g. the current crate)! -thread 'rustc' panicked at /rustc/6b0f4b5ec3aa707ecaa78230722117324a4ce23c/compiler/rustc_type_ir/src/binder.rs:785:9: +thread 'rustc' panicked at /rustc/730d5d4095a264ef5f7c0a0781eea68c15431d45/compiler/rustc_type_ir/src/binder.rs:783:9: const parameter `'a/#1` ('a/#1/1) out of range when instantiating args=[I/#0] error: Thread panicked when extracting item `test_crate::for_each`. --> tests/ui/generic-associated-types.rs:24:1 @@ -97,5 +98,4 @@ warning: unused variable: `x` error: aborting due to 6 previous errors; 2 warnings emitted -[ERROR charon_driver:249] Compilation encountered 6 errors -Error: Charon driver exited with code 1 +Error: Charon driver exited with code 101 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 df76c552..a9cbc08d 100644 --- a/charon/tests/ui/issue-4-slice-try-into-array.out +++ b/charon/tests/ui/issue-4-slice-try-into-array.out @@ -63,7 +63,7 @@ impl core::clone::impls::{impl core::clone::Clone for u8}#6 : core::clone::Clone fn clone = core::clone::impls::{impl core::clone::Clone for u8}#6::clone } -impl core::marker::{impl core::marker::Copy for u8}#39 : core::marker::Copy +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 } @@ -102,7 +102,7 @@ fn test_crate::trait_error<'_0>(@1: &'_0 (Slice)) let @5: (); // anonymous local @4 := &*(s@1) - @3 := core::convert::{impl core::convert::TryInto for T}#6<&'_ (Slice), Array>[core::array::{impl core::convert::TryFrom<&'_0 (Slice)> for Array}#7<'_, u8, 4 : usize>[core::marker::{impl core::marker::Copy for u8}#39]]::try_into(move (@4)) + @3 := core::convert::{impl core::convert::TryInto for T}#6<&'_ (Slice), Array>[core::array::{impl core::convert::TryFrom<&'_0 (Slice)> for Array}#7<'_, u8, 4 : usize>[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](move (@3)) drop @3 diff --git a/charon/tests/ui/issue-4-traits.out b/charon/tests/ui/issue-4-traits.out index df76c552..a9cbc08d 100644 --- a/charon/tests/ui/issue-4-traits.out +++ b/charon/tests/ui/issue-4-traits.out @@ -63,7 +63,7 @@ impl core::clone::impls::{impl core::clone::Clone for u8}#6 : core::clone::Clone fn clone = core::clone::impls::{impl core::clone::Clone for u8}#6::clone } -impl core::marker::{impl core::marker::Copy for u8}#39 : core::marker::Copy +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 } @@ -102,7 +102,7 @@ fn test_crate::trait_error<'_0>(@1: &'_0 (Slice)) let @5: (); // anonymous local @4 := &*(s@1) - @3 := core::convert::{impl core::convert::TryInto for T}#6<&'_ (Slice), Array>[core::array::{impl core::convert::TryFrom<&'_0 (Slice)> for Array}#7<'_, u8, 4 : usize>[core::marker::{impl core::marker::Copy for u8}#39]]::try_into(move (@4)) + @3 := core::convert::{impl core::convert::TryInto for T}#6<&'_ (Slice), Array>[core::array::{impl core::convert::TryFrom<&'_0 (Slice)> for Array}#7<'_, u8, 4 : usize>[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](move (@3)) drop @3 diff --git a/charon/tests/ui/issue-45-misc.out b/charon/tests/ui/issue-45-misc.out index 6b568c39..8ea55012 100644 --- a/charon/tests/ui/issue-45-misc.out +++ b/charon/tests/ui/issue-45-misc.out @@ -301,7 +301,7 @@ impl core::clone::impls::{impl core::clone::Clone for usize}#5 : core::clone::Cl fn clone = core::clone::impls::{impl core::clone::Clone for usize}#5::clone } -impl core::marker::{impl core::marker::Copy for usize}#38 : core::marker::Copy +impl core::marker::{impl core::marker::Copy for usize}#37 : core::marker::Copy { parent_clause0 = core::clone::impls::{impl core::clone::Clone for usize}#5 } @@ -324,7 +324,7 @@ impl core::num::nonzero::private::{impl core::marker::Copy for core::num::nonzer impl core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26 : core::num::nonzero::ZeroablePrimitive { - parent_clause0 = core::marker::{impl core::marker::Copy for usize}#38 + parent_clause0 = core::marker::{impl core::marker::Copy for usize}#37 parent_clause1 = core::num::nonzero::{impl core::num::nonzero::private::Sealed for usize}#25 parent_clause2 = core::num::nonzero::private::{impl core::marker::Copy for core::num::nonzero::private::NonZeroUsizeInner}#27 parent_clause3 = core::num::nonzero::private::{impl core::clone::Clone for core::num::nonzero::private::NonZeroUsizeInner}#26 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 367cc6c6..22f28be6 100644 --- a/charon/tests/ui/issue-91-enum-to-discriminant-cast.out +++ b/charon/tests/ui/issue-91-enum-to-discriminant-cast.out @@ -6,5 +6,4 @@ error: Unsupported statement kind: intrinsic error: aborting due to 1 previous error -[ERROR charon_driver:249] Compilation encountered 1 errors -Error: Charon driver exited with code 1 +Error: Charon driver exited with code 101 diff --git a/charon/tests/ui/loops.out b/charon/tests/ui/loops.out index c365defc..9bfa6a6d 100644 --- a/charon/tests/ui/loops.out +++ b/charon/tests/ui/loops.out @@ -1030,7 +1030,7 @@ impl core::clone::impls::{impl core::clone::Clone for usize}#5 : core::clone::Cl fn clone = core::clone::impls::{impl core::clone::Clone for usize}#5::clone } -impl core::marker::{impl core::marker::Copy for usize}#38 : core::marker::Copy +impl core::marker::{impl core::marker::Copy for usize}#37 : core::marker::Copy { parent_clause0 = core::clone::impls::{impl core::clone::Clone for usize}#5 } @@ -1053,7 +1053,7 @@ impl core::num::nonzero::private::{impl core::marker::Copy for core::num::nonzer impl core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26 : core::num::nonzero::ZeroablePrimitive { - parent_clause0 = core::marker::{impl core::marker::Copy for usize}#38 + parent_clause0 = core::marker::{impl core::marker::Copy for usize}#37 parent_clause1 = core::num::nonzero::{impl core::num::nonzero::private::Sealed for usize}#25 parent_clause2 = core::num::nonzero::private::{impl core::marker::Copy for core::num::nonzero::private::NonZeroUsizeInner}#27 parent_clause3 = core::num::nonzero::private::{impl core::clone::Clone for core::num::nonzero::private::NonZeroUsizeInner}#26 diff --git a/charon/tests/ui/matches.out b/charon/tests/ui/matches.out index 87a2efa0..2fba20d9 100644 --- a/charon/tests/ui/matches.out +++ b/charon/tests/ui/matches.out @@ -16,16 +16,8 @@ fn test_crate::test1(@1: test_crate::E1) -> bool 0 | 1 => { @0 := const (true) }, - _ => { - match x@1 { - 2 => { - @0 := const (false) - }, - _ => { - @fake_read(x@1) - undefined_behavior - } - } + 2 => { + @0 := const (false) } } return @@ -65,16 +57,8 @@ fn test_crate::test2(@1: test_crate::E2) -> u32 @0 := copy (n@2) drop n@2 }, - _ => { - match x@1 { - 2 => { - @0 := const (0 : u32) - }, - _ => { - @fake_read(x@1) - undefined_behavior - } - } + 2 => { + @0 := const (0 : u32) } } return @@ -106,16 +90,8 @@ fn test_crate::test3(@1: test_crate::E2) -> u32 y@3 := copy (n@4) drop n@4 }, - _ => { - match x@1 { - 2 => { - y@3 := const (0 : u32) - }, - _ => { - @fake_read(x@1) - undefined_behavior - } - } + 2 => { + y@3 := const (0 : u32) } } @fake_read(y@3) diff --git a/charon/tests/ui/name-matcher-tests.out b/charon/tests/ui/name-matcher-tests.out index ce7d1ae3..89513844 100644 --- a/charon/tests/ui/name-matcher-tests.out +++ b/charon/tests/ui/name-matcher-tests.out @@ -95,28 +95,28 @@ where 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> -fn core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::RangeFrom}#6::get<'_0, T>(@1: core::ops::range::RangeFrom, @2: &'_0 (Slice)) -> core::option::Option<&'_0 (Slice)> +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)> -fn core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::RangeFrom}#6::get_mut<'_0, T>(@1: core::ops::range::RangeFrom, @2: &'_0 mut (Slice)) -> core::option::Option<&'_0 mut (Slice)> +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)> -unsafe fn core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::RangeFrom}#6::get_unchecked(@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}#7::get_unchecked(@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}#6::get_unchecked_mut(@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}#7::get_unchecked_mut(@1: core::ops::range::RangeFrom, @2: *const Slice) -> *const Slice -fn core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::RangeFrom}#6::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}#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}#6::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}#7::index_mut<'_0, T>(@1: core::ops::range::RangeFrom, @2: &'_0 mut (Slice)) -> &'_0 mut (Slice) -impl core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::RangeFrom}#6 : core::slice::index::SliceIndex, Slice> +impl core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::RangeFrom}#7 : core::slice::index::SliceIndex, Slice> { parent_clause0 = core::slice::index::private_slice_index::{impl core::slice::index::private_slice_index::Sealed for core::ops::range::RangeFrom}#3 type Output = Slice - fn get = core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::RangeFrom}#6::get - fn get_mut = core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::RangeFrom}#6::get_mut - fn get_unchecked = core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::RangeFrom}#6::get_unchecked - fn get_unchecked_mut = core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::RangeFrom}#6::get_unchecked_mut - fn index = core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::RangeFrom}#6::index - fn index_mut = core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::RangeFrom}#6::index_mut + 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 core::ops::index::Index::index<'_0, Self, Idx>(@1: &'_0 (Self), @2: Idx) -> &'_0 (Self::Output) @@ -153,7 +153,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::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::RangeFrom}#6]::index(move (@10), move (@11)) + @9 := core::slice::index::{impl core::ops::index::Index for Slice}>[core::slice::index::{impl core::slice::index::SliceIndex> for core::ops::range::RangeFrom}#7]::index(move (@10), move (@11)) drop @11 drop @10 @8 := &*(@9) diff --git a/charon/tests/ui/rename_attribute_failure.out b/charon/tests/ui/rename_attribute_failure.out index ae9c7e1d..6ba02c60 100644 --- a/charon/tests/ui/rename_attribute_failure.out +++ b/charon/tests/ui/rename_attribute_failure.out @@ -36,5 +36,4 @@ error: Error parsing attribute: Unrecognized attribute: `charon::something_else( error: aborting due to 6 previous errors -[ERROR charon_driver:249] Compilation encountered 6 errors -Error: Charon driver exited with code 1 +Error: Charon driver exited with code 101 diff --git a/charon/tests/ui/result-unwrap.out b/charon/tests/ui/result-unwrap.out index 9e0b89fa..e56d8af6 100644 --- a/charon/tests/ui/result-unwrap.out +++ b/charon/tests/ui/result-unwrap.out @@ -57,8 +57,7 @@ where 1 => { e@2 := move ((self@1 as variant @1).0) @5 := &e@2 - @4 := unsize_cast<&'_ (E), &'_ (dyn (exists(TODO)))>(move (@5)) - drop @5 + @4 := unsize_cast<&'_ (E), &'_ (dyn (exists(TODO)))>(copy (@5)) @3 := core::result::unwrap_failed(const ("called `Result::unwrap()` on an `Err` value"), move (@4)) } } diff --git a/charon/tests/ui/trait-instance-id.out b/charon/tests/ui/trait-instance-id.out index 11fded25..6f37519f 100644 --- a/charon/tests/ui/trait-instance-id.out +++ b/charon/tests/ui/trait-instance-id.out @@ -187,7 +187,7 @@ impl core::clone::impls::{impl core::clone::Clone for usize}#5 : core::clone::Cl fn clone = core::clone::impls::{impl core::clone::Clone for usize}#5::clone } -impl core::marker::{impl core::marker::Copy for usize}#38 : core::marker::Copy +impl core::marker::{impl core::marker::Copy for usize}#37 : core::marker::Copy { parent_clause0 = core::clone::impls::{impl core::clone::Clone for usize}#5 } @@ -210,7 +210,7 @@ impl core::num::nonzero::private::{impl core::marker::Copy for core::num::nonzer impl core::num::nonzero::{impl core::num::nonzero::ZeroablePrimitive for usize}#26 : core::num::nonzero::ZeroablePrimitive { - parent_clause0 = core::marker::{impl core::marker::Copy for usize}#38 + parent_clause0 = core::marker::{impl core::marker::Copy for usize}#37 parent_clause1 = core::num::nonzero::{impl core::num::nonzero::private::Sealed for usize}#25 parent_clause2 = core::num::nonzero::private::{impl core::marker::Copy for core::num::nonzero::private::NonZeroUsizeInner}#27 parent_clause3 = core::num::nonzero::private::{impl core::clone::Clone for core::num::nonzero::private::NonZeroUsizeInner}#26 diff --git a/charon/tests/ui/unsupported/advanced-const-generics.out b/charon/tests/ui/unsupported/advanced-const-generics.out index 54e000e3..d983f579 100644 --- a/charon/tests/ui/unsupported/advanced-const-generics.out +++ b/charon/tests/ui/unsupported/advanced-const-generics.out @@ -47,5 +47,4 @@ error: Ignoring the following item due to an error: test_crate::bar error: aborting due to 5 previous errors -[ERROR charon_driver:249] Compilation encountered 4 errors -Error: Charon driver exited with code 1 +Error: Charon driver exited with code 101 diff --git a/charon/tests/ui/unsupported/gat.out b/charon/tests/ui/unsupported/gat.out index 7cd26842..3fa3868d 100644 --- a/charon/tests/ui/unsupported/gat.out +++ b/charon/tests/ui/unsupported/gat.out @@ -1,4 +1,4 @@ -thread 'rustc' panicked at /rustc/6b0f4b5ec3aa707ecaa78230722117324a4ce23c/compiler/rustc_type_ir/src/binder.rs:713:9: +thread 'rustc' panicked at /rustc/730d5d4095a264ef5f7c0a0781eea68c15431d45/compiler/rustc_type_ir/src/binder.rs:711:9: type parameter `T/#1` (T/#1/1) out of range when instantiating, args=[Self/#0] note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace error: Thread panicked when extracting item `test_crate::ArraySize`. @@ -15,5 +15,4 @@ error: Ignoring the following item due to an error: test_crate::ArraySize error: aborting due to 2 previous errors -[ERROR charon_driver:249] Compilation encountered 2 errors -Error: Charon driver exited with code 1 +Error: Charon driver exited with code 101 diff --git a/charon/tests/ui/unsupported/issue-165-vec-macro.out b/charon/tests/ui/unsupported/issue-165-vec-macro.out index 798b1b90..d67e6671 100644 --- a/charon/tests/ui/unsupported/issue-165-vec-macro.out +++ b/charon/tests/ui/unsupported/issue-165-vec-macro.out @@ -8,5 +8,4 @@ error: Nullary operations are not supported error: aborting due to 1 previous error -[ERROR charon_driver:249] Compilation encountered 1 errors -Error: Charon driver exited with code 1 +Error: Charon driver exited with code 101 diff --git a/charon/tests/ui/unsupported/projection-index-from-end.out b/charon/tests/ui/unsupported/projection-index-from-end.out index 60a65d6a..b3e74e3d 100644 --- a/charon/tests/ui/unsupported/projection-index-from-end.out +++ b/charon/tests/ui/unsupported/projection-index-from-end.out @@ -6,5 +6,4 @@ error: Unexpected ProjectionElem::ConstantIndex error: aborting due to 1 previous error -[ERROR charon_driver:249] Compilation encountered 1 errors -Error: Charon driver exited with code 1 +Error: Charon driver exited with code 101 diff --git a/charon/tests/ui/unsupported/unbound-lifetime.out b/charon/tests/ui/unsupported/unbound-lifetime.out index 200afb42..da7a8c5d 100644 --- a/charon/tests/ui/unsupported/unbound-lifetime.out +++ b/charon/tests/ui/unsupported/unbound-lifetime.out @@ -27,5 +27,4 @@ error: Ignoring the following item due to an error: test_crate::get error: aborting due to 3 previous errors For more information about this error, try `rustc --explain E0261`. -[ERROR charon_driver:249] Compilation encountered 2 errors -Error: Charon driver exited with code 1 +Error: Charon driver exited with code 101 diff --git a/charon/tests/ui/unsupported/well-formedness-bound.out b/charon/tests/ui/unsupported/well-formedness-bound.out index 1da14f81..1578f1c0 100644 --- a/charon/tests/ui/unsupported/well-formedness-bound.out +++ b/charon/tests/ui/unsupported/well-formedness-bound.out @@ -14,5 +14,4 @@ error: Ignoring the following item due to an error: test_crate::get error: aborting due to 2 previous errors -[ERROR charon_driver:249] Compilation encountered 2 errors -Error: Charon driver exited with code 1 +Error: Charon driver exited with code 101 diff --git a/flake.lock b/flake.lock index 356b6490..9f3f3d4e 100644 --- a/flake.lock +++ b/flake.lock @@ -84,11 +84,11 @@ ] }, "locked": { - "lastModified": 1719368303, - "narHash": "sha256-vhkKOUs9eOZgcPrA6wMw7a7J48pEjVuhzQfitVwVv1g=", + "lastModified": 1723429325, + "narHash": "sha256-4x/32xTCd+xCwFoI/kKSiCr5LQA2ZlyTRYXKEni5HR8=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "32415b22fd3b454e4a1385af64aa5cef9766ff4c", + "rev": "65e3dc0fe079fe8df087cd38f1fe6836a0373aad", "type": "github" }, "original": { diff --git a/rust-toolchain b/rust-toolchain index 5e72e4a8..54a35769 100644 --- a/rust-toolchain +++ b/rust-toolchain @@ -1,3 +1,3 @@ [toolchain] -channel = "nightly-2024-06-25" +channel = "nightly-2024-08-11" components = [ "rustc-dev", "llvm-tools-preview" ]