Compound assignment desugaring doesn't take into account autoderef
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 45/100
- Tipo di issue
- Documentazione
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- rust
- Ambito
- documentation
Direzione di ricerca
Inizia con la sezione sulle assegnazioni composte collegata in Rust Reference e confronta la desugarizzazione indicata con l’esempio di autoderef fornito. Verifica il comportamento usando l’esempio, quindi aggiorna il testo di riferimento in modo che distingua accuratamente += da una chiamata al metodo .add_assign; il lavoro è completato quando la documentazione non implica più un comportamento di autoderef equivalente.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
In the reference, compound assignment expressions with non-primitive operands are described as being desugared into method calls. That is, x += y is turned into x.add_assign(y).
This desugaring is incorrect. The += form does not do autoderef, while the .add_assign form does autoderef. For example:
use std::ops::AddAssign;
fn foo<T: AddAssign<U>, U>(x: &mut &mut T, y: U) {
// This compiles
x.add_assign(y);
// This doesn't compile
x += y;
}
- Lingua principale
- Rust
- Stelle
- 1.6k
- Fork
- 611
- Merge medio
- 1g 3h
- PR unite (30g)
- 9
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di rust-lang/reference
-
A-const-eval A-undefined-behavior
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
rust-lang/reference#2266 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
A-resolve
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno
-
A-coercions
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
rust-lang/reference#2094 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di rust-lang/reference
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
NuSkooler/enigma-bbs#907 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
EasyTier/EasyTier#2672 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
XmlFragment children, successors and siblings stop at the first child that is not an XML typeAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
bug good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
repowise-dev/repowise#3374 ·
I maintainer di solito rispondono entro 1 giorno