Section courante

A propos

Section administrative du site

compile_error

Erreur de compilation
Rust

Syntaxe

macro_rules! compile_error {
   ($msg:expr $(,)?) => { ... };
}

Description

Cette macro permet de provoquer une erreur de compilation explicite avec un message personnalisé, utilisée pour signaler des cas invalides à la compilation.

Remarques

Provoque l'échec de la compilation avec le message d'erreur indiqué lorsqu'elle est rencontrée.

Cette macro doit être utilisée lorsqu'une crate utilise une stratégie de compilation conditionnelle afin de fournir de meilleurs messages d'erreur en cas d'erreur. Il s'agit de la version de panic! au niveau du compilateur, mais elle génère une erreur lors de la compilation plutôt qu'à l'exécution.

Exemples

Les macros et les environnements #[cfg] en sont deux exemples.

Émet une meilleure erreur de compilation si une macro reçoit des valeurs non valides. Sans la branche finale, le compilateur générerait quand même une erreur, mais le message d'erreur ne mentionnerait pas les deux valeurs valides.

  1. macro_rules! give_me_foo_or_bar {
  2.     (foo) => {};
  3.     (bar) => {};
  4.     ($x:ident) => {
  5.         compile_error!("Cette macro accepte uniquement `foo` ou `bar`");
  6.     }
  7. }
  8.  
  9. give_me_foo_or_bar!(neither);
  10. // ^ échouera au moment de la compilation avec le message « Cette macro n'accepte que `foo` ou `bar` »

Émettre une erreur de compilation si l'une des nombreuses fonctionnalités n'est pas disponible :

  1. #[cfg(not(any(feature = "foo", feature = "bar")))]
  2. compile_error!("La fonctionnalité \"foo\" ou \"bar\" doit être activée pour cette caisse.");    


Dernière mise à jour : Mardi, le 5 Août 2025