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 on checking function arguments #96638

Closed
flip1995 opened this issue May 2, 2022 · 3 comments · Fixed by #96823 or #96891
Closed

ICE on checking function arguments #96638

flip1995 opened this issue May 2, 2022 · 3 comments · Fixed by #96823 or #96891
Labels
C-bug Category: This is a bug. glacier ICE tracked in rust-lang/glacier. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ regression-from-stable-to-nightly Performance or correctness regression from stable to nightly. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@flip1995
Copy link
Member

flip1995 commented May 2, 2022

PR introducing this ICE: #92364
cc @jackh726

Line producing this ICE:

let Error::Invalid(input_idx, Compatibility::Incompatible(error)) = error else { return false };
let expected_ty = expected_input_tys[*input_idx];
let provided_ty = final_arg_types[*input_idx].map(|ty| ty.0).unwrap();

My attempt at an explanation: #92364 (comment)

First discovered by Clippy's integration tests: https://github.com/rust-lang/rust-clippy/runs/6212887812?check_suite_focus=true#step:7:22

Can also be reproduced by running cargo +nightly-2022-05-01 check --all-targets --all-features on chalk.

Code

fn f(_: usize, _: &usize, _: usize) {}

fn arg<T>() -> T { todo!() }

fn main() {
    let x = arg(); // `x` must be inferred
    f(&x, ""); // The reference on `&x` is important to reproduce the ICE
}

Meta

rustc --version --verbose:

rustc 1.62.0-nightly (4dd8b420c 2022-05-01)
binary: rustc
commit-hash: 4dd8b420c027001e47b0d811a7e55e2fe1de1395
commit-date: 2022-05-01
host: x86_64-unknown-linux-gnu
release: 1.62.0-nightly
LLVM version: 14.0.1

Error output

thread 'rustc' panicked at 'index out of bounds: the len is 2 but the index is 2', compiler/rustc_typeck/src/check/fn_ctxt/checks.rs:432:35
Backtrace

stack backtrace:
   0:     0x7f3fd53aa07d - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h9c26f6d747d94a70
   1:     0x7f3fd5405a29 - core::fmt::write::he6178b15419e3012
   2:     0x7f3fd53781f1 - std::io::Write::write_fmt::h96a5da5cbc7c4d6f
   3:     0x7f3fd538245e - std::panicking::default_hook::{{closure}}::hee49b64dd69b207b
   4:     0x7f3fd5382081 - std::panicking::default_hook::h4d10a189bd02c5c2
   5:     0x7f3fd5ddc04a - <alloc[216dd42a787eac8c]::boxed::Box<dyn for<'a, 'b> core[f112b56ca3ff41e2]::ops::function::Fn<(&'a core[f112b56ca3ff41e2]::panic::panic_info::PanicInfo<'b>,), Output = ()> + core[f112b56ca3ff41e2]::marker::Send + core[f112b56ca3ff41e2]::marker::Sync> as core[f112b56ca3ff41e2]::ops::function::Fn<(&core[f112b56ca3ff41e2]::panic::panic_info::PanicInfo,)>>::call
                               at /home/pkrones/rust-lang/rust/library/alloc/src/boxed.rs:1880:9
   6:     0x7f3fd5ddc04a - rustc_driver[5b5fee5f666f7600]::DEFAULT_HOOK::{closure#0}::{closure#0}
                               at /home/pkrones/rust-lang/rust/compiler/rustc_driver/src/lib.rs:1157:13
   7:     0x7f3fd5382cd1 - std::panicking::rust_panic_with_hook::h0f5241967bb4cba9
   8:     0x7f3fd53aa957 - std::panicking::begin_panic_handler::{{closure}}::hd99ce280023d9590
   9:     0x7f3fd53aa194 - std::sys_common::backtrace::__rust_end_short_backtrace::hba14ee41cae68215
  10:     0x7f3fd53827b2 - rust_begin_unwind
  11:     0x7f3fd5347bd3 - core::panicking::panic_fmt::h28d5a7bab8509f3f
  12:     0x7f3fd6aa0040 - <rustc_typeck[adac5ad599616612]::check::fn_ctxt::FnCtxt>::check_argument_types::{closure#4}
                               at /home/pkrones/rust-lang/rust/compiler/rustc_typeck/src/check/fn_ctxt/checks.rs:436:21
  13:     0x7f3fd6aa0040 - <alloc[216dd42a787eac8c]::vec::drain_filter::DrainFilter<rustc_typeck[adac5ad599616612]::check::fn_ctxt::arg_matrix::Error, <rustc_typeck[adac5ad599616612]::check::fn_ctxt::FnCtxt>::check_argument_types::{closure#4}> as core[f112b56ca3ff41e2]::iter::traits::iterator::Iterator>::next
                               at /home/pkrones/rust-lang/rust/library/alloc/src/vec/drain_filter.rs:72:31
  14:     0x7f3fd6aa0040 - <&mut alloc[216dd42a787eac8c]::vec::drain_filter::DrainFilter<rustc_typeck[adac5ad599616612]::check::fn_ctxt::arg_matrix::Error, <rustc_typeck[adac5ad599616612]::check::fn_ctxt::FnCtxt>::check_argument_types::{closure#4}> as core[f112b56ca3ff41e2]::iter::traits::iterator::Iterator>::next
                               at /home/pkrones/rust-lang/rust/library/core/src/iter/traits/iterator.rs:3777:9
  15:     0x7f3fd6aa0040 - <&mut alloc[216dd42a787eac8c]::vec::drain_filter::DrainFilter<rustc_typeck[adac5ad599616612]::check::fn_ctxt::arg_matrix::Error, <rustc_typeck[adac5ad599616612]::check::fn_ctxt::FnCtxt>::check_argument_types::{closure#4}> as core[f112b56ca3ff41e2]::iter::traits::iterator::Iterator>::fold::<(), core[f112b56ca3ff41e2]::iter::traits::iterator::Iterator::for_each::call<rustc_typeck[adac5ad599616612]::check::fn_ctxt::arg_matrix::Error, core[f112b56ca3ff41e2]::mem::drop<rustc_typeck[adac5ad599616612]::check::fn_ctxt::arg_matrix::Error>>::{closure#0}>
                               at /home/pkrones/rust-lang/rust/library/core/src/iter/traits/iterator.rs:2365:29
  16:     0x7f3fd6aa0040 - <&mut alloc[216dd42a787eac8c]::vec::drain_filter::DrainFilter<rustc_typeck[adac5ad599616612]::check::fn_ctxt::arg_matrix::Error, <rustc_typeck[adac5ad599616612]::check::fn_ctxt::FnCtxt>::check_argument_types::{closure#4}> as core[f112b56ca3ff41e2]::iter::traits::iterator::Iterator>::for_each::<core[f112b56ca3ff41e2]::mem::drop<rustc_typeck[adac5ad599616612]::check::fn_ctxt::arg_matrix::Error>>
                               at /home/pkrones/rust-lang/rust/library/core/src/iter/traits/iterator.rs:783:9
  17:     0x7f3fd6aa0040 - <alloc[216dd42a787eac8c]::vec::drain_filter::DrainFilter<rustc_typeck[adac5ad599616612]::check::fn_ctxt::arg_matrix::Error, <rustc_typeck[adac5ad599616612]::check::fn_ctxt::FnCtxt>::check_argument_types::{closure#4}> as core[f112b56ca3ff41e2]::ops::drop::Drop>::drop
                               at /home/pkrones/rust-lang/rust/library/alloc/src/vec/drain_filter.rs:140:13
  18:     0x7f3fd6764861 - core[f112b56ca3ff41e2]::ptr::drop_in_place::<alloc[216dd42a787eac8c]::vec::drain_filter::DrainFilter<rustc_typeck[adac5ad599616612]::check::fn_ctxt::arg_matrix::Error, <rustc_typeck[adac5ad599616612]::check::fn_ctxt::FnCtxt>::check_argument_types::{closure#4}>>
                               at /home/pkrones/rust-lang/rust/library/core/src/ptr/mod.rs:486:1
  19:     0x7f3fd6764861 - <rustc_typeck[adac5ad599616612]::check::fn_ctxt::FnCtxt>::check_argument_types
                               at /home/pkrones/rust-lang/rust/compiler/rustc_typeck/src/check/fn_ctxt/checks.rs:447:15
  20:     0x7f3fd673468d - <rustc_typeck[adac5ad599616612]::check::fn_ctxt::FnCtxt>::confirm_builtin_call
                               at /home/pkrones/rust-lang/rust/compiler/rustc_typeck/src/check/callee.rs:517:9
  21:     0x7f3fd6731c06 - <rustc_typeck[adac5ad599616612]::check::fn_ctxt::FnCtxt>::check_call
  22:     0x7f3fd67b35d9 - <rustc_typeck[adac5ad599616612]::check::fn_ctxt::FnCtxt>::check_expr_kind
                               at /home/pkrones/rust-lang/rust/compiler/rustc_typeck/src/check/expr.rs:320:45
  23:     0x7f3fd674bce2 - <rustc_typeck[adac5ad599616612]::check::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args::{closure#0}
                               at /home/pkrones/rust-lang/rust/compiler/rustc_typeck/src/check/expr.rs:230:18
  24:     0x7f3fd674bce2 - stacker[5285a4f6f40447d1]::maybe_grow::<rustc_middle[bdcbc71f58cc2052]::ty::Ty, <rustc_typeck[adac5ad599616612]::check::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args::{closure#0}>
                               at /home/pkrones/.cargo/registry/src/github.aaakk.us.kg-1ecc6299db9ec823/stacker-0.1.14/src/lib.rs:55:9
  25:     0x7f3fd674bce2 - rustc_data_structures[8eb750d4907b9b3b]::stack::ensure_sufficient_stack::<rustc_middle[bdcbc71f58cc2052]::ty::Ty, <rustc_typeck[adac5ad599616612]::check::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args::{closure#0}>
                               at /home/pkrones/rust-lang/rust/compiler/rustc_data_structures/src/stack.rs:17:5
  26:     0x7f3fd674bce2 - <rustc_typeck[adac5ad599616612]::check::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
                               at /home/pkrones/rust-lang/rust/compiler/rustc_typeck/src/check/expr.rs:226:18
  27:     0x7f3fd67b26fb - <rustc_typeck[adac5ad599616612]::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
                               at /home/pkrones/rust-lang/rust/compiler/rustc_typeck/src/check/expr.rs:179:9
  28:     0x7f3fd676e675 - <rustc_typeck[adac5ad599616612]::check::fn_ctxt::FnCtxt>::check_stmt
                               at /home/pkrones/rust-lang/rust/compiler/rustc_typeck/src/check/fn_ctxt/checks.rs:1281:17
  29:     0x7f3fd676eefd - <rustc_typeck[adac5ad599616612]::check::fn_ctxt::FnCtxt>::check_block_with_expected::{closure#0}
                               at /home/pkrones/rust-lang/rust/compiler/rustc_typeck/src/check/fn_ctxt/checks.rs:1341:17
  30:     0x7f3fd676eefd - <rustc_typeck[adac5ad599616612]::check::fn_ctxt::FnCtxt>::with_breakable_ctxt::<<rustc_typeck[adac5ad599616612]::check::fn_ctxt::FnCtxt>::check_block_with_expected::{closure#0}, ()>
                               at /home/pkrones/rust-lang/rust/compiler/rustc_typeck/src/check/fn_ctxt/_impl.rs:1552:22
  31:     0x7f3fd676eefd - <rustc_typeck[adac5ad599616612]::check::fn_ctxt::FnCtxt>::check_block_with_expected
                               at /home/pkrones/rust-lang/rust/compiler/rustc_typeck/src/check/fn_ctxt/checks.rs:1339:26
  32:     0x7f3fd67b3952 - <rustc_typeck[adac5ad599616612]::check::fn_ctxt::FnCtxt>::check_expr_kind
                               at /home/pkrones/rust-lang/rust/compiler/rustc_typeck/src/check/expr.rs:319:41
  33:     0x7f3fd674bce2 - <rustc_typeck[adac5ad599616612]::check::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args::{closure#0}
                               at /home/pkrones/rust-lang/rust/compiler/rustc_typeck/src/check/expr.rs:230:18
  34:     0x7f3fd674bce2 - stacker[5285a4f6f40447d1]::maybe_grow::<rustc_middle[bdcbc71f58cc2052]::ty::Ty, <rustc_typeck[adac5ad599616612]::check::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args::{closure#0}>
                               at /home/pkrones/.cargo/registry/src/github.aaakk.us.kg-1ecc6299db9ec823/stacker-0.1.14/src/lib.rs:55:9
  35:     0x7f3fd674bce2 - rustc_data_structures[8eb750d4907b9b3b]::stack::ensure_sufficient_stack::<rustc_middle[bdcbc71f58cc2052]::ty::Ty, <rustc_typeck[adac5ad599616612]::check::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args::{closure#0}>
                               at /home/pkrones/rust-lang/rust/compiler/rustc_data_structures/src/stack.rs:17:5
  36:     0x7f3fd674bce2 - <rustc_typeck[adac5ad599616612]::check::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
                               at /home/pkrones/rust-lang/rust/compiler/rustc_typeck/src/check/expr.rs:226:18
  37:     0x7f3fd67b26fb - <rustc_typeck[adac5ad599616612]::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
                               at /home/pkrones/rust-lang/rust/compiler/rustc_typeck/src/check/expr.rs:179:9
  38:     0x7f3fd674d2fc - <rustc_typeck[adac5ad599616612]::check::fn_ctxt::FnCtxt>::check_expr_with_hint
                               at /home/pkrones/rust-lang/rust/compiler/rustc_typeck/src/check/expr.rs:131:9
  39:     0x7f3fd674d2fc - <rustc_typeck[adac5ad599616612]::check::fn_ctxt::FnCtxt>::check_return_expr
                               at /home/pkrones/rust-lang/rust/compiler/rustc_typeck/src/check/expr.rs:817:30
  40:     0x7f3fd6845a6f - rustc_typeck[adac5ad599616612]::check::check::check_fn
                               at /home/pkrones/rust-lang/rust/compiler/rustc_typeck/src/check/check.rs:216:9
  41:     0x7f3fd69a60a2 - rustc_typeck[adac5ad599616612]::check::typeck_with_fallback::<rustc_typeck[adac5ad599616612]::check::typeck::{closure#0}>::{closure#1}
                               at /home/pkrones/rust-lang/rust/compiler/rustc_typeck/src/check/mod.rs:399:23
  42:     0x7f3fd69a60a2 - <rustc_typeck[adac5ad599616612]::check::inherited::InheritedBuilder>::enter::<rustc_typeck[adac5ad599616612]::check::typeck_with_fallback<rustc_typeck[adac5ad599616612]::check::typeck::{closure#0}>::{closure#1}, &rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults>::{closure#0}
                               at /home/pkrones/rust-lang/rust/compiler/rustc_typeck/src/check/inherited.rs:96:34
  43:     0x7f3fd69a60a2 - <rustc_infer[8b44af7d29c04b28]::infer::InferCtxtBuilder>::enter::<&rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults, <rustc_typeck[adac5ad599616612]::check::inherited::InheritedBuilder>::enter<rustc_typeck[adac5ad599616612]::check::typeck_with_fallback<rustc_typeck[adac5ad599616612]::check::typeck::{closure#0}>::{closure#1}, &rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults>::{closure#0}>
                               at /home/pkrones/rust-lang/rust/compiler/rustc_infer/src/infer/mod.rs:628:9
  44:     0x7f3fd68a557d - <rustc_typeck[adac5ad599616612]::check::inherited::InheritedBuilder>::enter::<rustc_typeck[adac5ad599616612]::check::typeck_with_fallback<rustc_typeck[adac5ad599616612]::check::typeck::{closure#0}>::{closure#1}, &rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults>
                               at /home/pkrones/rust-lang/rust/compiler/rustc_typeck/src/check/inherited.rs:96:9
  45:     0x7f3fd68a557d - rustc_typeck[adac5ad599616612]::check::typeck_with_fallback::<rustc_typeck[adac5ad599616612]::check::typeck::{closure#0}>
                               at /home/pkrones/rust-lang/rust/compiler/rustc_typeck/src/check/mod.rs:371:26
  46:     0x7f3fd68a557d - rustc_typeck[adac5ad599616612]::check::typeck
                               at /home/pkrones/rust-lang/rust/compiler/rustc_typeck/src/check/mod.rs:335:9
  47:     0x7f3fd785a0b9 - <rustc_query_system[e420413d4b32ad1c]::query::config::QueryVtable<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt, rustc_span[41dda131fa6f9813]::def_id::LocalDefId, &rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults>>::compute
                               at /home/pkrones/rust-lang/rust/compiler/rustc_query_system/src/query/config.rs:43:9
  48:     0x7f3fd785a0b9 - rustc_query_system[e420413d4b32ad1c]::query::plumbing::execute_job::<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt, rustc_span[41dda131fa6f9813]::def_id::LocalDefId, &rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults>::{closure#0}
                               at /home/pkrones/rust-lang/rust/compiler/rustc_query_system/src/query/plumbing.rs:384:55
  49:     0x7f3fd785a0b9 - stacker[5285a4f6f40447d1]::maybe_grow::<&rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults, rustc_query_system[e420413d4b32ad1c]::query::plumbing::execute_job<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt, rustc_span[41dda131fa6f9813]::def_id::LocalDefId, &rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults>::{closure#0}>
                               at /home/pkrones/.cargo/registry/src/github.aaakk.us.kg-1ecc6299db9ec823/stacker-0.1.14/src/lib.rs:55:9
  50:     0x7f3fd785a0b9 - rustc_data_structures[8eb750d4907b9b3b]::stack::ensure_sufficient_stack::<&rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults, rustc_query_system[e420413d4b32ad1c]::query::plumbing::execute_job<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt, rustc_span[41dda131fa6f9813]::def_id::LocalDefId, &rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults>::{closure#0}>
                               at /home/pkrones/rust-lang/rust/compiler/rustc_data_structures/src/stack.rs:17:5
  51:     0x7f3fd785a0b9 - <rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt as rustc_query_system[e420413d4b32ad1c]::query::QueryContext>::start_query::<&rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults, rustc_query_system[e420413d4b32ad1c]::query::plumbing::execute_job<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt, rustc_span[41dda131fa6f9813]::def_id::LocalDefId, &rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults>::{closure#0}>::{closure#0}::{closure#0}
                               at /home/pkrones/rust-lang/rust/compiler/rustc_query_impl/src/plumbing.rs:113:17
  52:     0x7f3fd785a0b9 - rustc_middle[bdcbc71f58cc2052]::ty::context::tls::enter_context::<<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt as rustc_query_system[e420413d4b32ad1c]::query::QueryContext>::start_query<&rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults, rustc_query_system[e420413d4b32ad1c]::query::plumbing::execute_job<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt, rustc_span[41dda131fa6f9813]::def_id::LocalDefId, &rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults>::{closure#0}>::{closure#0}::{closure#0}, &rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults>::{closure#0}
                               at /home/pkrones/rust-lang/rust/compiler/rustc_middle/src/ty/context.rs:1818:50
  53:     0x7f3fd785a0b9 - rustc_middle[bdcbc71f58cc2052]::ty::context::tls::set_tlv::<rustc_middle[bdcbc71f58cc2052]::ty::context::tls::enter_context<<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt as rustc_query_system[e420413d4b32ad1c]::query::QueryContext>::start_query<&rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults, rustc_query_system[e420413d4b32ad1c]::query::plumbing::execute_job<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt, rustc_span[41dda131fa6f9813]::def_id::LocalDefId, &rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults>::{closure#0}>::{closure#0}::{closure#0}, &rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults>::{closure#0}, &rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults>
                               at /home/pkrones/rust-lang/rust/compiler/rustc_middle/src/ty/context.rs:1802:9
  54:     0x7f3fd785a0b9 - rustc_middle[bdcbc71f58cc2052]::ty::context::tls::enter_context::<<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt as rustc_query_system[e420413d4b32ad1c]::query::QueryContext>::start_query<&rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults, rustc_query_system[e420413d4b32ad1c]::query::plumbing::execute_job<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt, rustc_span[41dda131fa6f9813]::def_id::LocalDefId, &rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults>::{closure#0}>::{closure#0}::{closure#0}, &rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults>
                               at /home/pkrones/rust-lang/rust/compiler/rustc_middle/src/ty/context.rs:1818:9
  55:     0x7f3fd785a0b9 - <rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt as rustc_query_system[e420413d4b32ad1c]::query::QueryContext>::start_query::<&rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults, rustc_query_system[e420413d4b32ad1c]::query::plumbing::execute_job<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt, rustc_span[41dda131fa6f9813]::def_id::LocalDefId, &rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults>::{closure#0}>::{closure#0}
                               at /home/pkrones/rust-lang/rust/compiler/rustc_query_impl/src/plumbing.rs:112:13
  56:     0x7f3fd785a0b9 - rustc_middle[bdcbc71f58cc2052]::ty::context::tls::with_related_context::<<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt as rustc_query_system[e420413d4b32ad1c]::query::QueryContext>::start_query<&rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults, rustc_query_system[e420413d4b32ad1c]::query::plumbing::execute_job<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt, rustc_span[41dda131fa6f9813]::def_id::LocalDefId, &rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults>::{closure#0}>::{closure#0}, &rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults>::{closure#0}
                               at /home/pkrones/rust-lang/rust/compiler/rustc_middle/src/ty/context.rs:1862:13
  57:     0x7f3fd785a0b9 - rustc_middle[bdcbc71f58cc2052]::ty::context::tls::with_context::<rustc_middle[bdcbc71f58cc2052]::ty::context::tls::with_related_context<<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt as rustc_query_system[e420413d4b32ad1c]::query::QueryContext>::start_query<&rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults, rustc_query_system[e420413d4b32ad1c]::query::plumbing::execute_job<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt, rustc_span[41dda131fa6f9813]::def_id::LocalDefId, &rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults>::{closure#0}>::{closure#0}, &rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults>::{closure#0}, &rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults>::{closure#0}
                               at /home/pkrones/rust-lang/rust/compiler/rustc_middle/src/ty/context.rs:1846:40
  58:     0x7f3fd785a0b9 - rustc_middle[bdcbc71f58cc2052]::ty::context::tls::with_context_opt::<rustc_middle[bdcbc71f58cc2052]::ty::context::tls::with_context<rustc_middle[bdcbc71f58cc2052]::ty::context::tls::with_related_context<<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt as rustc_query_system[e420413d4b32ad1c]::query::QueryContext>::start_query<&rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults, rustc_query_system[e420413d4b32ad1c]::query::plumbing::execute_job<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt, rustc_span[41dda131fa6f9813]::def_id::LocalDefId, &rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults>::{closure#0}>::{closure#0}, &rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults>::{closure#0}, &rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults>::{closure#0}, &rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults>
                               at /home/pkrones/rust-lang/rust/compiler/rustc_middle/src/ty/context.rs:1835:22
  59:     0x7f3fd785a0b9 - rustc_middle[bdcbc71f58cc2052]::ty::context::tls::with_context::<rustc_middle[bdcbc71f58cc2052]::ty::context::tls::with_related_context<<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt as rustc_query_system[e420413d4b32ad1c]::query::QueryContext>::start_query<&rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults, rustc_query_system[e420413d4b32ad1c]::query::plumbing::execute_job<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt, rustc_span[41dda131fa6f9813]::def_id::LocalDefId, &rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults>::{closure#0}>::{closure#0}, &rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults>::{closure#0}, &rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults>
                               at /home/pkrones/rust-lang/rust/compiler/rustc_middle/src/ty/context.rs:1846:9
  60:     0x7f3fd785a0b9 - rustc_middle[bdcbc71f58cc2052]::ty::context::tls::with_related_context::<<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt as rustc_query_system[e420413d4b32ad1c]::query::QueryContext>::start_query<&rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults, rustc_query_system[e420413d4b32ad1c]::query::plumbing::execute_job<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt, rustc_span[41dda131fa6f9813]::def_id::LocalDefId, &rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults>::{closure#0}>::{closure#0}, &rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults>
                               at /home/pkrones/rust-lang/rust/compiler/rustc_middle/src/ty/context.rs:1859:9
  61:     0x7f3fd785a0b9 - <rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt as rustc_query_system[e420413d4b32ad1c]::query::QueryContext>::start_query::<&rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults, rustc_query_system[e420413d4b32ad1c]::query::plumbing::execute_job<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt, rustc_span[41dda131fa6f9813]::def_id::LocalDefId, &rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults>::{closure#0}>
                               at /home/pkrones/rust-lang/rust/compiler/rustc_query_impl/src/plumbing.rs:101:9
  62:     0x7f3fd785a0b9 - rustc_query_system[e420413d4b32ad1c]::query::plumbing::execute_job::<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt, rustc_span[41dda131fa6f9813]::def_id::LocalDefId, &rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults>
                               at /home/pkrones/rust-lang/rust/compiler/rustc_query_system/src/query/plumbing.rs:384:22
  63:     0x7f3fd785a0b9 - rustc_query_system[e420413d4b32ad1c]::query::plumbing::try_execute_query::<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt, rustc_query_system[e420413d4b32ad1c]::query::caches::DefaultCache<rustc_span[41dda131fa6f9813]::def_id::LocalDefId, &rustc_middle[bdcbc71f58cc2052]::ty::context::TypeckResults>>
                               at /home/pkrones/rust-lang/rust/compiler/rustc_query_system/src/query/plumbing.rs:343:44
  64:     0x7f3fd7997a30 - rustc_query_system[e420413d4b32ad1c]::query::plumbing::get_query::<rustc_query_impl[2599af46c485b6f7]::queries::typeck, rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt>
                               at /home/pkrones/rust-lang/rust/compiler/rustc_query_system/src/query/plumbing.rs:701:36
  65:     0x7f3fd6b0b207 - <rustc_middle[bdcbc71f58cc2052]::ty::query::TyCtxtEnsure>::typeck
                               at /home/pkrones/rust-lang/rust/compiler/rustc_middle/src/ty/query.rs:230:17
  66:     0x7f3fd6b0b207 - rustc_typeck[adac5ad599616612]::check::typeck_item_bodies::{closure#0}
                               at /home/pkrones/rust-lang/rust/compiler/rustc_typeck/src/check/mod.rs:950:51
  67:     0x7f3fd6b0b207 - <rustc_middle[bdcbc71f58cc2052]::hir::map::Map>::par_body_owners::<rustc_typeck[adac5ad599616612]::check::typeck_item_bodies::{closure#0}>::{closure#0}::{closure#0}
                               at /home/pkrones/rust-lang/rust/compiler/rustc_middle/src/hir/map/mod.rs:539:21
  68:     0x7f3fd6b0b207 - <core[f112b56ca3ff41e2]::slice::iter::Iter<(rustc_hir[80845cce2e065d16]::hir_id::ItemLocalId, &rustc_hir[80845cce2e065d16]::hir::Body)> as core[f112b56ca3ff41e2]::iter::traits::iterator::Iterator>::for_each::<<rustc_middle[bdcbc71f58cc2052]::hir::map::Map>::par_body_owners<rustc_typeck[adac5ad599616612]::check::typeck_item_bodies::{closure#0}>::{closure#0}::{closure#0}>
                               at /home/pkrones/rust-lang/rust/library/core/src/slice/iter/macros.rs:211:21
  69:     0x7f3fd6b0b207 - <rustc_middle[bdcbc71f58cc2052]::hir::map::Map>::par_body_owners::<rustc_typeck[adac5ad599616612]::check::typeck_item_bodies::{closure#0}>::{closure#0}
                               at /home/pkrones/rust-lang/rust/compiler/rustc_middle/src/hir/map/mod.rs:536:17
  70:     0x7f3fd6b0b207 - core[f112b56ca3ff41e2]::iter::traits::iterator::Iterator::for_each::call::<(usize, &rustc_hir[80845cce2e065d16]::hir::MaybeOwner<&rustc_hir[80845cce2e065d16]::hir::OwnerInfo>), <rustc_middle[bdcbc71f58cc2052]::hir::map::Map>::par_body_owners<rustc_typeck[adac5ad599616612]::check::typeck_item_bodies::{closure#0}>::{closure#0}>::{closure#0}
                               at /home/pkrones/rust-lang/rust/library/core/src/iter/traits/iterator.rs:780:29
  71:     0x7f3fd6b0b207 - <core[f112b56ca3ff41e2]::iter::adapters::enumerate::Enumerate<_> as core[f112b56ca3ff41e2]::iter::traits::iterator::Iterator>::fold::enumerate::<&rustc_hir[80845cce2e065d16]::hir::MaybeOwner<&rustc_hir[80845cce2e065d16]::hir::OwnerInfo>, (), core[f112b56ca3ff41e2]::iter::traits::iterator::Iterator::for_each::call<(usize, &rustc_hir[80845cce2e065d16]::hir::MaybeOwner<&rustc_hir[80845cce2e065d16]::hir::OwnerInfo>), <rustc_middle[bdcbc71f58cc2052]::hir::map::Map>::par_body_owners<rustc_typeck[adac5ad599616612]::check::typeck_item_bodies::{closure#0}>::{closure#0}>::{closure#0}>::{closure#0}
                               at /home/pkrones/rust-lang/rust/library/core/src/iter/adapters/enumerate.rs:106:27
  72:     0x7f3fd6b0b207 - <core[f112b56ca3ff41e2]::slice::iter::Iter<rustc_hir[80845cce2e065d16]::hir::MaybeOwner<&rustc_hir[80845cce2e065d16]::hir::OwnerInfo>> as core[f112b56ca3ff41e2]::iter::traits::iterator::Iterator>::fold::<(), <core[f112b56ca3ff41e2]::iter::adapters::enumerate::Enumerate<_> as core[f112b56ca3ff41e2]::iter::traits::iterator::Iterator>::fold::enumerate<&rustc_hir[80845cce2e065d16]::hir::MaybeOwner<&rustc_hir[80845cce2e065d16]::hir::OwnerInfo>, (), core[f112b56ca3ff41e2]::iter::traits::iterator::Iterator::for_each::call<(usize, &rustc_hir[80845cce2e065d16]::hir::MaybeOwner<&rustc_hir[80845cce2e065d16]::hir::OwnerInfo>), <rustc_middle[bdcbc71f58cc2052]::hir::map::Map>::par_body_owners<rustc_typeck[adac5ad599616612]::check::typeck_item_bodies::{closure#0}>::{closure#0}>::{closure#0}>::{closure#0}>
                               at /home/pkrones/rust-lang/rust/library/core/src/iter/traits/iterator.rs:2366:21
  73:     0x7f3fd6b0b207 - <core[f112b56ca3ff41e2]::iter::adapters::enumerate::Enumerate<core[f112b56ca3ff41e2]::slice::iter::Iter<rustc_hir[80845cce2e065d16]::hir::MaybeOwner<&rustc_hir[80845cce2e065d16]::hir::OwnerInfo>>> as core[f112b56ca3ff41e2]::iter::traits::iterator::Iterator>::fold::<(), core[f112b56ca3ff41e2]::iter::traits::iterator::Iterator::for_each::call<(usize, &rustc_hir[80845cce2e065d16]::hir::MaybeOwner<&rustc_hir[80845cce2e065d16]::hir::OwnerInfo>), <rustc_middle[bdcbc71f58cc2052]::hir::map::Map>::par_body_owners<rustc_typeck[adac5ad599616612]::check::typeck_item_bodies::{closure#0}>::{closure#0}>::{closure#0}>
                               at /home/pkrones/rust-lang/rust/library/core/src/iter/adapters/enumerate.rs:112:9
  74:     0x7f3fd6b0b207 - <core[f112b56ca3ff41e2]::iter::adapters::enumerate::Enumerate<core[f112b56ca3ff41e2]::slice::iter::Iter<rustc_hir[80845cce2e065d16]::hir::MaybeOwner<&rustc_hir[80845cce2e065d16]::hir::OwnerInfo>>> as core[f112b56ca3ff41e2]::iter::traits::iterator::Iterator>::for_each::<<rustc_middle[bdcbc71f58cc2052]::hir::map::Map>::par_body_owners<rustc_typeck[adac5ad599616612]::check::typeck_item_bodies::{closure#0}>::{closure#0}>
                               at /home/pkrones/rust-lang/rust/library/core/src/iter/traits/iterator.rs:783:9
  75:     0x7f3fd6b0b207 - <rustc_middle[bdcbc71f58cc2052]::hir::map::Map>::par_body_owners::<rustc_typeck[adac5ad599616612]::check::typeck_item_bodies::{closure#0}>
                               at /home/pkrones/rust-lang/rust/compiler/rustc_middle/src/hir/map/mod.rs:533:9
  76:     0x7f3fd68ab76d - rustc_typeck[adac5ad599616612]::check::typeck_item_bodies
                               at /home/pkrones/rust-lang/rust/compiler/rustc_typeck/src/check/mod.rs:950:5
  77:     0x7f3fd78a6d82 - <rustc_query_system[e420413d4b32ad1c]::query::config::QueryVtable<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt, (), ()>>::compute
                               at /home/pkrones/rust-lang/rust/compiler/rustc_query_system/src/query/config.rs:43:9
  78:     0x7f3fd78a6d82 - rustc_query_system[e420413d4b32ad1c]::query::plumbing::execute_job::<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt, (), ()>::{closure#0}
                               at /home/pkrones/rust-lang/rust/compiler/rustc_query_system/src/query/plumbing.rs:384:55
  79:     0x7f3fd78a6d82 - stacker[5285a4f6f40447d1]::maybe_grow::<(), rustc_query_system[e420413d4b32ad1c]::query::plumbing::execute_job<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt, (), ()>::{closure#0}>
                               at /home/pkrones/.cargo/registry/src/github.aaakk.us.kg-1ecc6299db9ec823/stacker-0.1.14/src/lib.rs:55:9
  80:     0x7f3fd78a6d82 - rustc_data_structures[8eb750d4907b9b3b]::stack::ensure_sufficient_stack::<(), rustc_query_system[e420413d4b32ad1c]::query::plumbing::execute_job<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt, (), ()>::{closure#0}>
                               at /home/pkrones/rust-lang/rust/compiler/rustc_data_structures/src/stack.rs:17:5
  81:     0x7f3fd78a6d82 - <rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt as rustc_query_system[e420413d4b32ad1c]::query::QueryContext>::start_query::<(), rustc_query_system[e420413d4b32ad1c]::query::plumbing::execute_job<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt, (), ()>::{closure#0}>::{closure#0}::{closure#0}
                               at /home/pkrones/rust-lang/rust/compiler/rustc_query_impl/src/plumbing.rs:113:17
  82:     0x7f3fd78a6d82 - rustc_middle[bdcbc71f58cc2052]::ty::context::tls::enter_context::<<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt as rustc_query_system[e420413d4b32ad1c]::query::QueryContext>::start_query<(), rustc_query_system[e420413d4b32ad1c]::query::plumbing::execute_job<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt, (), ()>::{closure#0}>::{closure#0}::{closure#0}, ()>::{closure#0}
                               at /home/pkrones/rust-lang/rust/compiler/rustc_middle/src/ty/context.rs:1818:50
  83:     0x7f3fd78a6d82 - rustc_middle[bdcbc71f58cc2052]::ty::context::tls::set_tlv::<rustc_middle[bdcbc71f58cc2052]::ty::context::tls::enter_context<<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt as rustc_query_system[e420413d4b32ad1c]::query::QueryContext>::start_query<(), rustc_query_system[e420413d4b32ad1c]::query::plumbing::execute_job<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt, (), ()>::{closure#0}>::{closure#0}::{closure#0}, ()>::{closure#0}, ()>
                               at /home/pkrones/rust-lang/rust/compiler/rustc_middle/src/ty/context.rs:1802:9
  84:     0x7f3fd78a6d82 - rustc_middle[bdcbc71f58cc2052]::ty::context::tls::enter_context::<<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt as rustc_query_system[e420413d4b32ad1c]::query::QueryContext>::start_query<(), rustc_query_system[e420413d4b32ad1c]::query::plumbing::execute_job<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt, (), ()>::{closure#0}>::{closure#0}::{closure#0}, ()>
                               at /home/pkrones/rust-lang/rust/compiler/rustc_middle/src/ty/context.rs:1818:9
  85:     0x7f3fd78a6d82 - <rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt as rustc_query_system[e420413d4b32ad1c]::query::QueryContext>::start_query::<(), rustc_query_system[e420413d4b32ad1c]::query::plumbing::execute_job<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt, (), ()>::{closure#0}>::{closure#0}
                               at /home/pkrones/rust-lang/rust/compiler/rustc_query_impl/src/plumbing.rs:112:13
  86:     0x7f3fd78a6d82 - rustc_middle[bdcbc71f58cc2052]::ty::context::tls::with_related_context::<<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt as rustc_query_system[e420413d4b32ad1c]::query::QueryContext>::start_query<(), rustc_query_system[e420413d4b32ad1c]::query::plumbing::execute_job<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt, (), ()>::{closure#0}>::{closure#0}, ()>::{closure#0}
                               at /home/pkrones/rust-lang/rust/compiler/rustc_middle/src/ty/context.rs:1862:13
  87:     0x7f3fd78a6d82 - rustc_middle[bdcbc71f58cc2052]::ty::context::tls::with_context::<rustc_middle[bdcbc71f58cc2052]::ty::context::tls::with_related_context<<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt as rustc_query_system[e420413d4b32ad1c]::query::QueryContext>::start_query<(), rustc_query_system[e420413d4b32ad1c]::query::plumbing::execute_job<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt, (), ()>::{closure#0}>::{closure#0}, ()>::{closure#0}, ()>::{closure#0}
                               at /home/pkrones/rust-lang/rust/compiler/rustc_middle/src/ty/context.rs:1846:40
  88:     0x7f3fd78a6d82 - rustc_middle[bdcbc71f58cc2052]::ty::context::tls::with_context_opt::<rustc_middle[bdcbc71f58cc2052]::ty::context::tls::with_context<rustc_middle[bdcbc71f58cc2052]::ty::context::tls::with_related_context<<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt as rustc_query_system[e420413d4b32ad1c]::query::QueryContext>::start_query<(), rustc_query_system[e420413d4b32ad1c]::query::plumbing::execute_job<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt, (), ()>::{closure#0}>::{closure#0}, ()>::{closure#0}, ()>::{closure#0}, ()>
                               at /home/pkrones/rust-lang/rust/compiler/rustc_middle/src/ty/context.rs:1835:22
  89:     0x7f3fd78a6d82 - rustc_middle[bdcbc71f58cc2052]::ty::context::tls::with_context::<rustc_middle[bdcbc71f58cc2052]::ty::context::tls::with_related_context<<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt as rustc_query_system[e420413d4b32ad1c]::query::QueryContext>::start_query<(), rustc_query_system[e420413d4b32ad1c]::query::plumbing::execute_job<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt, (), ()>::{closure#0}>::{closure#0}, ()>::{closure#0}, ()>
                               at /home/pkrones/rust-lang/rust/compiler/rustc_middle/src/ty/context.rs:1846:9
  90:     0x7f3fd78a6d82 - rustc_middle[bdcbc71f58cc2052]::ty::context::tls::with_related_context::<<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt as rustc_query_system[e420413d4b32ad1c]::query::QueryContext>::start_query<(), rustc_query_system[e420413d4b32ad1c]::query::plumbing::execute_job<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt, (), ()>::{closure#0}>::{closure#0}, ()>
                               at /home/pkrones/rust-lang/rust/compiler/rustc_middle/src/ty/context.rs:1859:9
  91:     0x7f3fd78a6d82 - <rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt as rustc_query_system[e420413d4b32ad1c]::query::QueryContext>::start_query::<(), rustc_query_system[e420413d4b32ad1c]::query::plumbing::execute_job<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt, (), ()>::{closure#0}>
                               at /home/pkrones/rust-lang/rust/compiler/rustc_query_impl/src/plumbing.rs:101:9
  92:     0x7f3fd78a6d82 - rustc_query_system[e420413d4b32ad1c]::query::plumbing::execute_job::<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt, (), ()>
                               at /home/pkrones/rust-lang/rust/compiler/rustc_query_system/src/query/plumbing.rs:384:22
  93:     0x7f3fd78a6d82 - rustc_query_system[e420413d4b32ad1c]::query::plumbing::try_execute_query::<rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt, rustc_query_system[e420413d4b32ad1c]::query::caches::DefaultCache<(), ()>>
                               at /home/pkrones/rust-lang/rust/compiler/rustc_query_system/src/query/plumbing.rs:343:44
  94:     0x7f3fd7948778 - rustc_query_system[e420413d4b32ad1c]::query::plumbing::get_query::<rustc_query_impl[2599af46c485b6f7]::queries::typeck_item_bodies, rustc_query_impl[2599af46c485b6f7]::plumbing::QueryCtxt>
                               at /home/pkrones/rust-lang/rust/compiler/rustc_query_system/src/query/plumbing.rs:701:36
  95:     0x7f3fd69eab0c - <rustc_middle[bdcbc71f58cc2052]::ty::query::TyCtxtAt>::typeck_item_bodies
                               at /home/pkrones/rust-lang/rust/compiler/rustc_middle/src/ty/query.rs:259:17
  96:     0x7f3fd69eab0c - <rustc_middle[bdcbc71f58cc2052]::ty::context::TyCtxt>::typeck_item_bodies
                               at /home/pkrones/rust-lang/rust/compiler/rustc_middle/src/ty/query.rs:240:17
  97:     0x7f3fd69eab0c - rustc_typeck[adac5ad599616612]::check_crate::{closure#7}
                               at /home/pkrones/rust-lang/rust/compiler/rustc_typeck/src/lib.rs:538:46
  98:     0x7f3fd69eab0c - <rustc_data_structures[8eb750d4907b9b3b]::profiling::VerboseTimingGuard>::run::<(), rustc_typeck[adac5ad599616612]::check_crate::{closure#7}>
                               at /home/pkrones/rust-lang/rust/compiler/rustc_data_structures/src/profiling.rs:732:9
  99:     0x7f3fd69eab0c - <rustc_session[139ca6c0e0fea44a]::session::Session>::time::<(), rustc_typeck[adac5ad599616612]::check_crate::{closure#7}>
                               at /home/pkrones/rust-lang/rust/compiler/rustc_session/src/utils.rs:16:9
 100:     0x7f3fd691b871 - rustc_typeck[adac5ad599616612]::check_crate
                               at /home/pkrones/rust-lang/rust/compiler/rustc_typeck/src/lib.rs:538:5
 ...

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/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md

note: rustc 1.62.0-dev running on x86_64-unknown-linux-gnu

query stack during panic:
#0 [typeck] type-checking `main`
#1 [typeck_item_bodies] type-checking all item bodies
#2 [analysis] running analysis passes on this crate
end of query stack

@flip1995 flip1995 added I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. C-bug Category: This is a bug. labels May 2, 2022
@jackh726 jackh726 added the regression-from-stable-to-nightly Performance or correctness regression from stable to nightly. label May 2, 2022
@rustbot rustbot added the I-prioritize Issue: Indicates that prioritization has been requested for this issue. label May 2, 2022
@jackh726
Copy link
Member

jackh726 commented May 2, 2022

Info: Does this ICE only occur in the error path?

Not sure what's going on exactly. The index should only be less than than the provided args length:

(true, true, true, true) => return Some(Issue::Invalid(i)),

I think the code in arg_matrix is wrong. I think we're missing a "mapping" back to the original provided and expected arg indices. I think instead of just passing i into Issues here, we should be doing ai[i] and/or ii[i].

Kind of interesting this didn't break before this. The arg_matrix code would be a good candidate for a fuzzer, I think.

@estebank
Copy link
Contributor

estebank commented May 2, 2022

Interestingly enough, the resulting output if changing a few indexing operations with .get(idx) is quite sane:

Screen Shot 2022-05-02 at 11 58 19 AM

I'll put up a PR to address the immediate ICE, but we can leave this ticket closed for further inspection of the logic.

@estebank
Copy link
Contributor

estebank commented May 2, 2022

When fixing the underlying issue, the logic changes from #96646 should be reverted, while keeping the regression test.

#96646 (comment)

GuillaumeGomez added a commit to GuillaumeGomez/rust that referenced this issue May 2, 2022
Mitigate impact of subtle invalid call suggestion logic

There's some subtle interaction between inferred expressions being
passed as an argument to fn calls with fewer than expected arguments. To
avoid the ICE, I'm changing indexing operations with `.get(idx)`, but
the underlying logic still needs to be audited as it was written with
the assumption that `final_arg_types` and `provided_args` have the right
length.

Address rust-lang#96638.
JohnTitor added a commit to JohnTitor/rust that referenced this issue May 3, 2022
Mitigate impact of subtle invalid call suggestion logic

There's some subtle interaction between inferred expressions being
passed as an argument to fn calls with fewer than expected arguments. To
avoid the ICE, I'm changing indexing operations with `.get(idx)`, but
the underlying logic still needs to be audited as it was written with
the assumption that `final_arg_types` and `provided_args` have the right
length.

Address rust-lang#96638.
@rust-lang-glacier-bot rust-lang-glacier-bot added the glacier ICE tracked in rust-lang/glacier. label May 3, 2022
bors added a commit to rust-lang-ci/rust that referenced this issue May 10, 2022
Rollup of 5 pull requests

Successful merges:

 - rust-lang#93661 (Add missing rustc arg docs)
 - rust-lang#96674 (docs: add link explaining variance to NonNull docs)
 - rust-lang#96812 (Do not lint on explicit outlives requirements from external macros.)
 - rust-lang#96823 (Properly fix rust-lang#96638)
 - rust-lang#96872 (make sure ScalarPair enums have ScalarPair variants; add some layout sanity checks)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors closed this as completed in 9a3f17b May 10, 2022
@apiraino apiraino removed the I-prioritize Issue: Indicates that prioritization has been requested for this issue. label May 10, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-bug Category: This is a bug. glacier ICE tracked in rust-lang/glacier. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ regression-from-stable-to-nightly Performance or correctness regression from stable to nightly. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants