Skip to content

ICE: trying to compare incompatible ctors while building rustfmt #78549

Closed
@matthiaskrgr

Description

@matthiaskrgr

Repro

git clone https://github.com/rust-lang/rustfmt
cd rustfmt
git checkout 2d6a968d52b13b75fc3799f50020a34efd480a28
CFG_RELEASE=nightly CFG_RELEASE_CHANNEL=nightly cargo +master check 

Meta

rustc --version --verbose:
rustc is @ 6bdae9e

rustc 1.49.0-nightly (6bdae9edd 2020-10-29)
binary: rustc
commit-hash: 6bdae9edd0cc099daa6038bca469dc09b6fc078a
commit-date: 2020-10-29
host: x86_64-unknown-linux-gnu
release: 1.49.0-nightly

Error output

    Checking rustc-ap-rustc_ast_passes v686.0.0
    Checking rustc-ap-rustc_expand v686.0.0
error: internal compiler error: compiler/rustc_mir_build/src/thir/pattern/_match.rs:934:18: trying to compare incompatible constructors Single and Str(Const { ty: &str, val: Value(Slice { data: Allocation { bytes: [109, 97, 120, 95, 119, 105, 100, 116, 104], relocations: Relocations(SortedMap { data: [] }), init_mask: InitMask { blocks: [511], len: Size { raw: 9 } }, size: Size { raw: 9 }, align: Align { pow2: 0 }, mutability: Not, extra: () }, start: 0, end: 9 }) })

thread 'rustc' panicked at 'Box<Any>', compiler/rustc_errors/src/lib.rs:945:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

note: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md

note: rustc 1.49.0-nightly (6bdae9edd 2020-10-29) running on x86_64-unknown-linux-gnu

note: compiler flags: -C embed-bitcode=no -C debuginfo=2 -C incremental --crate-type lib

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
#0 [check_match] match-checking `config::ConfigSetter::<'a>::max_width`
#1 [analysis] running analysis passes on this crate
end of query stack
error: aborting due to previous error

error: could not compile `rustfmt-nightly`

To learn more, run the command again with --verbose.
Backtrace

error: internal compiler error: compiler/rustc_mir_build/src/thir/pattern/_match.rs:934:18: trying to compare incompatible constructors Single and Str(Const { ty: &str, val: Value(Slice { data: Allocation { bytes: [109, 97, 120, 95, 119, 105, 100, 116, 104], relocations: Relocations(SortedMap { data: [] }), init_mask: InitMask { blocks: [511], len: Size { raw: 9 } }, size: Size { raw: 9 }, align: Align { pow2: 0 }, mutability: Not, extra: () }, start: 0, end: 9 }) })

