Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

index out of bounds #117446

Closed
enricozb opened this issue Oct 31, 2023 · 4 comments · Fixed by #132523
Closed

index out of bounds #117446

enricozb opened this issue Oct 31, 2023 · 4 comments · Fixed by #132523
Labels
A-trait-system Area: Trait system C-bug Category: This is a bug. E-needs-test Call for participation: An issue has been fixed and does not reproduce, but no test has been 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.

Comments

@enricozb
Copy link

enricozb commented Oct 31, 2023

Code

use std::path::Path;

use anyhow::{Context, Result};
use serde::{
  de::{DeserializeOwned, Deserializer, Error},
  Deserialize,
};
use serde_json::{value::RawValue as RawJson, Value as Json};

#[derive(Debug)]
pub struct Repeated<T>(Vec<T>);

impl<T> Default for Repeated<T> {
  fn default() -> Self {
    Self(Vec::new())
  }
}

impl<'de, T> Deserialize<'de> for Repeated<T>
where
  T: DeserializeOwned,
{
  fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
  where
    D: Deserializer<'de>,
  {
    fn try_deserialize<Q: DeserializeOwned>(json: Json) -> Result<Repeated<Q>> {
      match json {
        array @ Json::Array(_) => Ok(Self(serde_json::from_value(array).context("from array")?)),
        value => Ok(Self(vec![serde_json::from_value(value).context("from value")?])),
      }
    }
  }
}

Meta

rustc --version --verbose:

note: rustc 1.72.0 (5680fa18f 2023-08-23) (built from a source tarball) running on x86_64-unknown-linux-gnu

note: compiler flags: --crate-type bin -C opt-level=3 -C embed-bitcode=no

Error output

   Compiling tm_parser v0.1.0 (/home/enricozb/projects/work/freelance/taqtile/repos/tm_parser)
error[E0425]: cannot find value `raw` in this scope
  --> src/xml/de.rs:61:8
   |
61 |     if raw.get().starts_with('[') {
   |        ^^^ not found in this scope

error[E0425]: cannot find value `raw` in this scope
  --> src/xml/de.rs:62:47
   |
62 |       let many: Vec<T> = serde_json::from_str(raw.get()).map_err(D::Error::custom)?;
   |                                               ^^^ not found in this scope

error[E0425]: cannot find value `raw` in this scope
  --> src/xml/de.rs:66:41
   |
66 |       let one: T = serde_json::from_str(raw.get()).map_err(D::Error::custom)?;
   |                                         ^^^ not found in this scope

warning: unused import: `value::RawValue as RawJson`
 --> src/xml/de.rs:8:18
  |
8 | use serde_json::{value::RawValue as RawJson, Value as Json};
  |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
  |
  = note: `#[warn(unused_imports)]` on by default

error[E0277]: the size for values of type `T` cannot be known at compilation time
  --> src/xml/de.rs:53:43
   |
51 | ...lize<T: DeserializeOwned>(json: Json) -> Result<Repeated<T>> {
   |         - this type parameter needs to be `Sized`
52 | ...
53 | ...on::Array(_) => Ok(Self(serde_json::from_value(array).context("from array")?)),
   |                       ---- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
   |                       |
   |                       required by a bound introduced by this call
   |
note: required by a bound in `Repeated`
  --> src/xml/de.rs:35:21
   |
35 | pub struct Repeated<T>(Vec<T>);
   |                     ^ required by this bound in `Repeated`

error[E0277]: the size for values of type `T` cannot be known at compilation time
  --> src/xml/de.rs:53:43
   |
51 | ...lize<T: DeserializeOwned>(json: Json) -> Result<Repeated<T>> {
   |         - this type parameter needs to be `Sized`
52 | ...
53 | ...on::Array(_) => Ok(Self(serde_json::from_value(array).context("from array")?)),
   |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
   |
note: required by a bound in `Vec`
  --> /build/rustc-1.72.0-src/library/alloc/src/vec/mod.rs:396:1

error[E0277]: the trait bound `T: Deserialize<'_>` is not satisfied
    --> src/xml/de.rs:53:43
     |
53   | ...lf(serde_json::from_value(array).context("from array")?)),
     |       ^^^^^^^^^^^^^^^^^^^^^^ the trait `Deserialize<'_>` is not implemented for `T`
     |
     = note: required for `Vec<T>` to implement `for<'de> Deserialize<'de>`
     = note: required for `Vec<T>` to implement `DeserializeOwned`
note: required by a bound in `from_value`
    --> /home/enricozb/.cargo/registry/src/index.crates.io-6f17d22bba15001f/serde_json-1.0.107/src/value/mod.rs:1005:8
     |
1003 | pub fn from_value<T>(value: Value) -> Result<T, Error>
     |        ---------- required by a bound in this function
1004 | where
1005 |     T: DeserializeOwned,
     |        ^^^^^^^^^^^^^^^^ required by this bound in `from_value`
help: consider further restricting this bound
     |
51   |     fn try_deserialize<T: DeserializeOwned + tm::configuration::_::_serde::Deserialize<'_>>(json: Json) -> Result<Repeated<T>> {
     |                                            +++++++++++++++++++++++++++++++++++++++++++++++

error[E0277]: the size for values of type `T` cannot be known at compilation time
  --> src/xml/de.rs:53:38
   |
51 | ...lize<T: DeserializeOwned>(json: Json) -> Result<Repeated<T>> {
   |         - this type parameter needs to be `Sized`
52 | ...
53 | ...on::Array(_) => Ok(Self(serde_json::from_value(array).context("from array")?)),
   |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
   |
note: required by a bound in `Repeated`
  --> src/xml/de.rs:35:21
   |
35 | pub struct Repeated<T>(Vec<T>);
   |                     ^ required by this bound in `Repeated`
help: consider relaxing the implicit `Sized` restriction
   |
35 | pub struct Repeated<T: ?Sized>(Vec<T>);
   |                      ++++++++

thread 'rustc' panicked at 'index out of bounds: the len is 1 but the index is 1', compiler/rustc_middle/src/ty/generics.rs:227:14
stack backtrace:
   0:     0x7fdbb52f52d0 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hf014552b94f53b0b
   1:     0x7fdbb536411f - core::fmt::write::hd931ce1f65786f99
   2:     0x7fdbb52e7bc7 - std::io::Write::write_fmt::h6a6fd63a04e82ec7
   3:     0x7fdbb52f50d5 - std::sys_common::backtrace::print::h1e42468794e7b82c
   4:     0x7fdbb52c9541 - std::panicking::default_hook::{{closure}}::hbe45423b43205803
   5:     0x7fdbb52c91df - std::panicking::default_hook::h84640917dec96f40
   6:     0x7fdbb5bb99db - rustc_driver_impl[69ef954635c7c183]::install_ice_hook::{closure#0}
   7:     0x7fdbb52c9dc7 - std::panicking::rust_panic_with_hook::h3f828bf7de94854a
   8:     0x7fdbb52f55b7 - std::panicking::begin_panic_handler::{{closure}}::h1494d1b7b833ecd5
   9:     0x7fdbb52f53a6 - std::sys_common::backtrace::__rust_end_short_backtrace::hfb56cb4321fb1fc8
  10:     0x7fdbb52c9962 - rust_begin_unwind
  11:     0x7fdbb52a7653 - core::panicking::panic_fmt::h69ad0a157a771ebb
  12:     0x7fdbb52a77b2 - core::panicking::panic_bounds_check::haf877c0a3aa25dfb
  13:     0x7fdbb8009682 - <rustc_middle[512860564a6950dc]::ty::generics::Generics>::type_param
  14:     0x7fdbb7ea5777 - <rustc_infer[156f5b8e595d5b36]::infer::error_reporting::TypeErrCtxt>::note_and_explain_type_err
  15:     0x7fdbb7ec2eaa - <rustc_infer[156f5b8e595d5b36]::infer::error_reporting::TypeErrCtxt>::note_type_err
  16:     0x7fdbb7eb5db7 - <rustc_infer[156f5b8e595d5b36]::infer::error_reporting::TypeErrCtxt>::report_and_explain_type_error
  17:     0x7fdbb6021f13 - <rustc_hir_typeck[d63c1205cb23e616]::fn_ctxt::FnCtxt>::report_arg_errors
  18:     0x7fdbb601e16a - <rustc_hir_typeck[d63c1205cb23e616]::fn_ctxt::FnCtxt>::check_argument_types
  19:     0x7fdbb5fef3b3 - <rustc_hir_typeck[d63c1205cb23e616]::fn_ctxt::FnCtxt>::confirm_builtin_call
  20:     0x7fdbb5fee485 - <rustc_hir_typeck[d63c1205cb23e616]::fn_ctxt::FnCtxt>::check_call
  21:     0x7fdbb6064e8e - <rustc_hir_typeck[d63c1205cb23e616]::fn_ctxt::FnCtxt>::check_expr_kind
  22:     0x7fdbb60043e3 - <rustc_hir_typeck[d63c1205cb23e616]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  23:     0x7fdbb605f467 - <rustc_hir_typeck[d63c1205cb23e616]::fn_ctxt::FnCtxt>::check_match
  24:     0x7fdbb6064b31 - <rustc_hir_typeck[d63c1205cb23e616]::fn_ctxt::FnCtxt>::check_expr_kind
  25:     0x7fdbb60043e3 - <rustc_hir_typeck[d63c1205cb23e616]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  26:     0x7fdbb60255d1 - <rustc_hir_typeck[d63c1205cb23e616]::fn_ctxt::FnCtxt>::check_block_with_expected
  27:     0x7fdbb6064afa - <rustc_hir_typeck[d63c1205cb23e616]::fn_ctxt::FnCtxt>::check_expr_kind
  28:     0x7fdbb60043e3 - <rustc_hir_typeck[d63c1205cb23e616]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  29:     0x7fdbb6005838 - <rustc_hir_typeck[d63c1205cb23e616]::fn_ctxt::FnCtxt>::check_return_expr
  30:     0x7fdbb619643d - rustc_hir_typeck[d63c1205cb23e616]::check::check_fn
  31:     0x7fdbb60fc789 - rustc_hir_typeck[d63c1205cb23e616]::typeck
  32:     0x7fdbb707af0c - rustc_query_impl[d023734ba8619ee7]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[d023734ba8619ee7]::query_impl::typeck::dynamic_query::{closure#2}::{closure#0}, rustc_middle[512860564a6950dc]::query::erase::Erased<[u8; 8usize]>>
  33:     0x7fdbb703c9fc - <rustc_query_impl[d023734ba8619ee7]::query_impl::typeck::dynamic_query::{closure#2} as core[5a83ea98d6738c29]::ops::function::FnOnce<(rustc_middle[512860564a6950dc]::ty::context::TyCtxt, rustc_span[1541297d26e31dcb]::def_id::LocalDefId)>>::call_once
  34:     0x7fdbb7295d03 - rustc_query_system[eeadaf18cb45039c]::query::plumbing::try_execute_query::<rustc_query_impl[d023734ba8619ee7]::DynamicConfig<rustc_query_system[eeadaf18cb45039c]::query::caches::VecCache<rustc_span[1541297d26e31dcb]::def_id::LocalDefId, rustc_middle[512860564a6950dc]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[d023734ba8619ee7]::plumbing::QueryCtxt, false>
  35:     0x7fdbb7167d07 - rustc_query_impl[d023734ba8619ee7]::query_impl::typeck::get_query_non_incr::__rust_end_short_backtrace
  36:     0x7fdbb60fc075 - rustc_hir_typeck[d63c1205cb23e616]::used_trait_imports
  37:     0x7fdbb7078cbc - rustc_query_impl[d023734ba8619ee7]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[d023734ba8619ee7]::query_impl::used_trait_imports::dynamic_query::{closure#2}::{closure#0}, rustc_middle[512860564a6950dc]::query::erase::Erased<[u8; 8usize]>>
  38:     0x7fdbb71f04dc - <rustc_query_impl[d023734ba8619ee7]::query_impl::used_trait_imports::dynamic_query::{closure#2} as core[5a83ea98d6738c29]::ops::function::FnOnce<(rustc_middle[512860564a6950dc]::ty::context::TyCtxt, rustc_span[1541297d26e31dcb]::def_id::LocalDefId)>>::call_once
  39:     0x7fdbb7295d03 - rustc_query_system[eeadaf18cb45039c]::query::plumbing::try_execute_query::<rustc_query_impl[d023734ba8619ee7]::DynamicConfig<rustc_query_system[eeadaf18cb45039c]::query::caches::VecCache<rustc_span[1541297d26e31dcb]::def_id::LocalDefId, rustc_middle[512860564a6950dc]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[d023734ba8619ee7]::plumbing::QueryCtxt, false>
  40:     0x7fdbb71faa07 - rustc_query_impl[d023734ba8619ee7]::query_impl::used_trait_imports::get_query_non_incr::__rust_end_short_backtrace
  41:     0x7fdbb6377da9 - rustc_hir_analysis[8376801970c74138]::check_unused::check_crate
  42:     0x7fdbb6310a49 - rustc_hir_analysis[8376801970c74138]::check_crate
  43:     0x7fdbb5dcac31 - rustc_interface[8db0663d394672f7]::passes::analysis
  44:     0x7fdbb707af7a - rustc_query_impl[d023734ba8619ee7]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[d023734ba8619ee7]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[512860564a6950dc]::query::erase::Erased<[u8; 1usize]>>
  45:     0x7fdbb7160478 - <rustc_query_impl[d023734ba8619ee7]::query_impl::analysis::dynamic_query::{closure#2} as core[5a83ea98d6738c29]::ops::function::FnOnce<(rustc_middle[512860564a6950dc]::ty::context::TyCtxt, ())>>::call_once
  46:     0x7fdbb7228733 - rustc_query_system[eeadaf18cb45039c]::query::plumbing::try_execute_query::<rustc_query_impl[d023734ba8619ee7]::DynamicConfig<rustc_query_system[eeadaf18cb45039c]::query::caches::SingleCache<rustc_middle[512860564a6950dc]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[d023734ba8619ee7]::plumbing::QueryCtxt, false>
  47:     0x7fdbb71f5563 - rustc_query_impl[d023734ba8619ee7]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
  48:     0x7fdbb5c1652a - <rustc_interface[8db0663d394672f7]::queries::QueryResult<&rustc_middle[512860564a6950dc]::ty::context::GlobalCtxt>>::enter::<core[5a83ea98d6738c29]::result::Result<(), rustc_span[1541297d26e31dcb]::ErrorGuaranteed>, rustc_driver_impl[69ef954635c7c183]::run_compiler::{closure#1}::{closure#2}::{closure#4}>
  49:     0x7fdbb5bbb565 - <rustc_interface[8db0663d394672f7]::interface::Compiler>::enter::<rustc_driver_impl[69ef954635c7c183]::run_compiler::{closure#1}::{closure#2}, core[5a83ea98d6738c29]::result::Result<core[5a83ea98d6738c29]::option::Option<rustc_interface[8db0663d394672f7]::queries::Linker>, rustc_span[1541297d26e31dcb]::ErrorGuaranteed>>
  50:     0x7fdbb5c05a51 - <scoped_tls[e78294f23860c3f5]::ScopedKey<rustc_span[1541297d26e31dcb]::SessionGlobals>>::set::<rustc_interface[8db0663d394672f7]::interface::run_compiler<core[5a83ea98d6738c29]::result::Result<(), rustc_span[1541297d26e31dcb]::ErrorGuaranteed>, rustc_driver_impl[69ef954635c7c183]::run_compiler::{closure#1}>::{closure#0}, core[5a83ea98d6738c29]::result::Result<(), rustc_span[1541297d26e31dcb]::ErrorGuaranteed>>
  51:     0x7fdbb5bdb999 - std[21ad8caf9e5027b5]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[8db0663d394672f7]::util::run_in_thread_pool_with_globals<rustc_interface[8db0663d394672f7]::interface::run_compiler<core[5a83ea98d6738c29]::result::Result<(), rustc_span[1541297d26e31dcb]::ErrorGuaranteed>, rustc_driver_impl[69ef954635c7c183]::run_compiler::{closure#1}>::{closure#0}, core[5a83ea98d6738c29]::result::Result<(), rustc_span[1541297d26e31dcb]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[5a83ea98d6738c29]::result::Result<(), rustc_span[1541297d26e31dcb]::ErrorGuaranteed>>
  52:     0x7fdbb5c0fc81 - <<std[21ad8caf9e5027b5]::thread::Builder>::spawn_unchecked_<rustc_interface[8db0663d394672f7]::util::run_in_thread_pool_with_globals<rustc_interface[8db0663d394672f7]::interface::run_compiler<core[5a83ea98d6738c29]::result::Result<(), rustc_span[1541297d26e31dcb]::ErrorGuaranteed>, rustc_driver_impl[69ef954635c7c183]::run_compiler::{closure#1}>::{closure#0}, core[5a83ea98d6738c29]::result::Result<(), rustc_span[1541297d26e31dcb]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[5a83ea98d6738c29]::result::Result<(), rustc_span[1541297d26e31dcb]::ErrorGuaranteed>>::{closure#1} as core[5a83ea98d6738c29]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  53:     0x7fdbb52bc175 - std::sys::unix::thread::Thread::new::thread_start::hbe812d50dfbae5d3
  54:     0x7fdbb50d1dd4 - start_thread
  55:     0x7fdbb51539b0 - __clone3
  56:                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.72.0 (5680fa18f 2023-08-23) (built from a source tarball) running on x86_64-unknown-linux-gnu

note: compiler flags: --crate-type bin -C opt-level=3 -C embed-bitcode=no

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

query stack during panic:
#0 [typeck] type-checking `xml::de::<impl at src/xml/de.rs:43:1: 43:46>::deserialize::try_deserialize`
#1 [used_trait_imports] finding used_trait_imports `xml::de::<impl at src/xml/de.rs:43:1: 43:46>::deserialize::try_deserialize`
#2 [analysis] running analysis passes on this crate
end of query stack
Some errors have detailed explanations: E0277, E0425.
For more information about an error, try `rustc --explain E0277`.
warning: `tm_parser` (bin "tm_parser") generated 1 warning
error: could not compile `tm_parser` (bin "tm_parser") due to 7 previous errors; 1 warning emitted
Backtrace

<backtrace>

@enricozb enricozb added C-bug Category: This is a bug. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Oct 31, 2023
@rustbot rustbot added the needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. label Oct 31, 2023
@enricozb
Copy link
Author

enricozb commented Oct 31, 2023

This may have to do with the fact that I'm using Self here inside that try_deserialize, even though I don't think that Self has any meaning there.

@saethlin saethlin removed the needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. label Oct 31, 2023
@Jules-Bertholet
Copy link
Contributor

Jules-Bertholet commented Oct 31, 2023

Seems fixed in latest nightly: https://play.rust-lang.org/?version=nightly&mode=debug&edition=2021&gist=2c53fe13f6a5780becd70ca9bf7c0047

(Though the error messages seem suspicious still…)

@rustbot label A-traits

@rustbot rustbot added the A-trait-system Area: Trait system label Oct 31, 2023
@ranger-ross
Copy link
Contributor

Appears to be fixed in Rust 1.75 and newer.
I think this issue is good to be closed

@workingjubilee workingjubilee added the E-needs-test Call for participation: An issue has been fixed and does not reproduce, but no test has been added. label Oct 19, 2024
@workingjubilee
Copy link
Member

Since this is a specific ICE, if we don't know if this landed with a regression test, then it should.

@fmease fmease linked a pull request Nov 2, 2024 that will close this issue
GuillaumeGomez added a commit to GuillaumeGomez/rust that referenced this issue Nov 2, 2024
…ompiler-errors

Added regression test for generics index out of bounds

Added a regression test for  rust-lang#117446
This ICE was fixed in Rust 1.75 but a regression test was never added.

This PR adds a UI test with a reduced version of the original bug report that does not rely on external crates.
GuillaumeGomez added a commit to GuillaumeGomez/rust that referenced this issue Nov 2, 2024
…ompiler-errors

Added regression test for generics index out of bounds

Added a regression test for  rust-lang#117446
This ICE was fixed in Rust 1.75 but a regression test was never added.

This PR adds a UI test with a reduced version of the original bug report that does not rely on external crates.
workingjubilee added a commit to workingjubilee/rustc that referenced this issue Nov 2, 2024
…ompiler-errors

Added regression test for generics index out of bounds

Added a regression test for  rust-lang#117446
This ICE was fixed in Rust 1.75 but a regression test was never added.

This PR adds a UI test with a reduced version of the original bug report that does not rely on external crates.
workingjubilee added a commit to workingjubilee/rustc that referenced this issue Nov 3, 2024
…ompiler-errors

Added regression test for generics index out of bounds

Added a regression test for  rust-lang#117446
This ICE was fixed in Rust 1.75 but a regression test was never added.

This PR adds a UI test with a reduced version of the original bug report that does not rely on external crates.
workingjubilee added a commit to workingjubilee/rustc that referenced this issue Nov 3, 2024
…ompiler-errors

Added regression test for generics index out of bounds

Added a regression test for  rust-lang#117446
This ICE was fixed in Rust 1.75 but a regression test was never added.

This PR adds a UI test with a reduced version of the original bug report that does not rely on external crates.
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this issue Nov 3, 2024
…ompiler-errors

Added regression test for generics index out of bounds

Added a regression test for  rust-lang#117446
This ICE was fixed in Rust 1.75 but a regression test was never added.

This PR adds a UI test with a reduced version of the original bug report that does not rely on external crates.
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this issue Nov 3, 2024
…ompiler-errors

Added regression test for generics index out of bounds

Added a regression test for  rust-lang#117446
This ICE was fixed in Rust 1.75 but a regression test was never added.

This PR adds a UI test with a reduced version of the original bug report that does not rely on external crates.
rust-timer added a commit to rust-lang-ci/rust that referenced this issue Nov 3, 2024
Rollup merge of rust-lang#132523 - ranger-ross:test-issue-117446, r=compiler-errors

Added regression test for generics index out of bounds

Added a regression test for  rust-lang#117446
This ICE was fixed in Rust 1.75 but a regression test was never added.

This PR adds a UI test with a reduced version of the original bug report that does not rely on external crates.
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
A-trait-system Area: Trait system C-bug Category: This is a bug. E-needs-test Call for participation: An issue has been fixed and does not reproduce, but no test has been 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.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants