rust-lang / rust-lang/rust

Hang in custom Vec

Offen
#148,653 6 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

C-bug fixed-by-next-solver I-hang needs-triage S-has-mcve T-types
Vorherrschende Sprache
Rust
Sterne
119k
Forks
16.1k
PR-Merge-Kennzahlen
PR-Kennzahlen ausstehend

Beschreibung

I tried this code:

struct Array<T> {
    data: Vec<T>
}
fn sum_arrays<T>(first: Array<T>) -> Array<T> {
    let mut result = Array {data: first.data.clone()};
    result.data.push(8);
    result
}
struct Vec<T> {data: Vec<T> }
impl<T> Vec<T> {
    pub fn push(mut self: &mut Self, object: &T) -> &mut Self {
        self
    }
}

Command: timeout 30s rustc file.rs

It did not finish within 30 seconds.

Meta

rustc --version --verbose:

rustc 1.93.0-nightly (c90bcb957 2025-11-06)
binary: rustc
commit-hash: c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38
commit-date: 2025-11-06
host: aarch64-apple-darwin
release: 1.93.0-nightly
LLVM version: 21.1.3
Backtrace

<no backtrace>

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Reproduziere zunächst den Hänger mit dem bereitgestellten Code und timeout 30s rustc file.rs, wobei du die gemeldeten Details zur nightly toolchain als Kontext verwendest. Untersuche das Compilerverhalten, das durch die benutzerdefinierte Signatur von Vec<T>::push ausgelöst wird, und bestätige, dass die Kompilierung des Minimalprogramms abgeschlossen wird; behalte das Beispiel als Regressionstestfall bei, falls die Compiler-Tests des Projekts einen geeigneten Ort dafür bieten.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
rust
Bereich
compilers
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.