Skip to content
New issue

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

ICE in deconstruct_pat.rs: Unexpected type for Single constructor #89445

Closed
sunshowers opened this issue Oct 1, 2021 · 2 comments
Closed

ICE in deconstruct_pat.rs: Unexpected type for Single constructor #89445

sunshowers opened this issue Oct 1, 2021 · 2 comments

Comments

@sunshowers
Copy link
Contributor

STR:

git clone https://github.com/facebookincubator/cargo-guppy
cd cargo-guppy
git checkout 6c73fe86e06f60431598c6df8b965b775826a1f7
cargo +nightly check -p guppy-summaries

Error output

error: internal compiler error: compiler/rustc_mir_build/src/thir/pattern/deconstruct_pat.rs:1191:22: Unexpected type for `Single` constructor: <summary::PackageInfo as diffus::Diffable>::Diff

thread 'rustc' panicked at 'Box<dyn Any>', compiler/rustc_errors/src/lib.rs:1146: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.57.0-nightly (aa7aca3b9 2021-09-30) 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 `diff::<impl at guppy-summaries/src/diff.rs:123:1: 236:2>::new`
#1 [analysis] running analysis passes on this crate
end of query stack
Backtrace

   0: std::panicking::begin_panic
   1: std::panic::panic_any
   2: rustc_errors::HandlerInner::bug
   3: rustc_errors::Handler::bug
   4: rustc_middle::ty::context::tls::with_opt
   5: rustc_middle::util::bug::opt_span_bug_fmt
   6: rustc_middle::util::bug::bug_fmt
   7: rustc_mir_build::thir::pattern::deconstruct_pat::DeconstructedPat::specialize
   8: rustc_mir_build::thir::pattern::usefulness::is_useful
   9: rustc_mir_build::thir::pattern::usefulness::is_useful
  10: rustc_mir_build::thir::pattern::usefulness::compute_match_usefulness
  11: <rustc_mir_build::thir::pattern::check_match::MatchVisitor as rustc_hir::intravisit::Visitor>::visit_expr
  12: <rustc_mir_build::thir::pattern::check_match::MatchVisitor as rustc_hir::intravisit::Visitor>::visit_expr
  13: <rustc_mir_build::thir::pattern::check_match::MatchVisitor as rustc_hir::intravisit::Visitor>::visit_expr
  14: <rustc_mir_build::thir::pattern::check_match::MatchVisitor as rustc_hir::intravisit::Visitor>::visit_expr
  15: <rustc_mir_build::thir::pattern::check_match::MatchVisitor as rustc_hir::intravisit::Visitor>::visit_expr
  16: <rustc_mir_build::thir::pattern::check_match::MatchVisitor as rustc_hir::intravisit::Visitor>::visit_expr
  17: <rustc_mir_build::thir::pattern::check_match::MatchVisitor as rustc_hir::intravisit::Visitor>::visit_expr
  18: <rustc_mir_build::thir::pattern::check_match::MatchVisitor as rustc_hir::intravisit::Visitor>::visit_expr
  19: rustc_mir_build::thir::pattern::check_match::check_match
  20: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task
  21: rustc_data_structures::stack::ensure_sufficient_stack
  22: rustc_query_system::query::plumbing::try_execute_query
  23: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::check_match
  24: rustc_middle::ty::<impl rustc_middle::ty::context::TyCtxt>::par_body_owners
  25: rustc_session::utils::<impl rustc_session::session::Session>::time
  26: rustc_session::utils::<impl rustc_session::session::Session>::time
  27: rustc_interface::passes::analysis
  28: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task
  29: rustc_data_structures::stack::ensure_sufficient_stack
  30: rustc_query_system::query::plumbing::try_execute_query
  31: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::analysis
  32: rustc_interface::queries::<impl rustc_interface::interface::Compiler>::enter
  33: rustc_span::with_source_map
  34: scoped_tls::ScopedKey<T>::set

This bisected to #88950.

searched nightlies: from nightly-2021-08-01 to nightly-2021-10-01
regressed nightly: nightly-2021-09-30
searched commits: from 8f8092c to 1149193
regressed commit: 6df1d82

bisected with cargo-bisect-rustc v0.6.0

Host triple: x86_64-unknown-linux-gnu
Reproduce with:

cargo bisect-rustc --start=2021-08-01 -- check -p guppy-summaries 
@eddyb
Copy link
Member

eddyb commented Oct 1, 2021

cc @Nadrieril To me <summary::PackageInfo as diffus::Diffable>::Diff looks like a missing normalization.

@sunshowers
Copy link
Contributor Author

Ahh, looks like a duplicate of #89393

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants