Skip to content

StructuralPartialEq computation error #150296

Closed

Description

@cedtwo

rust-analyzer 1 (5e3e9c4e61 2025-12-07)
rustc 1.92.0 (ded5c06cf 2025-12-08)
helix 25.07.1

Code

The following code will produce a compiler error on both stable and nightly:

use std::marker::PhantomData;

#[derive(Debug, Clone, Copy, PartialEq)]
pub struct StructuralType<T: PartialEq, const INT: usize> {
    ty: PhantomData<T>,
    var: u32,
}

impl<T: PartialEq, const INT: usize> StructuralType<T, INT> {
    const A: Self = StructuralType {
        ty: PhantomData,
        var: 0,
    };

    const B: Self = StructuralType {
        ty: PhantomData,
        var: 0,
    };

    fn broken(self) {
        match self {
            Self::A => {}
            Self::B => {}
            _ => {}
        }
    }
}

Error output

Rust playground output
error: internal compiler error: compiler/rustc_middle/src/ty/sty.rs:373:13: cannot find `INT/#1` in param-env: ParamEnv {
                                    caller_bounds: [],
                                }


thread 'rustc' (29) panicked at compiler/rustc_middle/src/ty/sty.rs:373:13:
Box<dyn Any>
stack backtrace:
   0:     0x79cb43a33ab3 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h718e2d17a1928e63
   1:     0x79cb44201b98 - core::fmt::write::h1d2246b072ea91eb
   2:     0x79cb457cd351 - std::io::Write::write_fmt::haf55272405c09d9b
   3:     0x79cb439f9642 - std::sys::backtrace::BacktraceLock::print::h61c3bd81a9458a03
   4:     0x79cb439ff709 - std::panicking::default_hook::{{closure}}::haf1ffb5d1e33a97f
   5:     0x79cb439ff233 - std::panicking::default_hook::hc32245deb6eaa988
   6:     0x79cb429fd651 - std[836535f787e97d3]::panicking::update_hook::<alloc[bc4a0c534c311190]::boxed::Box<rustc_driver_impl[88352806430fedcc]::install_ice_hook::{closure#1}>>::{closure#0}
   7:     0x79cb439ffb2f - std::panicking::panic_with_hook::h43adc00fd0e494cb
   8:     0x79cb42a37211 - std[836535f787e97d3]::panicking::begin_panic::<rustc_errors[bfaf558bc9da2898]::ExplicitBug>::{closure#0}
   9:     0x79cb42a2b296 - std[836535f787e97d3]::sys::backtrace::__rust_end_short_backtrace::<std[836535f787e97d3]::panicking::begin_panic<rustc_errors[bfaf558bc9da2898]::ExplicitBug>::{closure#0}, !>
  10:     0x79cb42a2b097 - std[836535f787e97d3]::panicking::begin_panic::<rustc_errors[bfaf558bc9da2898]::ExplicitBug>
  11:     0x79cb42a42b01 - <rustc_errors[bfaf558bc9da2898]::diagnostic::BugAbort as rustc_errors[bfaf558bc9da2898]::diagnostic::EmissionGuarantee>::emit_producing_guarantee
  12:     0x79cb42fde71a - rustc_middle[cc5e45d0ca739427]::util::bug::opt_span_bug_fmt::<rustc_span[4aa1f42928653b61]::span_encoding::Span>::{closure#0}
  13:     0x79cb42fde9fa - rustc_middle[cc5e45d0ca739427]::ty::context::tls::with_opt::<rustc_middle[cc5e45d0ca739427]::util::bug::opt_span_bug_fmt<rustc_span[4aa1f42928653b61]::span_encoding::Span>::{closure#0}, !>::{closure#0}
  14:     0x79cb42fcf9bb - rustc_middle[cc5e45d0ca739427]::ty::context::tls::with_context_opt::<rustc_middle[cc5e45d0ca739427]::ty::context::tls::with_opt<rustc_middle[cc5e45d0ca739427]::util::bug::opt_span_bug_fmt<rustc_span[4aa1f42928653b61]::span_encoding::Span>::{closure#0}, !>::{closure#0}, !>
  15:     0x79cb40d811c0 - rustc_middle[cc5e45d0ca739427]::util::bug::bug_fmt
  16:     0x79cb45d53de7 - <rustc_middle[cc5e45d0ca739427]::ty::sty::ParamConst>::find_const_ty_from_env.cold
  17:     0x79cb44af03f5 - <rustc_trait_selection[64e2ca0a91c648aa]::traits::fulfill::FulfillProcessor as rustc_data_structures[99519894e5253d88]::obligation_forest::ObligationProcessor>::process_obligation
  18:     0x79cb44204e09 - <rustc_data_structures[99519894e5253d88]::obligation_forest::ObligationForest<rustc_trait_selection[64e2ca0a91c648aa]::traits::fulfill::PendingPredicateObligation>>::process_obligations::<rustc_trait_selection[64e2ca0a91c648aa]::traits::fulfill::FulfillProcessor>
  19:     0x79cb442032df - <rustc_trait_selection[64e2ca0a91c648aa]::traits::fulfill::FulfillmentContext<rustc_infer[ac2fa1be7f77add4]::traits::engine::ScrubbedTraitError> as rustc_infer[ac2fa1be7f77add4]::traits::engine::TraitEngine<rustc_infer[ac2fa1be7f77add4]::traits::engine::ScrubbedTraitError>>::evaluate_obligations_error_on_ambiguity
  20:     0x79cb4577d88c - rustc_ty_utils[c7d5686450bce2a9]::structural_match::has_structural_eq_impl
  21:     0x79cb4577d4b3 - rustc_query_impl[f5b648d03701713a]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[f5b648d03701713a]::query_impl::has_structural_eq_impl::dynamic_query::{closure#2}::{closure#0}, rustc_middle[cc5e45d0ca739427]::query::erase::Erased<[u8; 1usize]>>
  22:     0x79cb4577cf98 - rustc_query_system[701c55d052347103]::query::plumbing::try_execute_query::<rustc_query_impl[f5b648d03701713a]::DynamicConfig<rustc_query_system[701c55d052347103]::query::caches::DefaultCache<rustc_middle[cc5e45d0ca739427]::ty::Ty, rustc_middle[cc5e45d0ca739427]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[f5b648d03701713a]::plumbing::QueryCtxt, false>
  23:     0x79cb4577cd06 - rustc_query_impl[f5b648d03701713a]::query_impl::has_structural_eq_impl::get_query_non_incr::__rust_end_short_backtrace
  24:     0x79cb44d04999 - <rustc_mir_build[9780538c53e38088]::thir::pattern::const_to_pat::ConstToPat>::valtree_to_pat
  25:     0x79cb44d034a3 - <rustc_mir_build[9780538c53e38088]::thir::pattern::PatCtxt>::const_to_pat
  26:     0x79cb44d0bf87 - <rustc_mir_build[9780538c53e38088]::thir::pattern::PatCtxt>::lower_pat_expr
  27:     0x79cb44d076f0 - <rustc_mir_build[9780538c53e38088]::thir::pattern::PatCtxt>::lower_pattern
  28:     0x79cb44d05cc5 - <rustc_mir_build[9780538c53e38088]::thir::cx::ThirBuildCx>::pattern_from_hir
  29:     0x79cb44d179b1 - <rustc_mir_build[9780538c53e38088]::thir::cx::ThirBuildCx>::mirror_expr
  30:     0x79cb44d15e3c - <rustc_mir_build[9780538c53e38088]::thir::cx::ThirBuildCx>::mirror_expr
  31:     0x79cb44d10f23 - rustc_mir_build[9780538c53e38088]::thir::cx::thir_body
  32:     0x79cb44d1015a - rustc_query_impl[f5b648d03701713a]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[f5b648d03701713a]::query_impl::thir_body::dynamic_query::{closure#2}::{closure#0}, rustc_middle[cc5e45d0ca739427]::query::erase::Erased<[u8; 16usize]>>
  33:     0x79cb44c06855 - rustc_query_system[701c55d052347103]::query::plumbing::try_execute_query::<rustc_query_impl[f5b648d03701713a]::DynamicConfig<rustc_data_structures[99519894e5253d88]::vec_cache::VecCache<rustc_span[4aa1f42928653b61]::def_id::LocalDefId, rustc_middle[cc5e45d0ca739427]::query::erase::Erased<[u8; 16usize]>, rustc_query_system[701c55d052347103]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[f5b648d03701713a]::plumbing::QueryCtxt, false>
  34:     0x79cb44c0649a - rustc_query_impl[f5b648d03701713a]::query_impl::thir_body::get_query_non_incr::__rust_end_short_backtrace
  35:     0x79cb44cb3da8 - rustc_mir_build[9780538c53e38088]::check_unsafety::check_unsafety
  36:     0x79cb44cb3b99 - rustc_query_impl[f5b648d03701713a]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[f5b648d03701713a]::query_impl::check_unsafety::dynamic_query::{closure#2}::{closure#0}, rustc_middle[cc5e45d0ca739427]::query::erase::Erased<[u8; 0usize]>>
  37:     0x79cb44cb9c5e - rustc_query_system[701c55d052347103]::query::plumbing::try_execute_query::<rustc_query_impl[f5b648d03701713a]::DynamicConfig<rustc_data_structures[99519894e5253d88]::vec_cache::VecCache<rustc_span[4aa1f42928653b61]::def_id::LocalDefId, rustc_middle[cc5e45d0ca739427]::query::erase::Erased<[u8; 0usize]>, rustc_query_system[701c55d052347103]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[f5b648d03701713a]::plumbing::QueryCtxt, false>
  38:     0x79cb44cb993d - rustc_query_impl[f5b648d03701713a]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace
  39:     0x79cb44cba826 - <rustc_middle[cc5e45d0ca739427]::ty::context::TyCtxt>::par_hir_body_owners::<rustc_interface[3dfce13d5179a6f8]::passes::run_required_analyses::{closure#1}::{closure#0}>::{closure#0}
  40:     0x79cb44cb63e9 - rustc_interface[3dfce13d5179a6f8]::passes::analysis
  41:     0x79cb44cb5877 - rustc_query_impl[f5b648d03701713a]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[f5b648d03701713a]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[cc5e45d0ca739427]::query::erase::Erased<[u8; 0usize]>>
  42:     0x79cb452a61e0 - rustc_query_system[701c55d052347103]::query::plumbing::try_execute_query::<rustc_query_impl[f5b648d03701713a]::DynamicConfig<rustc_query_system[701c55d052347103]::query::caches::SingleCache<rustc_middle[cc5e45d0ca739427]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[f5b648d03701713a]::plumbing::QueryCtxt, false>
  43:     0x79cb452a5e36 - rustc_query_impl[f5b648d03701713a]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
  44:     0x79cb4553a6ca - <rustc_interface[3dfce13d5179a6f8]::passes::create_and_enter_global_ctxt<core[2e27404414be4892]::option::Option<rustc_interface[3dfce13d5179a6f8]::queries::Linker>, rustc_driver_impl[88352806430fedcc]::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core[2e27404414be4892]::ops::function::FnOnce<(&rustc_session[2fc1d960ad4ec558]::session::Session, rustc_middle[cc5e45d0ca739427]::ty::context::CurrentGcx, alloc[bc4a0c534c311190]::sync::Arc<rustc_data_structures[99519894e5253d88]::jobserver::Proxy>, &std[836535f787e97d3]::sync::once_lock::OnceLock<rustc_middle[cc5e45d0ca739427]::ty::context::GlobalCtxt>, &rustc_data_structures[99519894e5253d88]::sync::worker_local::WorkerLocal<rustc_middle[cc5e45d0ca739427]::arena::Arena>, &rustc_data_structures[99519894e5253d88]::sync::worker_local::WorkerLocal<rustc_hir[7611e5bcfcd2a5c8]::Arena>, rustc_driver_impl[88352806430fedcc]::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
  45:     0x79cb45394be2 - rustc_interface[3dfce13d5179a6f8]::interface::run_compiler::<(), rustc_driver_impl[88352806430fedcc]::run_compiler::{closure#0}>::{closure#1}
  46:     0x79cb44f4a300 - std[836535f787e97d3]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[3dfce13d5179a6f8]::util::run_in_thread_with_globals<rustc_interface[3dfce13d5179a6f8]::util::run_in_thread_pool_with_globals<rustc_interface[3dfce13d5179a6f8]::interface::run_compiler<(), rustc_driver_impl[88352806430fedcc]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
  47:     0x79cb44f49fe4 - <<std[836535f787e97d3]::thread::Builder>::spawn_unchecked_<rustc_interface[3dfce13d5179a6f8]::util::run_in_thread_with_globals<rustc_interface[3dfce13d5179a6f8]::util::run_in_thread_pool_with_globals<rustc_interface[3dfce13d5179a6f8]::interface::run_compiler<(), rustc_driver_impl[88352806430fedcc]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[2e27404414be4892]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  48:     0x79cb44f4896f - std::sys::thread::unix::Thread::new::thread_start::h4637f1bfded3ea68
  49:     0x79cb3ec8aaa4 - <unknown>
  50:     0x79cb3ed17a64 - clone
  51:                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.92.0 (ded5c06cf 2025-12-08) running on x86_64-unknown-linux-gnu

note: compiler flags: --crate-type lib -C embed-bitcode=no -C codegen-units=1 -C debuginfo=2

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

query stack during panic:
#0 [has_structural_eq_impl] computing whether `StructuralType<T, INT>` implements `StructuralPartialEq`
#1 [thir_body] building THIR for `<impl at src/lib.rs:9:1: 9:60>::broken`
... and 2 other queries... use `env RUST_BACKTRACE=1` to see the full query stack
error: could not compile `playground` (lib)

Caused by:
  process didn't exit successfully: `/playground/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/rustc --crate-name playground --edition=2024 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no -C codegen-units=1 -C debuginfo=2 --check-cfg 'cfg(docsrs,test)' --check-cfg 'cfg(feature, values())' -C metadata=c31e8f0af773510e -C extra-filename=-058b96d7362af4aa --out-dir /playground/target/debug/deps -L dependency=/playground/target/debug/deps --extern addr2line=/playground/target/debug/deps/libaddr2line-26a2046b2ddad38b.rmeta --extern adler2=/playground/target/debug/deps/libadler2-d0d15f76056fe259.rmeta --extern ahash=/playground/target/debug/deps/libahash-ea699706d971a760.rmeta --extern aho_corasick=/playground/target/debug/deps/libaho_corasick-998121358715a6b7.rmeta --extern aligned=/playground/target/debug/deps/libaligned-949670d8ad41d2e7.rmeta --extern aligned_vec=/playground/target/debug/deps/libaligned_vec-85b95ce42c937f48.rmeta --extern alloc_no_stdlib=/playground/target/debug/deps/liballoc_no_stdlib-243857ba4767db79.rmeta --extern alloc_stdlib=/playground/target/debug/deps/liballoc_stdlib-43cbbfabc6868d96.rmeta --extern allocator_api2=/playground/target/debug/deps/liballocator_api2-02b593eba9416f44.rmeta --extern ansi_term=/playground/target/debug/deps/libansi_term-820c15672b77d740.rmeta --extern anstream=/playground/target/debug/deps/libanstream-da4102a0ee707055.rmeta --extern anstyle=/playground/target/debug/deps/libanstyle-736e7aa3cda81ca7.rmeta --extern anstyle_parse=/playground/target/debug/deps/libanstyle_parse-d3ddc9aaea32aba9.rmeta --extern anstyle_query=/playground/target/debug/deps/libanstyle_query-bb4466005d1ebfa2.rmeta --extern anyhow=/playground/target/debug/deps/libanyhow-4769c42898d3365d.rmeta --extern approx=/playground/target/debug/deps/libapprox-a1b878941e0eb716.rmeta --extern arc_swap=/playground/target/debug/deps/libarc_swap-2c20ccc3668bf4e6.rmeta --extern arg_enum_proc_macro=/playground/target/debug/deps/libarg_enum_proc_macro-b5a6e8127daf9eda.so --extern arrayvec=/playground/target/debug/deps/libarrayvec-5c7a4d07cde3e44d.rmeta --extern as_slice=/playground/target/debug/deps/libas_slice-6e2971744179b262.rmeta --extern async_compression=/playground/target/debug/deps/libasync_compression-ec8c5f83035f8b2d.rmeta --extern async_trait=/playground/target/debug/deps/libasync_trait-c9b121f5a8247e89.so --extern atomic=/playground/target/debug/deps/libatomic-561049899c54f8fc.rmeta --extern atomic_waker=/playground/target/debug/deps/libatomic_waker-ba4ec06c2d39e5db.rmeta --extern autocfg=/playground/target/debug/deps/libautocfg-ce816a779cfb7970.rmeta --extern av_scenechange=/playground/target/debug/deps/libav_scenechange-362bf8e04996a64c.rmeta --extern av1_grain=/playground/target/debug/deps/libav1_grain-24e247bccd799abc.rmeta --extern avif_serialize=/playground/target/debug/deps/libavif_serialize-8bff81bdcfe4ab26.rmeta --extern aws_lc_rs=/playground/target/debug/deps/libaws_lc_rs-bd8a81361dff9afc.rmeta --extern aws_lc_sys=/playground/target/debug/deps/libaws_lc_sys-965b889ab1d869d9.rmeta --extern backtrace=/playground/target/debug/deps/libbacktrace-bdd5dd0d0fdbc7e2.rmeta --extern base64=/playground/target/debug/deps/libbase64-001dbba7a655a289.rmeta --extern bit_set=/playground/target/debug/deps/libbit_set-c79420b4c3ed390e.rmeta --extern bit_vec=/playground/target/debug/deps/libbit_vec-66b5f9d3e919cb58.rmeta --extern bit_field=/playground/target/debug/deps/libbit_field-a8f6e6a9161aef67.rmeta --extern bitflags=/playground/target/debug/deps/libbitflags-44916a6b40b339bc.rmeta --extern bitstream_io=/playground/target/debug/deps/libbitstream_io-f12e03f549adbd86.rmeta --extern block_buffer_0_10_4=/playground/target/debug/deps/libblock_buffer-309887b4264faf30.rmeta --extern block_buffer=/playground/target/debug/deps/libblock_buffer-159305ecf73eece9.rmeta --extern borsh=/playground/target/debug/deps/libborsh-e10629eeeb89c4ba.rmeta --extern brotli=/playground/target/debug/deps/libbrotli-6f91a4dd89d55a28.rmeta --extern brotli_decompressor=/playground/target/debug/deps/libbrotli_decompressor-20424a8805be4d4f.rmeta --extern built=/playground/target/debug/deps/libbuilt-62279a202f59e85a.rmeta --extern bumpalo=/playground/target/debug/deps/libbumpalo-ebfef20927cc12b3.rmeta --extern bytemuck=/playground/target/debug/deps/libbytemuck-060a6ebe6ccb2486.rmeta --extern bytemuck_derive=/playground/target/debug/deps/libbytemuck_derive-716b95be9283c279.so --extern byteorder=/playground/target/debug/deps/libbyteorder-60093aaff7d70cec.rmeta --extern byteorder_lite=/playground/target/debug/deps/libbyteorder_lite-be053efd48bf7d63.rmeta --extern bytes_0_4_12=/playground/target/debug/deps/libbytes-4bbefa26f34a9659.rmeta --extern bytes=/playground/target/debug/deps/libbytes-076b6f8e7c7ffee3.rmeta --extern cc=/playground/target/debug/deps/libcc-65d8f55da5317ee0.rmeta --extern cfg_if=/playground/target/debug/deps/libcfg_if-02f1ee759d77eec9.rmeta --extern cfg_aliases=/playground/target/debug/deps/libcfg_aliases-7feac339db07d0b5.rmeta --extern chrono=/playground/target/debug/deps/libchrono-592d3f11031b41f7.rmeta --extern clap=/playground/target/debug/deps/libclap-58c611682580dfc5.rmeta --extern clap_builder=/playground/target/debug/deps/libclap_builder-e3cf78e728b1f1e7.rmeta --extern clap_derive=/playground/target/debug/deps/libclap_derive-c8b5ec1156d30f75.so --extern clap_lex=/playground/target/debug/deps/libclap_lex-d0347a59dcf9f9df.rmeta --extern cmake=/playground/target/debug/deps/libcmake-1222dc6336991358.rmeta --extern color_quant=/playground/target/debug/deps/libcolor_quant-1a4e2e150fbca506.rmeta --extern colorchoice=/playground/target/debug/deps/libcolorchoice-44e9eb821a0a10fa.rmeta --extern compression_codecs=/playground/target/debug/deps/libcompression_codecs-62813c2f1052e191.rmeta --extern compression_core=/playground/target/debug/deps/libcompression_core-0c3a4948dfb34f78.rmeta --extern const_default=/playground/target/debug/deps/libconst_default-e0e1f8da1c3252b9.rmeta --extern convert_case=/playground/target/debug/deps/libconvert_case-42a27b100bf7e16b.rmeta --extern cookie=/playground/target/debug/deps/libcookie-da2883c804ded54b.rmeta --extern cookie_store=/playground/target/debug/deps/libcookie_store-7043527d4620575e.rmeta --extern core2=/playground/target/debug/deps/libcore2-54a8750b559e2719.rmeta --extern cpufeatures=/playground/target/debug/deps/libcpufeatures-b246fca33f322df5.rmeta --extern crc32fast=/playground/target/debug/deps/libcrc32fast-ca95a2a2b035466d.rmeta --extern crossbeam=/playground/target/debug/deps/libcrossbeam-b3f9f91d12853c73.rmeta --extern crossbeam_channel=/playground/target/debug/deps/libcrossbeam_channel-88175bcb4bf64b67.rmeta --extern crossbeam_deque=/playground/target/debug/deps/libcrossbeam_deque-a2d9da2dcca314c8.rmeta --extern crossbeam_epoch=/playground/target/debug/deps/libcrossbeam_epoch-8ec2fc393d7d450b.rmeta --extern crossbeam_queue=/playground/target/debug/deps/libcrossbeam_queue-351a9c480d72502c.rmeta --extern crossbeam_utils=/playground/target/debug/deps/libcrossbeam_utils-207103b5eb4f0ce7.rmeta --extern crypto_common=/playground/target/debug/deps/libcrypto_common-e7ee34a700d4b304.rmeta --extern cssparser=/playground/target/debug/deps/libcssparser-9bd70cc4a5434916.rmeta --extern cssparser_macros=/playground/target/debug/deps/libcssparser_macros-8fa16d3ae3ac0d6e.so --extern csv=/playground/target/debug/deps/libcsv-8ced2cdb406b397f.rmeta --extern csv_core=/playground/target/debug/deps/libcsv_core-86663378ae584fcd.rmeta --extern data_encoding=/playground/target/debug/deps/libdata_encoding-92ec830192c88acc.rmeta --extern deranged=/playground/target/debug/deps/libderanged-d5c1a31b198db524.rmeta --extern derive_more_0_99_20=/playground/target/debug/deps/libderive_more-bacdc2eb6f677be6.so --extern derive_more=/playground/target/debug/deps/libderive_more-9e3fd73ffdc8f38a.rmeta --extern derive_more_impl=/playground/target/debug/deps/libderive_more_impl-8d1436aa8a2913ca.so --extern destructure_traitobject=/playground/target/debug/deps/libdestructure_traitobject-f05d026dd3245f9e.rmeta --extern digest=/playground/target/debug/deps/libdigest-8966555e15e65d43.rmeta --extern displaydoc=/playground/target/debug/deps/libdisplaydoc-bfd034ed8b9f4119.so --extern document_features=/playground/target/debug/deps/libdocument_features-b6a250abcd91f6f4.so --extern dtoa=/playground/target/debug/deps/libdtoa-c30777c5cc591c52.rmeta --extern dtoa_short=/playground/target/debug/deps/libdtoa_short-44e4ff28acaa2f6d.rmeta --extern dunce=/playground/target/debug/deps/libdunce-ee2d21fe706a449e.rmeta --extern ego_tree=/playground/target/debug/deps/libego_tree-83b4547c8b05cb59.rmeta --extern either=/playground/target/debug/deps/libeither-705d09a0fd777fc7.rmeta --extern encoding_rs=/playground/target/debug/deps/libencoding_rs-a7bd6d9f15ab4536.rmeta --extern env_filter=/playground/target/debug/deps/libenv_filter-7855442cf63c0e4e.rmeta --extern env_logger=/playground/target/debug/deps/libenv_logger-f0690dfc84ddc116.rmeta --extern equator=/playground/target/debug/deps/libequator-a6cec5a62920ad1f.rmeta --extern equator_macro=/playground/target/debug/deps/libequator_macro-95dc5cc84af2e50b.so --extern equivalent=/playground/target/debug/deps/libequivalent-92291a6b0c3fa8e8.rmeta --extern exr=/playground/target/debug/deps/libexr-b724f99742089c42.rmeta --extern fallible_iterator_0_2_0=/playground/target/debug/deps/libfallible_iterator-fc82c9a54e880e3b.rmeta --extern fallible_iterator=/playground/target/debug/deps/libfallible_iterator-43672e61f4e77e49.rmeta --extern fallible_streaming_iterator=/playground/target/debug/deps/libfallible_streaming_iterator-5f81c8ef638b51e1.rmeta --extern faster_hex=/playground/target/debug/deps/libfaster_hex-ec1dc6a9fc3a3e7c.rmeta --extern fastrand=/playground/target/debug/deps/libfastrand-99aa08bf32fbab22.rmeta --extern fax=/playground/target/debug/deps/libfax-abd695b1ee386816.rmeta --extern fax_derive=/playground/target/debug/deps/libfax_derive-276d0c11db7658e1.so --extern fdeflate=/playground/target/debug/deps/libfdeflate-1586e54bd5ef7f72.rmeta --extern filetime=/playground/target/debug/deps/libfiletime-62907a5fb218a84a.rmeta --extern find_msvc_tools=/playground/target/debug/deps/libfind_msvc_tools-38591c76588fe6f2.rmeta --extern fixedbitset_0_4_2=/playground/target/debug/deps/libfixedbitset-102ccd9b546d0408.rmeta --extern fixedbitset=/playground/target/debug/deps/libfixedbitset-694431c68910e8ab.rmeta --extern flate2=/playground/target/debug/deps/libflate2-1c4845f7b98680c9.rmeta --extern fnv=/playground/target/debug/deps/libfnv-3ad4c71289427fcb.rmeta --extern foldhash_0_1_5=/playground/target/debug/deps/libfoldhash-f144faf736074d18.rmeta --extern foldhash=/playground/target/debug/deps/libfoldhash-70d7eff346bcf72e.rmeta --extern foreign_types=/playground/target/debug/deps/libforeign_types-7f7ebc9d4e168db2.rmeta --extern foreign_types_shared=/playground/target/debug/deps/libforeign_types_shared-c08eff91993723a7.rmeta --extern form_urlencoded=/playground/target/debug/deps/libform_urlencoded-4304dfcb225a26ea.rmeta --extern fs_extra=/playground/target/debug/deps/libfs_extra-c44afab973508844.rmeta --extern futf=/playground/target/debug/deps/libfutf-7ab9253564356a22.rmeta --extern futures_0_1_31=/playground/target/debug/deps/libfutures-11da4677aba9d200.rmeta --extern futures=/playground/target/debug/deps/libfutures-3cfead931342c7c8.rmeta --extern futures_channel=/playground/target/debug/deps/libfutures_channel-250bfede1eadaf62.rmeta --extern futures_core=/playground/target/debug/deps/libfutures_core-c05ae0058f9167dc.rmeta --extern futures_executor=/playground/target/debug/deps/libfutures_executor-857a33650cfa4e6c.rmeta --extern futures_io=/playground/target/debug/deps/libfutures_io-b2892c967b5d97ba.rmeta --extern futures_macro=/playground/target/debug/deps/libfutures_macro-c3d558301c8f533a.so --extern futures_sink=/playground/target/debug/deps/libfutures_sink-792308d640361a5c.rmeta --extern futures_task=/playground/target/debug/deps/libfutures_task-1155e333c24d2f9e.rmeta --extern futures_util=/playground/target/debug/deps/libfutures_util-4f5cb8f69f43a36c.rmeta --extern fxhash=/playground/target/debug/deps/libfxhash-6514eb83568918a4.rmeta --extern generic_array_0_14_7=/playground/target/debug/deps/libgeneric_array-e682d2076a8dc9b1.rmeta --extern generic_array=/playground/target/debug/deps/libgeneric_array-2db79d016c69d736.rmeta --extern getopts=/playground/target/debug/deps/libgetopts-f9353dc3540ef69a.rmeta --extern getrandom_0_2_16=/playground/target/debug/deps/libgetrandom-d8f4f46b7518ee2e.rmeta --extern getrandom=/playground/target/debug/deps/libgetrandom-907ce780dd4b4c57.rmeta --extern gif=/playground/target/debug/deps/libgif-a55aa0da60003dca.rmeta --extern gimli=/playground/target/debug/deps/libgimli-d94369f4c796d8d8.rmeta --extern glob=/playground/target/debug/deps/libglob-af3348ecbc900084.rmeta --extern h2=/playground/target/debug/deps/libh2-0ee44b369c88d3e9.rmeta --extern half=/playground/target/debug/deps/libhalf-6e56d5ee775e8e8b.rmeta --extern hash32=/playground/target/debug/deps/libhash32-3ff68246958f6932.rmeta --extern hashbrown_0_15_5=/playground/target/debug/deps/libhashbrown-e348b4479abda649.rmeta --extern hashbrown=/playground/target/debug/deps/libhashbrown-0c3268f99d5c0561.rmeta --extern hashlink=/playground/target/debug/deps/libhashlink-8645f03d6bdff35b.rmeta --extern hdrhistogram=/playground/target/debug/deps/libhdrhistogram-60de93b3efaf9936.rmeta --extern heapless=/playground/target/debug/deps/libheapless-fdadb2127d32af58.rmeta --extern heck=/playground/target/debug/deps/libheck-98c217f9efdc1011.rmeta --extern hmac=/playground/target/debug/deps/libhmac-a74e181964a82fe8.rmeta --extern html5ever_0_26_0=/playground/target/debug/deps/libhtml5ever-3e62b73aad192dd3.rmeta --extern html5ever=/playground/target/debug/deps/libhtml5ever-8d60e234ffdb390a.rmeta --extern http=/playground/target/debug/deps/libhttp-46f8da0de5e51de7.rmeta --extern http_body=/playground/target/debug/deps/libhttp_body-91651aab23d7e92a.rmeta --extern http_body_util=/playground/target/debug/deps/libhttp_body_util-5ba4eb0f52471758.rmeta --extern http_range_header=/playground/target/debug/deps/libhttp_range_header-3294331c9760ac98.rmeta --extern httparse=/playground/target/debug/deps/libhttparse-d8733e38e812d8bb.rmeta --extern httpdate=/playground/target/debug/deps/libhttpdate-3cf0b842fbbf2b29.rmeta --extern humantime=/playground/target/debug/deps/libhumantime-2372588c85ba7134.rmeta --extern hybrid_array=/playground/target/debug/deps/libhybrid_array-d71345668e294cbb.rmeta --extern hyper=/playground/target/debug/deps/libhyper-23fe0f621c0d8172.rmeta --extern hyper_rustls=/playground/target/debug/deps/libhyper_rustls-9ebf0df9778f3109.rmeta --extern hyper_tls=/playground/target/debug/deps/libhyper_tls-0451f6febe013418.rmeta --extern hyper_util=/playground/target/debug/deps/libhyper_util-d6ab501e00af6d04.rmeta --extern iana_time_zone=/playground/target/debug/deps/libiana_time_zone-023f943e0f804a5a.rmeta --extern icu_collections=/playground/target/debug/deps/libicu_collections-c79c530fe482ea7e.rmeta --extern icu_locale_core=/playground/target/debug/deps/libicu_locale_core-f7b36fab6fe913ce.rmeta --extern icu_normalizer=/playground/target/debug/deps/libicu_normalizer-7136c261737efe48.rmeta --extern icu_normalizer_data=/playground/target/debug/deps/libicu_normalizer_data-7e6402dded91d9a3.rmeta --extern icu_properties=/playground/target/debug/deps/libicu_properties-049750e14437bb78.rmeta --extern icu_properties_data=/playground/target/debug/deps/libicu_properties_data-6025ae2a44372d16.rmeta --extern icu_provider=/playground/target/debug/deps/libicu_provider-dd42e86504ec5367.rmeta --extern idna=/playground/target/debug/deps/libidna-2781c0e681f32f26.rmeta --extern idna_adapter=/playground/target/debug/deps/libidna_adapter-213484f230904996.rmeta --extern image=/playground/target/debug/deps/libimage-975fd9ee5db4e159.rmeta --extern image_webp=/playground/target/debug/deps/libimage_webp-3faeec73f81a7553.rmeta --extern imgref=/playground/target/debug/deps/libimgref-edc4ae9af2138636.rmeta --extern indexmap=/playground/target/debug/deps/libindexmap-f27eb4b50e666b07.rmeta --extern iovec=/playground/target/debug/deps/libiovec-62b9863c81ab8c43.rmeta --extern ipnet=/playground/target/debug/deps/libipnet-b83d25f5f2287118.rmeta --extern iri_string=/playground/target/debug/deps/libiri_string-104311b4ecc73241.rmeta --extern is_terminal_polyfill=/playground/target/debug/deps/libis_terminal_polyfill-9851a49c691ce6ed.rmeta --extern itertools_0_13_0=/playground/target/debug/deps/libitertools-21ad4f49462b7e28.rmeta --extern itertools=/playground/target/debug/deps/libitertools-c8cce48169128d5c.rmeta --extern itoa=/playground/target/debug/deps/libitoa-f3d52142f14a3af7.rmeta --extern jiff=/playground/target/debug/deps/libjiff-010571571c77a469.rmeta --extern jobserver=/playground/target/debug/deps/libjobserver-a143d8027975d21b.rmeta --extern lazy_static=/playground/target/debug/deps/liblazy_static-40d3e4054361ed37.rmeta --extern lebe=/playground/target/debug/deps/liblebe-3588fe6405b79baf.rmeta --extern libc=/playground/target/debug/deps/liblibc-d89cb016650d9bae.rmeta --extern libm=/playground/target/debug/deps/liblibm-f9520fe2c62d7b99.rmeta --extern libsqlite3_sys=/playground/target/debug/deps/liblibsqlite3_sys-6b89393a56990af4.rmeta --extern linux_raw_sys_0_11_0=/playground/target/debug/deps/liblinux_raw_sys-a364c9730f788fba.rmeta --extern linux_raw_sys=/playground/target/debug/deps/liblinux_raw_sys-b2510d9d7151d7cf.rmeta --extern litemap=/playground/target/debug/deps/liblitemap-e9e1c8317965f130.rmeta --extern litrs=/playground/target/debug/deps/liblitrs-0b436f96de053c7b.rmeta --extern lock_api=/playground/target/debug/deps/liblock_api-c2db8c2b57b78898.rmeta --extern log=/playground/target/debug/deps/liblog-add36a7efb324955.rmeta --extern log_mdc=/playground/target/debug/deps/liblog_mdc-c06377d35e27cad4.rmeta --extern log4rs=/playground/target/debug/deps/liblog4rs-fe902457e84f1454.rmeta --extern loop9=/playground/target/debug/deps/libloop9-3423a4873af72da9.rmeta --extern mac=/playground/target/debug/deps/libmac-09d7236c7e24f557.rmeta --extern markup5ever_0_11_0=/playground/target/debug/deps/libmarkup5ever-e36f56a6d9f7e634.rmeta --extern markup5ever=/playground/target/debug/deps/libmarkup5ever-53ca56720e15b397.rmeta --extern markup5ever_rcdom=/playground/target/debug/deps/libmarkup5ever_rcdom-55467efee75e8b18.rmeta --extern matrixmultiply=/playground/target/debug/deps/libmatrixmultiply-846b2a9aa03d2a1e.rmeta --extern maybe_rayon=/playground/target/debug/deps/libmaybe_rayon-2ebdb24a5ebf1e15.rmeta --extern md5=/playground/target/debug/deps/libmd5-3e25b8e4186ccdfa.rmeta --extern memchr=/playground/target/debug/deps/libmemchr-600c2fcd91a26599.rmeta --extern memmap=/playground/target/debug/deps/libmemmap-9b45f09ce350f7cb.rmeta --extern memoffset=/playground/target/debug/deps/libmemoffset-343cae1e34d5e962.rmeta --extern mime=/playground/target/debug/deps/libmime-e1e8676b64b93bde.rmeta --extern mime_guess=/playground/target/debug/deps/libmime_guess-f2c1428200708e8f.rmeta --extern minimal_lexical=/playground/target/debug/deps/libminimal_lexical-aee0fe63e86700dc.rmeta --extern miniz_oxide=/playground/target/debug/deps/libminiz_oxide-6d83b81c95cbc2e8.rmeta --extern mio=/playground/target/debug/deps/libmio-968107dfe96c2d9b.rmeta --extern mock_instant=/playground/target/debug/deps/libmock_instant-7d8cdd5526462911.rmeta --extern moxcms=/playground/target/debug/deps/libmoxcms-57fbd9b083076692.rmeta --extern nalgebra=/playground/target/debug/deps/libnalgebra-60ab0326615ebc5c.rmeta --extern nalgebra_macros=/playground/target/debug/deps/libnalgebra_macros-025e52a3a8ea2c2e.so --extern native_tls=/playground/target/debug/deps/libnative_tls-c1a473a9de44d094.rmeta --extern ndarray=/playground/target/debug/deps/libndarray-ace667eea0aad87d.rmeta --extern debug_unreachable=/playground/target/debug/deps/libdebug_unreachable-8329e091f8864dfb.rmeta --extern nom_7_1_3=/playground/target/debug/deps/libnom-5ba9854f0a978638.rmeta --extern nom=/playground/target/debug/deps/libnom-c2854200831dee5c.rmeta --extern noop_proc_macro=/playground/target/debug/deps/libnoop_proc_macro-18fc8902430b015a.so --extern num=/playground/target/debug/deps/libnum-113841f237a995cb.rmeta --extern num_bigint=/playground/target/debug/deps/libnum_bigint-a5d8c0eb2eeb72a2.rmeta --extern num_complex=/playground/target/debug/deps/libnum_complex-3405c1a606fa952e.rmeta --extern num_conv=/playground/target/debug/deps/libnum_conv-422e48dc2b9d3482.rmeta --extern num_derive=/playground/target/debug/deps/libnum_derive-5999a0f31a1162a7.so --extern num_integer=/playground/target/debug/deps/libnum_integer-77cf2977885137fe.rmeta --extern num_iter=/playground/target/debug/deps/libnum_iter-20fa48ca8978fe01.rmeta --extern num_rational=/playground/target/debug/deps/libnum_rational-e099819b25815725.rmeta --extern num_traits=/playground/target/debug/deps/libnum_traits-8c9f44e35d0f2404.rmeta --extern num_cpus=/playground/target/debug/deps/libnum_cpus-6063a93fcfa2a5d4.rmeta --extern object=/playground/target/debug/deps/libobject-73fe465253908ef4.rmeta --extern once_cell=/playground/target/debug/deps/libonce_cell-75bf2064de347e7a.rmeta --extern openssl=/playground/target/debug/deps/libopenssl-b462e192c666e5cf.rmeta --extern openssl_macros=/playground/target/debug/deps/libopenssl_macros-530867bd6a3163f0.so --extern openssl_probe=/playground/target/debug/deps/libopenssl_probe-1feedaccd768bbc9.rmeta --extern openssl_sys=/playground/target/debug/deps/libopenssl_sys-f0e0c126b4fc67d0.rmeta --extern ordered_float=/playground/target/debug/deps/libordered_float-e372e32d19385de2.rmeta --extern parking_lot=/playground/target/debug/deps/libparking_lot-6a140ed7cbae9c6b.rmeta --extern parking_lot_core=/playground/target/debug/deps/libparking_lot_core-6bb8a8470b54ba98.rmeta --extern paste=/playground/target/debug/deps/libpaste-f563294dc0672eb8.so --extern pastey=/playground/target/debug/deps/libpastey-5535b4b1ecdf3c43.so --extern percent_encoding=/playground/target/debug/deps/libpercent_encoding-40bc2ea700ff7c4f.rmeta --extern petgraph_0_6_5=/playground/target/debug/deps/libpetgraph-a44d81236a172815.rmeta --extern petgraph=/playground/target/debug/deps/libpetgraph-a33beb7872e9c5e6.rmeta --extern phf_0_10_1=/playground/target/debug/deps/libphf-484f3a9579ae5e36.rmeta --extern phf_0_11_3=/playground/target/debug/deps/libphf-5c337080b04b656d.rmeta --extern phf=/playground/target/debug/deps/libphf-3529dc29ac93c161.rmeta --extern phf_codegen_0_10_0=/playground/target/debug/deps/libphf_codegen-caab60fe18b53bce.rmeta --extern phf_codegen=/playground/target/debug/deps/libphf_codegen-b43ede4e21545d4c.rmeta --extern phf_generator_0_10_0=/playground/target/debug/deps/libphf_generator-145dcaf580181848.rmeta --extern phf_generator_0_11_3=/playground/target/debug/deps/libphf_generator-52cff00ba4455158.rmeta --extern phf_generator=/playground/target/debug/deps/libphf_generator-c642cb740f6d053d.rmeta --extern phf_macros_0_11_3=/playground/target/debug/deps/libphf_macros-7dcbd4830629669b.so --extern phf_macros=/playground/target/debug/deps/libphf_macros-52ec3950fdf53870.so --extern phf_shared_0_10_0=/playground/target/debug/deps/libphf_shared-d6b8792b31a54789.rmeta --extern phf_shared_0_11_3=/playground/target/debug/deps/libphf_shared-f0b0ab9b923e5acf.rmeta --extern phf_shared=/playground/target/debug/deps/libphf_shared-823580a46e4c4ea2.rmeta --extern pin_project_lite=/playground/target/debug/deps/libpin_project_lite-5220d576006e8ceb.rmeta --extern pin_utils=/playground/target/debug/deps/libpin_utils-8bea8a330dc13631.rmeta --extern pkg_config=/playground/target/debug/deps/libpkg_config-49a5807879bab83a.rmeta --extern png=/playground/target/debug/deps/libpng-4be18bd826143d8a.rmeta --extern postgres=/playground/target/debug/deps/libpostgres-a6fbe3f4d133babd.rmeta --extern postgres_protocol=/playground/target/debug/deps/libpostgres_protocol-822052959d0aae0a.rmeta --extern postgres_types=/playground/target/debug/deps/libpostgres_types-7cc851151f03610b.rmeta --extern potential_utf=/playground/target/debug/deps/libpotential_utf-b36efd84b4bfe42d.rmeta --extern powerfmt=/playground/target/debug/deps/libpowerfmt-66d486b0a06e240e.rmeta --extern ppv_lite86=/playground/target/debug/deps/libppv_lite86-442b5e4a0471b720.rmeta --extern precomputed_hash=/playground/target/debug/deps/libprecomputed_hash-42bd958d55775f4f.rmeta --extern proc_macro2=/playground/target/debug/deps/libproc_macro2-8152d1da02edb9a8.rmeta --extern profiling=/playground/target/debug/deps/libprofiling-38a22711ddf447c6.rmeta --extern profiling_procmacros=/playground/target/debug/deps/libprofiling_procmacros-92c4a0e81576e06c.so --extern psl_types=/playground/target/debug/deps/libpsl_types-2ea959fa55851f2e.rmeta --extern publicsuffix=/playground/target/debug/deps/libpublicsuffix-9a06742260d6d2ce.rmeta --extern pxfm=/playground/target/debug/deps/libpxfm-7c9815011d8e95cd.rmeta --extern qoi=/playground/target/debug/deps/libqoi-ca22d42bc18a53b7.rmeta --extern quick_error=/playground/target/debug/deps/libquick_error-f0a3b97928b88b70.rmeta --extern quote=/playground/target/debug/deps/libquote-ca708b3dbc5a8930.rmeta --extern rand_0_8_5=/playground/target/debug/deps/librand-7f3e740c8d59e139.rmeta --extern rand=/playground/target/debug/deps/librand-a72d4422eb1156f8.rmeta --extern rand_chacha_0_3_1=/playground/target/debug/deps/librand_chacha-f713c77f8c7de34b.rmeta --extern rand_chacha=/playground/target/debug/deps/librand_chacha-35456c66e13f745a.rmeta --extern rand_core_0_6_4=/playground/target/debug/deps/librand_core-c799815086cbb17d.rmeta --extern rand_core=/playground/target/debug/deps/librand_core-9c28d57f8b98460c.rmeta --extern rand_distr=/playground/target/debug/deps/librand_distr-e5063949ff035224.rmeta --extern rav1e=/playground/target/debug/deps/librav1e-bfea232df663f5e8.rmeta --extern ravif=/playground/target/debug/deps/libravif-eac6acc61c1a9c01.rmeta --extern rawpointer=/playground/target/debug/deps/librawpointer-c95d8588244f8efc.rmeta --extern rayon=/playground/target/debug/deps/librayon-4f0ed5c229a7c4d8.rmeta --extern rayon_core=/playground/target/debug/deps/librayon_core-0f98f697dfae3499.rmeta --extern regex=/playground/target/debug/deps/libregex-bde70032abe2d8e4.rmeta --extern regex_automata=/playground/target/debug/deps/libregex_automata-136b1a01a05ed01e.rmeta --extern regex_syntax=/playground/target/debug/deps/libregex_syntax-6f51ddbe86aa7eef.rmeta --extern reqwest=/playground/target/debug/deps/libreqwest-5877b5bb6ad8011d.rmeta --extern rgb=/playground/target/debug/deps/librgb-bc9ed6851768af6c.rmeta --extern ring=/playground/target/debug/deps/libring-ade5c187d2b4f808.rmeta --extern rusqlite=/playground/target/debug/deps/librusqlite-03fb6a8d658591b3.rmeta --extern rustc_demangle=/playground/target/debug/deps/librustc_demangle-ebf38f85d838e151.rmeta --extern rustix=/playground/target/debug/deps/librustix-4bdf80f38e658225.rmeta --extern rustls=/playground/target/debug/deps/librustls-7401239308150bdb.rmeta --extern rustls_pki_types=/playground/target/debug/deps/librustls_pki_types-774b0f9c55d3e807.rmeta --extern webpki=/playground/target/debug/deps/libwebpki-ecfabab5ca000f4f.rmeta --extern rustversion=/playground/target/debug/deps/librustversion-0fb4710109b0b0b3.so --extern ryu=/playground/target/debug/deps/libryu-1af23dbf7e66377f.rmeta --extern safe_arch=/playground/target/debug/deps/libsafe_arch-208e084c75697f3a.rmeta --extern same_file=/playground/target/debug/deps/libsame_file-b1ab90b8122a11d3.rmeta --extern scopeguard=/playground/target/debug/deps/libscopeguard-bc0da636e9532abf.rmeta --extern scraper=/playground/target/debug/deps/libscraper-bec01521ac362b29.rmeta --extern select=/playground/target/debug/deps/libselect-e3c1af79f8a5e6b0.rmeta --extern selectors=/playground/target/debug/deps/libselectors-041d22ee0574be42.rmeta --extern semver=/playground/target/debug/deps/libsemver-876d9f3bedad97be.rmeta --extern serde=/playground/target/debug/deps/libserde-9c2adb49b6d4f9ff.rmeta --extern serde_value=/playground/target/debug/deps/libserde_value-201ee94a494eac4e.rmeta --extern serde_core=/playground/target/debug/deps/libserde_core-e93733c99f421bfd.rmeta --extern serde_derive=/playground/target/debug/deps/libserde_derive-5e59c03898098b7c.so --extern serde_json=/playground/target/debug/deps/libserde_json-8a088b8c39bf6575.rmeta --extern serde_spanned=/playground/target/debug/deps/libserde_spanned-141a820252da7712.rmeta --extern serde_urlencoded=/playground/target/debug/deps/libserde_urlencoded-8d5fd830726957cb.rmeta --extern serde_yaml=/playground/target/debug/deps/libserde_yaml-65cc98e7994b619c.rmeta --extern servo_arc=/playground/target/debug/deps/libservo_arc-0df273fd7b28769d.rmeta --extern sha1_smol=/playground/target/debug/deps/libsha1_smol-a386ab29ea65b907.rmeta --extern sha2=/playground/target/debug/deps/libsha2-436448e0964616c3.rmeta --extern shlex=/playground/target/debug/deps/libshlex-3b74381dc7509f4f.rmeta --extern signal_hook_registry=/playground/target/debug/deps/libsignal_hook_registry-20ba271d812c0d20.rmeta --extern simba=/playground/target/debug/deps/libsimba-927a71bc2f7e91ef.rmeta --extern simd_adler32=/playground/target/debug/deps/libsimd_adler32-e0d3a934f71b6e4c.rmeta --extern simd_helpers=/playground/target/debug/deps/libsimd_helpers-1582dcdbcd777a74.so --extern siphasher_0_3_11=/playground/target/debug/deps/libsiphasher-3aa54c6f2c6eddc8.rmeta --extern siphasher=/playground/target/debug/deps/libsiphasher-5784e77bfa30c221.rmeta --extern slab=/playground/target/debug/deps/libslab-38870bdf2b575170.rmeta --extern smallvec=/playground/target/debug/deps/libsmallvec-235a0ff5445b9ec1.rmeta --extern socket2=/playground/target/debug/deps/libsocket2-c78b930866bfb418.rmeta --extern sptr=/playground/target/debug/deps/libsptr-f45f993268a37a4b.rmeta --extern stable_deref_trait=/playground/target/debug/deps/libstable_deref_trait-d58f03e506e4f371.rmeta --extern string_cache=/playground/target/debug/deps/libstring_cache-ce63da04626db749.rmeta --extern string_cache_codegen=/playground/target/debug/deps/libstring_cache_codegen-d066b3203fb7075d.rmeta --extern stringprep=/playground/target/debug/deps/libstringprep-36f51fc570ff1861.rmeta --extern strsim=/playground/target/debug/deps/libstrsim-f4a70e960d6c20c1.rmeta --extern subtle=/playground/target/debug/deps/libsubtle-9b301767ce41ae37.rmeta --extern syn_1_0_109=/playground/target/debug/deps/libsyn-14e899efa362f8f3.rmeta --extern syn=/playground/target/debug/deps/libsyn-127b25529a3ca694.rmeta --extern sync_wrapper=/playground/target/debug/deps/libsync_wrapper-bccf64eadec0f40d.rmeta --extern synstructure=/playground/target/debug/deps/libsynstructure-306be17eb40ab4d9.rmeta --extern tar=/playground/target/debug/deps/libtar-2cbbebef1b3db4ef.rmeta --extern tempfile=/playground/target/debug/deps/libtempfile-141be235ab4c3ee1.rmeta --extern tendril=/playground/target/debug/deps/libtendril-871ac16bf0794338.rmeta --extern terminal_size=/playground/target/debug/deps/libterminal_size-1d3dfac4d54587fb.rmeta --extern thiserror=/playground/target/debug/deps/libthiserror-7db7bdfeb4fb1fbf.rmeta --extern thiserror_impl=/playground/target/debug/deps/libthiserror_impl-7264c1af248a482a.so --extern thread_id=/playground/target/debug/deps/libthread_id-6102775e5de82f28.rmeta --extern threadpool=/playground/target/debug/deps/libthreadpool-316dd1f4d51dc5f9.rmeta --extern tiff=/playground/target/debug/deps/libtiff-d9292e046355fe87.rmeta --extern time=/playground/target/debug/deps/libtime-774ea3aaef276ed2.rmeta --extern time_core=/playground/target/debug/deps/libtime_core-3b51de659e2ee17a.rmeta --extern time_macros=/playground/target/debug/deps/libtime_macros-2544f2f848675c8d.so --extern tinystr=/playground/target/debug/deps/libtinystr-1013047da55adae1.rmeta --extern tinyvec=/playground/target/debug/deps/libtinyvec-2583e32d4e0279f9.rmeta --extern tinyvec_macros=/playground/target/debug/deps/libtinyvec_macros-cd65493cfd89a2f3.rmeta --extern tokio=/playground/target/debug/deps/libtokio-363a7261038c3439.rmeta --extern tokio_io=/playground/target/debug/deps/libtokio_io-cb298c0ed09af6a3.rmeta --extern tokio_macros=/playground/target/debug/deps/libtokio_macros-7112efeabc2c3569.so --extern tokio_native_tls=/playground/target/debug/deps/libtokio_native_tls-97b3a00e49296f88.rmeta --extern tokio_postgres=/playground/target/debug/deps/libtokio_postgres-01f91b4d3674ba56.rmeta --extern tokio_rustls=/playground/target/debug/deps/libtokio_rustls-138244f50cb624b9.rmeta --extern tokio_stream=/playground/target/debug/deps/libtokio_stream-ab2ea775bd76e961.rmeta --extern tokio_util=/playground/target/debug/deps/libtokio_util-2c20d804337ef74c.rmeta --extern toml=/playground/target/debug/deps/libtoml-6b838dcbfb2ab21f.rmeta --extern toml_datetime=/playground/target/debug/deps/libtoml_datetime-850463ad1c0db425.rmeta --extern toml_parser=/playground/target/debug/deps/libtoml_parser-5eafb77e4e652649.rmeta --extern toml_writer=/playground/target/debug/deps/libtoml_writer-a933e8be9abdddf9.rmeta --extern tower=/playground/target/debug/deps/libtower-3508b01da752c5ab.rmeta --extern tower_http=/playground/target/debug/deps/libtower_http-d0456c658cb46f90.rmeta --extern tower_layer=/playground/target/debug/deps/libtower_layer-d309b4f169cba098.rmeta --extern tower_service=/playground/target/debug/deps/libtower_service-920dfbc6824f98df.rmeta --extern tracing=/playground/target/debug/deps/libtracing-03b1f17559a157a2.rmeta --extern tracing_attributes=/playground/target/debug/deps/libtracing_attributes-5be06d40653bfacc.so --extern tracing_core=/playground/target/debug/deps/libtracing_core-aaf829a386b80efd.rmeta --extern trpl=/playground/target/debug/deps/libtrpl-489af4eece1bbe07.rmeta --extern try_lock=/playground/target/debug/deps/libtry_lock-b276195ce316fd82.rmeta --extern typemap_ors=/playground/target/debug/deps/libtypemap_ors-064f929a3823aa07.rmeta --extern typenum=/playground/target/debug/deps/libtypenum-06db06e158feba99.rmeta --extern unicase=/playground/target/debug/deps/libunicase-32830cab80dc1bbb.rmeta --extern unicode_bidi=/playground/target/debug/deps/libunicode_bidi-66ed4342044db5a3.rmeta --extern unicode_ident=/playground/target/debug/deps/libunicode_ident-c8c9c7675935a538.rmeta --extern unicode_normalization=/playground/target/debug/deps/libunicode_normalization-251603c009da932c.rmeta --extern unicode_properties=/playground/target/debug/deps/libunicode_properties-f58a6ff8ac00fbaf.rmeta --extern unicode_segmentation=/playground/target/debug/deps/libunicode_segmentation-15ed6baf14d122a8.rmeta --extern unicode_width=/playground/target/debug/deps/libunicode_width-934a7c040917c6fc.rmeta --extern unicode_xid=/playground/target/debug/deps/libunicode_xid-d1937baba57d2af1.rmeta --extern unsafe_any_ors=/playground/target/debug/deps/libunsafe_any_ors-c93c32b206cb700a.rmeta --extern unsafe_libyaml=/playground/target/debug/deps/libunsafe_libyaml-93c29ef97de12913.rmeta --extern untrusted=/playground/target/debug/deps/libuntrusted-8f22c35ac0c35376.rmeta --extern url=/playground/target/debug/deps/liburl-ef45fd8ec3b88e08.rmeta --extern utf8=/playground/target/debug/deps/libutf8-19229f40c278bcea.rmeta --extern utf8_iter=/playground/target/debug/deps/libutf8_iter-391d8978d9c4500c.rmeta --extern utf8parse=/playground/target/debug/deps/libutf8parse-42764aa5ac6aade2.rmeta --extern uuid=/playground/target/debug/deps/libuuid-e7d2ece37292b44a.rmeta --extern v_frame=/playground/target/debug/deps/libv_frame-eca600a7e97d09ca.rmeta --extern vcpkg=/playground/target/debug/deps/libvcpkg-5f54a36e2df92384.rmeta --extern version_check=/playground/target/debug/deps/libversion_check-6a1b3e9aca3eccaa.rmeta --extern walkdir=/playground/target/debug/deps/libwalkdir-8b6652bc28fe6a7b.rmeta --extern want=/playground/target/debug/deps/libwant-dbde0909463c5fa1.rmeta --extern wasm_bindgen=/playground/target/debug/deps/libwasm_bindgen-ec192abab5fef3c7.rmeta --extern wasm_bindgen_macro=/playground/target/debug/deps/libwasm_bindgen_macro-73537f476dfb90c0.so --extern wasm_bindgen_macro_support=/playground/target/debug/deps/libwasm_bindgen_macro_support-d930cd133bba67c7.rmeta --extern wasm_bindgen_shared=/playground/target/debug/deps/libwasm_bindgen_shared-b710b976752c23de.rmeta --extern webpki_roots=/playground/target/debug/deps/libwebpki_roots-beda1efb3b71c6bf.rmeta --extern weezl=/playground/target/debug/deps/libweezl-f574f3d21f48b676.rmeta --extern whoami=/playground/target/debug/deps/libwhoami-37c24ba8d7fe9a4e.rmeta --extern wide=/playground/target/debug/deps/libwide-51d23c8fcda91d09.rmeta --extern windows_link=/playground/target/debug/deps/libwindows_link-fec6085b284f7a0f.rmeta --extern windows_sys_0_52_0=/playground/target/debug/deps/libwindows_sys-010653cf8c03d2b6.rmeta --extern windows_sys_0_59_0=/playground/target/debug/deps/libwindows_sys-70329b428a18c431.rmeta --extern windows_sys_0_60_2=/playground/target/debug/deps/libwindows_sys-f3dde20f6c1b8874.rmeta --extern windows_sys=/playground/target/debug/deps/libwindows_sys-4538681d84aa3e46.rmeta --extern windows_targets_0_52_6=/playground/target/debug/deps/libwindows_targets-f6e5a13325773518.rmeta --extern windows_targets=/playground/target/debug/deps/libwindows_targets-99c31599696d3407.rmeta --extern windows_aarch64_gnullvm_0_52_6=/playground/target/debug/deps/libwindows_aarch64_gnullvm-18540e4d6723aea8.rmeta --extern windows_aarch64_gnullvm=/playground/target/debug/deps/libwindows_aarch64_gnullvm-83b04f1588a5f692.rmeta --extern windows_aarch64_msvc_0_52_6=/playground/target/debug/deps/libwindows_aarch64_msvc-383c51dbcd5de01a.rmeta --extern windows_aarch64_msvc=/playground/target/debug/deps/libwindows_aarch64_msvc-c0c2983dcdae96f6.rmeta --extern windows_i686_gnu_0_52_6=/playground/target/debug/deps/libwindows_i686_gnu-8aef6a0f80e90316.rmeta --extern windows_i686_gnu=/playground/target/debug/deps/libwindows_i686_gnu-38d41634a797c323.rmeta --extern windows_i686_msvc_0_52_6=/playground/target/debug/deps/libwindows_i686_msvc-51983385d3ad8c7e.rmeta --extern windows_i686_msvc=/playground/target/debug/deps/libwindows_i686_msvc-040333c4ffd4bb9b.rmeta --extern windows_x86_64_gnu_0_52_6=/playground/target/debug/deps/libwindows_x86_64_gnu-b7352f82e3aee44a.rmeta --extern windows_x86_64_gnu=/playground/target/debug/deps/libwindows_x86_64_gnu-c7115a5ca8f1c5cf.rmeta --extern windows_x86_64_gnullvm_0_52_6=/playground/target/debug/deps/libwindows_x86_64_gnullvm-1398885e75321b0b.rmeta --extern windows_x86_64_gnullvm=/playground/target/debug/deps/libwindows_x86_64_gnullvm-1614c84c329c458e.rmeta --extern windows_x86_64_msvc_0_52_6=/playground/target/debug/deps/libwindows_x86_64_msvc-c7217603020ddefe.rmeta --extern windows_x86_64_msvc=/playground/target/debug/deps/libwindows_x86_64_msvc-869e6e2c13c5509d.rmeta --extern winnow=/playground/target/debug/deps/libwinnow-f57f45f6d388a674.rmeta --extern writeable=/playground/target/debug/deps/libwriteable-9a8957cf667682a0.rmeta --extern xattr=/playground/target/debug/deps/libxattr-c1a0f368f406f54d.rmeta --extern xml5ever=/playground/target/debug/deps/libxml5ever-6392c9d8edd66f21.rmeta --extern y4m=/playground/target/debug/deps/liby4m-283578b68ff3b862.rmeta --extern yoke=/playground/target/debug/deps/libyoke-657d4c00a780a7c1.rmeta --extern yoke_derive=/playground/target/debug/deps/libyoke_derive-3183d0fda3303849.so --extern zerocopy=/playground/target/debug/deps/libzerocopy-263eb9c0fee13669.rmeta --extern zerocopy_derive=/playground/target/debug/deps/libzerocopy_derive-1744539ccd0c0ee6.so --extern zerofrom=/playground/target/debug/deps/libzerofrom-a2969ce930ecaadc.rmeta --extern zerofrom_derive=/playground/target/debug/deps/libzerofrom_derive-c6783f8ecbb12073.so --extern zeroize=/playground/target/debug/deps/libzeroize-246b2a75842772aa.rmeta --extern zerotrie=/playground/target/debug/deps/libzerotrie-c19a030f74ef0845.rmeta --extern zerovec=/playground/target/debug/deps/libzerovec-5cf09a0f086f9877.rmeta --extern zerovec_derive=/playground/target/debug/deps/libzerovec_derive-fb0de8d857228cc5.so --extern zstd=/playground/target/debug/deps/libzstd-520a0dd53efdbe5d.rmeta --extern zstd_safe=/playground/target/debug/deps/libzstd_safe-bf5b3a093d029133.rmeta --extern zstd_sys=/playground/target/debug/deps/libzstd_sys-6fbbd43ea4ffb89b.rmeta --extern zune_core_0_4_12=/playground/target/debug/deps/libzune_core-00900475c4817b20.rmeta --extern zune_core=/playground/target/debug/deps/libzune_core-446dc17c5ab9a2cf.rmeta --extern zune_inflate=/playground/target/debug/deps/libzune_inflate-e80abba1416e86ae.rmeta --extern zune_jpeg_0_4_21=/playground/target/debug/deps/libzune_jpeg-54aa2b94eca2747b.rmeta --extern zune_jpeg=/playground/target/debug/deps/libzune_jpeg-0c15c966887aab1b.rmeta -L native=/playground/target/debug/build/zstd-sys-1a7dbaea18412105/out -L native=/playground/target/debug/build/aws-lc-sys-7c1e803cc57fc14c/out -L native=/playground/target/debug/build/ring-ca2fbcbb75e77191/out -L native=/playground/target/debug/build/libsqlite3-sys-7d741a68cdacc15e/out -L native=/playground/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows_x86_64_gnu-0.52.6/lib -L native=/playground/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows_x86_64_gnu-0.53.1/lib -L native=/playground/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows_aarch64_gnullvm-0.52.6/lib -L native=/playground/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows_aarch64_gnullvm-0.53.1/lib -L native=/playground/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows_aarch64_msvc-0.52.6/lib -L native=/playground/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows_aarch64_msvc-0.53.1/lib -L native=/playground/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows_i686_gnu-0.52.6/lib -L native=/playground/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows_i686_gnu-0.53.1/lib -L native=/playground/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows_i686_msvc-0.52.6/lib -L native=/playground/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows_i686_msvc-0.53.1/lib -L native=/playground/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows_x86_64_gnullvm-0.52.6/lib -L native=/playground/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows_x86_64_gnullvm-0.53.1/lib -L native=/playground/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows_x86_64_msvc-0.52.6/lib -L native=/playground/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows_x86_64_msvc-0.53.1/lib` (exit status: 101)

This may be closely related to incorrect diagnostics where the const argument is omitted. The relevant issue will be linked momentarily.

Activity

  1. added
    I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️
    T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.
    C-bugCategory: This is a bug.
    on Dec 23, 2025
  2. added
    needs-triageThis issue may need triage. Remove when done. See docs forge.rust-lang.org/release/issue-triaging
    on Dec 23, 2025
  3. theemathas commented on Dec 23, 2025

    @theemathas
    Contributor

    Smaller reproducer:

    #[derive(PartialEq)]
    pub struct Thing<const N: usize>;
    
    impl<const N: usize> Thing<N> {
        const A: Self = Thing;
    }
    
    fn broken<const N: usize>(x: Thing<N>) {
        match x {
            <Thing<N>>::A => {}
            _ => {}
        }
    }
    
  4. removed
    needs-triageThis issue may need triage. Remove when done. See docs forge.rust-lang.org/release/issue-triaging
    on Dec 25, 2025
  5. dianne commented on Jan 10, 2026

    @dianne
    Member

    Similar to #150298, I think this is because when checking if ADTs shallowly support structural equality, we use an empty ParamEnv; i.e. we ignore the const N: usize in the environment when trying to prove that Thing<N>: StructuralPartialEq. This ICEs when trying to look up N's type, since it's not in the environment. Usually using an empty ParamEnv is fine (and better for query caching) since generic params aren't supported in const patterns, but that's caught when evaluating the constant to a valtree; we usually can't do that in the presence of generics. In this case, the generic is unused, so evaluation to a valtree succeeds, meaning we check for structural equality (at which point we ICE).

    As with ##150298, I think the easy fix here is to be more strict about not supporting params in const patterns' types. I'd personally prefer a simple, consistent rule over carving out special cases where it technically can work. We can always relax it later if we want to support this.

  6. added
    S-has-mcveStatus: A Minimal Complete and Verifiable Example has been found for this issue
    S-bug-has-testStatus: This bug is tracked inside the repo by a `known-bug` test.
    on Jun 27, 2026
  7. RalfJung commented on Jul 2, 2026

    @RalfJung
    Member

    FWIW #156977 seems to fix the example but not the bug. The PR doesn't even touch the structural equality logic but apparently makes the ICE disappear for both reproducers. I have no idea why.

    I'll just remove the crash test in that PR, there's no point in making it a regular test as it doesn't test anything as far as I can tell.

  8. dianne commented on Jul 2, 2026

    @dianne
    Member

    @RalfJung That might actually happen to fix this for real? I'd consider it a validation bug rather than a bug with anything specific to structural equality. The added call to ensure_monomorphic_enough in Machine::validate_operand_internal in #156977 is catching that a param appears in the type of the const pattern, so we get a TooGeneric error when trying to turn it into a valtree. That's exactly what I'd want a fix for this to look like (bearing in mind I'm not familiar with CTFE internals).

  9. RalfJung commented on Jul 2, 2026

    @RalfJung
    Member

    It seems to me like something is wrong somewhere else if we even try to construct a valtree of a generic type? Const validation does not seem like the right place to catch that.

  10. dianne commented on Jul 2, 2026

    @dianne
    Member

    Yeah, I'm not sure where the right place is ^^ currently const-to-pat is relying on eval_to_valtree to do its validation, so I suppose the check should be before that if we shouldn't be giving it anything with a generic type?

  11. RalfJung commented on Jul 2, 2026

    @RalfJung
    Member

    I thought we reject patterns that depend on generics fairly early. Who do those even reach const-to-pat?

  12. dianne commented on Jul 2, 2026

    @dianne
    Member

    I'm not familiar with the history, but I think currently the only way we reject patterns that depend on generics is by getting Err(ErrorHandled(TooGeneric)) back from const_eval_resolve_for_typeck at the start of const-to-pat; that's where the "constant pattern cannot depend on generic parameters" error is emitted. Since we allow const patterns with params in their args as long as those params aren't actually used, I think some patterns that depend on generics can only be caught by looking inside of their bodies? Currently, we do this by trying to evaluate them. But in relying wholly on that, we don't currently actually have a check that the types of constant patterns don't refer to generic params (hence this ICE and the weird error in #150298).

  13. RalfJung commented on Jul 10, 2026

    @RalfJung
    Member

    Apparently in this case we enter the valtree_to_pat case, whereas ConstPatternDependsOnGenericParameter is in alias_to_pat. So apparently we did manage to construct a valtree, but the type of the valtree has generics.

    So, should eval_to_valtree get an explicit ensure_monomorphic_enough check to ensure we can never construct a valtree until all generics are known? That would be in here I think:

    pub(crate) fn eval_to_valtree<'tcx>(
    tcx: TyCtxt<'tcx>,
    typing_env: ty::TypingEnv<'tcx>,
    cid: GlobalId<'tcx>,
    ) -> EvalToValTreeResult<'tcx> {
    crate::assert_typing_mode(typing_env.typing_mode());
    let const_alloc = tcx.eval_to_allocation_raw(typing_env.as_query_input(cid))?;

    @BoxyUwU @lcnr maybe you have a better idea of the intended invariants here.

  14. lcnr commented on Jul 15, 2026

    @lcnr
    Contributor

    I think longterm the invariant is that we never convert generic things to valtrees, I am less sure about the current state/near future here. @BoxyUwU should have a better sense of what's necessary to make this fully unreachable

  15. BoxyUwU commented on Jul 17, 2026

    @BoxyUwU
    Member

    I think in the long term we just want a very syntactic "generic parameters can't be named in const pattern position" rule. afaik this is necessary to fix all the ICEs around const patterns for const items with trivial where clauses. I've put off actually doing this work and fixing trivial bounds'd const patterns because I would need to justify the breaking change around how we detect TooGeneric to T-lang and I don't feel well suited to doing this (though I do believe it to be well-justified).

    The actual implementation ought to be fairly trivial, we would just call has_params() either in unevaluated_to_pat or somewhere slightly more general to apply to all const eval entry points (though I think unevaluated_to_pat and type system normalization are the only two call sites that can have generic parameters?)

  16. added 2 commits that reference this issue on Jul 22, 2026
  17. added 2 commits that reference this issue on Jul 22, 2026
  18. added a commit that references this issue on Jul 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: This is a bug.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️S-bug-has-testStatus: This bug is tracked inside the repo by a `known-bug` test.S-has-mcveStatus: A Minimal Complete and Verifiable Example has been found for this issueT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions