rust-lang / rust

Empowering everyone to build reliable and efficient software.
https://www.rust-lang.org
Other
98.84k stars 12.77k forks source link

error: internal compiler error: encountered incremental compilation error with def_span #110756

Closed SebastianJL closed 1 year ago

SebastianJL commented 1 year ago

Code

use std::ops::Range;

use ndarray::{s, Array, Array2, ArrayViewMut2, Axis, NdProducer, Dim};

trait Split {
    fn lower_half(&self) -> Range<usize>;
    fn upper_half(&self) -> Range<usize>;
    fn split(&self) -> (Range<usize>, Range<usize>);
}

impl Split for Range<usize> {
    fn lower_half(&self) -> Range<usize> {
        let middle = (self.start + self.end) / 2;
        self.start..middle
    }

    fn upper_half(&self) -> Range<usize> {
        let middle = (self.start + self.end) / 2;
        middle..self.end
    }

    fn split(&self) -> (Range<usize>, Range<usize>) {
        (self.lower_half(), self.upper_half())
    }
}

fn find_cell_order<const DIM: usize>(
    mut cell_order: ArrayViewMut2<usize>,
    split_order: &[usize],
    range: Range<usize>,
    recursion_depth: usize,
) {
    if range.len() == 1 {
        assert!(cell_order.shape() == [1, 1]);
        cell_order[[0, 0]] = range.start;
        return;
    }

    let lbound = [0, 0];
    let ubound = [cell_order.shape()[0] - 1, cell_order.shape()[1] - 1];
    // cell_order[lbound] = range.start;
    // cell_order[ubound] = range.end - 1;

    let split_dim = split_order[recursion_depth];
    let halfway_point = ubound[split_dim] / 2;
    let (lower_range, upper_range) = range.split();
    let (left_view, right_view) = cell_order.split_at(Axis(split_dim), halfway_point + 1);

    find_cell_order::<DIM>(left_view, split_order, lower_range, recursion_depth + 1);
    find_cell_order::<DIM>(right_view, split_order, upper_range, recursion_depth + 1);
}

const DIM: usize = 2;
fn create_cell_order(
    n_splits: u8,
    mut widths: [f32; DIM],
    buffer: Vec<usize>,
) -> ([usize; DIM], Vec<usize>, Array<usize, Dim<[usize; DIM]>>) {
    /// Number of grid cells per dimension.
    let mut n_cells: [usize; DIM] = [1; DIM];
    let n_cells_total = 2u32.pow(n_splits as u32);
    let mut split_order = Vec::with_capacity(n_splits as usize);
    for _ in 0..n_splits {
        // Note this returns position of the last maximum if there are multiple occurrences of the maximum value.
        let d = widths
            .iter()
            .enumerate()
            .max_by(|(_, a), (_, b)| a.total_cmp(b))
            .map(|(index, _)| index)
            .unwrap();
        widths[d] /= 2.;
        n_cells[d] *= 2;
        split_order.push(d);
    }

    let mut cell_order = Array::from_shape_vec(n_cells, buffer).unwrap();
    find_cell_order::<DIM>(
        cell_order.view_mut(),
        &split_order,
        0..n_cells_total as usize,
        0,
    );

    return (n_cells, split_order, cell_order);
}

#[cfg(test)]
mod test {
    use std::{any::Any, cell, collections::HashMap, iter::Map, ops::Range};

    use ndarray::{array, s, Array, Array1, Array2, ArrayView, Axis};

    use crate::split_grid_into_cells::create_cell_order;

    #[test]
    fn test_split_grid_into_cells() {
        let n_splits = 4;
        /// Widths of the bound per dimension.
        let mut widths = [3., 8.];
        let buffer = vec![0usize; 2 << (n_splits - 1)];
        let (n_cells, split_order, cell_order) = create_cell_order(n_splits, widths, buffer);
        assert_eq!(n_cells, [2, 8]);
        assert_eq!(split_order, [1, 1, 0, 1]);
        assert_eq!(
            cell_order,
            array![[0, 1, 4, 5, 8, 9, 12, 13], [2, 3, 6, 7, 10, 11, 14, 15]]
        );

        let a: Array2<usize>;
    }
}

Meta

rustc --version --verbose:

rustc 1.68.2 (9eb3afe9e 2023-03-27)
binary: rustc
commit-hash: 9eb3afe9ebe9c7d2b84b71002d44f4a0edac95e0
commit-date: 2023-03-27
host: x86_64-unknown-linux-gnu
release: 1.68.2
LLVM version: 15.0.6

Error output

error: internal compiler error: encountered incremental compilation error with def_span(rust_scripts[d534]::split_grid_into_cells::create_cell_order::{constant#2})
  |
  = help: This is a known issue with the compiler. Run `cargo clean -p rust_scripts` or `cargo clean` to allow your project to compile
  = note: Please follow the instructions below to create a bug report with the provided information
  = note: See <https://github.com/rust-lang/rust/issues/84970> for more information

thread 'rustc' panicked at 'Found unstable fingerprints for def_span(rust_scripts[d534]::split_grid_into_cells::create_cell_order::{constant#2}): src/split_grid_into_cells.rs:76:23: 76:26 (#0)', compiler/rustc_query_system/src/query/plumbing.rs:679:9
Backtrace

``` stack backtrace: 0: rust_begin_unwind at /rustc/9eb3afe9ebe9c7d2b84b71002d44f4a0edac95e0/library/std/src/panicking.rs:575:5 1: core::panicking::panic_fmt at /rustc/9eb3afe9ebe9c7d2b84b71002d44f4a0edac95e0/library/core/src/panicking.rs:64:14 2: rustc_query_system::query::plumbing::incremental_verify_ich_failed 3: rustc_query_system::query::plumbing::get_query:: 4: rustc_ty_utils::ty::param_env 5: >::with_task:: 6: rustc_query_system::query::plumbing::get_query:: 7: rustc_hir_typeck::typeck 8: >::with_task:: 9: rustc_query_system::query::plumbing::try_execute_query:: 10: ::typeck 11: rustc_mir_build::thir::cx::thir_body 12: >::with_task::, core::result::Result<(&rustc_data_structures::steal::Steal, rustc_middle::thir::ExprId), rustc_errors::ErrorGuaranteed>> 13: rustc_query_system::query::plumbing::try_execute_query:: 14: rustc_mir_build::build::mir_built 15: >::with_task::, &rustc_data_structures::steal::Steal> 16: rustc_query_system::query::plumbing::try_execute_query:: 17: rustc_mir_transform::check_unsafety::unsafety_check_result 18: >::call_once 19: >::with_task:: 20: rustc_query_system::query::plumbing::try_execute_query:: 21: rustc_query_system::query::plumbing::force_query:: 22: rustc_query_impl::plumbing::force_from_dep_node:: 23: >::try_mark_previous_green:: 24: >::try_mark_previous_green:: 25: >::try_mark_previous_green:: 26: >::try_mark_previous_green:: 27: >::try_mark_previous_green:: 28: >::try_mark_previous_green:: 29: >::try_mark_previous_green:: 30: >::try_mark_previous_green:: 31: >::try_mark_previous_green:: 32: >::try_mark_green:: 33: rustc_query_system::query::plumbing::try_load_from_disk_and_cache_in_memory:: 34: rustc_query_system::query::plumbing::try_execute_query:: 35: ::eval_to_valtree 36: ::const_eval_global_id_for_typeck 37: ::const_eval_resolve_for_typeck 38: ::eval 39: ::fold_const 40: ::fold_ty 41: <&rustc_middle::ty::list::List as rustc_middle::ty::fold::TypeFoldable>::try_fold_with:: 42: ::fold_ty 43: <&rustc_middle::ty::list::List as rustc_middle::ty::fold::TypeFoldable>::try_fold_with:: 44: ::fold_ty 45: <&rustc_middle::ty::list::List as rustc_middle::ty::fold::TypeFoldable>::try_fold_with:: 46: ::fold_ty 47: <&mut rustc_hir_analysis::check::wfcheck::check_fn_or_method::{closure#1} as core::ops::function::FnOnce<((usize, rustc_middle::ty::Ty),)>>::call_once 48: as core::iter::traits::collect::Extend>::extend::>>, rustc_hir_analysis::check::wfcheck::check_fn_or_method::{closure#1}>> 49: >>::intern_with::>>, rustc_hir_analysis::check::wfcheck::check_fn_or_method::{closure#1}>, ::mk_type_list>>, rustc_hir_analysis::check::wfcheck::check_fn_or_method::{closure#1}>>::{closure#0}> 50: rustc_hir_analysis::check::wfcheck::check_fn_or_method 51: rustc_hir_analysis::check::wfcheck::check_item_fn 52: rustc_hir_analysis::check::wfcheck::check_well_formed 53: >::with_task:: 54: rustc_query_system::query::plumbing::try_execute_query:: 55: rustc_query_system::query::plumbing::force_query:: 56: rustc_query_impl::plumbing::force_from_dep_node:: 57: >::try_mark_previous_green:: 58: rustc_query_system::query::plumbing::ensure_must_run:: 59: ::check_mod_type_wf 60: rustc_data_structures::sync::par_for_each_in::<&[rustc_hir::hir_id::OwnerId], ::par_for_each_module::{closure#0}> 61: ::track_errors:: 62: rustc_hir_analysis::check_crate 63: rustc_interface::passes::analysis 64: >::with_task::> 65: rustc_query_system::query::plumbing::try_execute_query:: 66: ::analysis 67: ::enter::> 68: rustc_span::with_source_map::, rustc_interface::interface::run_compiler, rustc_driver::run_compiler::{closure#1}>::{closure#0}::{closure#0}> 69: >::set::, rustc_driver::run_compiler::{closure#1}>::{closure#0}, core::result::Result<(), rustc_errors::ErrorGuaranteed>> note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace. 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.68.2 (9eb3afe9e 2023-03-27) running on x86_64-unknown-linux-gnu note: compiler flags: -C embed-bitcode=no -C debuginfo=2 -C incremental=[REDACTED] note: some of the compiler flags provided by cargo are hidden query stack during panic: thread 'rustc' panicked at 'called `Option::unwrap()` on a `None` value', /rustc/9eb3afe9ebe9c7d2b84b71002d44f4a0edac95e0/compiler/rustc_query_system/src/query/job.rs:47:24 stack backtrace: 0: 0x7f8bd8f6659a - std::backtrace_rs::backtrace::libunwind::trace::ha271a8a7e1f3d4ef at /rustc/9eb3afe9ebe9c7d2b84b71002d44f4a0edac95e0/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5 1: 0x7f8bd8f6659a - std::backtrace_rs::backtrace::trace_unsynchronized::h85739da0352c791a at /rustc/9eb3afe9ebe9c7d2b84b71002d44f4a0edac95e0/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5 2: 0x7f8bd8f6659a - std::sys_common::backtrace::_print_fmt::hbc6ebcfb2910b329 at /rustc/9eb3afe9ebe9c7d2b84b71002d44f4a0edac95e0/library/std/src/sys_common/backtrace.rs:65:5 3: 0x7f8bd8f6659a - ::fmt::he1c117e52d53614f at /rustc/9eb3afe9ebe9c7d2b84b71002d44f4a0edac95e0/library/std/src/sys_common/backtrace.rs:44:22 4: 0x7f8bd8fc839e - core::fmt::write::h25eb51b9526b8e0c at /rustc/9eb3afe9ebe9c7d2b84b71002d44f4a0edac95e0/library/core/src/fmt/mod.rs:1213:17 5: 0x7f8bd8f56be5 - std::io::Write::write_fmt::ha9edec5fb1621933 at /rustc/9eb3afe9ebe9c7d2b84b71002d44f4a0edac95e0/library/std/src/io/mod.rs:1682:15 6: 0x7f8bd8f66365 - std::sys_common::backtrace::_print::hf8657cd429fc3452 at /rustc/9eb3afe9ebe9c7d2b84b71002d44f4a0edac95e0/library/std/src/sys_common/backtrace.rs:47:5 7: 0x7f8bd8f66365 - std::sys_common::backtrace::print::h41b9b18ed86f86bd at /rustc/9eb3afe9ebe9c7d2b84b71002d44f4a0edac95e0/library/std/src/sys_common/backtrace.rs:34:9 8: 0x7f8bd8f6912f - std::panicking::default_hook::{{closure}}::h22a91871f4454152 at /rustc/9eb3afe9ebe9c7d2b84b71002d44f4a0edac95e0/library/std/src/panicking.rs:267:22 9: 0x7f8bd8f68e6b - std::panicking::default_hook::h21ddc36de0cd4ae7 at /rustc/9eb3afe9ebe9c7d2b84b71002d44f4a0edac95e0/library/std/src/panicking.rs:286:9 10: 0x7f8bdc2b9324 - rustc_driver[70f63b52fde826b7]::DEFAULT_HOOK::{closure#0}::{closure#0} 11: 0x7f8bd8f6996a - as core::ops::function::Fn>::call::h6f7e3c94ecc52e2f at /rustc/9eb3afe9ebe9c7d2b84b71002d44f4a0edac95e0/library/alloc/src/boxed.rs:2002:9 12: 0x7f8bd8f6996a - std::panicking::rust_panic_with_hook::h5059419d6d59b3d0 at /rustc/9eb3afe9ebe9c7d2b84b71002d44f4a0edac95e0/library/std/src/panicking.rs:692:13 13: 0x7f8bd8f696a2 - std::panicking::begin_panic_handler::{{closure}}::h0f383c291cd78343 at /rustc/9eb3afe9ebe9c7d2b84b71002d44f4a0edac95e0/library/std/src/panicking.rs:577:13 14: 0x7f8bd8f66a4c - std::sys_common::backtrace::__rust_end_short_backtrace::h70ab22f2ad318cdd at /rustc/9eb3afe9ebe9c7d2b84b71002d44f4a0edac95e0/library/std/src/sys_common/backtrace.rs:137:18 15: 0x7f8bd8f693f2 - rust_begin_unwind at /rustc/9eb3afe9ebe9c7d2b84b71002d44f4a0edac95e0/library/std/src/panicking.rs:575:5 16: 0x7f8bd8fc4d43 - core::panicking::panic_fmt::hd1d46bcde3c61d72 at /rustc/9eb3afe9ebe9c7d2b84b71002d44f4a0edac95e0/library/core/src/panicking.rs:64:14 17: 0x7f8bd8fc4ddd - core::panicking::panic::h056c466ab4571cf2 at /rustc/9eb3afe9ebe9c7d2b84b71002d44f4a0edac95e0/library/core/src/panicking.rs:114:5 18: 0x7f8bdbab0ee7 - ::find_cycle_in_stack:: 19: 0x7f8bdaf01783 - rustc_query_system[59807289ca97d521]::query::plumbing::get_query:: 20: 0x7f8bdaefee43 - ::def_span 21: 0x7f8bdc7985d5 - ::default_span 22: 0x7f8bdcc30151 - rustc_query_impl[81153385010d7886]::plumbing::create_query_frame:: 23: 0x7f8bdcc21e09 - >::call_once 24: 0x7f8bdcac9870 - >::try_collect_active_jobs:: 25: 0x7f8bdb2a4772 - ::try_collect_active_jobs 26: 0x7f8bdaf01716 - rustc_query_system[59807289ca97d521]::query::plumbing::get_query:: 27: 0x7f8bdaefee43 - ::def_span 28: 0x7f8bdc7ba879 - ::default_span 29: 0x7f8bdcc2de62 - rustc_query_impl[81153385010d7886]::plumbing::create_query_frame::> 30: 0x7f8bdcc1ea90 - )>>::call_once 31: 0x7f8bdcac7526 - , rustc_middle[6dfce017f6b7786d]::dep_graph::dep_node::DepKind>>::try_collect_active_jobs:: 32: 0x7f8bdb2a4772 - ::try_collect_active_jobs 33: 0x7f8bdaf01716 - rustc_query_system[59807289ca97d521]::query::plumbing::get_query:: 34: 0x7f8bdaefee43 - ::def_span 35: 0x7f8bdc7985d5 - ::default_span 36: 0x7f8bdcc2fd1f - rustc_query_impl[81153385010d7886]::plumbing::create_query_frame:: 37: 0x7f8bdcc219e3 - >::call_once 38: 0x7f8bdcac96f6 - >::try_collect_active_jobs:: 39: 0x7f8bdb2a4772 - ::try_collect_active_jobs 40: 0x7f8bdaf01716 - rustc_query_system[59807289ca97d521]::query::plumbing::get_query:: 41: 0x7f8bdaefee43 - ::def_span 42: 0x7f8bdc7985d5 - ::default_span 43: 0x7f8bdcc2fd1f - rustc_query_impl[81153385010d7886]::plumbing::create_query_frame:: 44: 0x7f8bdcc201a3 - >::call_once 45: 0x7f8bdcac96f6 - >::try_collect_active_jobs:: 46: 0x7f8bdb2a4772 - ::try_collect_active_jobs 47: 0x7f8bdaf01716 - rustc_query_system[59807289ca97d521]::query::plumbing::get_query:: 48: 0x7f8bdaefee43 - ::def_span 49: 0x7f8bdc7985d5 - ::default_span 50: 0x7f8bdcc2e8b0 - rustc_query_impl[81153385010d7886]::plumbing::create_query_frame::> 51: 0x7f8bdcc21d24 - )>>::call_once 52: 0x7f8bdcac7d3b - , rustc_middle[6dfce017f6b7786d]::dep_graph::dep_node::DepKind>>::try_collect_active_jobs:: 53: 0x7f8bdb2a4772 - ::try_collect_active_jobs 54: 0x7f8bdaf01716 - rustc_query_system[59807289ca97d521]::query::plumbing::get_query:: 55: 0x7f8bdaefee43 - ::def_span 56: 0x7f8bdc7985d5 - ::default_span 57: 0x7f8bdcc2e8b0 - rustc_query_impl[81153385010d7886]::plumbing::create_query_frame::> 58: 0x7f8bdcc21e54 - )>>::call_once 59: 0x7f8bdcac7d3b - , rustc_middle[6dfce017f6b7786d]::dep_graph::dep_node::DepKind>>::try_collect_active_jobs:: 60: 0x7f8bdb2a4772 - ::try_collect_active_jobs 61: 0x7f8bdcb33a68 - rustc_query_system[59807289ca97d521]::query::job::print_query_stack:: 62: 0x7f8bdc61aac2 - rustc_interface[698bad460dbd68d3]::interface::try_print_query_stack 63: 0x7f8bdc2bb837 - rustc_driver[70f63b52fde826b7]::report_ice 64: 0x7f8bd8f6996a - as core::ops::function::Fn>::call::h6f7e3c94ecc52e2f at /rustc/9eb3afe9ebe9c7d2b84b71002d44f4a0edac95e0/library/alloc/src/boxed.rs:2002:9 65: 0x7f8bd8f6996a - std::panicking::rust_panic_with_hook::h5059419d6d59b3d0 at /rustc/9eb3afe9ebe9c7d2b84b71002d44f4a0edac95e0/library/std/src/panicking.rs:692:13 66: 0x7f8bd8f696e9 - std::panicking::begin_panic_handler::{{closure}}::h0f383c291cd78343 at /rustc/9eb3afe9ebe9c7d2b84b71002d44f4a0edac95e0/library/std/src/panicking.rs:579:13 67: 0x7f8bd8f66a4c - std::sys_common::backtrace::__rust_end_short_backtrace::h70ab22f2ad318cdd at /rustc/9eb3afe9ebe9c7d2b84b71002d44f4a0edac95e0/library/std/src/sys_common/backtrace.rs:137:18 68: 0x7f8bd8f693f2 - rust_begin_unwind at /rustc/9eb3afe9ebe9c7d2b84b71002d44f4a0edac95e0/library/std/src/panicking.rs:575:5 69: 0x7f8bd8fc4d43 - core::panicking::panic_fmt::hd1d46bcde3c61d72 at /rustc/9eb3afe9ebe9c7d2b84b71002d44f4a0edac95e0/library/core/src/panicking.rs:64:14 70: 0x7f8bdb1c1227 - rustc_query_system[59807289ca97d521]::query::plumbing::incremental_verify_ich_failed 71: 0x7f8bdaf01ce2 - rustc_query_system[59807289ca97d521]::query::plumbing::get_query:: 72: 0x7f8bdaab2090 - rustc_ty_utils[8d567c298701bb41]::ty::param_env 73: 0x7f8bdaabd7cf - >::with_task:: 74: 0x7f8bdaab05c9 - rustc_query_system[59807289ca97d521]::query::plumbing::get_query:: 75: 0x7f8bda3c13bc - rustc_hir_typeck[698e9809084ff9ec]::typeck 76: 0x7f8bda3b1797 - >::with_task:: 77: 0x7f8bda3a92eb - rustc_query_system[59807289ca97d521]::query::plumbing::try_execute_query:: 78: 0x7f8bdbc71e74 - ::typeck 79: 0x7f8bdb349057 - rustc_mir_build[fb6c695b6e0f4a7e]::thir::cx::thir_body 80: 0x7f8bdb34b60c - >::with_task::, core[1d432356d8e1e9f1]::result::Result<(&rustc_data_structures[560608da72c35763]::steal::Steal, rustc_middle[6dfce017f6b7786d]::thir::ExprId), rustc_errors[53e74ce803854a4d]::ErrorGuaranteed>> 81: 0x7f8bdb33fb96 - rustc_query_system[59807289ca97d521]::query::plumbing::try_execute_query:: 82: 0x7f8bdb3386f4 - rustc_mir_build[fb6c695b6e0f4a7e]::build::mir_built 83: 0x7f8bdafebbbb - >::with_task::, &rustc_data_structures[560608da72c35763]::steal::Steal> 84: 0x7f8bdafeada0 - rustc_query_system[59807289ca97d521]::query::plumbing::try_execute_query:: 85: 0x7f8bdaa704b6 - rustc_mir_transform[2d65a293f14beadb]::check_unsafety::unsafety_check_result 86: 0x7f8bdaa6fec4 - >::call_once 87: 0x7f8bdb1b93c7 - >::with_task:: 88: 0x7f8bdb1b6297 - rustc_query_system[59807289ca97d521]::query::plumbing::try_execute_query:: 89: 0x7f8bdb9d9bd1 - rustc_query_system[59807289ca97d521]::query::plumbing::force_query:: 90: 0x7f8bdb9d9ad0 - rustc_query_impl[81153385010d7886]::plumbing::force_from_dep_node:: 91: 0x7f8bda3338b2 - >::try_mark_previous_green:: 92: 0x7f8bda33384d - >::try_mark_previous_green:: 93: 0x7f8bda33384d - >::try_mark_previous_green:: 94: 0x7f8bda33384d - >::try_mark_previous_green:: 95: 0x7f8bda33384d - >::try_mark_previous_green:: 96: 0x7f8bda33384d - >::try_mark_previous_green:: 97: 0x7f8bda33384d - >::try_mark_previous_green:: 98: 0x7f8bda33384d - >::try_mark_previous_green:: 99: 0x7f8bda33384d - >::try_mark_previous_green:: 100: 0x7f8bda333621 - >::try_mark_green:: 101: 0x7f8bdb8e0866 - rustc_query_system[59807289ca97d521]::query::plumbing::try_load_from_disk_and_cache_in_memory:: 102: 0x7f8bdb8df666 - rustc_query_system[59807289ca97d521]::query::plumbing::try_execute_query:: 103: 0x7f8bdbc72b90 - ::eval_to_valtree 104: 0x7f8bda80bb4f - ::const_eval_global_id_for_typeck 105: 0x7f8bda80b4ba - ::const_eval_resolve_for_typeck 106: 0x7f8bda80acd4 - ::eval 107: 0x7f8bda7e7692 - ::fold_const 108: 0x7f8bda7e5d9d - ::fold_ty 109: 0x7f8bda7e413e - <&rustc_middle[6dfce017f6b7786d]::ty::list::List as rustc_middle[6dfce017f6b7786d]::ty::fold::TypeFoldable>::try_fold_with:: 110: 0x7f8bda7e4c9d - ::fold_ty 111: 0x7f8bda7e41c2 - <&rustc_middle[6dfce017f6b7786d]::ty::list::List as rustc_middle[6dfce017f6b7786d]::ty::fold::TypeFoldable>::try_fold_with:: 112: 0x7f8bda7e4c9d - ::fold_ty 113: 0x7f8bda7e63d1 - <&rustc_middle[6dfce017f6b7786d]::ty::list::List as rustc_middle[6dfce017f6b7786d]::ty::fold::TypeFoldable>::try_fold_with:: 114: 0x7f8bda7e5cf2 - ::fold_ty 115: 0x7f8bda3236a9 - <&mut rustc_hir_analysis[651175ae4d1746c1]::check::wfcheck::check_fn_or_method::{closure#1} as core[1d432356d8e1e9f1]::ops::function::FnOnce<((usize, rustc_middle[6dfce017f6b7786d]::ty::Ty),)>>::call_once 116: 0x7f8bda322ec8 - as core[1d432356d8e1e9f1]::iter::traits::collect::Extend>::extend::>>, rustc_hir_analysis[651175ae4d1746c1]::check::wfcheck::check_fn_or_method::{closure#1}>> 117: 0x7f8bda322b99 - >>::intern_with::>>, rustc_hir_analysis[651175ae4d1746c1]::check::wfcheck::check_fn_or_method::{closure#1}>, ::mk_type_list>>, rustc_hir_analysis[651175ae4d1746c1]::check::wfcheck::check_fn_or_method::{closure#1}>>::{closure#0}> 118: 0x7f8bdb2c0680 - rustc_hir_analysis[651175ae4d1746c1]::check::wfcheck::check_fn_or_method 119: 0x7f8bdb2b5fe3 - rustc_hir_analysis[651175ae4d1746c1]::check::wfcheck::check_item_fn 120: 0x7f8bdb2b1826 - rustc_hir_analysis[651175ae4d1746c1]::check::wfcheck::check_well_formed 121: 0x7f8bda98ef97 - >::with_task:: 122: 0x7f8bdba89776 - rustc_query_system[59807289ca97d521]::query::plumbing::try_execute_query:: 123: 0x7f8bdba88faf - rustc_query_system[59807289ca97d521]::query::plumbing::force_query:: 124: 0x7f8bdba88ea0 - rustc_query_impl[81153385010d7886]::plumbing::force_from_dep_node:: 125: 0x7f8bda3338b2 - >::try_mark_previous_green:: 126: 0x7f8bdb82b3af - rustc_query_system[59807289ca97d521]::query::plumbing::ensure_must_run:: 127: 0x7f8bdb82b189 - ::check_mod_type_wf 128: 0x7f8bda74e7f8 - rustc_data_structures[560608da72c35763]::sync::par_for_each_in::<&[rustc_hir[f57f2f0f06c38e57]::hir_id::OwnerId], ::par_for_each_module::{closure#0}> 129: 0x7f8bda74e5e3 - ::track_errors:: 130: 0x7f8bda74e30a - rustc_hir_analysis[651175ae4d1746c1]::check_crate 131: 0x7f8bda74dfab - rustc_interface[698bad460dbd68d3]::passes::analysis 132: 0x7f8bdb9e4f76 - >::with_task::> 133: 0x7f8bdb9e4131 - rustc_query_system[59807289ca97d521]::query::plumbing::try_execute_query:: 134: 0x7f8bdbc6e60a - ::analysis 135: 0x7f8bdb49a010 - ::enter::> 136: 0x7f8bdb497a84 - rustc_span[7c23fb27ec020b97]::with_source_map::, rustc_interface[698bad460dbd68d3]::interface::run_compiler, rustc_driver[70f63b52fde826b7]::run_compiler::{closure#1}>::{closure#0}::{closure#0}> 137: 0x7f8bdb4902d4 - >::set::, rustc_driver[70f63b52fde826b7]::run_compiler::{closure#1}>::{closure#0}, core[1d432356d8e1e9f1]::result::Result<(), rustc_errors[53e74ce803854a4d]::ErrorGuaranteed>> 138: 0x7f8bdb48f9d2 - std[f8b79e573431a86c]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver[70f63b52fde826b7]::run_compiler::{closure#1}>::{closure#0}, core[1d432356d8e1e9f1]::result::Result<(), rustc_errors[53e74ce803854a4d]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[1d432356d8e1e9f1]::result::Result<(), rustc_errors[53e74ce803854a4d]::ErrorGuaranteed>> 139: 0x7f8bdb48f77a - <::spawn_unchecked_, rustc_driver[70f63b52fde826b7]::run_compiler::{closure#1}>::{closure#0}, core[1d432356d8e1e9f1]::result::Result<(), rustc_errors[53e74ce803854a4d]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[1d432356d8e1e9f1]::result::Result<(), rustc_errors[53e74ce803854a4d]::ErrorGuaranteed>>::{closure#1} as core[1d432356d8e1e9f1]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} 140: 0x7f8bd8f73823 - as core::ops::function::FnOnce>::call_once::h3205ec2d7fc232c5 at /rustc/9eb3afe9ebe9c7d2b84b71002d44f4a0edac95e0/library/alloc/src/boxed.rs:1988:9 141: 0x7f8bd8f73823 - as core::ops::function::FnOnce>::call_once::h3bb5daec8177f56b at /rustc/9eb3afe9ebe9c7d2b84b71002d44f4a0edac95e0/library/alloc/src/boxed.rs:1988:9 142: 0x7f8bd8f73823 - std::sys::unix::thread::Thread::new::thread_start::had7b8061e306bb5c at /rustc/9eb3afe9ebe9c7d2b84b71002d44f4a0edac95e0/library/std/src/sys/unix/thread.rs:108:17 143: 0x7f8bd8d0cfd4 - start_thread at ./nptl/./nptl/pthread_create.c:442:8 144: 0x7f8bd8d8d66c - __GI___clone3 at ./misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 145: 0x0 - 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.68.2 (9eb3afe9e 2023-03-27) running on x86_64-unknown-linux-gnu note: compiler flags: -C embed-bitcode=no -C debuginfo=2 -C incremental=[REDACTED] note: some of the compiler flags provided by cargo are hidden query stack during panic: #0 [def_span] looking up span for `split_grid_into_cells::create_cell_order::{constant#2}` end of query stack thread panicked while panicking. aborting. error: could not compile `rust-scripts` due to previous error Caused by: process didn't exit successfully: `rustc --crate-name rust_scripts --edition=2021 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=178 --emit=dep-info,link -C embed-bitcode=no -C debuginfo=2 --test -C metadata=b0268fe1825b697e -C extra-filename=-b0268fe1825b697e --out-dir /home/johannes/uni/msc/uzh/masterarbeit/rust-scripts/target/debug/deps -C incremental=/home/johannes/uni/msc/uzh/masterarbeit/rust-scripts/target/debug/incremental -L dependency=/home/johannes/uni/msc/uzh/masterarbeit/rust-scripts/target/debug/deps --extern ndarray=/home/johannes/uni/msc/uzh/masterarbeit/rust-scripts/target/debug/deps/libndarray-fe4478c5a4a182d0.rlib` (signal: 6, SIGABRT: process abort signal) ```

I tried to compile with the run test code lens in vscode and with cargo test in the terminal. Both give this error. Weirdly enough cargo build and cargo build --release both had no problems. I opened the issue because the compiler error asked me to do so.

EDIT

After following the help from the compiler error and deleting the target folder the rebuild worked fine.

SebastianJL commented 1 year ago

I wasn't able to upload the target folder, because after zipping it is about 30MiB, which is larger then the max file size of 25MiB here. I saved it for now, so tell me if this would be a valuable thing to have.

Noratrieb commented 1 year ago

Thank you for the report! This is probably a duplicate of #108481, which is fixed on nightly now.

For future reference: when debugging incremental compilation issues, the most useful reproduction to have is of the form of "I compiled this code, then applied this diff, then applied it again and it ICEd". So if you get one, remembering the last changed you did and trying them again to reproduce it could be very useful.

SebastianJL commented 1 year ago

Thanks for the tip. If I ever run into something like this again I will try to do that.