E0308E0308 — Mismatched types
Le type attendu ne correspond pas au type effectivement fourni.
Parcourez les 80 codes d'erreur Erreurs du compilateur Rust avec causes, solutions et exemples.
E0308Le type attendu ne correspond pas au type effectivement fourni.
E0382Une valeur est utilisée après avoir été déplacée vers une autre variable ou fonction.
E0502Une valeur ne peut pas être empruntée de manière mutable tant qu'un emprunt immuable est encore actif.
E0597Une référence survit aux données qu'elle pointe.
E0277Un type n'implémente pas un trait requis.
E0599La méthode n'existe pas sur le type donné, ou le trait requis n'est pas importé dans la portée.
E0425Un identifiant est utilisé mais n'est pas défini dans la portée actuelle.
E0433Le chemin de module utilisé dans une instruction use ou un chemin de type ne peut pas être résolu.
E0106Une référence dans une signature de fonction ou une structure n'a pas de paramètre de durée de vie.
E0015Une fonction non const est appelée dans un contexte d'expression constante.
E0658Une fonctionnalité qui n'est pas encore stabilisée dans Rust est utilisée sans la directive de feature gate.
E0609La structure ou l'union n'a pas de champ portant le nom donné.
E0614L'opérateur de déréférencement (*) est utilisé sur un type qui n'implémente pas Deref.
E0499Une valeur est empruntée de manière mutable plus d'une fois en même temps.
E0503Une valeur ne peut pas être utilisée tant qu'elle est empruntée de manière mutable par une autre variable.
E0505Une valeur est déplacée alors qu'elle est encore empruntée par une référence.
E0507Vous tentez de déplacer une valeur hors d'une référence, ce qui laisserait la référence pendante.
E0515Une fonction tente de renvoyer une référence vers une valeur créée à l'intérieur de la fonction.
E0432Le module ou l'élément référencé dans une instruction use est introuvable.
E0412Un nom de type est utilisé mais n'est pas défini ou importé dans la portée actuelle.
E0423Un nom de type est utilisé là où une valeur était attendue.
E0424Le mot-clé self est utilisé en dehors du contexte d'une méthode ou d'une fonction associée.
E0369Un opérateur binaire est utilisé avec des types qui ne le prennent pas en charge.
E0384Une variable est réassignée mais n'a pas été déclarée comme mutable.
E0061Une fonction a été appelée avec un nombre d'arguments incorrect.
E0063Une struct est construite sans tous les champs requis.
E0107Un type ou une fonction générique est utilisé avec un nombre incorrect de paramètres de type.
E0117Vous implémentez un trait étranger pour un type étranger, ce qui viole la règle de l'orphelin.
E0119Deux implémentations ou plus du même trait existent pour le même type.
E0133Une fonction ou opération unsafe est utilisée en dehors d'un bloc unsafe.
E0152Un language item (#[lang = ...]) est défini plus d'une fois.
E0200Un trait unsafe doit être implémenté avec un bloc impl unsafe.
E0252Deux imports introduisent le même nom dans la portée.
E0255Une définition locale entre en conflit avec un nom importé.
E0271Un type associé dans une implémentation de trait ne correspond pas au type attendu.
E0282Rust ne peut pas inférer le type d'une valeur et a besoin d'une annotation explicite.
E0283Plusieurs implémentations de trait pourraient s'appliquer, et Rust ne peut pas déterminer laquelle utiliser.
E0310Un paramètre de type générique ne satisfait pas une borne de durée de vie requise.
E0317Une expression if utilisée comme valeur n'a pas de branche else.
E0373Une fermeture capture une référence à une variable dont la durée de vie peut être insuffisante.
E0392Un paramètre générique de type ou de durée de vie est déclaré mais n'est pas utilisé dans la structure ou l'énumération.
E0404Un type a été utilisé là où un trait était attendu.
E0405Un nom de trait est utilisé mais n'est ni défini ni importé dans la portée actuelle.
E0428Un élément du même nom est défini plusieurs fois dans la même portée.
E0463Le crate spécifié est introuvable par le compilateur.
E0520La spécialisation des implémentations de traits nécessite une fonctionnalité du compilateur nightly.
E0596Vous essayez d'emprunter en mutable une valeur qui n'est pas déclarée comme mutable.
E0600Un opérateur unaire est appliqué à un type qui ne le prend pas en charge.
E0601Le crate binaire ne possède pas de fonction main comme point d'entrée.
E0603Vous essayez d'accéder à un élément privé depuis l'extérieur de son module.
E0621Un paramètre de fonction nécessite une annotation explicite de durée de vie pour satisfaire le vérificateur d'emprunts.
E0308Différents bras de match retournent des types incompatibles.
E0716Une référence est conservée vers une valeur temporaire qui est immédiatement abandonnée.
E0728Le mot-clé .await est utilisé dans une fonction qui n'est pas déclarée async.
panic-unwrapLe programme a paniqué car unwrap() a été appelé sur une valeur None ou Err.
panic-index-out-of-boundsLe programme a paniqué car un index se trouvait hors de la plage valide d'une collection.
panic-integer-overflowLe programme a paniqué car une opération arithmétique a provoqué un dépassement d'entier en mode debug.
panic-stack-overflowLe programme a paniqué en raison d'une utilisation excessive de la pile, généralement due à une récursion profonde.
clippy::needless_returnLe mot-clé return est utilisé inutilement à la fin d'une fonction.
clippy::let_and_returnUne variable est déclarée puis immédiatement retournée à la ligne suivante.
clippy::unused_importsUn élément importé n'est utilisé nulle part dans le fichier.
clippy::clone_on_copyLa méthode clone() est appelée sur un type qui implémente Copy.
clippy::unwrap_usedLa méthode unwrap() est utilisée, ce qui peut provoquer un panic à l'exécution.
dead_codeUne fonction, un struct, une variante d'enum ou une constante est définie mais jamais utilisée.
unused_variablesUne variable est déclarée mais jamais utilisée dans le code.
unused_mutUne variable est déclarée mutable mais n'est jamais réellement modifiée.
E0046Toutes les méthodes requises d'un trait ne sont pas implémentées.
E0053La signature de la méthode dans un bloc `impl` ne correspond pas à celle de la méthode du trait.
E0277Un type qui n'implémente pas Send est utilisé dans un contexte exigeant la sûreté entre threads.
E0277Un type à taille dynamique (DST) est utilisé là où un type Sized est requis.
E0277Un type est utilisé dans une boucle `for` ou un contexte d'itérateur mais n'implémente pas Iterator.
E0308La closure retourne un type différent de celui attendu par le contexte.
E0562La syntaxe impl Trait est utilisée à une position où elle n'est pas autorisée.
E0308La fonction retourne un Result dont le type Ok ou Err est incorrect.
E0277Un type est utilisé comme appelable mais n'implémente ni Fn, ni FnMut, ni FnOnce.
panic-divide-by-zeroLe programme a paniqué à cause d'une division entière par zéro.
panic-slice-index-out-of-rangeLe programme a paniqué car une plage de slice est hors limites.
clippy::map_unwrap_orL'utilisation de `.map().unwrap_or()` peut être remplacée par `.map_or()`.
clippy::single_matchUne expression match avec une seule branche significative peut être simplifiée en `if let`.
clippy::redundant_closureUne closure qui se contente d'appeler une fonction peut être remplacée par cette fonction directement.