thread 'rustc' panicked at 'Box<Any>', compiler/rustc_errors/src/lib.rs:945:9
stack backtrace:
   0:     0x7f440e94a5f0 - std::backtrace_rs::backtrace::libunwind::trace::h448c56741b6011d3
                               at /rustc/6bdae9edd0cc099daa6038bca469dc09b6fc078a/library/std/src/../../backtrace/src/backtrace/libunwind.rs:100:5
   1:     0x7f440e94a5f0 - std::backtrace_rs::backtrace::trace_unsynchronized::h881b9d30a8a89a0c
                               at /rustc/6bdae9edd0cc099daa6038bca469dc09b6fc078a/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7f440e94a5f0 - std::sys_common::backtrace::_print_fmt::h720a2f61f75b9f58
                               at /rustc/6bdae9edd0cc099daa6038bca469dc09b6fc078a/library/std/src/sys_common/backtrace.rs:67:5
   3:     0x7f440e94a5f0 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h8d62bbfda6d5c836
                               at /rustc/6bdae9edd0cc099daa6038bca469dc09b6fc078a/library/std/src/sys_common/backtrace.rs:46:22
   4:     0x7f440e9ba52c - core::fmt::write::h1857a60b204f1b6a
                               at /rustc/6bdae9edd0cc099daa6038bca469dc09b6fc078a/library/core/src/fmt/mod.rs:1078:17
   5:     0x7f440e93c252 - std::io::Write::write_fmt::h16a9fe7680ac245c
                               at /rustc/6bdae9edd0cc099daa6038bca469dc09b6fc078a/library/std/src/io/mod.rs:1518:15
   6:     0x7f440e94f5a5 - std::sys_common::backtrace::_print::h9ba51a6db618de7d
                               at /rustc/6bdae9edd0cc099daa6038bca469dc09b6fc078a/library/std/src/sys_common/backtrace.rs:49:5
   7:     0x7f440e94f5a5 - std::sys_common::backtrace::print::h5f20e41c85e91716
                               at /rustc/6bdae9edd0cc099daa6038bca469dc09b6fc078a/library/std/src/sys_common/backtrace.rs:36:9
   8:     0x7f440e94f5a5 - std::panicking::default_hook::{{closure}}::h8d48653392f3b04c
                               at /rustc/6bdae9edd0cc099daa6038bca469dc09b6fc078a/library/std/src/panicking.rs:208:50
   9:     0x7f440e94f248 - std::panicking::default_hook::hb3948d1f74b6ff4c
                               at /rustc/6bdae9edd0cc099daa6038bca469dc09b6fc078a/library/std/src/panicking.rs:227:9
  10:     0x7f440f218988 - rustc_driver::report_ice::h1ddbc5609a6e1f37
  11:     0x7f43ffdb18d6 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hd2c74aab54599340
                               at /home/matthias/.rustup/toolchains/master/lib/rustlib/src/rust/library/alloc/src/boxed.rs:1321:9
  12:     0x7f43ffdcff6b - proc_macro::bridge::client::<impl proc_macro::bridge::Bridge>::enter::{{closure}}::{{closure}}::h364b0f4905eb955d
                               at /home/matthias/.rustup/toolchains/master/lib/rustlib/src/rust/library/proc_macro/src/bridge/client.rs:320:21
  13:     0x7f440e94fea6 - std::panicking::rust_panic_with_hook::h55d23fef0ad751bc
                               at /rustc/6bdae9edd0cc099daa6038bca469dc09b6fc078a/library/std/src/panicking.rs:597:17
  14:     0x7f441221414d - std::panicking::begin_panic::{{closure}}::h4b123e1d8e3ae463
  15:     0x7f4412214086 - std::sys_common::backtrace::__rust_end_short_backtrace::ha21fec08f03d728b
  16:     0x7f441221411f - std::panicking::begin_panic::hc0c81fab1e0acd00
  17:     0x7f4412226080 - rustc_errors::HandlerInner::bug::h26f9bc1a7147687e
  18:     0x7f4412224bd0 - rustc_errors::Handler::bug::h2149bffe74600666
  19:     0x7f4411c826d4 - rustc_middle::util::bug::opt_span_bug_fmt::{{closure}}::hb4ddd0d3902006f3
  20:     0x7f4411c7c1fb - rustc_middle::ty::context::tls::with_opt::{{closure}}::ha7f81bc36cab3c9f
  21:     0x7f4411c7bbb2 - rustc_middle::ty::context::tls::with_opt::hf0c2c2aff96e53ba
  22:     0x7f4411c825f9 - rustc_middle::util::bug::opt_span_bug_fmt::hc7cbb029c2646db9
  23:     0x7f4411c8256e - rustc_middle::util::bug::bug_fmt::hb51c412c48cda8bb
  24:     0x7f4410445238 - rustc_mir_build::thir::pattern::_match::Matrix::specialize_constructor::h36673621382da348
  25:     0x7f441040d98a - <core::iter::adapters::Map<I,F> as core::iter::traits::iterator::Iterator>::try_fold::h8ec38e56f7f75922
  26:     0x7f441044aded - rustc_mir_build::thir::pattern::_match::is_useful::hf8efd6153416cf2d
  27:     0x7f44103df5f8 - <rustc_mir_build::thir::pattern::check_match::MatchVisitor as rustc_hir::intravisit::Visitor>::visit_expr::h865c9f6d42685550
  28:     0x7f44103df27c - <rustc_mir_build::thir::pattern::check_match::MatchVisitor as rustc_hir::intravisit::Visitor>::visit_expr::h865c9f6d42685550
  29:     0x7f44103e83fb - rustc_hir::intravisit::walk_expr::hd0093ab50ae5a8d4
  30:     0x7f44103df27c - <rustc_mir_build::thir::pattern::check_match::MatchVisitor as rustc_hir::intravisit::Visitor>::visit_expr::h865c9f6d42685550
  31:     0x7f44103df27c - <rustc_mir_build::thir::pattern::check_match::MatchVisitor as rustc_hir::intravisit::Visitor>::visit_expr::h865c9f6d42685550
  32:     0x7f44103defa3 - rustc_mir_build::thir::pattern::check_match::check_match::h2d5b60d42651dc41
  33:     0x7f440f46b9c9 - rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::check_match>::compute::h3dd4584521cdb95e
  34:     0x7f440f40b1da - rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps::h95dd3718ab01c33b
  35:     0x7f440f3d0bc9 - rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl::h0352e09bc9ab8a0b
  36:     0x7f440f436ce4 - rustc_data_structures::stack::ensure_sufficient_stack::h3626f02a47d49f69
  37:     0x7f440f3c74b8 - rustc_query_system::query::plumbing::get_query_impl::hfaed35f7e6414273
  38:     0x7f440f3c8832 - rustc_query_system::query::plumbing::ensure_query_impl::ha7327a13b80a3079
  39:     0x7f440f467a79 - rustc_interface::passes::analysis::h78326215bfd650a0
  40:     0x7f440f25791b - rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::analysis>::compute::hf8d4bc54d08537f3
  41:     0x7f440f19d838 - rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps::hcb29c3d8995d5298
  42:     0x7f440f237f24 - rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl::h6d03accb53ed1239
  43:     0x7f440f23419f - rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query::{{closure}}::{{closure}}::{{closure}}::h947bb326d17d8606
  44:     0x7f440f1c1308 - rustc_query_system::query::plumbing::get_query_impl::h448d10ab90370983
  45:     0x7f440f25a9df - rustc_interface::passes::QueryContext::enter::hbf7a36e966e91449
  46:     0x7f440f235826 - rustc_interface::queries::<impl rustc_interface::interface::Compiler>::enter::h25b522245624a405
  47:     0x7f440f1f8eff - rustc_span::with_source_map::h7455fffe3cd153a4
  48:     0x7f440f2309c1 - scoped_tls::ScopedKey<T>::set::h8ae8151712a551fd
  49:     0x7f440f23b0f5 - std::sys_common::backtrace::__rust_begin_short_backtrace::h26de371bc27662fc
  50:     0x7f440f1a2b18 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h80d1a8eb7971174b
  51:     0x7f440e95eeaa - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h9e7afb7a0a438236
                               at /rustc/6bdae9edd0cc099daa6038bca469dc09b6fc078a/library/alloc/src/boxed.rs:1307:9
  52:     0x7f440e95eeaa - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h70c646c4271337a1
                               at /rustc/6bdae9edd0cc099daa6038bca469dc09b6fc078a/library/alloc/src/boxed.rs:1307:9
  53:     0x7f440e95eeaa - std::sys::unix::thread::Thread::new::thread_start::h35d2b8d36f210d02
                               at /rustc/6bdae9edd0cc099daa6038bca469dc09b6fc078a/library/std/src/sys/unix/thread.rs:89:17
  54:     0x7f440e85a3e9 - start_thread
  55:     0x7f440e777293 - __GI___clone
  56:                0x0 - <unknown>

note: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md

note: rustc 1.49.0-nightly (6bdae9edd 2020-10-29) running on x86_64-unknown-linux-gnu

note: compiler flags: -C embed-bitcode=no -C debuginfo=2 -C incremental --crate-type lib

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
#0 [check_match] match-checking `config::ConfigSetter::<'a>::max_width`
#1 [analysis] running analysis passes on this crate
end of query stack
error: aborting due to previous error

error: could not compile `rustfmt-nightly`

To learn more, run the command again with --verbose.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-exhaustiveness-checkingRelating to exhaustiveness / usefulness checking of patternsC-bugCategory: This is a bug.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️P-criticalCritical priorityT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.regression-from-stable-to-nightlyPerformance or correctness regression from stable to nightly.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions