Repository: rust
Issue: ICE: icnr comp: type variable should not be hashed
Labels: I-ICE,T-compiler,A-incr-comp,C-bug,F-type_alias_impl_trait,F-transmutability

<!--
[31mICE[0m: Rustc ./ice.rs '-Zincremental-verify-ich=yes -Cincremental=<dir> -Cdebuginfo=2' 'thread 'rustc' panicked at /rustc/a83cf567b5949691de67f06895d9fe0404c40d27/compiler/rustc_type_ir/src/ty_kind.rs:856:17: 'type variables should not be hashed: ?0t'', 'thread 'rustc' panicked at /rustc/a83cf567b5949691de67f06895d9fe0404c40d27/compiler/rustc_type_ir/src/ty_kind.rs:856:17: 'type variables should not be hashed: ?0t''
File: /tmp/SOMUCHICE/ice.rs
-->

original:
````rust
#![feature(type_alias_impl_trait,transmutability)]
trait OpaqueTrait {}
trait AnotherTrait {}

type OpaqueType = impl OpaqueTrait;
impl AnotherTrait for OpaqueType {}

impl<T: std::mem::BikeshedIntrinsicFrom<()>> AnotherTrait for T {}

pub fn main() {}

````

Version information
````
rustc 1.80.0-nightly (a83cf567b 2024-06-02)
binary: rustc
commit-hash: a83cf567b5949691de67f06895d9fe0404c40d27
commit-date: 2024-06-02
host: x86_64-unknown-linux-gnu
release: 1.80.0-nightly
LLVM version: 18.1.6

````

Command:
`/home/matthias/.rustup/toolchains/master/bin/rustc -Zincremental-verify-ich=yes -Cincremental=<dir> -Cdebuginfo=2`

<!--
Include a backtrace in the code block by setting `RUST_BACKTRACE=1` in your
environment. E.g. `RUST_BACKTRACE=1 cargo build`.
-->
<details><summary><strong>Program output</strong></summary>
<p>

```
error: unconstrained opaque type
 --> f.rs:5:19
  |
5 | type OpaqueType = impl OpaqueTrait;
  |                   ^^^^^^^^^^^^^^^^
  |
  = note: `OpaqueType` must be used in combination with a concrete type within the same module

thread 'rustc' panicked at /rustc/f67a1acc04c7ecbf05751b17592dd8d245b75256/compiler/rustc_type_ir/src/ty_kind.rs:856:17:
type variables should not be hashed: ?0t
stack backtrace:
   0:     0x72809149ecc5 - std::backtrace_rs::backtrace::libunwind::trace::ha04a88842d9880e4
                               at /rustc/f67a1acc04c7ecbf05751b17592dd8d245b75256/library/std/src/../../backtrace/src/backtrace/libunwind.rs:116:5
   1:     0x72809149ecc5 - std::backtrace_rs::backtrace::trace_unsynchronized::h3df86c3465abd5e1
                               at /rustc/f67a1acc04c7ecbf05751b17592dd8d245b75256/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x72809149ecc5 - std::sys_common::backtrace::_print_fmt::h8c2e29f86235af4c
                               at /rustc/f67a1acc04c7ecbf05751b17592dd8d245b75256/library/std/src/sys_common/backtrace.rs:68:5
   3:     0x72809149ecc5 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h507a097b66676404
                               at /rustc/f67a1acc04c7ecbf05751b17592dd8d245b75256/library/std/src/sys_common/backtrace.rs:44:22
   4:     0x7280914ef46b - core::fmt::rt::Argument::fmt::ha80e838d07549293
                               at /rustc/f67a1acc04c7ecbf05751b17592dd8d245b75256/library/core/src/fmt/rt.rs:165:63
   5:     0x7280914ef46b - core::fmt::write::h29bd0f6435b5b5cb
                               at /rustc/f67a1acc04c7ecbf05751b17592dd8d245b75256/library/core/src/fmt/mod.rs:1168:21
   6:     0x728091493a4f - std::io::Write::write_fmt::hd5651667cec2b52c
                               at /rustc/f67a1acc04c7ecbf05751b17592dd8d245b75256/library/std/src/io/mod.rs:1835:15
   7:     0x72809149ea9e - std::sys_common::backtrace::_print::h3176666daf50c582
                               at /rustc/f67a1acc04c7ecbf05751b17592dd8d245b75256/library/std/src/sys_common/backtrace.rs:47:5
   8:     0x72809149ea9e - std::sys_common::backtrace::print::ha19f92c0a79a518d
                               at /rustc/f67a1acc04c7ecbf05751b17592dd8d245b75256/library/std/src/sys_common/backtrace.rs:34:9
   9:     0x7280914a14d9 - std::panicking::default_hook::{{closure}}::hbd2fa3f92596c173
  10:     0x7280914a127a - std::panicking::default_hook::h7a545bdac7eec416
                               at /rustc/f67a1acc04c7ecbf05751b17592dd8d245b75256/library/std/src/panicking.rs:298:9
  11:     0x72808db422b0 - std[45eea3d871d24ad6]::panicking::update_hook::<alloc[fc515f74a8f785dc]::boxed::Box<rustc_driver_impl[c42a3492d6f6b9ec]::install_ice_hook::{closure#0}>>::{closure#0}
  12:     0x7280914a1c0b - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::haa82c5bf225b1a16
                               at /rustc/f67a1acc04c7ecbf05751b17592dd8d245b75256/library/alloc/src/boxed.rs:2077:9
  13:     0x7280914a1c0b - std::panicking::rust_panic_with_hook::hcc81e648ee4fa5ca
                               at /rustc/f67a1acc04c7ecbf05751b17592dd8d245b75256/library/std/src/panicking.rs:799:13
  14:     0x7280914a1984 - std::panicking::begin_panic_handler::{{closure}}::hb1ba03674522357e
                               at /rustc/f67a1acc04c7ecbf05751b17592dd8d245b75256/library/std/src/panicking.rs:664:13
  15:     0x72809149f189 - std::sys_common::backtrace::__rust_end_short_backtrace::hd358911377029d52
                               at /rustc/f67a1acc04c7ecbf05751b17592dd8d245b75256/library/std/src/sys_common/backtrace.rs:171:18
  16:     0x7280914a16b7 - rust_begin_unwind
                               at /rustc/f67a1acc04c7ecbf05751b17592dd8d245b75256/library/std/src/panicking.rs:652:5
  17:     0x7280914eba03 - core::panicking::panic_fmt::h91b4e9abcff8b652
                               at /rustc/f67a1acc04c7ecbf05751b17592dd8d245b75256/library/core/src/panicking.rs:72:14
  18:     0x72808e3ce01b - <rustc_type_ir[ec233038e902676a]::ty_kind::InferTy as rustc_data_structures[fdee94bd90e361f1]::stable_hasher::HashStable<rustc_query_system[d7adc1b68469f11c]::ich::hcx::StableHashingContext>>::hash_stable
  19:     0x72808f1b243c - <rustc_type_ir[ec233038e902676a]::ty_info::WithCachedTypeInfo<rustc_type_ir[ec233038e902676a]::ty_kind::TyKind<rustc_middle[20ab712fb3484bec]::ty::context::TyCtxt>> as rustc_data_structures[fdee94bd90e361f1]::stable_hasher::HashStable<rustc_query_system[d7adc1b68469f11c]::ich::hcx::StableHashingContext>>::hash_stable
  20:     0x72808f1ba7a9 - rustc_query_system[d7adc1b68469f11c]::query::plumbing::try_execute_query::<rustc_query_impl[2e1c19f32770c017]::DynamicConfig<rustc_query_system[d7adc1b68469f11c]::query::caches::DefaultCache<rustc_middle[20ab712fb3484bec]::ty::ParamEnvAnd<rustc_middle[20ab712fb3484bec]::ty::Ty>, rustc_middle[20ab712fb3484bec]::query::erase::Erased<[u8; 16usize]>>, false, true, false>, rustc_query_impl[2e1c19f32770c017]::plumbing::QueryCtxt, true>
  21:     0x72808f1b9acf - rustc_query_impl[2e1c19f32770c017]::query_impl::layout_of::get_query_incr::__rust_end_short_backtrace
  22:     0x72808e7625ee - rustc_middle[20ab712fb3484bec]::query::plumbing::query_get_at::<rustc_query_system[d7adc1b68469f11c]::query::caches::DefaultCache<rustc_middle[20ab712fb3484bec]::ty::ParamEnvAnd<rustc_middle[20ab712fb3484bec]::ty::Ty>, rustc_middle[20ab712fb3484bec]::query::erase::Erased<[u8; 16usize]>>>
  23:     0x72808e783429 - <rustc_transmute[bc46983496e99752]::maybe_transmutable::MaybeTransmutableQuery<rustc_middle[20ab712fb3484bec]::ty::Ty, rustc_middle[20ab712fb3484bec]::ty::context::TyCtxt>>::answer::{closure#0}
  24:     0x72808e780723 - <rustc_transmute[bc46983496e99752]::rustc::TransmuteTypeEnv>::is_transmutable
  25:     0x72808f91f30c - <rustc_trait_selection[57b953155e7b0930]::traits::select::SelectionContext>::confirm_candidate
  26:     0x72808f3d9e0e - <rustc_trait_selection[57b953155e7b0930]::traits::select::SelectionContext>::evaluate_candidate::{closure#0}::{closure#0}
  27:     0x72808bc44285 - <rustc_trait_selection[57b953155e7b0930]::traits::select::SelectionContext>::candidate_from_obligation_no_cache
  28:     0x72808bc802b6 - <rustc_trait_selection[57b953155e7b0930]::traits::select::SelectionContext>::candidate_from_obligation
  29:     0x72808bc7d41a - <rustc_trait_selection[57b953155e7b0930]::traits::select::SelectionContext>::evaluate_trait_predicate_recursively::{closure#0}::{closure#1}
  30:     0x72808f3dde06 - <rustc_trait_selection[57b953155e7b0930]::traits::select::SelectionContext>::evaluate_trait_predicate_recursively
  31:     0x72808f3cd3ab - <rustc_infer[8a8ff9df6ed1d3c6]::infer::InferCtxt>::probe::<core[221fd742908fc512]::result::Result<rustc_middle[20ab712fb3484bec]::traits::select::EvaluationResult, rustc_middle[20ab712fb3484bec]::traits::select::OverflowError>, <rustc_trait_selection[57b953155e7b0930]::traits::select::SelectionContext>::evaluation_probe<<rustc_trait_selection[57b953155e7b0930]::traits::select::SelectionContext>::evaluate_root_obligation::{closure#0}>::{closure#0}>
  32:     0x72808f3cc1df - rustc_trait_selection[57b953155e7b0930]::traits::coherence::overlap
  33:     0x72808fd42a66 - <rustc_middle[20ab712fb3484bec]::traits::specialization_graph::Children as rustc_trait_selection[57b953155e7b0930]::traits::specialize::specialization_graph::ChildrenExt>::insert
  34:     0x72808c113178 - <rustc_middle[20ab712fb3484bec]::traits::specialization_graph::Graph as rustc_trait_selection[57b953155e7b0930]::traits::specialize::specialization_graph::GraphExt>::insert
  35:     0x72808f1463e9 - rustc_trait_selection[57b953155e7b0930]::traits::specialize::specialization_graph_provider
  36:     0x72808f145f63 - rustc_query_impl[2e1c19f32770c017]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[2e1c19f32770c017]::query_impl::specialization_graph_of::dynamic_query::{closure#2}::{closure#0}, rustc_middle[20ab712fb3484bec]::query::erase::Erased<[u8; 8usize]>>
  37:     0x72808f184965 - rustc_query_system[d7adc1b68469f11c]::query::plumbing::try_execute_query::<rustc_query_impl[2e1c19f32770c017]::DynamicConfig<rustc_query_system[d7adc1b68469f11c]::query::caches::DefIdCache<rustc_middle[20ab712fb3484bec]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[2e1c19f32770c017]::plumbing::QueryCtxt, true>
  38:     0x72808f54e6a3 - rustc_query_impl[2e1c19f32770c017]::query_impl::specialization_graph_of::get_query_incr::__rust_end_short_backtrace
  39:     0x72808f272a2f - rustc_hir_analysis[905f368b2fc9ddf1]::coherence::coherent_trait
  40:     0x72808f27276d - rustc_query_impl[2e1c19f32770c017]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[2e1c19f32770c017]::query_impl::coherent_trait::dynamic_query::{closure#2}::{closure#0}, rustc_middle[20ab712fb3484bec]::query::erase::Erased<[u8; 1usize]>>
  41:     0x72808f58627c - rustc_query_system[d7adc1b68469f11c]::query::plumbing::try_execute_query::<rustc_query_impl[2e1c19f32770c017]::DynamicConfig<rustc_query_system[d7adc1b68469f11c]::query::caches::DefIdCache<rustc_middle[20ab712fb3484bec]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[2e1c19f32770c017]::plumbing::QueryCtxt, true>
  42:     0x72808f68922b - rustc_query_impl[2e1c19f32770c017]::query_impl::coherent_trait::get_query_incr::__rust_end_short_backtrace
  43:     0x72808f4b0147 - rustc_hir_analysis[905f368b2fc9ddf1]::check::wfcheck::check_well_formed
  44:     0x72808f4ada51 - rustc_query_impl[2e1c19f32770c017]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[2e1c19f32770c017]::query_impl::check_well_formed::dynamic_query::{closure#2}::{closure#0}, rustc_middle[20ab712fb3484bec]::query::erase::Erased<[u8; 1usize]>>
  45:     0x72808f580b0b - rustc_query_system[d7adc1b68469f11c]::query::plumbing::try_execute_query::<rustc_query_impl[2e1c19f32770c017]::DynamicConfig<rustc_query_system[d7adc1b68469f11c]::query::caches::VecCache<rustc_hir[c6d77eea478f137d]::hir_id::OwnerId, rustc_middle[20ab712fb3484bec]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[2e1c19f32770c017]::plumbing::QueryCtxt, true>
  46:     0x72808f580607 - rustc_query_impl[2e1c19f32770c017]::query_impl::check_well_formed::get_query_incr::__rust_end_short_backtrace
  47:     0x72808f4aae37 - rustc_hir_analysis[905f368b2fc9ddf1]::check::wfcheck::check_mod_type_wf
  48:     0x72808f4aac61 - rustc_query_impl[2e1c19f32770c017]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[2e1c19f32770c017]::query_impl::check_mod_type_wf::dynamic_query::{closure#2}::{closure#0}, rustc_middle[20ab712fb3484bec]::query::erase::Erased<[u8; 1usize]>>
  49:     0x72808faede42 - rustc_query_system[d7adc1b68469f11c]::query::plumbing::try_execute_query::<rustc_query_impl[2e1c19f32770c017]::DynamicConfig<rustc_query_system[d7adc1b68469f11c]::query::caches::DefaultCache<rustc_span[51dc3a994d050bac]::def_id::LocalModDefId, rustc_middle[20ab712fb3484bec]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[2e1c19f32770c017]::plumbing::QueryCtxt, true>
  50:     0x72808faeeab0 - rustc_query_impl[2e1c19f32770c017]::query_impl::check_mod_type_wf::get_query_incr::__rust_end_short_backtrace
  51:     0x72808f60d990 - rustc_hir_analysis[905f368b2fc9ddf1]::check_crate
  52:     0x72808f56fd3e - rustc_interface[6bfa9daba1d5b6c2]::passes::analysis
  53:     0x72808f56f89b - rustc_query_impl[2e1c19f32770c017]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[2e1c19f32770c017]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[20ab712fb3484bec]::query::erase::Erased<[u8; 1usize]>>
  54:     0x72808fdb958e - rustc_query_system[d7adc1b68469f11c]::query::plumbing::try_execute_query::<rustc_query_impl[2e1c19f32770c017]::DynamicConfig<rustc_query_system[d7adc1b68469f11c]::query::caches::SingleCache<rustc_middle[20ab712fb3484bec]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[2e1c19f32770c017]::plumbing::QueryCtxt, true>
  55:     0x72808fdb91ba - rustc_query_impl[2e1c19f32770c017]::query_impl::analysis::get_query_incr::__rust_end_short_backtrace
  56:     0x72808fbd1ce0 - rustc_interface[6bfa9daba1d5b6c2]::interface::run_compiler::<core[221fd742908fc512]::result::Result<(), rustc_span[51dc3a994d050bac]::ErrorGuaranteed>, rustc_driver_impl[c42a3492d6f6b9ec]::run_compiler::{closure#0}>::{closure#1}
  57:     0x72808fbbd649 - std[45eea3d871d24ad6]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[6bfa9daba1d5b6c2]::util::run_in_thread_with_globals<rustc_interface[6bfa9daba1d5b6c2]::util::run_in_thread_pool_with_globals<rustc_interface[6bfa9daba1d5b6c2]::interface::run_compiler<core[221fd742908fc512]::result::Result<(), rustc_span[51dc3a994d050bac]::ErrorGuaranteed>, rustc_driver_impl[c42a3492d6f6b9ec]::run_compiler::{closure#0}>::{closure#1}, core[221fd742908fc512]::result::Result<(), rustc_span[51dc3a994d050bac]::ErrorGuaranteed>>::{closure#0}, core[221fd742908fc512]::result::Result<(), rustc_span[51dc3a994d050bac]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[221fd742908fc512]::result::Result<(), rustc_span[51dc3a994d050bac]::ErrorGuaranteed>>
  58:     0x72808fbbd400 - <<std[45eea3d871d24ad6]::thread::Builder>::spawn_unchecked_<rustc_interface[6bfa9daba1d5b6c2]::util::run_in_thread_with_globals<rustc_interface[6bfa9daba1d5b6c2]::util::run_in_thread_pool_with_globals<rustc_interface[6bfa9daba1d5b6c2]::interface::run_compiler<core[221fd742908fc512]::result::Result<(), rustc_span[51dc3a994d050bac]::ErrorGuaranteed>, rustc_driver_impl[c42a3492d6f6b9ec]::run_compiler::{closure#0}>::{closure#1}, core[221fd742908fc512]::result::Result<(), rustc_span[51dc3a994d050bac]::ErrorGuaranteed>>::{closure#0}, core[221fd742908fc512]::result::Result<(), rustc_span[51dc3a994d050bac]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[221fd742908fc512]::result::Result<(), rustc_span[51dc3a994d050bac]::ErrorGuaranteed>>::{closure#2} as core[221fd742908fc512]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  59:     0x7280914abbfb - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h715ce95eefcc4a2c
                               at /rustc/f67a1acc04c7ecbf05751b17592dd8d245b75256/library/alloc/src/boxed.rs:2063:9
  60:     0x7280914abbfb - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h502013687618e5e5
                               at /rustc/f67a1acc04c7ecbf05751b17592dd8d245b75256/library/alloc/src/boxed.rs:2063:9
  61:     0x7280914abbfb - std::sys::pal::unix::thread::Thread::new::thread_start::ha0246e0960ff3ff1
                               at /rustc/f67a1acc04c7ecbf05751b17592dd8d245b75256/library/std/src/sys/pal/unix/thread.rs:108:17
  62:     0x7280912481cf - <unknown>
  63:     0x7280912c96ec - <unknown>
  64:                0x0 - <unknown>

error: 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: please make sure that you have updated to the latest nightly

note: please attach the file at `/tmp/icemaker_reports/2024-06-02_11-08-05/rustc-ice-2024-06-02T09_50_12-2441874.txt` to your bug report

note: compiler flags: -C incremental=[REDACTED]

query stack during panic:
panicked at /rustc/f67a1acc04c7ecbf05751b17592dd8d245b75256/compiler/rustc_type_ir/src/ty_kind.rs:856:17:
thread panicked while processing panic. aborting.
[1]    2441874 IOT instruction  rustc f.rs -Cincremental=.

```

</p>
</details>

<!--
@rustbot label +F-type_alias_impl_trait +F-transmutability