We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
I tried this code:
enum Foo { NotLast(Box<Foo>), Last(u32) } fn x(tree: &mut Foo) { let mut current = tree; loop { match current { &mut Foo::NotLast(ref mut inner) => { current = &mut *inner; }, &mut Foo::Last(ref mut val) => { *val = 1; }, } } } fn main() {}
And got the following message:
error.rs:11:31: 11:44 error: cannot borrow `current.0` as mutable more than once at a time error.rs:11 &mut Foo::NotLast(ref mut inner) => { ^~~~~~~~~~~~~ error.rs:11:31: 11:44 note: previous borrow of `current.0` occurs here; the mutable borrow prevents subsequent moves, borrows, or modification of `current.0` until the borrow ends error.rs:11 &mut Foo::NotLast(ref mut inner) => { ^~~~~~~~~~~~~ error.rs:19:2: 19:2 note: previous borrow ends here error.rs:6 fn x(tree: &mut Foo) { ... error.rs:19 } ^ error.rs:12:17: 12:38 error: cannot assign to `current` because it is borrowed error.rs:12 current = &mut *inner; ^~~~~~~~~~~~~~~~~~~~~ error.rs:11:31: 11:44 note: borrow of `current` occurs here error.rs:11 &mut Foo::NotLast(ref mut inner) => { ^~~~~~~~~~~~~ error: internal compiler error: unexpected panic note: the compiler unexpectedly panicked. this is a bug. note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports note: run with `RUST_BACKTRACE=1` for a backtrace thread 'rustc' panicked at 'assertion failed: `(left == right) && (right == left)` (left: `TyS { sty: ty_uint(u32), flags: 0, region_depth: 0 }`, right: `TyS { sty: ty_uniq(TyS { sty: ty_enum(DefId { krate: 0, node: 4 }, Substs { types: VecPerParamSpace {TypeSpace: [], SelfSpace: [], FnSpace: [], }, regions: NonerasedRegions(VecPerParamSpace {TypeSpace: [], SelfSpace: [], FnSpace: [], }) }), flags: 0, region_depth: 0 }), flags: 0, region_depth: 0 }`)', /tmp/portage/dev-lang/rust-1.0.0_alpha2/work/rustc-1.0.0-alpha.2/src/librustc_borrowck/borrowck/mod.rs:402
The snippet is probably wrong, but the assert should not fail
rustc 1.0.0-dev (built 2015-02-28) binary: rustc commit-hash: unknown commit-date: unknown build-date: 2015-02-28 host: x86_64-unknown-linux-gnu release: 1.0.0-dev
Backtrace:
1: 0x7fe4742d3c20 - sys::backtrace::write::h6db1343660ca93a2KlC 2: 0x7fe4742f9900 - <unknown> 3: 0x7fe474244d80 - rt::unwind::begin_unwind_inner::h734e583390472682RBL 4: 0x7fe474245220 - rt::unwind::begin_unwind_fmt::hdaef33c302b47274nAL 5: 0x7fe473478670 - <unknown> 6: 0x7fe473476f70 - <unknown> 7: 0x7fe473476e90 - <unknown> 8: 0x7fe473463640 - borrowck::check_loans::CheckLoanCtxt<'a, 'tcx>.euv..Delegate<'tcx>::borrow::h2a13ad241eee66d6cja 9: 0x7fe47346e160 - <unknown> 10: 0x7fe47346e160 - <unknown> 11: 0x7fe47346e160 - <unknown> 12: 0x7fe47346dff0 - <unknown> 13: 0x7fe473472670 - <unknown> 14: 0x7fe4734761d0 - <unknown> 15: 0x7fe473472670 - <unknown> 16: 0x7fe4734761d0 - <unknown> 17: 0x7fe47348e560 - <unknown> 18: 0x7fe47348fa00 - <unknown> 19: 0x7fe47348f450 - borrowck::check_crate::hdf41b3c11cb3508fzRe 20: 0x7fe4748df1b0 - driver::phase_3_run_analysis_passes::h025b35dbe058134fgHa 21: 0x7fe4748c5610 - driver::compile_input::ha5d27daf21872ba2Gba 22: 0x7fe474993b50 - run_compiler::he50deb5aedf688fcZbc 23: 0x7fe474992480 - <unknown> 24: 0x7fe474991370 - <unknown> 25: 0x7fe474356bc0 - <unknown> 26: 0x7fe474356bb0 - rust_try 27: 0x7fe474991670 - <unknown> 28: 0x7fe4742e7650 - <unknown> 29: 0x7fe46ef4bf40 - <unknown> 30: 0x7fe473eca7d9 - clone 31: 0x0 - <unknown>
The text was updated successfully, but these errors were encountered:
Visiting for triage: this is still an issue
Sorry, something went wrong.
23175
689af05
See rust-lang/rust#23175
Duplicate of #27844.
No branches or pull requests
I tried this code:
And got the following message:
The snippet is probably wrong, but the assert should not fail
Meta
Backtrace:
The text was updated successfully, but these errors were encountered: