Skip to content

thread 'rustc' panicked at 'index out of bounds: the len is 0 but the index is 0' #89868

@dwrensha

Description

@dwrensha

rustc crashes on the following input, found by fuzz_rustc:

struct A<B>(B);
impl<B>A<B>{fn d(){fn d(){Self(1)}}}
$ rustc main.rs
error[E0601]: `main` function not found in crate `main`
 --> main.rs:1:1
  |
1 | / struct A<B>(B);
2 | | impl<B>A<B>{fn d(){fn d(){Self(1)}}}
  | |____________________________________^ consider adding a `main` function to `main.rs`

error[E0277]: the size for values of type `B` cannot be known at compilation time
 --> main.rs:2:27
  |
2 | impl<B>A<B>{fn d(){fn d(){Self(1)}}}
  |      -                    ^^^^ doesn't have a size known at compile-time
  |      |
  |      this type parameter needs to be `std::marker::Sized`
  |
note: required by `A`
 --> main.rs:1:1
  |
1 | struct A<B>(B);
  | ^^^^^^^^^^^^^^^

thread 'rustc' panicked at 'index out of bounds: the len is 0 but the index is 0', compiler/rustc_middle/src/ty/generics.rs:164:14
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

error: internal compiler error: unexpected panic

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

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

note: rustc 1.57.0-nightly (d7c97a02d 2021-10-12) running on x86_64-unknown-linux-gnu

query stack during panic:
#0 [typeck] type-checking `<impl at main.rs:2:1: 2:37>::d::d`
#1 [typeck_item_bodies] type-checking all item bodies
end of query stack
error: aborting due to 2 previous errors

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: This is a bug.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.glacierICE tracked in rust-lang/glacier.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions