Hang in custom Vec
Dieses Issue hat noch niemand übernommen.
- 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
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Ö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