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: effects, gce: difference in caller_arg caller_abi layout #119701

Closed
matthiaskrgr opened this issue Jan 7, 2024 · 4 comments · Fixed by #133365
Closed

ICE: effects, gce: difference in caller_arg caller_abi layout #119701

matthiaskrgr opened this issue Jan 7, 2024 · 4 comments · Fixed by #133365
Labels
C-bug Category: This is a bug. F-const_trait_impl `#![feature(const_trait_impl)]` F-generic_const_exprs `#![feature(generic_const_exprs)]` I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ requires-incomplete-features This issue requires the use of incomplete features. S-bug-has-test Status: This bug is tracked inside the repo by a `known-bug` test. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@matthiaskrgr
Copy link
Member

matthiaskrgr commented Jan 7, 2024

auto-reduced (treereduce-rust):

#![feature(const_trait_impl, generic_const_exprs)]

fn main() {
    let _ = process::<()>([()]);
}

fn process<T: const Trait>() -> [(); T::make(2)] {
    input
}

#[const_trait]
trait Trait {
    fn make(input: u8) -> usize;
}

impl const Trait for () {
    fn make(input: usize) -> usize {
        input / 2
    }
}

original:

// check-pass

#![feature(const_trait_impl, effects, generic_const_exprs)]
#![allow(incomplete_features)]

fn main() {
    let _ = process::<()>([()]);
    let _ = Struct::<(), 4> { field: [1, 0] };
}

fn process<T: const Trait>(input: [(); T::make(2)]) -> [(); T::make(2)] {
    input
}

struct Struct<T: const Trait, const P: usize>
where
    [u32; T::make(P)]:,
{
    field: [u32; T::make(P)],
}

#[const_trait]
trait Trait {
    fn make(input: u8) -> usize;
}

impl const Trait for () {
    fn make(input: usize) -> usize {
        input / 2
    }
}

Version information

rustc 1.77.0-nightly (87e143089 2024-01-07)
binary: rustc
commit-hash: 87e1430893d55001034bd76c5dbe832d80bc50c3
commit-date: 2024-01-07
host: x86_64-unknown-linux-gnu
release: 1.77.0-nightly
LLVM version: 17.0.6

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

Program output

error[E0425]: cannot find value `input` in this scope
 --> /tmp/icemaker_global_tempdir.jkf89PvuHS4R/rustc_testrunner_tmpdir_reporting.GWTS1Qe3YIbK/mvce.rs:8:5
  |
8 |     input
  |     ^^^^^ not found in this scope

warning: the feature `generic_const_exprs` is incomplete and may not be safe to use and/or cause compiler crashes
 --> /tmp/icemaker_global_tempdir.jkf89PvuHS4R/rustc_testrunner_tmpdir_reporting.GWTS1Qe3YIbK/mvce.rs:1:39
  |
1 | #![feature(const_trait_impl, effects, generic_const_exprs)]
  |                                       ^^^^^^^^^^^^^^^^^^^
  |
  = note: see issue #76560 <https://github.com/rust-lang/rust/issues/76560> for more information
  = note: `#[warn(incomplete_features)]` on by default

error[E0053]: method `make` has an incompatible type for trait
  --> /tmp/icemaker_global_tempdir.jkf89PvuHS4R/rustc_testrunner_tmpdir_reporting.GWTS1Qe3YIbK/mvce.rs:17:20
   |
17 |     fn make(input: usize) -> usize {
   |                    ^^^^^
   |                    |
   |                    expected `u8`, found `usize`
   |                    help: change the parameter type to match the trait: `u8`
   |
note: type in trait
  --> /tmp/icemaker_global_tempdir.jkf89PvuHS4R/rustc_testrunner_tmpdir_reporting.GWTS1Qe3YIbK/mvce.rs:13:20
   |
13 |     fn make(input: u8) -> usize;
   |                    ^^
   = note: expected signature `fn(u8) -> _`
              found signature `fn(usize) -> _`

thread 'rustc' panicked at compiler/rustc_const_eval/src/interpret/terminator.rs:454:9:
assertion `left == right` failed
  left: Layout { size: Size(1 bytes), align: AbiAndPrefAlign { abi: Align(1 bytes), pref: Align(1 bytes) }, abi: Scalar(Initialized { value: Int(I8, false), valid_range: 0..=255 }), fields: Primitive, largest_niche: None, variants: Single { index: 0 }, max_repr_align: None, unadjusted_abi_align: Align(1 bytes) }
 right: Layout { size: Size(8 bytes), align: AbiAndPrefAlign { abi: Align(8 bytes), pref: Align(8 bytes) }, abi: Scalar(Initialized { value: Int(I64, false), valid_range: 0..=18446744073709551615 }), fields: Primitive, largest_niche: None, variants: Single { index: 0 }, max_repr_align: None, unadjusted_abi_align: Align(8 bytes) }
stack backtrace:
   0:     0x7f288f98c7e6 - std::backtrace_rs::backtrace::libunwind::trace::he8bb9a2968030ce5
                               at /rustc/87e1430893d55001034bd76c5dbe832d80bc50c3/library/std/src/../../backtrace/src/backtrace/libunwind.rs:104:5
   1:     0x7f288f98c7e6 - std::backtrace_rs::backtrace::trace_unsynchronized::h1e6335639c9b85e4
                               at /rustc/87e1430893d55001034bd76c5dbe832d80bc50c3/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7f288f98c7e6 - std::sys_common::backtrace::_print_fmt::hd66fef07c209e556
                               at /rustc/87e1430893d55001034bd76c5dbe832d80bc50c3/library/std/src/sys_common/backtrace.rs:68:5
   3:     0x7f288f98c7e6 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hecd93f344b959b6a
                               at /rustc/87e1430893d55001034bd76c5dbe832d80bc50c3/library/std/src/sys_common/backtrace.rs:44:22
   4:     0x7f288f9deed0 - core::fmt::rt::Argument::fmt::h2ce15aff494aed3e
                               at /rustc/87e1430893d55001034bd76c5dbe832d80bc50c3/library/core/src/fmt/rt.rs:142:9
   5:     0x7f288f9deed0 - core::fmt::write::hfa1934f2b28427b2
                               at /rustc/87e1430893d55001034bd76c5dbe832d80bc50c3/library/core/src/fmt/mod.rs:1120:17
   6:     0x7f288f9801df - std::io::Write::write_fmt::h3d316f3d08b299da
                               at /rustc/87e1430893d55001034bd76c5dbe832d80bc50c3/library/std/src/io/mod.rs:1810:15
   7:     0x7f288f98c5c4 - std::sys_common::backtrace::_print::h0e9229b4060901ad
                               at /rustc/87e1430893d55001034bd76c5dbe832d80bc50c3/library/std/src/sys_common/backtrace.rs:47:5
   8:     0x7f288f98c5c4 - std::sys_common::backtrace::print::he46da77420c9de24
                               at /rustc/87e1430893d55001034bd76c5dbe832d80bc50c3/library/std/src/sys_common/backtrace.rs:34:9
   9:     0x7f288f98f357 - std::panicking::default_hook::{{closure}}::h54b1b53158ffe881
  10:     0x7f288f98f0b9 - std::panicking::default_hook::h2bf110e162a78c7d
                               at /rustc/87e1430893d55001034bd76c5dbe832d80bc50c3/library/std/src/panicking.rs:292:9
  11:     0x7f2892753d9c - std[6006d4e995217078]::panicking::update_hook::<alloc[e75bd506fea0da47]::boxed::Box<rustc_driver_impl[d2c301b665c661c0]::install_ice_hook::{closure#0}>>::{closure#0}
  12:     0x7f288f98faa6 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h751b1f22210c3ae5
                               at /rustc/87e1430893d55001034bd76c5dbe832d80bc50c3/library/alloc/src/boxed.rs:2030:9
  13:     0x7f288f98faa6 - std::panicking::rust_panic_with_hook::h08d4c37f8f6f3bb0
                               at /rustc/87e1430893d55001034bd76c5dbe832d80bc50c3/library/std/src/panicking.rs:783:13
  14:     0x7f288f98f7f2 - std::panicking::begin_panic_handler::{{closure}}::hd6d6630725f99a44
                               at /rustc/87e1430893d55001034bd76c5dbe832d80bc50c3/library/std/src/panicking.rs:657:13
  15:     0x7f288f98cce6 - std::sys_common::backtrace::__rust_end_short_backtrace::h3c42b90070a2a7fe
                               at /rustc/87e1430893d55001034bd76c5dbe832d80bc50c3/library/std/src/sys_common/backtrace.rs:171:18
  16:     0x7f288f98f550 - rust_begin_unwind
                               at /rustc/87e1430893d55001034bd76c5dbe832d80bc50c3/library/std/src/panicking.rs:645:5
  17:     0x7f288f9db5d5 - core::panicking::panic_fmt::ha8ce81f4758d271e
                               at /rustc/87e1430893d55001034bd76c5dbe832d80bc50c3/library/core/src/panicking.rs:72:14
  18:     0x7f288f9dbb6b - core::panicking::assert_failed_inner::h33251d3505946c37
                               at /rustc/87e1430893d55001034bd76c5dbe832d80bc50c3/library/core/src/panicking.rs:342:17
  19:     0x7f28926ccfe3 - core[3198d8acc012de37]::panicking::assert_failed::<rustc_target[c2cb60685ff2eae8]::abi::Layout, rustc_target[c2cb60685ff2eae8]::abi::Layout>
  20:     0x7f2891be0c84 - <rustc_const_eval[51909c9ef48db599]::interpret::eval_context::InterpCx<rustc_const_eval[51909c9ef48db599]::const_eval::machine::CompileTimeInterpreter>>::pass_argument::<core[3198d8acc012de37]::iter::adapters::filter::Filter<core[3198d8acc012de37]::iter::adapters::zip::Zip<core[3198d8acc012de37]::slice::iter::Iter<rustc_const_eval[51909c9ef48db599]::interpret::terminator::FnArg>, core[3198d8acc012de37]::slice::iter::Iter<rustc_target[c2cb60685ff2eae8]::abi::call::ArgAbi<rustc_middle[7e63d8cceb784d0e]::ty::Ty>>>, <rustc_const_eval[51909c9ef48db599]::interpret::eval_context::InterpCx<rustc_const_eval[51909c9ef48db599]::const_eval::machine::CompileTimeInterpreter>>::eval_fn_call::{closure#2}>>
  21:     0x7f2891bcd830 - <rustc_const_eval[51909c9ef48db599]::interpret::eval_context::InterpCx<rustc_const_eval[51909c9ef48db599]::const_eval::machine::CompileTimeInterpreter>>::eval_fn_call
  22:     0x7f28947c8545 - rustc_const_eval[51909c9ef48db599]::const_eval::eval_queries::eval_body_using_ecx
  23:     0x7f28947b93fe - rustc_const_eval[51909c9ef48db599]::const_eval::eval_queries::eval_in_interpreter
  24:     0x7f28947b8fee - rustc_const_eval[51909c9ef48db599]::const_eval::eval_queries::eval_to_allocation_raw_provider
  25:     0x7f28947b8e76 - rustc_query_impl[123ba24cfbee05a3]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[123ba24cfbee05a3]::query_impl::eval_to_allocation_raw::dynamic_query::{closure#2}::{closure#0}, rustc_middle[7e63d8cceb784d0e]::query::erase::Erased<[u8; 24usize]>>
  26:     0x7f28947b7d4b - rustc_query_system[c043c6b7422f834c]::query::plumbing::try_execute_query::<rustc_query_impl[123ba24cfbee05a3]::DynamicConfig<rustc_query_system[c043c6b7422f834c]::query::caches::DefaultCache<rustc_middle[7e63d8cceb784d0e]::ty::ParamEnvAnd<rustc_middle[7e63d8cceb784d0e]::mir::interpret::GlobalId>, rustc_middle[7e63d8cceb784d0e]::query::erase::Erased<[u8; 24usize]>>, false, false, false>, rustc_query_impl[123ba24cfbee05a3]::plumbing::QueryCtxt, false>
  27:     0x7f28947b7730 - rustc_query_impl[123ba24cfbee05a3]::query_impl::eval_to_allocation_raw::get_query_non_incr::__rust_end_short_backtrace
  28:     0x7f2894489e89 - rustc_middle[7e63d8cceb784d0e]::query::plumbing::query_get_at::<rustc_query_system[c043c6b7422f834c]::query::caches::DefaultCache<rustc_middle[7e63d8cceb784d0e]::ty::ParamEnvAnd<rustc_middle[7e63d8cceb784d0e]::mir::interpret::GlobalId>, rustc_middle[7e63d8cceb784d0e]::query::erase::Erased<[u8; 24usize]>>>
  29:     0x7f289448a3e7 - rustc_const_eval[51909c9ef48db599]::const_eval::eval_to_valtree
  30:     0x7f289448a362 - <rustc_const_eval[51909c9ef48db599]::provide::{closure#0} as core[3198d8acc012de37]::ops::function::FnOnce<(rustc_middle[7e63d8cceb784d0e]::ty::context::TyCtxt, rustc_middle[7e63d8cceb784d0e]::ty::ParamEnvAnd<rustc_middle[7e63d8cceb784d0e]::mir::interpret::GlobalId>)>>::call_once
  31:     0x7f289448a336 - rustc_query_impl[123ba24cfbee05a3]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[123ba24cfbee05a3]::query_impl::eval_to_valtree::dynamic_query::{closure#2}::{closure#0}, rustc_middle[7e63d8cceb784d0e]::query::erase::Erased<[u8; 24usize]>>
  32:     0x7f289448a2ef - <rustc_query_impl[123ba24cfbee05a3]::query_impl::eval_to_valtree::dynamic_query::{closure#2} as core[3198d8acc012de37]::ops::function::FnOnce<(rustc_middle[7e63d8cceb784d0e]::ty::context::TyCtxt, rustc_middle[7e63d8cceb784d0e]::ty::ParamEnvAnd<rustc_middle[7e63d8cceb784d0e]::mir::interpret::GlobalId>)>>::call_once
  33:     0x7f28947b7d67 - rustc_query_system[c043c6b7422f834c]::query::plumbing::try_execute_query::<rustc_query_impl[123ba24cfbee05a3]::DynamicConfig<rustc_query_system[c043c6b7422f834c]::query::caches::DefaultCache<rustc_middle[7e63d8cceb784d0e]::ty::ParamEnvAnd<rustc_middle[7e63d8cceb784d0e]::mir::interpret::GlobalId>, rustc_middle[7e63d8cceb784d0e]::query::erase::Erased<[u8; 24usize]>>, false, false, false>, rustc_query_impl[123ba24cfbee05a3]::plumbing::QueryCtxt, false>
  34:     0x7f28947b7630 - rustc_query_impl[123ba24cfbee05a3]::query_impl::eval_to_valtree::get_query_non_incr::__rust_end_short_backtrace
  35:     0x7f28947b6ea8 - rustc_middle[7e63d8cceb784d0e]::query::plumbing::query_get_at::<rustc_query_system[c043c6b7422f834c]::query::caches::DefaultCache<rustc_middle[7e63d8cceb784d0e]::ty::ParamEnvAnd<rustc_middle[7e63d8cceb784d0e]::mir::interpret::GlobalId>, rustc_middle[7e63d8cceb784d0e]::query::erase::Erased<[u8; 24usize]>>>
  36:     0x7f28941c13a0 - <rustc_middle[7e63d8cceb784d0e]::ty::context::TyCtxt>::const_eval_resolve_for_typeck
  37:     0x7f2892a45e92 - <rustc_infer[c8d919f150ceb777]::infer::InferCtxt>::const_eval_resolve
  38:     0x7f289473955a - rustc_trait_selection[cf05ae63d4650815]::traits::const_evaluatable::is_const_evaluatable
  39:     0x7f2890a76e34 - <rustc_trait_selection[cf05ae63d4650815]::traits::fulfill::FulfillProcessor as rustc_data_structures[2b23c279f5a9a63c]::obligation_forest::ObligationProcessor>::process_obligation
  40:     0x7f2893a1507b - <rustc_data_structures[2b23c279f5a9a63c]::obligation_forest::ObligationForest<rustc_trait_selection[cf05ae63d4650815]::traits::fulfill::PendingPredicateObligation>>::process_obligations::<rustc_trait_selection[cf05ae63d4650815]::traits::fulfill::FulfillProcessor>
  41:     0x7f2894533ff9 - <rustc_hir_typeck[b859d96d8979696c]::fn_ctxt::FnCtxt>::check_argument_types
  42:     0x7f28943de028 - <rustc_hir_typeck[b859d96d8979696c]::fn_ctxt::FnCtxt>::check_call
  43:     0x7f28944bb6f0 - <rustc_hir_typeck[b859d96d8979696c]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  44:     0x7f2893fa4ae0 - <rustc_hir_typeck[b859d96d8979696c]::fn_ctxt::FnCtxt>::check_decl
  45:     0x7f2893fa26e2 - <rustc_hir_typeck[b859d96d8979696c]::fn_ctxt::FnCtxt>::check_block_with_expected
  46:     0x7f28944bbaff - <rustc_hir_typeck[b859d96d8979696c]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  47:     0x7f289405077d - rustc_hir_typeck[b859d96d8979696c]::check::check_fn
  48:     0x7f2893cd6556 - rustc_hir_typeck[b859d96d8979696c]::typeck
  49:     0x7f2893cd5909 - rustc_query_impl[123ba24cfbee05a3]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[123ba24cfbee05a3]::query_impl::typeck::dynamic_query::{closure#2}::{closure#0}, rustc_middle[7e63d8cceb784d0e]::query::erase::Erased<[u8; 8usize]>>
  50:     0x7f2893bf04f9 - rustc_query_system[c043c6b7422f834c]::query::plumbing::try_execute_query::<rustc_query_impl[123ba24cfbee05a3]::DynamicConfig<rustc_query_system[c043c6b7422f834c]::query::caches::VecCache<rustc_span[4446da8eb7a0bfab]::def_id::LocalDefId, rustc_middle[7e63d8cceb784d0e]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[123ba24cfbee05a3]::plumbing::QueryCtxt, false>
  51:     0x7f2893bf0190 - rustc_query_impl[123ba24cfbee05a3]::query_impl::typeck::get_query_non_incr::__rust_end_short_backtrace
  52:     0x7f2893befa14 - <rustc_middle[7e63d8cceb784d0e]::hir::map::Map>::par_body_owners::<rustc_hir_analysis[e479025b5d5dcfb6]::check_crate::{closure#6}>::{closure#0}
  53:     0x7f2893bee333 - rustc_hir_analysis[e479025b5d5dcfb6]::check_crate
  54:     0x7f2894649919 - rustc_interface[a2edae3cd6dbf972]::passes::analysis
  55:     0x7f289464955f - rustc_query_impl[123ba24cfbee05a3]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[123ba24cfbee05a3]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[7e63d8cceb784d0e]::query::erase::Erased<[u8; 1usize]>>
  56:     0x7f289499ace4 - rustc_query_system[c043c6b7422f834c]::query::plumbing::try_execute_query::<rustc_query_impl[123ba24cfbee05a3]::DynamicConfig<rustc_query_system[c043c6b7422f834c]::query::caches::SingleCache<rustc_middle[7e63d8cceb784d0e]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[123ba24cfbee05a3]::plumbing::QueryCtxt, false>
  57:     0x7f289499aad5 - rustc_query_impl[123ba24cfbee05a3]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
  58:     0x7f2894a2f2b5 - rustc_interface[a2edae3cd6dbf972]::interface::run_compiler::<core[3198d8acc012de37]::result::Result<(), rustc_span[4446da8eb7a0bfab]::ErrorGuaranteed>, rustc_driver_impl[d2c301b665c661c0]::run_compiler::{closure#0}>::{closure#0}
  59:     0x7f28949bf886 - std[6006d4e995217078]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[a2edae3cd6dbf972]::util::run_in_thread_with_globals<rustc_interface[a2edae3cd6dbf972]::util::run_in_thread_pool_with_globals<rustc_interface[a2edae3cd6dbf972]::interface::run_compiler<core[3198d8acc012de37]::result::Result<(), rustc_span[4446da8eb7a0bfab]::ErrorGuaranteed>, rustc_driver_impl[d2c301b665c661c0]::run_compiler::{closure#0}>::{closure#0}, core[3198d8acc012de37]::result::Result<(), rustc_span[4446da8eb7a0bfab]::ErrorGuaranteed>>::{closure#0}, core[3198d8acc012de37]::result::Result<(), rustc_span[4446da8eb7a0bfab]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[3198d8acc012de37]::result::Result<(), rustc_span[4446da8eb7a0bfab]::ErrorGuaranteed>>
  60:     0x7f28949bf6b3 - <<std[6006d4e995217078]::thread::Builder>::spawn_unchecked_<rustc_interface[a2edae3cd6dbf972]::util::run_in_thread_with_globals<rustc_interface[a2edae3cd6dbf972]::util::run_in_thread_pool_with_globals<rustc_interface[a2edae3cd6dbf972]::interface::run_compiler<core[3198d8acc012de37]::result::Result<(), rustc_span[4446da8eb7a0bfab]::ErrorGuaranteed>, rustc_driver_impl[d2c301b665c661c0]::run_compiler::{closure#0}>::{closure#0}, core[3198d8acc012de37]::result::Result<(), rustc_span[4446da8eb7a0bfab]::ErrorGuaranteed>>::{closure#0}, core[3198d8acc012de37]::result::Result<(), rustc_span[4446da8eb7a0bfab]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[3198d8acc012de37]::result::Result<(), rustc_span[4446da8eb7a0bfab]::ErrorGuaranteed>>::{closure#1} as core[3198d8acc012de37]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  61:     0x7f288f9999d5 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h5ce354fdf0c7f9b3
                               at /rustc/87e1430893d55001034bd76c5dbe832d80bc50c3/library/alloc/src/boxed.rs:2016:9
  62:     0x7f288f9999d5 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hb85fbf7e27da60df
                               at /rustc/87e1430893d55001034bd76c5dbe832d80bc50c3/library/alloc/src/boxed.rs:2016:9
  63:     0x7f288f9999d5 - std::sys::unix::thread::Thread::new::thread_start::h62fdb86990446cb0
                               at /rustc/87e1430893d55001034bd76c5dbe832d80bc50c3/library/std/src/sys/unix/thread.rs:108:17
  64:     0x7f288f7859eb - <unknown>
  65:     0x7f288f8097cc - <unknown>
  66:                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: rustc 1.77.0-nightly (87e143089 2024-01-07) running on x86_64-unknown-linux-gnu

query stack during panic:
#0 [eval_to_allocation_raw] const-evaluating + checking `process::{constant#0}`
#1 [eval_to_valtree] evaluating type-level constant
#2 [typeck] type-checking `main`
#3 [analysis] running analysis passes on this crate
end of query stack
error: aborting due to 2 previous errors; 1 warning emitted

Some errors have detailed explanations: E0053, E0425.
For more information about an error, try `rustc --explain E0053`.

@matthiaskrgr matthiaskrgr added I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. C-bug Category: This is a bug. F-const_trait_impl `#![feature(const_trait_impl)]` F-generic_const_exprs `#![feature(generic_const_exprs)]` F-effects `#![feature(effects)]` labels Jan 7, 2024
@rustbot rustbot added the needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. label Jan 7, 2024
@fmease fmease removed the needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. label Jan 7, 2024
@matthiaskrgr
Copy link
Member Author

Hmm this bisects back to nightly-2022-08-23 when effects werent a thing lol

commit[0] 2022-08-21: Auto merge of #100847 - matthiaskrgr:rollup-0ga531s, r=matthiaskrgr
commit[1] 2022-08-21: Auto merge of #100654 - compiler-errors:rework-point-at-arg, r=estebank
commit[2] 2022-08-22: Auto merge of #100668 - nnethercote:use-AttrVec-more, r=spastorino
commit[3] 2022-08-22: Auto merge of #100671 - Xiretza:tidy-fluent-files, r=davidtwco
commit[4] 2022-08-22: Auto merge of #100676 - lcnr:implied-bounds-yay, r=nikomatsakis
commit[5] 2022-08-22: Auto merge of #100868 - Dylan-DPC:rollup-a1hfi1r, r=Dylan-DPC
commit[6] 2022-08-22: Auto merge of #99702 - SparrowLii:transtive_relation, r=oli-obk
commit[7] 2022-08-22: Auto merge of #99908 - Nilstrieb:mir-opt-span, r=oli-obk
commit[8] 2022-08-22: Auto merge of #100881 - Dylan-DPC:rollup-q9rr658, r=Dylan-DPC
commit[9] 2022-08-22: Auto merge of #99762 - Nilstrieb:unreachable-prop, r=oli-obk
ERROR: no CI builds available between c0941df and 015a824 within last 167 days

@Noratrieb
Copy link
Member

Noratrieb commented Jan 7, 2024

That is quite a nightly feature list

I don't think anyone expects this to work, two highly experimental and known to be broken features together. You shouldn't report issues like this, it doesn't really help as we know that both these features are incomplete, so we don't expect them to work well with each other. Especially generic_const_exprs is not worth fuzzing today and there isn't any insight gained from new issues involving it - it is known that it's broken and it's also generally known why and how this manifests (I feel like I've told you that before about generic_const_exprs, but I'm not sure, maybe it was someone else).

@matthiaskrgr
Copy link
Member Author

I have removed the const_trait_impl featuregate since its not needed to trigger the ice :)

@matthiaskrgr matthiaskrgr removed the F-const_trait_impl `#![feature(const_trait_impl)]` label Jan 7, 2024
@fmease
Copy link
Member

fmease commented Jan 8, 2024

cc'ing #118778 even though they're distinct issues because they share some similarities, mainly E0053: incompatible type for trait. Seems like we should either be more conservative (e.g., raise a fatal error) or smarter (e.g., continue typeck'ung with the (adjusted) signature from the trait not the one from the impl1) if compare_impl_item fails

Footnotes

  1. That might be a very bad idea though lol

@matthiaskrgr matthiaskrgr added the S-bug-has-test Status: This bug is tracked inside the repo by a `known-bug` test. label Apr 15, 2024
@workingjubilee workingjubilee added the requires-incomplete-features This issue requires the use of incomplete features. label Jun 6, 2024
@fmease fmease added F-const_trait_impl `#![feature(const_trait_impl)]` and removed F-effects `#![feature(effects)]` labels Nov 15, 2024
bors added a commit to rust-lang-ci/rust that referenced this issue Nov 26, 2024
…=lcnr

Make `compare_impl_item` into a query

Turns `compare_impl_item` into a query (generalizing the existing query for `compare_impl_const`), and uses that in `Instance::resolve` to fail resolution when an implementation is incompatible with the trait it comes from.

Fixes rust-lang#119701
Fixes rust-lang#121127
Fixes rust-lang#121411
Fixes rust-lang#129075
Fixes rust-lang#129127
Fixes rust-lang#129214
Fixes rust-lang#131294
bors added a commit to rust-lang-ci/rust that referenced this issue Nov 27, 2024
…=lcnr

Make `compare_impl_item` into a query

Turns `compare_impl_item` into a query (generalizing the existing query for `compare_impl_const`), and uses that in `Instance::resolve` to fail resolution when an implementation is incompatible with the trait it comes from.

Fixes rust-lang#119701
Fixes rust-lang#121127
Fixes rust-lang#121411
Fixes rust-lang#129075
Fixes rust-lang#129127
Fixes rust-lang#129214
Fixes rust-lang#131294
@bors bors closed this as completed in 4af7fa7 Dec 1, 2024
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. F-const_trait_impl `#![feature(const_trait_impl)]` F-generic_const_exprs `#![feature(generic_const_exprs)]` I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ requires-incomplete-features This issue requires the use of incomplete features. S-bug-has-test Status: This bug is tracked inside the repo by a `known-bug` test. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants