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: thread 'rustc' panicked at 'Box<Any>', compiler\rustc_errors\src\lib.rs:945:9 #78823

Closed
Boscop opened this issue Nov 6, 2020 · 5 comments
Labels
C-bug Category: This is a bug. E-needs-mcve Call for participation: This issue has a repro, but needs a Minimal Complete and Verifiable Example 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

@Boscop
Copy link

Boscop commented Nov 6, 2020

Code

// too large & not open-source, unfortunately

Meta

rustc --version --verbose:

rustc 1.49.0-nightly (b1496c6e6 2020-10-18)
binary: rustc
commit-hash: b1496c6e606dd908dd651ac2cce89815e10d7fc5
commit-date: 2020-10-18
host: x86_64-pc-windows-msvc
release: 1.49.0-nightly
LLVM version: 11.0

Error output

thread 'rustc' panicked at 'Box<Any>', compiler\rustc_errors\src\lib.rs:945:9
stack backtrace:
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

note: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md

note: rustc 1.49.0-nightly (b1496c6e6 2020-10-18) running on x86_64-pc-windows-msvc

note: compiler flags: -C panic=abort -C embed-bitcode=no -C linker=lld-link -C incremental -C link-arg=-fuse-ld=lld --crate-type bin

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
#0 [typeck] type-checking `rendering::scene::SceneRenderer::new`
#1 [typeck_item_bodies] type-checking all item bodies
#2 [analysis] running analysis passes on this crate
end of query stack
@Boscop Boscop added 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. labels Nov 6, 2020
@hellow554
Copy link
Contributor

Could you at least give US the full backtrace?

note: Some details are omitted, run with RUST_BACKTRACE=full for a verbose backtrace.

@asomers
Copy link
Contributor

asomers commented Nov 8, 2020

I'm hitting the same bug. I can show you the query stack, but unfortunately not the backtrace due to issue #78184 .

> rustc --version -v
rustc 1.49.0-nightly (b2d115f6d 2020-11-07)
binary: rustc
commit-hash: b2d115f6db5172c961dfeb50de15f35784dbc7c9
commit-date: 2020-11-07
host: x86_64-unknown-freebsd
release: 1.49.0-nightly
error: internal compiler error: compiler/rustc_traits/src/normalize_erasing_regions.rs:37:32: could not fully normalize `<futures::future::MapOk<futures::future::AndThen<futures::stream::TryCollect<futures::stream::MapOk<futures::stream::AndThen<futures::stream::Map<futures::stream::Iter<std::vec::IntoIter<std::path::PathBuf>>, [closure@bfffs/src/common/device_manager.rs:181:14: 181:29]>, std::future::from_generator::GenFuture<[static generator@bfffs/src/common/vdev_file.rs:271:5: 311:6 {std::future::ResumeTy, std::path::PathBuf, std::result::Result<tokio_file::File, common::Error>, tokio_file::File, u32, std::future::from_generator::GenFuture<[static generator@bfffs/src/common/vdev_file.rs:339:5: 358:6 for<'r, 's, 't0, 't1> {std::future::ResumeTy, tokio_file::File, u32, u64, divbuf::DivBufShared, divbuf::DivBufMut, std::boxed::Box<common::vdev_file::IoVecMutContainer>, &'r tokio_file::File, std::boxed::Box<(dyn std::borrow::BorrowMut<[u8]> + std::marker::Send + std::marker::Sync + 's)>, std::result::Result<tokio_file::AioFut<'t0>, std::io::Error>, tokio_file::AioFut<'t1>, ()}]>, (), std::result::Result<(common::label::LabelReader, tokio_file::File), (common::Error, tokio_file::File)>, common::Error}]>, fn(std::path::PathBuf) -> impl futures::Future {common::vdev_file::VdevFile::open::<std::path::PathBuf>}>, [closure@bfffs/src/common/device_manager.rs:183:17: 185:10]>, std::vec::Vec<(common::vdev_block::VdevBlock, common::label::LabelReader)>>, futures::future::MapOk<std::future::from_generator::GenFuture<[static generator@bfffs/src/common/cluster.rs:824:5: 827:6 for<'r> {std::future::ResumeTy, std::sync::Arc<(dyn common::raid::vdev_raid_api::VdevRaidApi + 'r)>, std::future::from_generator::GenFuture<[static generator@bfffs/src/common/cluster.rs:406:5: 419:6 for<'s, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7, 't8, 't9, 't10, 't11, 't12, 't13> {std::future::ResumeTy, std::sync::Arc<(dyn common::raid::vdev_raid_api::VdevRaidApi + 's)>, u32, usize, divbuf::DivBufShared, divbuf::DivBufMut, &'t0 (dyn common::raid::vdev_raid_api::VdevRaidApi + 't1), std::pin::Pin<std::boxed::Box<(dyn futures::Future<Output = std::result::Result<(), common::Error>> + std::marker::Send + std::marker::Sync + 't2)>>, [closure@bfffs/src/common/cluster.rs:414:19: 418:10], futures::future::AndThen<std::pin::Pin<std::boxed::Box<(dyn futures::Future<Output = std::result::Result<(), common::Error>> + std::marker::Send + std::marker::Sync + 't7)>>, std::pin::Pin<std::boxed::Box<(dyn futures::Future<Output = std::result::Result<(common::cluster::FreeSpaceMap, std::sync::Arc<(dyn common::raid::vdev_raid_api::VdevRaidApi + 't8)>), common::Error>> + std::marker::Send + 't9)>>, [closure@bfffs/src/common/cluster.rs:414:19: 418:10]>, ()}]>, ()}]>, [closure@bfffs/src/common/device_manager.rs:155:21: 155:53]>, [closure@bfffs/src/common/device_manager.rs:152:19: 156:10]>, [closure@bfffs/src/common/device_manager.rs:134:21: 134:49]> as futures::TryFuture>::Ok`

thread 'rustc' panicked at 'Box<Any>', compiler/rustc_errors/src/lib.rs:958:9
stack backtrace:
   0:        0x8099c78f1 - <unknown>
   1:        0x809a35fb0 - <unknown>
   2:        0x8099b986f - <unknown>
   3:        0x8099cc2ad - <unknown>
   4:        0x8099cbf5c - <unknown>
   5:        0x801f4a423 - <unknown>
   6:        0x815e27767 - <unknown>
   7:        0x815e25192 - <unknown>
   8:        0x8099ccb48 - <unknown>
   9:        0x8070d6f12 - <unknown>
  10:        0x8070d6d29 - <unknown>
  11:        0x8070d6e72 - <unknown>
  12:        0x807110425 - <unknown>
  13:        0x80710ea37 - <unknown>
  14:        0x806be6e97 - <unknown>
  15:        0x806be679d - <unknown>
  16:        0x806be6176 - <unknown>
  17:        0x806be6dc9 - <unknown>
  18:        0x806be6d2f - <unknown>
  19:        0x80474f15a - <unknown>
  20:        0x8047738e9 - <unknown>
  21:        0x806e81557 - <unknown>
  22:        0x806fa7e24 - <unknown>
  23:        0x806b987ff - <unknown>
  24:        0x8069161a7 - <unknown>
  25:        0x806e98a3e - <unknown>
  26:        0x80469fc06 - <unknown>
  27:        0x805896fe8 - <unknown>
  28:        0x805637c10 - <unknown>
  29:        0x8056c39b3 - <unknown>
  30:        0x8056aa660 - <unknown>
  31:        0x8055377b2 - <unknown>
  32:        0x8058d374e - <unknown>
  33:        0x8057808f5 - <unknown>
  34:        0x80574eec3 - <unknown>
  35:        0x8056390bc - <unknown>
  36:        0x8056bafcb - <unknown>
  37:        0x8056a432f - <unknown>
  38:        0x8055155b9 - <unknown>
  39:        0x805780882 - <unknown>
  40:        0x806c9529d - <unknown>
  41:        0x806e7fe33 - <unknown>
  42:        0x806fbe5e1 - <unknown>
  43:        0x806b7e005 - <unknown>
  44:        0x806940cc9 - <unknown>
  45:        0x806c5e7fb - <unknown>
  46:        0x806c5e59e - <unknown>
  47:        0x8022809bb - <unknown>
  48:        0x802276c55 - <unknown>
  49:        0x802271a4a - <unknown>
  50:        0x80226f3d3 - <unknown>
  51:        0x802370630 - <unknown>
  52:        0x8023f2119 - <unknown>
  53:        0x8022271e7 - <unknown>
  54:        0x80228e5ca - <unknown>
  55:        0x8022e9841 - <unknown>
  56:        0x802226da8 - <unknown>
  57:        0x80236e8db - <unknown>
  58:        0x8023c5b2b - <unknown>
  59:        0x8021844ff - <unknown>
  60:        0x8021b3e52 - <unknown>
  61:        0x801f5f19e - <unknown>
  62:        0x801f4ca8c - <unknown>
  63:        0x801f5ff30 - <unknown>
  64:        0x801f4dd77 - <unknown>
  65:        0x801f65dd9 - <unknown>
  66:        0x801eca350 - <unknown>
  67:        0x8099db92d - <unknown>
  68:        0x80a54f08c - <unknown>

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.49.0-nightly (b2d115f6d 2020-11-07) running on x86_64-unknown-freebsd

note: compiler flags: -C embed-bitcode=no -C debuginfo=2 -C incremental --crate-type lib

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
#0 [normalize_generic_arg_after_erasing_regions] normalizing `<futures::future::MapOk<futures::future::AndThen<futures::stream::TryCollect<futures::stream::MapOk<futures::stream::AndThen<futures::stream::Map<futures::stream::Iter<std::vec::IntoIter<std::path::PathBuf>>, [closure@bfffs/src/common/device_manager.rs:181:14: 181:29]>, std::future::from_generator::GenFuture<[static generator@bfffs/src/common/vdev_file.rs:271:5: 311:6 {std::future::ResumeTy, std::path::PathBuf, std::result::Result<tokio_file::File, common::Error>, tokio_file::File, u32, std::future::from_generator::GenFuture<[static generator@bfffs/src/common/vdev_file.rs:339:5: 358:6 for<'r, 's, 't0, 't1> {std::future::ResumeTy, tokio_file::File, u32, u64, divbuf::DivBufShared, divbuf::DivBufMut, std::boxed::Box<common::vdev_file::IoVecMutContainer>, &'r tokio_file::File, std::boxed::Box<(dyn std::borrow::BorrowMut<[u8]> + std::marker::Send + std::marker::Sync + 's)>, std::result::Result<tokio_file::AioFut<'t0>, std::io::Error>, tokio_file::AioFut<'t1>, ()}]>, (), std::result::Result<(common::label::LabelReader, tokio_file::File), (common::Error, tokio_file::File)>, common::Error}]>, fn(std::path::PathBuf) -> impl futures::Future {common::vdev_file::VdevFile::open::<std::path::PathBuf>}>, [closure@bfffs/src/common/device_manager.rs:183:17: 185:10]>, std::vec::Vec<(common::vdev_block::VdevBlock, common::label::LabelReader)>>, futures::future::MapOk<std::future::from_generator::GenFuture<[static generator@bfffs/src/common/cluster.rs:824:5: 827:6 for<'r> {std::future::ResumeTy, std::sync::Arc<(dyn common::raid::vdev_raid_api::VdevRaidApi + 'r)>, std::future::from_generator::GenFuture<[static generator@bfffs/src/common/cluster.rs:406:5: 419:6 for<'s, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7, 't8, 't9, 't10, 't11, 't12, 't13> {std::future::ResumeTy, std::sync::Arc<(dyn common::raid::vdev_raid_api::VdevRaidApi + 's)>, u32, usize, divbuf::DivBufShared, divbuf::DivBufMut, &'t0 (dyn common::raid::vdev_raid_api::VdevRaidApi + 't1), std::pin::Pin<std::boxed::Box<(dyn futures::Future<Output = std::result::Result<(), common::Error>> + std::marker::Send + std::marker::Sync + 't2)>>, [closure@bfffs/src/common/cluster.rs:414:19: 418:10], futures::future::AndThen<std::pin::Pin<std::boxed::Box<(dyn futures::Future<Output = std::result::Result<(), common::Error>> + std::marker::Send + std::marker::Sync + 't7)>>, std::pin::Pin<std::boxed::Box<(dyn futures::Future<Output = std::result::Result<(common::cluster::FreeSpaceMap, std::sync::Arc<(dyn common::raid::vdev_raid_api::VdevRaidApi + 't8)>), common::Error>> + std::marker::Send + 't9)>>, [closure@bfffs/src/common/cluster.rs:414:19: 418:10]>, ()}]>, ()}]>, [closure@bfffs/src/common/device_manager.rs:155:21: 155:53]>, [closure@bfffs/src/common/device_manager.rs:152:19: 156:10]>, [closure@bfffs/src/common/device_manager.rs:134:21: 134:49]> as futures::TryFuture>::Ok`
#1 [needs_drop_raw] computing whether `futures_util::future::try_maybe_done::TryMaybeDone<futures::future::MapOk<futures::future::AndThen<futures::stream::TryCollect<futures::stream::MapOk<futures::stream::AndThen<futures::stream::Map<futures::stream::Iter<std::vec::IntoIter<std::path::PathBuf>>, [closure@bfffs/src/common/device_manager.rs:181:14: 181:29]>, std::future::from_generator::GenFuture<[static generator@bfffs/src/common/vdev_file.rs:271:5: 311:6 {std::future::ResumeTy, std::path::PathBuf, std::result::Result<tokio_file::File, common::Error>, tokio_file::File, u32, std::future::from_generator::GenFuture<[static generator@bfffs/src/common/vdev_file.rs:339:5: 358:6 for<'r, 's, 't0, 't1> {std::future::ResumeTy, tokio_file::File, u32, u64, divbuf::DivBufShared, divbuf::DivBufMut, std::boxed::Box<common::vdev_file::IoVecMutContainer>, &'r tokio_file::File, std::boxed::Box<(dyn std::borrow::BorrowMut<[u8]> + std::marker::Send + std::marker::Sync + 's)>, std::result::Result<tokio_file::AioFut<'t0>, std::io::Error>, tokio_file::AioFut<'t1>, ()}]>, (), std::result::Result<(common::label::LabelReader, tokio_file::File), (common::Error, tokio_file::File)>, common::Error}]>, fn(std::path::PathBuf) -> impl futures::Future {common::vdev_file::VdevFile::open::<std::path::PathBuf>}>, [closure@bfffs/src/common/device_manager.rs:183:17: 185:10]>, std::vec::Vec<(common::vdev_block::VdevBlock, common::label::LabelReader)>>, futures::future::MapOk<std::future::from_generator::GenFuture<[static generator@bfffs/src/common/cluster.rs:824:5: 827:6 for<'r> {std::future::ResumeTy, std::sync::Arc<(dyn common::raid::vdev_raid_api::VdevRaidApi + 'r)>, std::future::from_generator::GenFuture<[static generator@bfffs/src/common/cluster.rs:406:5: 419:6 for<'s, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7, 't8, 't9, 't10, 't11, 't12, 't13> {std::future::ResumeTy, std::sync::Arc<(dyn common::raid::vdev_raid_api::VdevRaidApi + 's)>, u32, usize, divbuf::DivBufShared, divbuf::DivBufMut, &'t0 (dyn common::raid::vdev_raid_api::VdevRaidApi + 't1), std::pin::Pin<std::boxed::Box<(dyn futures::Future<Output = std::result::Result<(), common::Error>> + std::marker::Send + std::marker::Sync + 't2)>>, [closure@bfffs/src/common/cluster.rs:414:19: 418:10], futures::future::AndThen<std::pin::Pin<std::boxed::Box<(dyn futures::Future<Output = std::result::Result<(), common::Error>> + std::marker::Send + std::marker::Sync + 't7)>>, std::pin::Pin<std::boxed::Box<(dyn futures::Future<Output = std::result::Result<(common::cluster::FreeSpaceMap, std::sync::Arc<(dyn common::raid::vdev_raid_api::VdevRaidApi + 't8)>), common::Error>> + std::marker::Send + 't9)>>, [closure@bfffs/src/common/cluster.rs:414:19: 418:10]>, ()}]>, ()}]>, [closure@bfffs/src/common/device_manager.rs:155:21: 155:53]>, [closure@bfffs/src/common/device_manager.rs:152:19: 156:10]>, [closure@bfffs/src/common/device_manager.rs:134:21: 134:49]>>` needs drop
#2 [eval_to_const_value_raw] simplifying constant for the type system `std::intrinsics::needs_drop`
#3 [eval_to_const_value_raw] simplifying constant for the type system `std::intrinsics::needs_drop`
end of query stack

@Boscop
Copy link
Author

Boscop commented Nov 8, 2020

@hellow554 I forgot what I did to cause the above, but I just hit it again:

error: internal compiler error: compiler\rustc_middle\src\ty\sty.rs:2138:18: tuple_fields called on non-tuple
thread 'rustc' panicked at 'Box', compiler\rustc_errors\src\lib.rs:945:9

error[E0631]: type mismatch in function arguments
   --> src\rendering\scene.rs:204:52
    |
204 |         let local_shaders_ids = local_shaders.iter().map(read_unpacked_shader).collect::<Result<Vec<_>>>();
    |                                                          ^^^^^^^^^^^^^^^^^^^^ expected signature of `fn(&PathBuf) -> _`
    |
   ::: src\dl_shader.rs:73:1
    |
73  | pub fn read_unpacked_shader(folder: &Path) -> Result<Shader> {
    | ------------------------------------------------------------ found signature of `for<'r> fn(&'r Path) -> _`

error[E0599]: no method named `collect` found for struct `std::iter::Map<std::slice::Iter<'_, PathBuf>, for<'r> fn(&'r Path) -> std::result::Result<shadertoy_dl::Shader, anyhow::Error> {read_unpacked_shader}>` in the current scope
   --> src\rendering\scene.rs:204:74
    |
204 |           let local_shaders_ids = local_shaders.iter().map(read_unpacked_shader).collect::<Result<Vec<_>>>();
    |                                                                                  ^^^^^^^ method not found in `std::iter::Map<std::slice::Iter<'_, PathBuf>, for<'r> fn(&'r Path) -> std::result::Result<shadertoy_dl::Shader, anyhow::Error> {read_unpacked_shader}>`
    |
    = note: the method `collect` exists but the following trait bounds were not satisfied:
            `<for<'r> fn(&'r Path) -> std::result::Result<shadertoy_dl::Shader, anyhow::Error> {read_unpacked_shader} as FnOnce<(&PathBuf,)>>::Output = _`
            which is required by `std::iter::Map<std::slice::Iter<'_, PathBuf>, for<'r> fn(&'r Path) -> std::result::Result<shadertoy_dl::Shader, anyhow::Error> {read_unpacked_shader}>: Iterator`
            `for<'r> fn(&'r Path) -> std::result::Result<shadertoy_dl::Shader, anyhow::Error> {read_unpacked_shader}: FnMut<(&PathBuf,)>`
            which is required by `std::iter::Map<std::slice::Iter<'_, PathBuf>, for<'r> fn(&'r Path) -> std::result::Result<shadertoy_dl::Shader, anyhow::Error> {read_unpacked_shader}>: Iterator`
            `std::iter::Map<std::slice::Iter<'_, PathBuf>, for<'r> fn(&'r Path) -> std::result::Result<shadertoy_dl::Shader, anyhow::Error> {read_unpacked_shader}>: Iterator`
            which is required by `&mut std::iter::Map<std::slice::Iter<'_, PathBuf>, for<'r> fn(&'r Path) -> std::result::Result<shadertoy_dl::Shader, anyhow::Error> {read_unpacked_shader}>: Iterator`

error: internal compiler error: compiler\rustc_middle\src\ty\sty.rs:2138:18: tuple_fields called on non-tuple

thread 'rustc' panicked at 'Box<Any>', compiler\rustc_errors\src\lib.rs:945:9
stack backtrace:
   0:     0x7ffc37cf9b5e - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hc20a26e0f7659afd
   1:     0x7ffc37d2723b - core::fmt::write::h435be716304d26a1
   2:     0x7ffc37ceb478 - <std::io::IoSliceMut as core::fmt::Debug>::fmt::h738e6de5ed1623dc

   3:     0x7ffc37cfef7d - std::panicking::take_hook::hbf7e33d26fc3ca30
   4:     0x7ffc37cfeb58 - std::panicking::take_hook::hbf7e33d26fc3ca30
   5:     0x7ffc0c5fbd37 - rustc_driver::report_ice::hfab70eb08b03c1b0
   6:     0x7ffc37cff9d0 - std::panicking::rust_panic_with_hook::h19068ccbe4b337a1
   7:     0x7ffc10d783b0 - <rustc_errors::registry::InvalidErrorCode as core::fmt::Debug>::fmt::haa47007281d8d69d
   8:     0x7ffc10d78389 - <rustc_errors::registry::InvalidErrorCode as core::fmt::Debug>::fmt::haa47007281d8d69d
   9:     0x7ffc10d806a1 - <rustc_errors::diagnostic::StringPart as core::fmt::Debug>::fmt::h0e74c1792db6aa41
  10:     0x7ffc10db2c8f - rustc_errors::HandlerInner::err_count::h3797b647eeace099
  11:     0x7ffc10db1342 - rustc_errors::Handler::bug::h0a174d32ca88e813
  12:     0x7ffc109e29bf - rustc_middle::util::bug::bug_fmt::h42bac936f78c8dfd
  13:     0x7ffc109dd200 - rustc_middle::ty::walk::<impl rustc_middle::ty::subst::GenericArg>::walk_shallow::h0d56592a32eb5063
  14:     0x7ffc109dd1a3 - rustc_middle::ty::walk::<impl rustc_middle::ty::subst::GenericArg>::walk_shallow::h0d56592a32eb5063
  15:     0x7ffc109e28ec - rustc_middle::util::bug::bug_fmt::h42bac936f78c8dfd
  16:     0x7ffc109e2850 - rustc_middle::util::bug::bug_fmt::h42bac936f78c8dfd
  17:     0x7ffc10ab1bd5 - rustc_middle::ty::sty::<impl rustc_middle::ty::TyS>::tuple_fields::h315ea9cf885486cf
  18:     0x7ffc103965d2 - rustc_trait_selection::traits::select::SelectionContext::coinductive_predicate::hde744dc0e14d887d
  19:     0x7ffc103912c8 - <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::query::outlives_bounds::InferCtxtExt>::implied_outlives_bounds::h34a6863ea2a18d9e
  20:     0x7ffc1038f668 - <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::query::outlives_bounds::InferCtxtExt>::implied_outlives_bounds::h34a6863ea2a18d9e
  21:     0x7ffc10504038 - <rustc_trait_selection::traits::fulfill::PendingPredicateObligation as core::fmt::Debug>::fmt::h92f05826260f4bcb
  22:     0x7ffc103a22f5 - <rustc_trait_selection::traits::select::ProvisionalEvaluation as core::fmt::Debug>::fmt::h4c8eb5f4ea01fbae
  23:     0x7ffc10398e37 - <rustc_trait_selection::traits::select::TraitObligationStack as core::fmt::Debug>::fmt::h03e8a8a563b44037
  24:     0x7ffc1039fa97 - rustc_trait_selection::traits::select::SelectionContext::select::hec8a798b6b637183
  25:     0x7ffc104577e7 - <rustc_trait_selection::traits::fulfill::PendingPredicateObligation as core::fmt::Debug>::fmt::h92f05826260f4bcb
  26:     0x7ffc104567b3 - rustc_trait_selection::traits::fulfill::FulfillProcessor::progress_changed_obligations::hfc0d5092e740d698
  27:     0x7ffc10549764 - <rustc_trait_selection::traits::project::ProjectionTyCandidate as core::fmt::Debug>::fmt::h1a9d56949de44175
  28:     0x7ffc1045577f - <rustc_trait_selection::traits::fulfill::FulfillmentContext as rustc_infer::traits::engine::TraitEngine>::select_where_possible::hd650af685fe950e5
  29:     0x7ffc0ec88827 - rustc_typeck::check::fn_ctxt::_impl::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::field_ty::hf4c05ad264ffe51b
  30:     0x7ffc0eef7a13 - <rustc_typeck::variance::terms::InferredIndex as core::fmt::Debug>::fmt::h19d6bcd8adbaa085
  31:     0x7ffc0ef84dba - <rustc_typeck::check::fixup_opaque_types::FixupFolder as rustc_middle::ty::fold::TypeFolder>::fold_ty::hcdc6c08b5c1ca355
  32:     0x7ffc0ee93c0e - <rustc_typeck::bounds::Bounds as core::fmt::Debug>::fmt::ha3a532628cf583e4
  33:     0x7ffc0edcdda6 - <rustc_typeck::check::diverges::Diverges as core::fmt::Debug>::fmt::h9fe67a62bb0ef890
  34:     0x7ffc0ee5d427 - <<rustc_typeck::collect::const_evaluatable_predicates_of::ConstCollector as rustc_hir::intravisit::Visitor>::visit_ty::TyAliasVisitor as rustc_middle::ty::fold::TypeVisitor>::visit_const::hf3927083f687e271
  35:     0x7ffc0ee73a3d - <<rustc_typeck::collect::const_evaluatable_predicates_of::ConstCollector as rustc_hir::intravisit::Visitor>::visit_ty::TyAliasVisitor as rustc_middle::ty::fold::TypeVisitor>::visit_const::hf3927083f687e271
  36:     0x7ffc0ed3a49e - rustc_typeck::check::writeback::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::resolve_type_vars_in_body::h4c9e8bc9efe88ee2
  37:     0x7ffc0ed78792 - rustc_typeck::check::writeback::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::resolve_type_vars_in_body::h4c9e8bc9efe88ee2
  38:     0x7ffc0ef8a5b4 - <rustc_typeck::check::CheckItemTypesVisitor as rustc_hir::itemlikevisit::ItemLikeVisitor>::visit_item::h42a56a7a7b0b6e7b
  39:     0x7ffc0ee4893d - <<rustc_typeck::collect::const_evaluatable_predicates_of::ConstCollector as rustc_hir::intravisit::Visitor>::visit_ty::TyAliasVisitor as rustc_middle::ty::fold::TypeVisitor>::visit_const::hf3927083f687e271
  40:     0x7ffc0edcbd96 - <rustc_typeck::check::diverges::Diverges as core::fmt::Debug>::fmt::h9fe67a62bb0ef890
  41:     0x7ffc0ee5dabf - <<rustc_typeck::collect::const_evaluatable_predicates_of::ConstCollector as rustc_hir::intravisit::Visitor>::visit_ty::TyAliasVisitor as rustc_middle::ty::fold::TypeVisitor>::visit_const::hf3927083f687e271
  42:     0x7ffc0ee74d59 - <<rustc_typeck::collect::const_evaluatable_predicates_of::ConstCollector as rustc_hir::intravisit::Visitor>::visit_ty::TyAliasVisitor as rustc_middle::ty::fold::TypeVisitor>::visit_const::hf3927083f687e271
  43:     0x7ffc0ece4b0f - rustc_typeck::check::writeback::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::resolve_type_vars_in_body::h4c9e8bc9efe88ee2
  44:     0x7ffc0eeadc4a - rustc_typeck::check_crate::he8b36c3222a01778
  45:     0x7ffc0c8199ea - rustc_interface::passes::QueryContext::print_stats::h7fe9fc8cffe53da6
  46:     0x7ffc0c5902fb - <rustc_mir::shim::DropShimElaborator as rustc_mir::util::elaborate_drops::DropElaborator>::clear_drop_flag::hbec30c00001c8476
  47:     0x7ffc0c592096 - <rustc_mir::shim::DropShimElaborator as rustc_mir::util::elaborate_drops::DropElaborator>::clear_drop_flag::hbec30c00001c8476
  48:     0x7ffc0c60b972 - <rustc_driver::Compilation as core::fmt::Debug>::fmt::h3d40e9a6991d8181
  49:     0x7ffc0c620a06 - <rustc_driver::Compilation as core::fmt::Debug>::fmt::h3d40e9a6991d8181
  50:     0x7ffc0c5b7c87 - <rustc_span::symbol::SymbolStr as core::fmt::Display>::fmt::h58939e9964733da9
  51:     0x7ffc0c59283c - <rustc_mir::shim::DropShimElaborator as rustc_mir::util::elaborate_drops::DropElaborator>::clear_drop_flag::hbec30c00001c8476
  52:     0x7ffc0c61c5c6 - <rustc_driver::Compilation as core::fmt::Debug>::fmt::h3d40e9a6991d8181
  53:     0x7ffc0c600fbc - <rustc_driver::Compilation as core::fmt::Debug>::fmt::h3d40e9a6991d8181
  54:     0x7ffc0c6167f4 - <rustc_driver::Compilation as core::fmt::Debug>::fmt::h3d40e9a6991d8181
  55:     0x7ffc0c6211bb - <rustc_driver::Compilation as core::fmt::Debug>::fmt::h3d40e9a6991d8181
  56:     0x7ffc0c5ab5d3 - <rustc_span::symbol::SymbolStr as core::fmt::Display>::fmt::h58939e9964733da9
  57:     0x7ffc37d0f857 - std::sys::windows::thread::Thread::new::h04914a10b014a9d7
  58:     0x7ffc58481412 - BaseThreadInitThunk
  59:     0x7ffc5ad554f4 - RtlUserThreadStart

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.49.0-nightly (b1496c6e6 2020-10-18) running on x86_64-pc-windows-msvc

note: compiler flags: -C panic=abort -C embed-bitcode=no -C linker=lld-link -C incremental -C link-arg=-fuse-ld=lld --crate-type bin

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
#0 [typeck] type-checking `rendering::scene::SceneRenderer::new`
#1 [typeck_item_bodies] type-checking all item bodies
#2 [analysis] running analysis passes on this crate
end of query stack
error: aborting due to 3 previous errors

@Boscop
Copy link
Author

Boscop commented Nov 14, 2020

I ran into something similar again today:

Error output

    |
140 |         ensure!(output != Default::default(), "`output` must be defined!");
    |                           ^^^^^^^^^^^^^^^^ the trait `std::default::Default` is not implemented for `config::ChainOutput`
    |
    = note: required by `std::default::Default::default`

error: internal compiler error: compiler\rustc_middle\src\ty\sty.rs:2138:18: tuple_fields called on non-tuple

thread 'rustc' panicked at 'Box<Any>', compiler\rustc_errors\src\lib.rs:945:9
stack backtrace:
   0:     0x7ffc379f9b5e - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hc20a26e0f7659afd
   1:     0x7ffc37a2723b - core::fmt::write::h435be716304d26a1
   2:     0x7ffc379eb478 - <std::io::IoSliceMut as core::fmt::Debug>::fmt::h738e6de5ed1623dc

   3:     0x7ffc379fef7d - std::panicking::take_hook::hbf7e33d26fc3ca30
   4:     0x7ffc379feb58 - std::panicking::take_hook::hbf7e33d26fc3ca30
   5:     0x7ffc0c5fbd37 - rustc_driver::report_ice::hfab70eb08b03c1b0
   6:     0x7ffc379ff9d0 - std::panicking::rust_panic_with_hook::h19068ccbe4b337a1
   7:     0x7ffc10d783b0 - <rustc_errors::registry::InvalidErrorCode as core::fmt::Debug>::fmt::haa47007281d8d69d
   8:     0x7ffc10d78389 - <rustc_errors::registry::InvalidErrorCode as core::fmt::Debug>::fmt::haa47007281d8d69d
   9:     0x7ffc10d806a1 - <rustc_errors::diagnostic::StringPart as core::fmt::Debug>::fmt::h0e74c1792db6aa41
  10:     0x7ffc10db2c8f - rustc_errors::HandlerInner::err_count::h3797b647eeace099
  11:     0x7ffc10db1342 - rustc_errors::Handler::bug::h0a174d32ca88e813
  12:     0x7ffc109e29bf - rustc_middle::util::bug::bug_fmt::h42bac936f78c8dfd
  13:     0x7ffc109dd200 - rustc_middle::ty::walk::<impl rustc_middle::ty::subst::GenericArg>::walk_shallow::h0d56592a32eb5063
  14:     0x7ffc109dd1a3 - rustc_middle::ty::walk::<impl rustc_middle::ty::subst::GenericArg>::walk_shallow::h0d56592a32eb5063
  15:     0x7ffc109e28ec - rustc_middle::util::bug::bug_fmt::h42bac936f78c8dfd
  16:     0x7ffc109e2850 - rustc_middle::util::bug::bug_fmt::h42bac936f78c8dfd
  17:     0x7ffc10ab1bd5 - rustc_middle::ty::sty::<impl rustc_middle::ty::TyS>::tuple_fields::h315ea9cf885486cf
  18:     0x7ffc103965d2 - rustc_trait_selection::traits::select::SelectionContext::coinductive_predicate::hde744dc0e14d887d
  19:     0x7ffc103912c8 - <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::query::outlives_bounds::InferCtxtExt>::implied_outlives_bounds::h34a6863ea2a18d9e
  20:     0x7ffc1038f668 - <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::query::outlives_bounds::InferCtxtExt>::implied_outlives_bounds::h34a6863ea2a18d9e
  21:     0x7ffc10504038 - <rustc_trait_selection::traits::fulfill::PendingPredicateObligation as core::fmt::Debug>::fmt::h92f05826260f4bcb
  22:     0x7ffc103a22f5 - <rustc_trait_selection::traits::select::ProvisionalEvaluation as core::fmt::Debug>::fmt::h4c8eb5f4ea01fbae
  23:     0x7ffc10398e37 - <rustc_trait_selection::traits::select::TraitObligationStack as core::fmt::Debug>::fmt::h03e8a8a563b44037
  24:     0x7ffc1039fa97 - rustc_trait_selection::traits::select::SelectionContext::select::hec8a798b6b637183
  25:     0x7ffc104577e7 - <rustc_trait_selection::traits::fulfill::PendingPredicateObligation as core::fmt::Debug>::fmt::h92f05826260f4bcb
  26:     0x7ffc104567b3 - rustc_trait_selection::traits::fulfill::FulfillProcessor::progress_changed_obligations::hfc0d5092e740d698
  27:     0x7ffc10549764 - <rustc_trait_selection::traits::project::ProjectionTyCandidate as core::fmt::Debug>::fmt::h1a9d56949de44175
  28:     0x7ffc1045577f - <rustc_trait_selection::traits::fulfill::FulfillmentContext as rustc_infer::traits::engine::TraitEngine>::select_where_possible::hd650af685fe950e5
  29:     0x7ffc0ec88827 - rustc_typeck::check::fn_ctxt::_impl::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::field_ty::hf4c05ad264ffe51b
  30:     0x7ffc0eef7a13 - <rustc_typeck::variance::terms::InferredIndex as core::fmt::Debug>::fmt::h19d6bcd8adbaa085
  31:     0x7ffc0ef84dba - <rustc_typeck::check::fixup_opaque_types::FixupFolder as rustc_middle::ty::fold::TypeFolder>::fold_ty::hcdc6c08b5c1ca355
  32:     0x7ffc0ee93c0e - <rustc_typeck::bounds::Bounds as core::fmt::Debug>::fmt::ha3a532628cf583e4
  33:     0x7ffc0edcdda6 - <rustc_typeck::check::diverges::Diverges as core::fmt::Debug>::fmt::h9fe67a62bb0ef890
  34:     0x7ffc0ee5d427 - <<rustc_typeck::collect::const_evaluatable_predicates_of::ConstCollector as rustc_hir::intravisit::Visitor>::visit_ty::TyAliasVisitor as rustc_middle::ty::fold::TypeVisitor>::visit_const::hf3927083f687e271
  35:     0x7ffc0ee73a3d - <<rustc_typeck::collect::const_evaluatable_predicates_of::ConstCollector as rustc_hir::intravisit::Visitor>::visit_ty::TyAliasVisitor as rustc_middle::ty::fold::TypeVisitor>::visit_const::hf3927083f687e271
  36:     0x7ffc0ed3a49e - rustc_typeck::check::writeback::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::resolve_type_vars_in_body::h4c9e8bc9efe88ee2
  37:     0x7ffc0ed78792 - rustc_typeck::check::writeback::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::resolve_type_vars_in_body::h4c9e8bc9efe88ee2
  38:     0x7ffc0ef8a5b4 - <rustc_typeck::check::CheckItemTypesVisitor as rustc_hir::itemlikevisit::ItemLikeVisitor>::visit_item::h42a56a7a7b0b6e7b
  39:     0x7ffc0ee4893d - <<rustc_typeck::collect::const_evaluatable_predicates_of::ConstCollector as rustc_hir::intravisit::Visitor>::visit_ty::TyAliasVisitor as rustc_middle::ty::fold::TypeVisitor>::visit_const::hf3927083f687e271
  40:     0x7ffc0edcbd96 - <rustc_typeck::check::diverges::Diverges as core::fmt::Debug>::fmt::h9fe67a62bb0ef890
  41:     0x7ffc0ee5dabf - <<rustc_typeck::collect::const_evaluatable_predicates_of::ConstCollector as rustc_hir::intravisit::Visitor>::visit_ty::TyAliasVisitor as rustc_middle::ty::fold::TypeVisitor>::visit_const::hf3927083f687e271
  42:     0x7ffc0ee74d59 - <<rustc_typeck::collect::const_evaluatable_predicates_of::ConstCollector as rustc_hir::intravisit::Visitor>::visit_ty::TyAliasVisitor as rustc_middle::ty::fold::TypeVisitor>::visit_const::hf3927083f687e271
  43:     0x7ffc0ece4b0f - rustc_typeck::check::writeback::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::resolve_type_vars_in_body::h4c9e8bc9efe88ee2
  44:     0x7ffc0eeadc4a - rustc_typeck::check_crate::he8b36c3222a01778
  45:     0x7ffc0c8199ea - rustc_interface::passes::QueryContext::print_stats::h7fe9fc8cffe53da6
  46:     0x7ffc0c5902fb - <rustc_mir::shim::DropShimElaborator as rustc_mir::util::elaborate_drops::DropElaborator>::clear_drop_flag::hbec30c00001c8476
  47:     0x7ffc0c592096 - <rustc_mir::shim::DropShimElaborator as rustc_mir::util::elaborate_drops::DropElaborator>::clear_drop_flag::hbec30c00001c8476
  48:     0x7ffc0c60b972 - <rustc_driver::Compilation as core::fmt::Debug>::fmt::h3d40e9a6991d8181
  49:     0x7ffc0c620a06 - <rustc_driver::Compilation as core::fmt::Debug>::fmt::h3d40e9a6991d8181
  50:     0x7ffc0c5b7c87 - <rustc_span::symbol::SymbolStr as core::fmt::Display>::fmt::h58939e9964733da9
  51:     0x7ffc0c59283c - <rustc_mir::shim::DropShimElaborator as rustc_mir::util::elaborate_drops::DropElaborator>::clear_drop_flag::hbec30c00001c8476
  52:     0x7ffc0c61c5c6 - <rustc_driver::Compilation as core::fmt::Debug>::fmt::h3d40e9a6991d8181
  53:     0x7ffc0c600fbc - <rustc_driver::Compilation as core::fmt::Debug>::fmt::h3d40e9a6991d8181
  54:     0x7ffc0c6167f4 - <rustc_driver::Compilation as core::fmt::Debug>::fmt::h3d40e9a6991d8181
  55:     0x7ffc0c6211bb - <rustc_driver::Compilation as core::fmt::Debug>::fmt::h3d40e9a6991d8181
  56:     0x7ffc0c5ab5d3 - <rustc_span::symbol::SymbolStr as core::fmt::Display>::fmt::h58939e9964733da9
  57:     0x7ffc37a0f857 - std::sys::windows::thread::Thread::new::h04914a10b014a9d7
  58:     0x7ffc58481412 - BaseThreadInitThunk
  59:     0x7ffc5ad554f4 - RtlUserThreadStart

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.49.0-nightly (b1496c6e6 2020-10-18) running on x86_64-pc-windows-msvc

note: compiler flags: -C panic=abort -C embed-bitcode=no -C linker=lld-link -C incremental -C link-arg=-fuse-ld=lld --crate-type bin

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
#0 [typeck] type-checking `rendering::scene::SceneRenderer::new`
#1 [typeck_item_bodies] type-checking all item bodies
#2 [analysis] running analysis passes on this crate
end of query stack
error: aborting due to 2 previous errors

For more information about this error, try `rustc --explain E0277`.

It occured in the same module.

@JohnTitor JohnTitor added the E-needs-mcve Call for participation: This issue has a repro, but needs a Minimal Complete and Verifiable Example label Dec 31, 2020
@Enselic
Copy link
Member

Enselic commented Sep 3, 2023

Triage: Since there currently is no known way for others to reproduce this ICE, I will close this issue. Without a way for others to reproduce, not much can be done. Feel free to re-open if a way to reproduce is found.

@Enselic Enselic closed this as not planned Won't fix, can't repro, duplicate, stale Sep 3, 2023
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. E-needs-mcve Call for participation: This issue has a repro, but needs a Minimal Complete and Verifiable Example 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

No branches or pull requests

5 participants