Skip to content

thread 'rustc' panicked at 'Box<Any>' #41210

Closed
@sunjay

Description

@sunjay

I was in the middle of making a big changes to some code when this panic occurred. I was expecting a lot of compiler errors but got a compiler panic instead! 😨

Version Info

$ rustc --version --verbose
rustc 1.16.0 (30cf806ef 2017-03-10)
binary: rustc
commit-hash: 30cf806ef8881c41821fbd43e5cf3699c5290c16
commit-date: 2017-03-10
host: x86_64-unknown-linux-gnu
release: 1.16.0
LLVM version: 3.9
$ cargo --version
cargo-0.17.0-nightly (f9e5481 2017-03-03)

I ran the build with cargo +nightly test and the panic still occurred.

Compiler Output

Run cargo test to get this.

Here's the full output with RUST_BACKTRACE=1:

error[E0412]: cannot find type `ArraySize` in this scope
  --> src/operations/item_type.rs:19:22
   |
19 |         size: Option<ArraySize>,
   |                      ^^^^^^^^^ not found in this scope
   |
   = help: possible candidate is found in another module, you can import it into scope:
             `use operations::scope::ArraySize;`

error[E0412]: cannot find type `TypeId` in this scope
  --> src/core/io/stdio.rs:16:50
   |
16 | fn define_stdin(scope: &mut ScopeStack, u8_type: TypeId) {
   |                                                  ^^^^^^ not found in this scope
   |
   = help: possible candidates are found in other modules, you can import them into scope:
             `use operations::scope::TypeId;`
             `use std::any::TypeId;`

error[E0412]: cannot find type `ArraySize` in this scope
  --> src/operations/item_type.rs:19:22
   |
19 |         size: Option<ArraySize>,
   |                      ^^^^^^^^^ not found in this scope
   |
   = help: possible candidate is found in another module, you can import it into scope:
             `use operations::scope::ArraySize;`

error[E0412]: cannot find type `TypeId` in this scope
  --> src/core/io/stdio.rs:16:50
   |
16 | fn define_stdin(scope: &mut ScopeStack, u8_type: TypeId) {
   |                                                  ^^^^^^ not found in this scope
   |
   = help: possible candidates are found in other modules, you can import them into scope:
             `use operations::scope::TypeId;`
             `use std::any::TypeId;`

error: no associated item named `Type` found for type `operations::scope::ScopeItem` in the current scope
  --> src/operations/type_definition.rs:15:13
   |
15 |             ScopeItem::Type(id) => Ok(id),
   |             ^^^^^^^^^^^^^^^^^^^

error[E0223]: ambiguous associated type
  --> src/operations/type_definition.rs:16:13
   |
16 |             ScopeItem::BuiltInFunction {id, ..} => Ok(id),
   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^ ambiguous associated type
   |
   = note: specify the type using the syntax `<operations::scope::ScopeItem as Trait>::BuiltInFunction`

error: internal compiler error: /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/librustc/middle/mem_categorization.rs:1175: tuple struct pattern didn't resolve to variant or struct Err
  --> src/operations/type_definition.rs:15:13
   |
15 |             ScopeItem::Type(id) => Ok(id),
   |             ^^^^^^^^^^^^^^^^^^^

error: no associated item named `Type` found for type `operations::scope::ScopeItem` in the current scope
  --> src/operations/type_definition.rs:15:13
   |
15 |             ScopeItem::Type(id) => Ok(id),
   |             ^^^^^^^^^^^^^^^^^^^

error[E0223]: ambiguous associated type
  --> src/operations/type_definition.rs:16:13
   |
16 |             ScopeItem::BuiltInFunction {id, ..} => Ok(id),
   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^ ambiguous associated type
   |
   = note: specify the type using the syntax `<operations::scope::ScopeItem as Trait>::BuiltInFunction`

error: internal compiler error: /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/librustc/middle/mem_categorization.rs:1175: tuple struct pattern didn't resolve to variant or struct Err
  --> src/operations/type_definition.rs:15:13
   |
15 |             ScopeItem::Type(id) => Ok(id),
   |             ^^^^^^^^^^^^^^^^^^^

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 'Box<Any>', /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/librustc_errors/lib.rs:375
stack backtrace:
   1:     0x7f862943740c - std::sys::imp::backtrace::tracing::imp::write::hf33ae72d0baa11ed
                        at /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:42
   2:     0x7f86294459ae - std::panicking::default_hook::{{closure}}::h59672b733cc6a455
                        at /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/libstd/panicking.rs:351
   3:     0x7f8629445553 - std::panicking::default_hook::h1670459d2f3f8843
                        at /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/libstd/panicking.rs:361
   4:     0x7f8629445e4b - std::panicking::rust_panic_with_hook::hcf0ddb069e7beee7
                        at /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/libstd/panicking.rs:555
   5:     0x7f86263b79f8 - std::panicking::begin_panic::h7615035f91af0a46
   6:     0x7f8626568165 - rustc::session::opt_span_bug_fmt::{{closure}}::hb8dfe55fdd29ba42
   7:     0x7f8626567c65 - rustc::session::opt_span_bug_fmt::h0cd2e09801797662
   8:     0x7f8626567af4 - rustc::session::span_bug_fmt::hd9d57beec0176564
   9:     0x7f8626522e05 - rustc::middle::mem_categorization::MemCategorizationContext::cat_pattern_::hf9ee6cc28f4950bf
  10:     0x7f8626502fe8 - rustc::middle::expr_use_visitor::ExprUseVisitor::walk_expr::h67cf415f4e516db4
  11:     0x7f8626501e41 - rustc::middle::expr_use_visitor::ExprUseVisitor::consume_body::hf960393f75684590
  12:     0x7f8627e09a1c - <rustc_typeck::check::upvar::AdjustBorrowKind<'a, 'gcx, 'tcx> as rustc::hir::intravisit::Visitor<'gcx>>::visit_fn::hcfd8923185beae25
  13:     0x7f8627da9267 - rustc::hir::intravisit::walk_expr::hb6d0c21c465f62f9
  14:     0x7f8627da8c1e - rustc::hir::intravisit::walk_expr::hb6d0c21c465f62f9
  15:     0x7f8627da8f4e - rustc::hir::intravisit::walk_expr::hb6d0c21c465f62f9
  16:     0x7f8627e08210 - rustc_typeck::check::upvar::<impl rustc_typeck::check::FnCtxt<'a, 'gcx, 'tcx>>::closure_analyze::h260e6c5912cc14b4
  17:     0x7f8627e386a6 - rustc_typeck::check::check_bare_fn::h9f0916104d636ee0
  18:     0x7f8627e35875 - rustc_typeck::check::check_item_bodies::hd9e8c6a8692f314b
  19:     0x7f8627ea3497 - rustc_typeck::check_crate::h8c159f70d1009b33
  20:     0x7f86297e3cd7 - rustc_driver::driver::phase_3_run_analysis_passes::{{closure}}::h040eea107b0d299b
  21:     0x7f86297e06c6 - rustc_driver::driver::phase_3_run_analysis_passes::haec055f3322a38aa
  22:     0x7f86297c4150 - rustc_driver::driver::compile_input::hd9f060ee16a643fb
  23:     0x7f862980e844 - rustc_driver::run_compiler::h762802568c0e140e
  24:     0x7f862971aedb - std::panicking::try::do_call::h935e2f773deaf841
  25:     0x7f862944ec8a - __rust_maybe_catch_panic
                        at /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/libpanic_unwind/lib.rs:98
  26:     0x7f8629743112 - <F as alloc::boxed::FnBox<A>>::call_box::he43811d1f6894655
  27:     0x7f8629444804 - std::sys::imp::thread::Thread::new::thread_start::he668872ac11287ba
                        at /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/liballoc/boxed.rs:624
                        at /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/libstd/sys_common/thread.rs:21
                        at /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/libstd/sys/unix/thread.rs:84
  28:     0x7f8621efe6b9 - start_thread
  29:     0x7f86290fa82c - clone
  30:                0x0 - <unknown>

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 'Box<Any>', /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/librustc_errors/lib.rs:375
stack backtrace:
   1:     0x7ff9adb2440c - std::sys::imp::backtrace::tracing::imp::write::hf33ae72d0baa11ed
                        at /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:42
   2:     0x7ff9adb329ae - std::panicking::default_hook::{{closure}}::h59672b733cc6a455
                        at /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/libstd/panicking.rs:351
   3:     0x7ff9adb32553 - std::panicking::default_hook::h1670459d2f3f8843
                        at /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/libstd/panicking.rs:361
   4:     0x7ff9adb32e4b - std::panicking::rust_panic_with_hook::hcf0ddb069e7beee7
                        at /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/libstd/panicking.rs:555
   5:     0x7ff9aaaa49f8 - std::panicking::begin_panic::h7615035f91af0a46
   6:     0x7ff9aac55165 - rustc::session::opt_span_bug_fmt::{{closure}}::hb8dfe55fdd29ba42
   7:     0x7ff9aac54c65 - rustc::session::opt_span_bug_fmt::h0cd2e09801797662
   8:     0x7ff9aac54af4 - rustc::session::span_bug_fmt::hd9d57beec0176564
   9:     0x7ff9aac0fe05 - rustc::middle::mem_categorization::MemCategorizationContext::cat_pattern_::hf9ee6cc28f4950bf
  10:     0x7ff9aabeffe8 - rustc::middle::expr_use_visitor::ExprUseVisitor::walk_expr::h67cf415f4e516db4
  11:     0x7ff9aabeee41 - rustc::middle::expr_use_visitor::ExprUseVisitor::consume_body::hf960393f75684590
  12:     0x7ff9ac4f6a1c - <rustc_typeck::check::upvar::AdjustBorrowKind<'a, 'gcx, 'tcx> as rustc::hir::intravisit::Visitor<'gcx>>::visit_fn::hcfd8923185beae25
  13:     0x7ff9ac496267 - rustc::hir::intravisit::walk_expr::hb6d0c21c465f62f9
  14:     0x7ff9ac495c1e - rustc::hir::intravisit::walk_expr::hb6d0c21c465f62f9
  15:     0x7ff9ac495f4e - rustc::hir::intravisit::walk_expr::hb6d0c21c465f62f9
  16:     0x7ff9ac4f5210 - rustc_typeck::check::upvar::<impl rustc_typeck::check::FnCtxt<'a, 'gcx, 'tcx>>::closure_analyze::h260e6c5912cc14b4
  17:     0x7ff9ac5256a6 - rustc_typeck::check::check_bare_fn::h9f0916104d636ee0
  18:     0x7ff9ac522875 - rustc_typeck::check::check_item_bodies::hd9e8c6a8692f314b
  19:     0x7ff9ac590497 - rustc_typeck::check_crate::h8c159f70d1009b33
  20:     0x7ff9aded0cd7 - rustc_driver::driver::phase_3_run_analysis_passes::{{closure}}::h040eea107b0d299b
  21:     0x7ff9adecd6c6 - rustc_driver::driver::phase_3_run_analysis_passes::haec055f3322a38aa
  22:     0x7ff9adeb1150 - rustc_driver::driver::compile_input::hd9f060ee16a643fb
  23:     0x7ff9adefb844 - rustc_driver::run_compiler::h762802568c0e140e
  24:     0x7ff9ade07edb - std::panicking::try::do_call::h935e2f773deaf841
  25:     0x7ff9adb3bc8a - __rust_maybe_catch_panic
                        at /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/libpanic_unwind/lib.rs:98
  26:     0x7ff9ade30112 - <F as alloc::boxed::FnBox<A>>::call_box::he43811d1f6894655
  27:     0x7ff9adb31804 - std::sys::imp::thread::Thread::new::thread_start::he668872ac11287ba
                        at /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/liballoc/boxed.rs:624
                        at /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/libstd/sys_common/thread.rs:21
                        at /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/libstd/sys/unix/thread.rs:84
  28:     0x7ff9a65eb6b9 - start_thread
  29:     0x7ff9ad7e782c - clone
  30:                0x0 - <unknown>

error: Could not compile `brain`.
Build failed, waiting for other jobs to finish...
error: build failed

Since I was in the middle of editing, there's no commit to point to, so I just attached my source code as is so you have something to debug. When you download it and run cargo test, the compiler should panic. The repo is called brain-lang/brain.

I don't know how to narrow this issue down, or else I would try to find a smaller example for you. Hope this is good enough.

brain-rustc-panic.zip

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: This is a bug.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions