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: failed to normalize #121170

Closed
matthiaskrgr opened this issue Feb 15, 2024 · 1 comment · Fixed by #121181
Closed

ICE: failed to normalize #121170

matthiaskrgr opened this issue Feb 15, 2024 · 1 comment · Fixed by #121181
Assignees
Labels
C-bug Category: This is a bug. 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.

Comments

@matthiaskrgr
Copy link
Member

snippet:

use std::ops::{Add, Mul};

fn problematic_function<Space>(material_surface_element: Edge2dElement)
where
    DefaultAllocator: FiniteElementAllocator<DimU1, Space>,
{
    let _: Point2<f64> = material_surface_element.map_reference_coords().into();
}

impl<N, R, C> Allocator<N, R, C> for DefaultAllocator
where
    R: DimName,
    C: DimName,
    R::Value: Mul<C::Value>,
    Prod<R::Value, C::Value>:,
{
    type Buffer = ArrayStorage<N, R, C>;
}
impl<N, C> Allocator<N, Dynamic, C> for DefaultAllocator {}
impl DimName for DimU1 {}
impl DimName for DimU2 {}
impl<N, D> From<VectorN<N, D>> for Point<N, D> {}

impl FiniteElement<DimU2> for Edge2dElement {}

type Owned<N, R, C> = <DefaultAllocator as Allocator<N, R, C>>::Buffer;
type MatrixMN<N, R, C> = Matrix<N, R, C, Owned<N, R, C>>;
type VectorN<N, D> = MatrixMN<N, D, DimU1>;

type Point2<N> = Point<N, DimU2>;

struct B0;
struct B1;

struct DefaultAllocator;
struct Dynamic;
struct DimU1;
struct DimU2;
struct Matrix<N, R, C, S> {}
struct ArrayStorage<N, R, C> {}

struct Point<N, D> {}
struct Edge2dElement;

trait Allocator<Scalar, R, C = DimU1> {
    type Buffer;
}
trait DimName {}
trait FiniteElementAllocator<GeometryDim, NodalDim>:
    Allocator<f64, ()> + Allocator<f64, NodalDim>
{
}

trait FiniteElement<GeometryDim> {
    fn map_reference_coords(&self) -> VectorN<f64, GeometryDim>;
}

Version information

rustc 1.78.0-nightly (b656f5171 2024-02-15)
binary: rustc
commit-hash: b656f5171bfecfe748ef365c80c3935abe189141
commit-date: 2024-02-15
host: x86_64-unknown-linux-gnu
release: 1.78.0-nightly
LLVM version: 18.1.0

Command:
/home/matthias/.rustup/toolchains/master/bin/rustc

Program output

error[E0412]: cannot find type `Prod` in this scope
  --> /tmp/icemaker_global_tempdir.rtS5OH62BwY2/rustc_testrunner_tmpdir_reporting.fwMFTl0IYx88/mvce.rs:15:5
   |
15 |     Prod<R::Value, C::Value>:,
   |     ^^^^ not found in this scope

warning: unused import: `Add`
 --> /tmp/icemaker_global_tempdir.rtS5OH62BwY2/rustc_testrunner_tmpdir_reporting.fwMFTl0IYx88/mvce.rs:1:16
  |
1 | use std::ops::{Add, Mul};
  |                ^^^
  |
  = note: `#[warn(unused_imports)]` on by default

error[E0601]: `main` function not found in crate `mvce`
  --> /tmp/icemaker_global_tempdir.rtS5OH62BwY2/rustc_testrunner_tmpdir_reporting.fwMFTl0IYx88/mvce.rs:56:2
   |
56 | }
   |  ^ consider adding a `main` function to `/tmp/icemaker_global_tempdir.rtS5OH62BwY2/rustc_testrunner_tmpdir_reporting.fwMFTl0IYx88/mvce.rs`

error[E0220]: associated type `Value` not found for `R`
  --> /tmp/icemaker_global_tempdir.rtS5OH62BwY2/rustc_testrunner_tmpdir_reporting.fwMFTl0IYx88/mvce.rs:14:8
   |
14 |     R::Value: Mul<C::Value>,
   |        ^^^^^ associated type `Value` not found

error[E0220]: associated type `Value` not found for `C`
  --> /tmp/icemaker_global_tempdir.rtS5OH62BwY2/rustc_testrunner_tmpdir_reporting.fwMFTl0IYx88/mvce.rs:14:22
   |
14 |     R::Value: Mul<C::Value>,
   |                      ^^^^^ associated type `Value` not found

error[E0277]: the trait bound `(): DimName` is not satisfied
  --> /tmp/icemaker_global_tempdir.rtS5OH62BwY2/rustc_testrunner_tmpdir_reporting.fwMFTl0IYx88/mvce.rs:5:5
   |
5  |     DefaultAllocator: FiniteElementAllocator<DimU1, Space>,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `DimName` is not implemented for `()`, which is required by `DefaultAllocator: Allocator<f64, ()>`
   |
   = help: the following other types implement trait `DimName`:
             DimU1
             DimU2
note: required for `DefaultAllocator` to implement `Allocator<f64, ()>`
  --> /tmp/icemaker_global_tempdir.rtS5OH62BwY2/rustc_testrunner_tmpdir_reporting.fwMFTl0IYx88/mvce.rs:10:15
   |
10 | impl<N, R, C> Allocator<N, R, C> for DefaultAllocator
   |               ^^^^^^^^^^^^^^^^^^     ^^^^^^^^^^^^^^^^
11 | where
12 |     R: DimName,
   |        ------- unsatisfied trait bound introduced here
   = help: see issue #48214
   = help: add `#![feature(trivial_bounds)]` to the crate attributes to enable

error[E0046]: not all trait items implemented, missing: `Buffer`
  --> /tmp/icemaker_global_tempdir.rtS5OH62BwY2/rustc_testrunner_tmpdir_reporting.fwMFTl0IYx88/mvce.rs:19:1
   |
19 | impl<N, C> Allocator<N, Dynamic, C> for DefaultAllocator {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `Buffer` in implementation
...
46 |     type Buffer;
   |     ----------- `Buffer` from trait

error[E0277]: the trait bound `D: DimName` is not satisfied
  --> /tmp/icemaker_global_tempdir.rtS5OH62BwY2/rustc_testrunner_tmpdir_reporting.fwMFTl0IYx88/mvce.rs:22:17
   |
22 | impl<N, D> From<VectorN<N, D>> for Point<N, D> {}
   |                 ^^^^^^^^^^^^^ the trait `DimName` is not implemented for `D`, which is required by `DefaultAllocator: Allocator<N, D>`
   |
note: required for `DefaultAllocator` to implement `Allocator<N, D>`
  --> /tmp/icemaker_global_tempdir.rtS5OH62BwY2/rustc_testrunner_tmpdir_reporting.fwMFTl0IYx88/mvce.rs:10:15
   |
10 | impl<N, R, C> Allocator<N, R, C> for DefaultAllocator
   |               ^^^^^^^^^^^^^^^^^^     ^^^^^^^^^^^^^^^^
11 | where
12 |     R: DimName,
   |        ------- unsatisfied trait bound introduced here
help: consider restricting type parameter `D`
   |
22 | impl<N, D: DimName> From<VectorN<N, D>> for Point<N, D> {}
   |          +++++++++

error[E0046]: not all trait items implemented, missing: `from`
  --> /tmp/icemaker_global_tempdir.rtS5OH62BwY2/rustc_testrunner_tmpdir_reporting.fwMFTl0IYx88/mvce.rs:22:1
   |
22 | impl<N, D> From<VectorN<N, D>> for Point<N, D> {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `from` in implementation
   |
   = help: implement the missing item: `fn from(_: Matrix<N, D, DimU1, <DefaultAllocator as Allocator<N, D>>::Buffer>) -> Self { todo!() }`

error[E0046]: not all trait items implemented, missing: `map_reference_coords`
  --> /tmp/icemaker_global_tempdir.rtS5OH62BwY2/rustc_testrunner_tmpdir_reporting.fwMFTl0IYx88/mvce.rs:24:1
   |
24 | impl FiniteElement<DimU2> for Edge2dElement {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `map_reference_coords` in implementation
...
55 |     fn map_reference_coords(&self) -> VectorN<f64, GeometryDim>;
   |     ------------------------------------------------------------ `map_reference_coords` from trait

error[E0392]: type parameter `N` is never used
  --> /tmp/icemaker_global_tempdir.rtS5OH62BwY2/rustc_testrunner_tmpdir_reporting.fwMFTl0IYx88/mvce.rs:39:15
   |
39 | struct Matrix<N, R, C, S> {}
   |               ^ unused type parameter
   |
   = help: consider removing `N`, referring to it in a field, or using a marker such as `PhantomData`
   = help: if you intended `N` to be a const parameter, use `const N: /* Type */` instead

error[E0392]: type parameter `R` is never used
  --> /tmp/icemaker_global_tempdir.rtS5OH62BwY2/rustc_testrunner_tmpdir_reporting.fwMFTl0IYx88/mvce.rs:39:18
   |
39 | struct Matrix<N, R, C, S> {}
   |                  ^ unused type parameter
   |
   = help: consider removing `R`, referring to it in a field, or using a marker such as `PhantomData`
   = help: if you intended `R` to be a const parameter, use `const R: /* Type */` instead

error[E0392]: type parameter `C` is never used
  --> /tmp/icemaker_global_tempdir.rtS5OH62BwY2/rustc_testrunner_tmpdir_reporting.fwMFTl0IYx88/mvce.rs:39:21
   |
39 | struct Matrix<N, R, C, S> {}
   |                     ^ unused type parameter
   |
   = help: consider removing `C`, referring to it in a field, or using a marker such as `PhantomData`
   = help: if you intended `C` to be a const parameter, use `const C: /* Type */` instead

error[E0392]: type parameter `S` is never used
  --> /tmp/icemaker_global_tempdir.rtS5OH62BwY2/rustc_testrunner_tmpdir_reporting.fwMFTl0IYx88/mvce.rs:39:24
   |
39 | struct Matrix<N, R, C, S> {}
   |                        ^ unused type parameter
   |
   = help: consider removing `S`, referring to it in a field, or using a marker such as `PhantomData`
   = help: if you intended `S` to be a const parameter, use `const S: /* Type */` instead

error[E0392]: type parameter `N` is never used
  --> /tmp/icemaker_global_tempdir.rtS5OH62BwY2/rustc_testrunner_tmpdir_reporting.fwMFTl0IYx88/mvce.rs:40:21
   |
40 | struct ArrayStorage<N, R, C> {}
   |                     ^ unused type parameter
   |
   = help: consider removing `N`, referring to it in a field, or using a marker such as `PhantomData`
   = help: if you intended `N` to be a const parameter, use `const N: /* Type */` instead

error[E0392]: type parameter `R` is never used
  --> /tmp/icemaker_global_tempdir.rtS5OH62BwY2/rustc_testrunner_tmpdir_reporting.fwMFTl0IYx88/mvce.rs:40:24
   |
40 | struct ArrayStorage<N, R, C> {}
   |                        ^ unused type parameter
   |
   = help: consider removing `R`, referring to it in a field, or using a marker such as `PhantomData`
   = help: if you intended `R` to be a const parameter, use `const R: /* Type */` instead

error[E0392]: type parameter `C` is never used
  --> /tmp/icemaker_global_tempdir.rtS5OH62BwY2/rustc_testrunner_tmpdir_reporting.fwMFTl0IYx88/mvce.rs:40:27
   |
40 | struct ArrayStorage<N, R, C> {}
   |                           ^ unused type parameter
   |
   = help: consider removing `C`, referring to it in a field, or using a marker such as `PhantomData`
   = help: if you intended `C` to be a const parameter, use `const C: /* Type */` instead

error[E0392]: type parameter `N` is never used
  --> /tmp/icemaker_global_tempdir.rtS5OH62BwY2/rustc_testrunner_tmpdir_reporting.fwMFTl0IYx88/mvce.rs:42:14
   |
42 | struct Point<N, D> {}
   |              ^ unused type parameter
   |
   = help: consider removing `N`, referring to it in a field, or using a marker such as `PhantomData`
   = help: if you intended `N` to be a const parameter, use `const N: /* Type */` instead

error[E0392]: type parameter `D` is never used
  --> /tmp/icemaker_global_tempdir.rtS5OH62BwY2/rustc_testrunner_tmpdir_reporting.fwMFTl0IYx88/mvce.rs:42:17
   |
42 | struct Point<N, D> {}
   |                 ^ unused type parameter
   |
   = help: consider removing `D`, referring to it in a field, or using a marker such as `PhantomData`
   = help: if you intended `D` to be a const parameter, use `const D: /* Type */` instead

error[E0277]: the trait bound `GeometryDim: DimName` is not satisfied
  --> /tmp/icemaker_global_tempdir.rtS5OH62BwY2/rustc_testrunner_tmpdir_reporting.fwMFTl0IYx88/mvce.rs:55:39
   |
55 |     fn map_reference_coords(&self) -> VectorN<f64, GeometryDim>;
   |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `DimName` is not implemented for `GeometryDim`, which is required by `DefaultAllocator: Allocator<f64, GeometryDim>`
   |
note: required for `DefaultAllocator` to implement `Allocator<f64, GeometryDim>`
  --> /tmp/icemaker_global_tempdir.rtS5OH62BwY2/rustc_testrunner_tmpdir_reporting.fwMFTl0IYx88/mvce.rs:10:15
   |
10 | impl<N, R, C> Allocator<N, R, C> for DefaultAllocator
   |               ^^^^^^^^^^^^^^^^^^     ^^^^^^^^^^^^^^^^
11 | where
12 |     R: DimName,
   |        ------- unsatisfied trait bound introduced here
help: consider restricting type parameter `GeometryDim`
   |
54 | trait FiniteElement<GeometryDim: DimName> {
   |                                +++++++++

error: internal compiler error: compiler/rustc_middle/src/ty/normalize_erasing_regions.rs:187:90: Failed to normalize Matrix<f64, DimU2, DimU1, Alias(Projection, AliasTy { args: [DefaultAllocator, f64, DimU2, DimU1], def_id: DefId(0:65 ~ mvce[1f19]::Allocator::Buffer) })>, maybe try to call `try_normalize_erasing_regions` instead

thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44:
Box<dyn Any>
stack backtrace:
   0:     0x7f08add8ce46 - std::backtrace_rs::backtrace::libunwind::trace::h981956bbff152137
                               at /rustc/b656f5171bfecfe748ef365c80c3935abe189141/library/std/src/../../backtrace/src/backtrace/libunwind.rs:104:5
   1:     0x7f08add8ce46 - std::backtrace_rs::backtrace::trace_unsynchronized::h1bf8c1e6c1cefce2
                               at /rustc/b656f5171bfecfe748ef365c80c3935abe189141/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7f08add8ce46 - std::sys_common::backtrace::_print_fmt::hc564766b6010085d
                               at /rustc/b656f5171bfecfe748ef365c80c3935abe189141/library/std/src/sys_common/backtrace.rs:68:5
   3:     0x7f08add8ce46 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::haf36295858f2ea15
                               at /rustc/b656f5171bfecfe748ef365c80c3935abe189141/library/std/src/sys_common/backtrace.rs:44:22
   4:     0x7f08adddd46c - core::fmt::rt::Argument::fmt::h2a7362edd087ab64
                               at /rustc/b656f5171bfecfe748ef365c80c3935abe189141/library/core/src/fmt/rt.rs:142:9
   5:     0x7f08adddd46c - core::fmt::write::he82f4ca10d216715
                               at /rustc/b656f5171bfecfe748ef365c80c3935abe189141/library/core/src/fmt/mod.rs:1120:17
   6:     0x7f08add807ef - std::io::Write::write_fmt::h62ab672201ae50ef
                               at /rustc/b656f5171bfecfe748ef365c80c3935abe189141/library/std/src/io/mod.rs:1854:15
   7:     0x7f08add8cbf4 - std::sys_common::backtrace::_print::h257a4e606f6446f1
                               at /rustc/b656f5171bfecfe748ef365c80c3935abe189141/library/std/src/sys_common/backtrace.rs:47:5
   8:     0x7f08add8cbf4 - std::sys_common::backtrace::print::h4c84f1802ea03065
                               at /rustc/b656f5171bfecfe748ef365c80c3935abe189141/library/std/src/sys_common/backtrace.rs:34:9
   9:     0x7f08add8f93b - std::panicking::default_hook::{{closure}}::h8bb4b1dc3224bc4f
  10:     0x7f08add8f689 - std::panicking::default_hook::h6ce02f9d542ca00e
                               at /rustc/b656f5171bfecfe748ef365c80c3935abe189141/library/std/src/panicking.rs:292:9
  11:     0x7f08b0c0979c - std[afad83a0abe745e5]::panicking::update_hook::<alloc[ef7855f2d3cb48f9]::boxed::Box<rustc_driver_impl[72524482d7a1ce3a]::install_ice_hook::{closure#0}>>::{closure#0}
  12:     0x7f08add900a0 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hf1c23856971ba8f3
                               at /rustc/b656f5171bfecfe748ef365c80c3935abe189141/library/alloc/src/boxed.rs:2030:9
  13:     0x7f08add900a0 - std::panicking::rust_panic_with_hook::h4ab0d54fed591b19
                               at /rustc/b656f5171bfecfe748ef365c80c3935abe189141/library/std/src/panicking.rs:785:13
  14:     0x7f08b0c377d4 - std[afad83a0abe745e5]::panicking::begin_panic::<rustc_errors[41140090eb8b4ed1]::ExplicitBug>::{closure#0}
  15:     0x7f08b0c346e6 - std[afad83a0abe745e5]::sys_common::backtrace::__rust_end_short_backtrace::<std[afad83a0abe745e5]::panicking::begin_panic<rustc_errors[41140090eb8b4ed1]::ExplicitBug>::{closure#0}, !>
  16:     0x7f08b0c340e6 - std[afad83a0abe745e5]::panicking::begin_panic::<rustc_errors[41140090eb8b4ed1]::ExplicitBug>
  17:     0x7f08b0c439c1 - <rustc_errors[41140090eb8b4ed1]::diagnostic_builder::BugAbort as rustc_errors[41140090eb8b4ed1]::diagnostic_builder::EmissionGuarantee>::emit_producing_guarantee
  18:     0x7f08b10047cc - <rustc_errors[41140090eb8b4ed1]::DiagCtxt>::bug::<alloc[ef7855f2d3cb48f9]::string::String>
  19:     0x7f08b10a397b - rustc_middle[290cb93503c40e1]::util::bug::opt_span_bug_fmt::<rustc_span[516bbf38a9567c12]::span_encoding::Span>::{closure#0}
  20:     0x7f08b1088d9a - rustc_middle[290cb93503c40e1]::ty::context::tls::with_opt::<rustc_middle[290cb93503c40e1]::util::bug::opt_span_bug_fmt<rustc_span[516bbf38a9567c12]::span_encoding::Span>::{closure#0}, !>::{closure#0}
  21:     0x7f08b1088c18 - rustc_middle[290cb93503c40e1]::ty::context::tls::with_context_opt::<rustc_middle[290cb93503c40e1]::ty::context::tls::with_opt<rustc_middle[290cb93503c40e1]::util::bug::opt_span_bug_fmt<rustc_span[516bbf38a9567c12]::span_encoding::Span>::{closure#0}, !>::{closure#0}, !>
  22:     0x7f08af49ad30 - rustc_middle[290cb93503c40e1]::util::bug::bug_fmt
  23:     0x7f08b21fbff1 - <rustc_middle[290cb93503c40e1]::ty::normalize_erasing_regions::NormalizeAfterErasingRegionsFolder as rustc_type_ir[32731a4b67ed09dd]::fold::TypeFolder<rustc_middle[290cb93503c40e1]::ty::context::TyCtxt>>::fold_ty
  24:     0x7f08b25894b8 - <rustc_middle[290cb93503c40e1]::ty::context::TyCtxt>::normalize_erasing_regions::<&rustc_middle[290cb93503c40e1]::ty::list::List<rustc_middle[290cb93503c40e1]::ty::generic_args::GenericArg>>
  25:     0x7f08b258a1cc - rustc_mir_build[192d5caf712484b8]::build::mir_built
  26:     0x7f08b2589a6b - rustc_query_impl[52bda5bceab5eb86]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[52bda5bceab5eb86]::query_impl::mir_built::dynamic_query::{closure#2}::{closure#0}, rustc_middle[290cb93503c40e1]::query::erase::Erased<[u8; 8usize]>>
  27:     0x7f08b20a48b0 - rustc_query_system[b7b0caec47058437]::query::plumbing::try_execute_query::<rustc_query_impl[52bda5bceab5eb86]::DynamicConfig<rustc_query_system[b7b0caec47058437]::query::caches::VecCache<rustc_span[516bbf38a9567c12]::def_id::LocalDefId, rustc_middle[290cb93503c40e1]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[52bda5bceab5eb86]::plumbing::QueryCtxt, false>
  28:     0x7f08b20a430c - rustc_query_impl[52bda5bceab5eb86]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace
  29:     0x7f08b22b6d56 - rustc_mir_build[192d5caf712484b8]::check_unsafety::check_unsafety
  30:     0x7f08b22b6b61 - rustc_query_impl[52bda5bceab5eb86]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[52bda5bceab5eb86]::query_impl::check_unsafety::dynamic_query::{closure#2}::{closure#0}, rustc_middle[290cb93503c40e1]::query::erase::Erased<[u8; 0usize]>>
  31:     0x7f08b265a348 - rustc_query_system[b7b0caec47058437]::query::plumbing::try_execute_query::<rustc_query_impl[52bda5bceab5eb86]::DynamicConfig<rustc_query_system[b7b0caec47058437]::query::caches::VecCache<rustc_span[516bbf38a9567c12]::def_id::LocalDefId, rustc_middle[290cb93503c40e1]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[52bda5bceab5eb86]::plumbing::QueryCtxt, false>
  32:     0x7f08b265a00f - rustc_query_impl[52bda5bceab5eb86]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace
  33:     0x7f08b28e098f - rustc_interface[b7e461ffbaea88c5]::passes::analysis
  34:     0x7f08b28e03e9 - rustc_query_impl[52bda5bceab5eb86]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[52bda5bceab5eb86]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[290cb93503c40e1]::query::erase::Erased<[u8; 1usize]>>
  35:     0x7f08b2bad4e5 - rustc_query_system[b7b0caec47058437]::query::plumbing::try_execute_query::<rustc_query_impl[52bda5bceab5eb86]::DynamicConfig<rustc_query_system[b7b0caec47058437]::query::caches::SingleCache<rustc_middle[290cb93503c40e1]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[52bda5bceab5eb86]::plumbing::QueryCtxt, false>
  36:     0x7f08b2bad249 - rustc_query_impl[52bda5bceab5eb86]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
  37:     0x7f08b2b60396 - rustc_interface[b7e461ffbaea88c5]::interface::run_compiler::<core[6ec33104783c452f]::result::Result<(), rustc_span[516bbf38a9567c12]::ErrorGuaranteed>, rustc_driver_impl[72524482d7a1ce3a]::run_compiler::{closure#0}>::{closure#0}
  38:     0x7f08b2dcaa06 - std[afad83a0abe745e5]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[b7e461ffbaea88c5]::util::run_in_thread_with_globals<rustc_interface[b7e461ffbaea88c5]::util::run_in_thread_pool_with_globals<rustc_interface[b7e461ffbaea88c5]::interface::run_compiler<core[6ec33104783c452f]::result::Result<(), rustc_span[516bbf38a9567c12]::ErrorGuaranteed>, rustc_driver_impl[72524482d7a1ce3a]::run_compiler::{closure#0}>::{closure#0}, core[6ec33104783c452f]::result::Result<(), rustc_span[516bbf38a9567c12]::ErrorGuaranteed>>::{closure#0}, core[6ec33104783c452f]::result::Result<(), rustc_span[516bbf38a9567c12]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[6ec33104783c452f]::result::Result<(), rustc_span[516bbf38a9567c12]::ErrorGuaranteed>>
  39:     0x7f08b2dca832 - <<std[afad83a0abe745e5]::thread::Builder>::spawn_unchecked_<rustc_interface[b7e461ffbaea88c5]::util::run_in_thread_with_globals<rustc_interface[b7e461ffbaea88c5]::util::run_in_thread_pool_with_globals<rustc_interface[b7e461ffbaea88c5]::interface::run_compiler<core[6ec33104783c452f]::result::Result<(), rustc_span[516bbf38a9567c12]::ErrorGuaranteed>, rustc_driver_impl[72524482d7a1ce3a]::run_compiler::{closure#0}>::{closure#0}, core[6ec33104783c452f]::result::Result<(), rustc_span[516bbf38a9567c12]::ErrorGuaranteed>>::{closure#0}, core[6ec33104783c452f]::result::Result<(), rustc_span[516bbf38a9567c12]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[6ec33104783c452f]::result::Result<(), rustc_span[516bbf38a9567c12]::ErrorGuaranteed>>::{closure#1} as core[6ec33104783c452f]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  40:     0x7f08add991e5 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h015be20ba21a85d6
                               at /rustc/b656f5171bfecfe748ef365c80c3935abe189141/library/alloc/src/boxed.rs:2016:9
  41:     0x7f08add991e5 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::heb151502bea62307
                               at /rustc/b656f5171bfecfe748ef365c80c3935abe189141/library/alloc/src/boxed.rs:2016:9
  42:     0x7f08add991e5 - std::sys::pal::unix::thread::Thread::new::thread_start::hf0126b387eba15d3
                               at /rustc/b656f5171bfecfe748ef365c80c3935abe189141/library/std/src/sys/pal/unix/thread.rs:108:17
  43:     0x7f08adb809eb - <unknown>
  44:     0x7f08adc047cc - <unknown>
  45:                0x0 - <unknown>

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.78.0-nightly (b656f5171 2024-02-15) running on x86_64-unknown-linux-gnu

query stack during panic:
#0 [mir_built] building MIR for `problematic_function`
#1 [check_unsafety] unsafety-checking `problematic_function`
#2 [analysis] running analysis passes on this crate
end of query stack
error: aborting due to 20 previous errors; 1 warning emitted

Some errors have detailed explanations: E0046, E0220, E0277, E0392, E0412, E0601.
For more information about an error, try `rustc --explain E0046`.

@matthiaskrgr matthiaskrgr 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 Feb 15, 2024
@rustbot rustbot added the needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. label Feb 15, 2024
@matthiaskrgr
Copy link
Member Author

#120847 cc @oli-obk

@saethlin saethlin removed the needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. label Feb 16, 2024
@oli-obk oli-obk self-assigned this Feb 16, 2024
@bors bors closed this as completed in f82875e Feb 16, 2024
rust-timer added a commit to rust-lang-ci/rust that referenced this issue Feb 16, 2024
Rollup merge of rust-lang#121181 - oli-obk:normalize_with_conflicting_impls, r=cjgillot

Fix an ICE in the recursion lint

fixes rust-lang#121170

I looked into it, and there is no good path towards tainting mir_build (where the ICE happens), but using `try_normalize` in a lint seems generally better anyway
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. 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.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants