Skip to content

ICE in 1.60.0-beta.1: thread 'rustc' panicked at 'Box<dyn Any>', compiler/rustc_errors/src/lib.rs:1160:9 #94291

Closed
@edmorley

Description

@edmorley

Code

https://play.rust-lang.org/?version=nightly&mode=debug&edition=2021&gist=8246316eaa144bdcfc3f421aa56fd785

use std::collections::VecDeque;

pub struct BuildPlanBuilder {
    acc: VecDeque<(String, String)>,
    current_provides: String,
    current_requires: String,
}

impl BuildPlanBuilder {
    pub fn or(&mut self) -> &mut Self {
        self.acc
            .push_back(self.current_provides, self.current_requires);
        // ...
        self
    }
}

Note: In the example above, there are parens missing around the tuple being passed to .push_back(), which once added in, resolves the ICE.

Meta

rustc --version --verbose:

rustc 1.60.0-beta.1 (0a4f984a8 2022-02-22)
binary: rustc
commit-hash: 0a4f984a87c7ba6c74ec3e78442fec955a419e32
commit-date: 2022-02-22
host: x86_64-apple-darwin
release: 1.60.0-beta.1
LLVM version: 14.0.0

This also reproduces using nightly on playground:
rustc 1.61.0-nightly (68369a041 2022-02-22) running on x86_64-unknown-linux-gnu

Error output

