Skip to content

ICE on checking function arguments #96638

@flip1995

Description

@flip1995
Member

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.com-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.com-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.com-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.com-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

Activity

added
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.
C-bugCategory: This is a bug.
on May 2, 2022
added
I-prioritizeIssue: Indicates that prioritization has been requested for this issue.
on May 2, 2022
jackh726

jackh726 commented on May 2, 2022

@jackh726
Member

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

estebank commented on May 2, 2022

@estebank
Contributor

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

estebank commented on May 2, 2022

@estebank
Contributor

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

#96646 (comment)

added a commit that references this issue on May 2, 2022
ed7ce52
added a commit that references this issue on May 3, 2022
279d801
added a commit that references this issue on May 10, 2022
9a3f17b
added a commit that references this issue on May 10, 2022
d53f1e8
removed
I-prioritizeIssue: Indicates that prioritization has been requested for this issue.
on May 10, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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

      Participants

      @estebank@apiraino@flip1995@jackh726@rustbot

      Issue actions

        ICE on checking function arguments · Issue #96638 · rust-lang/rust