L'errore E0133 garantisce la separazione tra codice safe e codice a basso livello: qualsiasi invocazione di funzioni o manipolazione di raw pointer richiede il racchiudimento in un blocco 'unsafe { ... }'.
E0133
→
Tentativo di passare o restituire per valore un trait object dinamico ('dyn Trait') o uno slice non avvolto in un puntatore come 'Box<dyn Trait>' o '&dyn Trait', la cui dimensione esatta non è nota a compile-time.
E0161
→
Due istruzioni 'use' o dichiarazioni importano o definiscono lo stesso identificatore nello stesso modulo; si risolve rinominando l'importazione con la parola chiave 'as' ('use crate_a::Item as ItemA;').
E0252
→
Un parametro di lifetime (es. ''a') viene utilizzato nel corpo o nei tipi della funzione senza essere stato preliminarmente dichiarato tra i parametri generici della firma ('fn foo<'a>(x: &'a str)').
E0261
→
L'errore E0271 compare quando un'implementazione di un trait genera un tipo associato (es. 'Item' in un Iterator) incompatibile con la firma attesa dal chiamante generico.
E0271
→
L'errore E0277 segnala che il tipo passato a una funzione generica o struttura non soddisfa i vincoli imposti dai trait (come Display, Clone, Debug o Serialize), richiedendo l'implementazione esplicita del trait o l'uso di #[derive].
E0277
→
L'errore E0282 segnala che il motore di type inference di rustc non ha sufficienti elementi contestuali per stabilire il tipo concreto (es. in 'let x = collect();'), richiedendo la sintassi turbofish 'collect::<Vec<_>>()' o la specificazione esplicita.
E0282
→
Il compilatore rileva due o più trait o metodi applicabili all'espressione con pari precedenza, richiedendo l'uso della sintassi di disambiguazione 'Trait::method(&val)'.
E0283
→