$ cargo check
...
error: internal compiler error: compiler/rustc_typeck/src/check/fn_ctxt/_impl.rs:318:26: while adjusting Expr { hir_id: HirId { owner: DefId(0:11 ~ testcase[ccae]::{impl#0}::or), local_id: 8 }, kind: Path(Resolved(None, Path { span: src/main.rs:12:24: 12:28 (#0), res: Local(HirId { owner: DefId(0:11 ~ testcase[ccae]::{impl#0}::or), local_id: 2 }), segments: [PathSegment { ident: self#0, hir_id: Some(HirId { owner: DefId(0:11 ~ testcase[ccae]::{impl#0}::or), local_id: 7 }), res: Some(Local(HirId { owner: DefId(0:11 ~ testcase[ccae]::{impl#0}::or), local_id: 2 })), args: None, infer_args: true }] })), span: src/main.rs:12:24: 12:28 (#0) }, can't compose [Deref(None) -> BuildPlanBuilder] and [Deref(None) -> BuildPlanBuilder]

thread 'rustc' panicked at 'Box<dyn Any>', compiler/rustc_errors/src/lib.rs:1160:9
Backtrace

stack backtrace:
   0:        0x101ec0931 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h2c6bfa9583f55670
   1:        0x101f1673b - core::fmt::write::h7b8221f61225c332
   2:        0x101eb1ade - std::io::Write::write_fmt::hc0333143931a574a
   3:        0x101ec4cb0 - std::panicking::default_hook::{{closure}}::h7dd014f3aae9b77c
   4:        0x101ec4994 - std::panicking::default_hook::ha78dd79e768f2753
   5:        0x112ce6e2a - rustc_driver[29a75661ecaf6b4c]::DEFAULT_HOOK::{closure#0}::{closure#0}
   6:        0x101ec557c - std::panicking::rust_panic_with_hook::h0630d39009e15b1a
   7:        0x117488c47 - std[7f8020145a6ee860]::panicking::begin_panic::<rustc_errors[433cd6a44670cdf3]::ExplicitBug>::{closure#0}
   8:        0x117488bf9 - std[7f8020145a6ee860]::sys_common::backtrace::__rust_end_short_backtrace::<std[7f8020145a6ee860]::panicking::begin_panic<rustc_errors[433cd6a44670cdf3]::ExplicitBug>::{closure#0}, !>
   9:        0x1177c7531 - std[7f8020145a6ee860]::panicking::begin_panic::<rustc_errors[433cd6a44670cdf3]::ExplicitBug>
  10:        0x1174c1420 - std[7f8020145a6ee860]::panic::panic_any::<rustc_errors[433cd6a44670cdf3]::ExplicitBug>
  11:        0x1174be51f - <rustc_errors[433cd6a44670cdf3]::HandlerInner>::bug
  12:        0x1174bc651 - <rustc_errors[433cd6a44670cdf3]::Handler>::bug
  13:        0x1171a58e4 - rustc_middle[3c29833e5b151737]::ty::context::tls::with_opt::<rustc_middle[3c29833e5b151737]::util::bug::opt_span_bug_fmt<rustc_span[546498272619ff06]::span_encoding::Span>::{closure#0}, ()>
  14:        0x1171a597b - rustc_middle[3c29833e5b151737]::util::bug::opt_span_bug_fmt::<rustc_span[546498272619ff06]::span_encoding::Span>
  15:        0x1177b7206 - rustc_middle[3c29833e5b151737]::util::bug::bug_fmt
  16:        0x115887e28 - <rustc_typeck[18c6c2d659b9fd2e]::check::fn_ctxt::FnCtxt>::apply_adjustments
  17:        0x115841dfa - <rustc_typeck[18c6c2d659b9fd2e]::check::fn_ctxt::FnCtxt>::check_field
  18:        0x11583b3b5 - <rustc_typeck[18c6c2d659b9fd2e]::check::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  19:        0x11584b7c9 - <rustc_typeck[18c6c2d659b9fd2e]::check::fn_ctxt::FnCtxt>::check_argument_types
  20:        0x11584a25c - <rustc_typeck[18c6c2d659b9fd2e]::check::fn_ctxt::FnCtxt>::check_method_argument_types
  21:        0x115884dd3 - <rustc_typeck[18c6c2d659b9fd2e]::check::fn_ctxt::FnCtxt>::check_expr_kind
  22:        0x11583b3b5 - <rustc_typeck[18c6c2d659b9fd2e]::check::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  23:        0x11584f30c - <rustc_typeck[18c6c2d659b9fd2e]::check::fn_ctxt::FnCtxt>::check_stmt
  24:        0x11584fc97 - <rustc_typeck[18c6c2d659b9fd2e]::check::fn_ctxt::FnCtxt>::check_block_with_expected
  25:        0x11583b3b5 - <rustc_typeck[18c6c2d659b9fd2e]::check::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  26:        0x11583c176 - <rustc_typeck[18c6c2d659b9fd2e]::check::fn_ctxt::FnCtxt>::check_return_expr
  27:        0x115a91d14 - rustc_typeck[18c6c2d659b9fd2e]::check::check::check_fn
  28:        0x115979cb4 - <rustc_infer[6184ae6860a61da1]::infer::InferCtxtBuilder>::enter::<&rustc_middle[3c29833e5b151737]::ty::context::TypeckResults, <rustc_typeck[18c6c2d659b9fd2e]::check::inherited::InheritedBuilder>::enter<rustc_typeck[18c6c2d659b9fd2e]::check::typeck_with_fallback<rustc_typeck[18c6c2d659b9fd2e]::check::typeck::{closure#0}>::{closure#1}, &rustc_middle[3c29833e5b151737]::ty::context::TypeckResults>::{closure#0}>
  29:        0x1159243ed - rustc_typeck[18c6c2d659b9fd2e]::check::typeck
  30:        0x1165e2839 - <rustc_query_system[2bc9e46b7784aabd]::dep_graph::graph::DepGraph<rustc_middle[3c29833e5b151737]::dep_graph::dep_node::DepKind>>::with_task::<rustc_middle[3c29833e5b151737]::ty::context::TyCtxt, rustc_span[546498272619ff06]::def_id::LocalDefId, &rustc_middle[3c29833e5b151737]::ty::context::TypeckResults>
  31:        0x116766c22 - rustc_data_structures[1faf00faa2f06afe]::stack::ensure_sufficient_stack::<(&rustc_middle[3c29833e5b151737]::ty::context::TypeckResults, rustc_query_system[2bc9e46b7784aabd]::dep_graph::graph::DepNodeIndex), rustc_query_system[2bc9e46b7784aabd]::query::plumbing::execute_job<rustc_query_impl[7ede96447151a31d]::plumbing::QueryCtxt, rustc_span[546498272619ff06]::def_id::LocalDefId, &rustc_middle[3c29833e5b151737]::ty::context::TypeckResults>::{closure#3}>
  32:        0x1163a18da - rustc_query_system[2bc9e46b7784aabd]::query::plumbing::try_execute_query::<rustc_query_impl[7ede96447151a31d]::plumbing::QueryCtxt, rustc_query_system[2bc9e46b7784aabd]::query::caches::DefaultCache<rustc_span[546498272619ff06]::def_id::LocalDefId, &rustc_middle[3c29833e5b151737]::ty::context::TypeckResults>>
  33:        0x116490d6e - rustc_query_system[2bc9e46b7784aabd]::query::plumbing::get_query::<rustc_query_impl[7ede96447151a31d]::queries::typeck, rustc_query_impl[7ede96447151a31d]::plumbing::QueryCtxt>
  34:        0x1159d8a28 - <rustc_middle[3c29833e5b151737]::hir::map::Map>::par_body_owners::<rustc_typeck[18c6c2d659b9fd2e]::check::typeck_item_bodies::{closure#0}>
  35:        0x1159290c5 - rustc_typeck[18c6c2d659b9fd2e]::check::typeck_item_bodies
  36:        0x116627208 - <rustc_query_system[2bc9e46b7784aabd]::dep_graph::graph::DepGraph<rustc_middle[3c29833e5b151737]::dep_graph::dep_node::DepKind>>::with_task::<rustc_middle[3c29833e5b151737]::ty::context::TyCtxt, (), ()>
  37:        0x11676b987 - rustc_data_structures[1faf00faa2f06afe]::stack::ensure_sufficient_stack::<((), rustc_query_system[2bc9e46b7784aabd]::dep_graph::graph::DepNodeIndex), rustc_query_system[2bc9e46b7784aabd]::query::plumbing::execute_job<rustc_query_impl[7ede96447151a31d]::plumbing::QueryCtxt, (), ()>::{closure#3}>
  38:        0x1163fc301 - rustc_query_system[2bc9e46b7784aabd]::query::plumbing::try_execute_query::<rustc_query_impl[7ede96447151a31d]::plumbing::QueryCtxt, rustc_query_system[2bc9e46b7784aabd]::query::caches::DefaultCache<(), ()>>
  39:        0x116470b48 - rustc_query_system[2bc9e46b7784aabd]::query::plumbing::get_query::<rustc_query_impl[7ede96447151a31d]::queries::typeck_item_bodies, rustc_query_impl[7ede96447151a31d]::plumbing::QueryCtxt>
  40:        0x11593c811 - <rustc_session[313880d72d209f1e]::session::Session>::time::<(), rustc_typeck[18c6c2d659b9fd2e]::check_crate::{closure#7}>
  41:        0x115918f88 - rustc_typeck[18c6c2d659b9fd2e]::check_crate
  42:        0x112df171a - rustc_interface[fc3b1e0a542d811d]::passes::analysis
  43:        0x11661a56c - <rustc_query_system[2bc9e46b7784aabd]::dep_graph::graph::DepGraph<rustc_middle[3c29833e5b151737]::dep_graph::dep_node::DepKind>>::with_task::<rustc_middle[3c29833e5b151737]::ty::context::TyCtxt, (), core[865dbc4a436edfcf]::result::Result<(), rustc_errors[433cd6a44670cdf3]::ErrorReported>>
  44:        0x11675c985 - rustc_data_structures[1faf00faa2f06afe]::stack::ensure_sufficient_stack::<(core[865dbc4a436edfcf]::result::Result<(), rustc_errors[433cd6a44670cdf3]::ErrorReported>, rustc_query_system[2bc9e46b7784aabd]::dep_graph::graph::DepNodeIndex), rustc_query_system[2bc9e46b7784aabd]::query::plumbing::execute_job<rustc_query_impl[7ede96447151a31d]::plumbing::QueryCtxt, (), core[865dbc4a436edfcf]::result::Result<(), rustc_errors[433cd6a44670cdf3]::ErrorReported>>::{closure#3}>
  45:        0x1163f0792 - rustc_query_system[2bc9e46b7784aabd]::query::plumbing::try_execute_query::<rustc_query_impl[7ede96447151a31d]::plumbing::QueryCtxt, rustc_query_system[2bc9e46b7784aabd]::query::caches::DefaultCache<(), core[865dbc4a436edfcf]::result::Result<(), rustc_errors[433cd6a44670cdf3]::ErrorReported>>>
  46:        0x116491165 - rustc_query_system[2bc9e46b7784aabd]::query::plumbing::get_query::<rustc_query_impl[7ede96447151a31d]::queries::analysis, rustc_query_impl[7ede96447151a31d]::plumbing::QueryCtxt>
  47:        0x112cd8ef6 - <rustc_interface[fc3b1e0a542d811d]::passes::QueryContext>::enter::<rustc_driver[29a75661ecaf6b4c]::run_compiler::{closure#1}::{closure#2}::{closure#3}, core[865dbc4a436edfcf]::result::Result<(), rustc_errors[433cd6a44670cdf3]::ErrorReported>>
  48:        0x112c86488 - rustc_interface[fc3b1e0a542d811d]::interface::create_compiler_and_run::<core[865dbc4a436edfcf]::result::Result<(), rustc_errors[433cd6a44670cdf3]::ErrorReported>, rustc_driver[29a75661ecaf6b4c]::run_compiler::{closure#1}>
  49:        0x112c6b1af - std[7f8020145a6ee860]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[fc3b1e0a542d811d]::util::run_in_thread_pool_with_globals<rustc_interface[fc3b1e0a542d811d]::interface::run_compiler<core[865dbc4a436edfcf]::result::Result<(), rustc_errors[433cd6a44670cdf3]::ErrorReported>, rustc_driver[29a75661ecaf6b4c]::run_compiler::{closure#1}>::{closure#0}, core[865dbc4a436edfcf]::result::Result<(), rustc_errors[433cd6a44670cdf3]::ErrorReported>>::{closure#0}, core[865dbc4a436edfcf]::result::Result<(), rustc_errors[433cd6a44670cdf3]::ErrorReported>>
  50:        0x112cf0951 - <<std[7f8020145a6ee860]::thread::Builder>::spawn_unchecked_<rustc_interface[fc3b1e0a542d811d]::util::run_in_thread_pool_with_globals<rustc_interface[fc3b1e0a542d811d]::interface::run_compiler<core[865dbc4a436edfcf]::result::Result<(), rustc_errors[433cd6a44670cdf3]::ErrorReported>, rustc_driver[29a75661ecaf6b4c]::run_compiler::{closure#1}>::{closure#0}, core[865dbc4a436edfcf]::result::Result<(), rustc_errors[433cd6a44670cdf3]::ErrorReported>>::{closure#0}, core[865dbc4a436edfcf]::result::Result<(), rustc_errors[433cd6a44670cdf3]::ErrorReported>>::{closure#1} as core[865dbc4a436edfcf]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  51:        0x101ed2ba7 - std::sys::unix::thread::Thread::new::thread_start::ha11ef5e652bceddf
  52:     0x7ff81aaa84f4 - __pthread_start

query stack during panic:
#0 [typeck] type-checking `<impl at src/main.rs:9:1: 16:2>::or`
#1 [typeck_item_bodies] type-checking all item bodies
#2 [analysis] running analysis passes on this crate
end of query stack

Metadata

Metadata

Assignees

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.glacierICE tracked in rust-lang/glacier.

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions